Algumas pessoas vieram me pedir esse código, então hoje eu tirei um tempinho pra trazer pra vocês.
O que faz
Este código faz com que seja possivel ver através do look, quem jogou uma Magic Wall ou um Fire Bomb, isso é útil quando aquele amigo noob taca uma Magic Wall onde não deveria e diz que não foi ele, com esse código não tem como se esconder.
Como implementar
Este código foi testado apenas em TFS 0.x e OTX2, mas acredito que pode facilmente ser adaptado para TFS 1.x.
Originalmente eu fiz este código para ser usado com a Magic Wall, mas ele pode ser implementado em qualquer spell que utilize COMBAT_PARAM_CREATEITEM.
Script original da Magic Wall
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
Basta substituir o return doCombat pelo código abaixo.
ret = doCombat(cid, combat, var)
if ret then
local mWall = getTileItemById(variantToPosition(var), 1497).uid
doItemSetAttribute(mWall, "description", string.format("It was cast by: %s.", getCreatureName(cid)))
end
return ret
O código completo deve ficar parecido com este.
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
function onCastSpell(cid, var)
ret = doCombat(cid, combat, var)
if ret then
local mWall = getTileItemById(variantToPosition(var), 1497).uid
doItemSetAttribute(mWall, "description", string.format("It was shot by: %s.", getCreatureName(cid)))
end
return ret
end
Note que 1497 é o ID da Magic Wall, para items como Fire Field e outros, o ID deve ser substituído.
Créditos