Postado Abril 20, 2016 9 anos Alguem saberia como fazer uma spell multi target eu tenho um exemplo mais nao ta dando muito certo, alguem poderia me ajudar eu uso tfs 1.x Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 0) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 0)setCombatParam(combat_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.2, -25, -0.2, -3) local manaNeededPerTarget = 20 local hitExtraTargets = 3 local hitExtraTargetsInRange = 2 function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers) local creaturesList = {} for x = -radiusx, radiusx do for y = -radiusy, radiusy do if not (x == 0 and y == 0) then creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE}) if (creature.type == 1 and showPlayers == 1) or (creature.type == 2 and showMonsters == 1) then table.insert(creaturesList, creature.uid) end end end end return creaturesList end function onCastSpell(cid, var) local ret = doCombat(cid, combat, var) if(ret == LUA_ERROR) then return LUA_ERROR end doPlayerAddManaSpent(cid, manaNeededPerTarget) doCreatureAddMana(cid, -manaNeededPerTarget) local target = variantToNumber(var) local hitplayers = 0 if(target ~= 0) then if(isPlayer(target) == TRUE) then hitplayers = 1 end local nowHit = 0 local randomId = 0 local otherTargets = getCreaturesInRange(getCreaturePosition(target), hitExtraTargetsInRange, hitExtraTargetsInRange, 1, hitplayers) if(#otherTargets > 0) then for i = 1, hitExtraTargets do if(getCreatureMana(cid) > manaNeededPerTarget) then randomId = math.random(1, #otherTargets) nowHit = otherTargets[randomId] if(isCreature(nowHit) == TRUE) then table.remove(otherTargets, randomId) ret = doCombat(cid, combat, numberToVariant(nowHit)) if(ret ~= LUA_ERROR) then doPlayerAddManaSpent(cid, manaNeededPerTarget) doCreatureAddMana(cid, -manaNeededPerTarget) end end if(#otherTargets == 0) then break end else break end end end end return TRUE end Editado Abril 20, 2016 9 anos por Luccan Medeiros (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.