já tentou usar a função onAttack(cid, target) ?
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

info
Grupo: Conde
Registrado: 03/01/12
Posts: 884
Reputação: +233
Char no Tibia: Segredo

ou ja tento com
function onCombat(cid, target)
Editado Agosto 24 por notle2012
info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac

eu tentei com onAttack(cid, target)
eu tentei fazer tipo uma passiva, sempre que o player desse um ataque dava um dano extra em holy, mas não deu mto certo, ele não espera atacar msm é só estar com o target no bixo que o efeito já vai.
e com function onCombat(cid, target) eu não tentei..
to tentando ajeitar a do onAttack, e vou tentar fazer com onCombat aqui agora.
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

eu tentei fazer tipo uma passiva, sempre que o player desse um ataque dava um dano extra em holy, mas não deu mto certo, ele não espera atacar msm é só estar com o target no bixo que o efeito já vai.
então só usar 'onStatsChange' velho rs
info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac

Da uma olhada eu levei anos pra fazer essa porcaria funcionar:
function onAttack(cid, target)
local i = 1
local damageMin = (getPlayerLevel(cid) * 2)
local damageMax = (getPlayerLevel(cid) * 3)
function doAttack()
if (getPlayerStorageValue(cid, 23194) == 1) then
doTargetCombatHealth(cid, target, COMBAT_HOLYDAMAGE, -damageMin, -damageMax, CONST_ME_HOLYDAMAGE)
end
exhaustion.set(cid, 23195, 1)
end
if exhaustion.check(cid, 23195) == FALSE then
addEvent(doAttack, 50, 1)
end
return true
end
"Eu fiz" esse creaturescript e lá na spell eu só adc ao player a storage, só que esse é infinito, não tem tempo de duração. O efeito para, quando o player usa uma outra magia que tira o storage e adc um que vai executar outro creaturescript que cura ao envés de dar um dano extra a cada hit.
Só que o efeito ta executando quando eu seleciono o target e não quando eu dou o hit mesmo.
Se falou pra usar "onStatsChange", mas eu não sei como ele funciona '-'
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

+ou- isso
function onStatsChange(cid, attacker, type, combat, value) local damageMin = (getPlayerLevel(cid) * 2) local damageMax = (getPlayerLevel(cid) * 3) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then if getPlayerStorageValue(cid, 23194) == 1 then doTargetCombatHealth(cid, attacker, COMBAT_HOLYDAMAGE, -damageMin, -damageMax, CONST_ME_HOLYDAMAGE) end return true end return true end
info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac

Ahhh saquei! perfeito.
Obrigado.
EDIT:
Eu tentei usar exatamente como vc fez vodkart, mas não deu nenhum erro nem funcionou.. não sei o que pode ser.. ![]()
Editado Agosto 28 por OtheReality
info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac

Consegui(com a ajuda do vodkart e do Eskylo). Pra quem estiver querendo ta ai:
function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS then
if isPlayer(attacker) then
if getPlayerStorageValue(attacker, 23194) > 0 then
setPlayerStorageValue(attacker, 23194, 0)
local damageMin = (getPlayerLevel(attacker) * 2)
local damageMax = (getPlayerLevel(attacker) * 3)
doTargetCombatHealth(attacker, cid, COMBAT_HOLYDAMAGE, -damageMin, -damageMax, CONST_ME_HOLYDAMAGE)
setPlayerStorageValue(attacker, 23194, 1)
end
end
end
return 1
end
function onCombat(cid, target)
if isPlayer(cid) then
registerCreatureEvent(target, "healthLevel7")
end
return 1
end
Editado Agosto 28 por OtheReality
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

tinha que registra no onCombat, tinha esquecido de te avisar rsrsrsrs, desculpa.
Mas que bom que sua dúvida tenha sido retirada e obrigado por compartilhar seu script com os demais usuários
vlw



info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac
Eu queria fazer uma magia que executasse quando o player da um hit no inimigo.
Por exemplo o exori mort, o player usa a magia e o próximo hit dele vai dar um dano extra igual ao dano que seria o exori mort.
É exatamente igual as outras magias mas ao envés de executar quando o player fala a magia ia ser no próximo ataque do player.
Será que é possível fazer isso?
Agradeço quem poder me ajudar.