Ir para conteúdo

Garoto Prodigio

Membro
  • Registro em

  • Última visita

Tudo que Garoto Prodigio postou

  1. Gostaria que me ajudassem em um Script pra um mob Por exemplo: JOGADOR X Atacou um Lobo (Precisa ser um dano, não apenas targetado) O Lobo mudará sua outfit pra um Lobisomen Quando o Jogador X Parar de dar dano no Lobisomen Ele voltará a outfit de Lobo. Lembrando que ele não se tornará outro Mob, apenas sua outfit será modificada. Não é nada complicado na teoria, mas eu já tentei e Decidi pedir ajuda, também não encontrei nada Relacionado no Fórum.
  2. Gostaria de saber se alguém pode me ajudar, QUALQUER VERSÃO do RME Editor que eu tente abrir o mapa, editar, etc Fica assim a tela: Já tentei baixar outros RME, abrir outros mapas, mudar a versão .otb dos mesmos e nada. Não sei se falta algum c++ ou framework, mas eu ja baixei VARIOS e até atualizei com o Driver Booster e nada, se alguém puder me ajudar eu agradeço.
  3. Ja tentei quests.xml não aparece de jeito nenhum. mas ja resolvi.
  4. Sim, e no mob também. Em creaturescript.xml está event Kill
  5. Quando eu mato a mensagem não aparece, aparece apenas a mesma se eu colocar function onKill(cid, target, lastHit) local tab = { ["shaball"] = {msg = "very good!", storage = 78001, item = 15160}, ["kraken"] = {msg = "you recived your honor", storage = 78002, item = 15859} } if isPlayer(cid) and isMonster(target) then local var = tab[getCreatureName(target):lower()] if var then doPlayerPopupFYI(cid, "Mensagem aparece a mesma pra todos") print(var.msg, var.storage, var.item) -- aqui vc faz oq quiser end end return true end Eu tentei também doPlayerPopupFYI(cid, msg) mas da erro "trying to send an empty or to huge message Outra dúvida seria se tivesse como dar o item apenas uma vez, um check da storage por exemplo, eu tentei mas sou péssimo com script ;s
  6. Olá pessoal do TK, estive pensando em um Script que funcionaria da Seguinte Forma: Ao matar x Monstro, você recebe uma Storage, um Certo item e aparece uma mensagem, esse Script seria uma tabela, por exemplo: local monstros = { [MOB1] = MSG = STORAGE = ITEM [MOB2] = MSG = STORAGE = ITEM [MOB3] = = MSG = STORAGE = ITEM } Bom, é basicamente isso, não sei se é complicado de Fazer, mas caso esteja pode ser um script pra um mob só que eu adapto, espero que alguém me ajude TFS 8.60
  7. Tente desta forma local scom1 = createCombatObject() local scom2 = createCombatObject() local scom3 = createCombatObject() local scom4 = createCombatObject() local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 850) function kiaiho(cid, level, maglevel) local min = -(level * 1.0 + maglevel * 1 + 0) local max = -(level * 1.0 + maglevel * 1 + 0) return min, max end setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "kiaiho") local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 850) function kiaiho(cid, level, maglevel) local min = -(level * 1.0 + maglevel * 1 + 0) local max = -(level * 1.0 + maglevel * 1 + 0) return min, max end setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "kiaiho") local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN) setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 850) function kiaiho(cid, level, maglevel) local min = -(level * 1.0 + maglevel * 1 + 0) local max = -(level * 1.0 + maglevel * 1 + 0) return min, max end setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "kiaiho") local combat4 = createCombatObject() setCombatParam(combat4, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN) setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat4, COMBAT_PARAM_EFFECT, 850) function kiaiho(cid, level, maglevel) local min = -(level * 1.0 + maglevel * 1 + 0) local max = -(level * 1.0 + maglevel * 1 + 0) return min, max end setCombatCallback(combat4, CALLBACK_PARAM_LEVELMAGICVALUE, "kiaiho") arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr3 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr4 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr2) local area4 = createCombatArea(arr2) setCombatArea(scom1, area1) setCombatArea(scom2, area2) setCombatArea(scom3, area3) setCombatArea(scom4, area4) function onTargetTile(cid, pos) local p = getThingPos(cid) local basep = {x = p.x + 5, y = p.y - 5, z = p.z} doSendDistanceShoot(basep, pos, 55) doCombat(cid,combat1,positionToVariant(pos)) end function onTargetTile2(cid, pos) local p1 = getThingPos(cid) local basep1 = {x = p1.x - 5, y = p1.y + 5, z = p1.z} doSendDistanceShoot(basep1, pos, 55) doCombat(cid,combat2,positionToVariant(pos)) end function onTargetTile3(cid, pos) local p2 = getThingPos(cid) local basep2 = {x = p2.x - 5, y = p2.y + 5, z = p2.z} local baseep2 = {x = p2.x + 5, y = p2.y - 5, z = p2.z} doSendDistanceShoot(basep2, pos, 112) doSendDistanceShoot(baseep2, pos, 112) doCombat(cid,combat3,positionToVariant(pos)) end function onTargetTile4(cid, pos) local p3 = getThingPos(cid) local basep3 = {x = p3.x - 5, y = p3.y - 5, z = p3.z} local baseep3 = {x = p3.x + 5, y = p3.y + 5, z = p3.z} doSendDistanceShoot(basep3, pos, 112) doSendDistanceShoot(baseep3, pos, 112) doCombat(cid,combat4,positionToVariant(pos)) end setCombatCallback(scom1, CALLBACK_PARAM_TARGETTILE, "onTargetTile") setCombatCallback(scom2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2") setCombatCallback(scom3, CALLBACK_PARAM_TARGETTILE, "onTargetTile3") setCombatCallback(scom4, CALLBACK_PARAM_TARGETTILE, "onTargetTile4") local function onCastSpell1(parameters) doCombat(parameters.cid, scom1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, scom2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, scom3, parameters.var) end local function onCastSpell4(parameters) doCombat(parameters.cid, scom4, parameters.var) end function onCastSpell(cid, var) local waittime = 1,0 -- Tempo de exhaustion em segundos local storage = 26002 if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Aguarde" .. exhaustion.get(cid, storage) .. " Segundos Para Usar Novamente.") return false end local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) addEvent(onCastSpell3, 1200, parameters) addEvent(onCastSpell4, 1200, parameters) exhaustion.set(cid, storage, waittime) return TRUE end
  8. Olá pessoal, eu estou a procura de uma talkaction, onde funcionará por Storages, por exemplo: !missao Ao usar esse comando, mostrará por exemplo: *Você precisa levar 30 pedaços de Carne para o Barqueiro Jhonson.* Esse Script funcionaria com Storages, por exemplo: Storage 666 (Valor positivo ou seja 1) Ao jogador completar a Missão desse Barqueiro, esse valor 666, é Setado pra 0, fazendo com que não apareça a mesma mensagem de missão, e sim a proxíma. Exemplo: Levei duas moedas pro açogueiro, após finalizar a missão, eu ganhei a Storage 666, valor 1 (positivo), então quando eu usar !missao, aparecerá uma nova mensagem de missão ao usar o Comando. Seria algo como: Local storages={ 666,1, - Mensagem "BLA BLA BLA" 777,1, - Mensagem "Ui ui ui" } É como uma tabela que puxa a Storage, se for positiva, ou seja 1 o comando envia a Mensagem, eu mesmo colocaria nos NPCS/SCRIPTS pra setar a storage pra 0 no caso, pra que a mensagem se modifique conforme ele termina as missões. Não sei se é muito complicado de fazer, mas eu tentei e só tive fracasso, já até apaguei o script, por isso vim aqui pedir a ajuda do pessoal do TK, acredito que vocês possam me ajudar. Quanto ao estilo da mensagem, pode ser PopupFy mesmo. Espero que ajudem DISTRO: OTX 8.60 Adaptada com TFS.
  9. achei não, chama eu lá Aidan_ConorHill#6060
  10. Então galera eu tava pensando em um Evento PVP que iria funcionar da seguinte maneira: Em X dia ás X Horas, os jogadores podem se inscrever para o Evento PVP Random! Falando com o NPC, Em 5 Minutos irá começar, assim que começar os Jogares que se inscreveram irão ser teleportados pra sala com o seu adversário RANDOM ( Sorteado ) e o perdedor é enviado pro dp, quem Vencer irá ser teleportado pra outra area onde os outros vencedores são levados quando matam o adversário, terá apenas 1 Vencedor, esse vencedor ganhará X itens configuráveis
  11. Galera estou com um problema, minhas samples da database, após eu configurar uma nova database simplesmente quando os personagens deslogam eles perdem os skills, creio que seja algum bug das samples! Otx 8.60
  12. Qual a base do seu Servidor? 8.60 (sei disso) é Tibia? alternativo? fez alguma modificação? otx ou tfs?
  13. Provavelmente é em Creaturescripts, há uns dias atrás eu também resolvi este problema, veja se resolve pra você. Em creaturescripts.lua adicione estas duas linhas: <event type="combat" name="SummonAntKillPlayer" event="script" value="summonantkillplayer.lua"/> <event type="combat" name="PlayerAntKillSummon" event="script" value="playerantkillsummon.lua"/> summonantkillplayer.lua (Impede que o summon ataque o player, mesmo com ataques em area) function onCombat(cid, target) if isInArray(getCreatureSummons(target), cid) then return false end return true end playerantkillsummon.lua (impede que o player ataque seu summon, mesmo ataques em area) function onCombat(cid, target) if cid == getCreatureMaster(target) then doPlayerSendCancel(cid, "Voce nao pode matar seu summon.") return false end return true end Por fim, em data/creaturescripts/scripts/login.lua ----> Se você não colocar, não funcionará! Adicione: registerCreatureEvent(cid, "PlayerAntKillSummon") registerCreatureEvent(cid, "SummonAntKillPlayer")
  14. Rep++ Parabéns mano! Obrigado pela ajuda :D
  15. Fucionou Perfeitamente!!! Só tenho uma dúvida antes de marcar como Solução, por exemplo: No meu jogo eu tenho 3 Tipos de Demon, Demon King e Demon Ice, teria como permitir pelo script pra Demon, Demon King, etc poderem usar? REP+
  16. Galera tava precisando de um Script (Não sei se é simples), enfim vamos lá. Por exemplo: Eu summono um Demon(pra me ajudar), e eu quero mudar a Skin (roupa) dele, então eu clico em 1 item (Perola azul), e meu Demon fica com a cor Azul (mudaria a outfit id do meu summon, apenas se for o DEMON). Seria algo tipo actions mesmo, "OnUse", "DoSet Summon Outfit" etc etc Eu tentei montar esses dias mas sem sucesso. Outro exemplo: No caso Se eu tivesse um Wolf summonado e clicasse nessa perola azul, falaria "você não tem um Demon summonado para usar este item) Não precisa remover o item! pode ser um ID fictício no script ou "ITEMID" que eu configuro, caso tenha alguma dúvida só me falar, se puderem me ajudar Rep+! OTX/OTFS (8.60)
  17. Eu atualize meu TFS 8.60 pra OTX 8.60 (Scripts Adaptados versão 2.15) Da erro quando tento abrir portas comuns, ja testei varios doors.lua e sempre o mesmo erro To achando que é função na pasta lib Se alguém puder me ajudar rep+ Kkk Doors.lua (na verdade acho que não tem muito haver o script, talvez seja função) local function checkStackpos(item, position) position.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local thing = getThingFromPos(position) position.stackpos = STACKPOS_TOP_FIELD local field = getThingFromPos(position) return (item.uid == thing.uid or thing.itemid < 100 or field.itemid == 0) end local function doorEnter(cid, item, toPosition) doTeleportThing(cid, toPosition) end function onUse(cid, item, fromPosition, itemEx, toPosition) if(fromPosition.x ~= CONTAINER_POSITION and isPlayerPzLocked(cid) and getTileInfo(fromPosition).protection) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) return true end if(getItemLevelDoor(item.itemid) > 0) then if(item.actionid == 189) then if(not isPremium(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end local gender = item.actionid - 186 if(isInArray({PLAYERSEX_FEMALE, PLAYERSEX_MALE, PLAYERSEX_GAMEMASTER}, gender)) then if(gender ~= getPlayerSex(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end local skull = item.actionid - 180 if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then if(skull ~= getCreatureSkullType(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end local group = item.actionid - 150 if(group >= 0 and group < 30) then if(group > getPlayerGroupId(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end local vocation = item.actionid - 100 if(vocation >= 0 and vocation < 50) then local playerVocationInfo = getVocationInfo(getPlayerVocation(cid)) if(playerVocationInfo.id ~= vocation and playerVocationInfo.fromVocation ~= vocation) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end if(item.actionid == 190 or (item.actionid ~= 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid)))) then doorEnter(cid, item, toPosition) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") end return true end if(isInArray(specialDoors, item.itemid)) then if(item.actionid == 100 or (item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) > 0)) then doorEnter(cid, item, toPosition) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.") end return true end if(isInArray(keys, item.itemid)) then if(itemEx.actionid > 0) then if(item.actionid == itemEx.actionid and doors[itemEx.itemid] ~= nil) then doTransformItem(itemEx.uid, doors[itemEx.itemid]) return true end doPlayerSendCancel(cid, "The key does not match.") return true end return false end if(isInArray(horizontalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then local newPosition = toPosition newPosition.y = newPosition.y + 1 local doorPosition = fromPosition doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local doorCreature = getThingfromPos(doorPosition) if(doorCreature.itemid ~= 0) then local pzDoorPosition = getTileInfo(doorPosition).protection local pzNewPosition = getTileInfo(newPosition).protection if((pzDoorPosition and not pzNewPosition and doorCreature.uid ~= cid) or (not pzDoorPosition and pzNewPosition and doorCreature.uid == cid and isPlayerPzLocked(cid))) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) else doTeleportThing(doorCreature.uid, newPosition) if(not isInArray(closingDoors, item.itemid)) then doTransformItem(item.uid, item.itemid - 1) end end return true end doTransformItem(item.uid, item.itemid - 1) return true end if(isInArray(verticalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then local newPosition = toPosition newPosition.x = newPosition.x + 1 local doorPosition = fromPosition doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local doorCreature = getThingfromPos(doorPosition) if(doorCreature.itemid ~= 0) then if(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) else doTeleportThing(doorCreature.uid, newPosition) if(not isInArray(closingDoors, item.itemid)) then doTransformItem(item.uid, item.itemid - 1) end end return true end doTransformItem(item.uid, item.itemid - 1) return true end if(doors[item.itemid] ~= nil and checkStackpos(item, fromPosition)) then if(item.actionid == 0) then doTransformItem(item.uid, doors[item.itemid]) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.") end return true end return false end
  18. <item id="ID DO ITEM" article="a" name="NOME DO ITEM"> <attribute key="decayTo" value="0" /> <attribute key="duration" value="SEGUNDOS QUE DURA" /> </item>
  19. No caso qualquer vocação pode usar. Eu testei seu script, quando eu puxo o item pro Slot, ele não aparece no Slot, ele continua na BAG/CHÃO, mas o mob é summonado normalmente, o problema é justamente que deveria equipar literalmente o item pra quando ele remover o Summon Sumir, poderia ser 1 script diferente, tipo de Action (OnUse) que checasse se ele tem o Item equipado no SLOT pra summonar o Monstro. Eu consigo equipar o item em qualquer lugar, menos onde é o Slot que quero (Shield) No caso quando eu equipo no SHIELD (Onde eu configurei no moveevents) Aparece o Summon, mas o item não é equipado :s TAG MOVEEVENTS: <movevent type="Equip" itemid="5924" slot="shield" event="script" value="testado2.lua"/>
  20. Galera Eu queria um Script moveevent OnEquip (ao Equipar x Item) que Summona um "demon" pra Te Ajudar! Eu fiz o Script DeEquip, (ao Desequipar o Item) e ta Funcionando (Usei uma spell summon pra testar se remove os summons ao DESEQUIPAR, está 100% e com certeza irá funcionar se me ajudarem com o script Ao Equipar Summonar o Mob) Bom, basicamente Este Item, você equipa e summona um Demon, porém precisa CHECAR se eu tenho um SUMMON Antes de Invocar ao Equipar por exemplo: Eu uso uma spell "Summon wolf (Summono um wolf)", e o Player vai lá achando que se Equipar o Item pra summonar o Demon vai ficar com 2 (Mas não pode), quero que o script Impeça que Invoque Outro! Seria um script tipo assim: function onEquip(cid, item, slot) local summon = getCreatureSummons(cid) local maxSum = 1 if (table.maxn(summon) < maxSum) then local playerpos = getPlayerPosition(cid) local monster = doConvinceCreature(cid, doCreateMonster("Demon]", position)) return false else doSendMagicEffect(pos, 12) doPlayerSendCancel(cid, "Voce so pode invocar um demon") end (Este Script acima não funciona) Testei e tentei adaptar alguns scripts aqui do TK, mas sem sucesso! Agradeço se alguém puder me Ajudar Rep+ Versão 8.60 pode ser OTX/TFS.
  21. Reputado 2x! Funcionando Perfeitamente! Obrigado! :D
  22. .Galera essa é uma Spell de Summon que heala o Invocador e quem esta na party, porém, mesmo que os Membros da party estejam a 20,50,80,150,200,500SQM de Distância Heala os membros da party mesmo assim. Eu queria colocar um limite de SQM (tipo um IsRange), pra que não de Healing em que estiver Longe do summon/invocador. Segue o Script: local config = { health = 3000, mana = 1000 } function onCastSpell(cid, var) if getCreatureMaster(cid) then local master = getCreatureMaster(cid) if isInParty(master) then local members = getPartyMembers(getPlayerParty(master)) local health = math.ceil( config.health / #members ) local mana = math.ceil( config.mana / #members ) for i = 1, #members do doCreatureAddHealth(members[i], health) doCreatureAddMana(members[i], mana) doSendAnimatedText(getCreaturePosition(members[i]), "+"..health, 18) doSendMagicEffect(getCreaturePosition(members[i]), 5) end else doCreatureAddHealth(master, config.health) doCreatureAddMana(master, config.mana) doSendAnimatedText(getCreaturePosition(master), "+"..config.health, 18) doSendMagicEffect(getCreaturePosition(master), 5) end end return true end

Informação Importante

Confirmação de Termo