Tenta:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) local armorId = 2660 -- id da armadura if getPlayerSlotItem(cid, CONST_SLOT_ARMOR).itemid ~= armorId then doPlayerSendCancel(cid, "Para usar esta habilidade equipe uma Capa") return false end doCombat(cid, combat, var) end




info
Grupo: Campones
Registrado: 13/08/07
Posts: 6
Reputação: 0
Olá. Estou com uma dificuldade imensa em editar a magia Invisibility.
Eu gostaria que fosse necessário estar equipado com uma certa armadura para utilizar a spell. Eu consegui fazer isso aqui
function onCastSpell(cid, var)
local armorId = 2660 -- id da armadura
if getPlayerSlotItem(cid, CONST_SLOT_ARMOR).itemid ~= armorId then
doPlayerSendCancel(cid, "Para usar esta habilidade equipe uma Capa") return true or false
end
O problema desse código é que caso eu não esteja equipado com a armadura, a magia gasta mana mesmo assim. Ou seja, a magia é usada, mas só depois é cancelada.
Eu pensei em editar alguma coisa na spells.xml, talvez botar alguma coisa do tipo needArmorId="2660", mas não sei como fazer isso. De qualquer forma, o código está aqui.
Também gostaria de adicionar na spell um adicional: Enquanto o usuário estiver invisível, caso ele ataque há uma chance de X% da invisibilidade ser cancelada a cada ataque (Como que se ele fosse detectado).
Desde já agradeço pela atenção