pra ser direto ao ponto... Eu tive uma ideia de um sistema muito interessante para meu servidor.
após algum tempo estudando formas de faze-lo eu descobri uma forma (bem feia) de fazer.
Após algum tempo trabalhando no script cheguei a um resultado... porém não funcional vejamos:
Primeiro a ideia: esse script ,era pra ser bem simples, seria uma skill target que quando atingisse o inimigo deixaria nele um storage value por determinado tempo.
sairia um texto animado por puro capricho. passado o tempo esse storage value seria removido e sairia outro texto animado.
Esse sistema que pretendo fazer funcionaria somente se o player tivesse equipado com um item, mas tornou-se muito mais problematico do que eu imaginava.
vou postar os 2 pois acredito que o erro seja o mesmo então... não muda muito haha.
Verifica se X item está equipado:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2, -1, -3, -2)
local inimigo = {}
local escudo = 2520
local slot1 = getPlayerSlotItem(getCreatureTarget(cid), 5)
local slot2 = getPlayerSlotItem(getCreatureTarget(cid), 6)
local storage = 199901
function onCastSpell(cid, var)
table.insert(inimigo, getCreatureTarget(cid))
if isPlayer then
if slot1 or slot2 == 2520 then
setPlayerStorageValue(#inimigo, storage, 1)
doSendAnimatedText(getCreaturePosition(cid), 'Charged', 180)
else
return doCombat(cid, combar, var)
end
addEvent(function()
if isCreature(cid) then
setPlayerStorageValue(#inimigo, storage, 0)
doSendAnimatedText(getCreaturePosition(cid), 'Charge lost', 180)
end
end,4000)
return doCombat(cid, combat, var)
end
end
Não verifica se item está equipado:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2, -1, -3, -2)
local inimigo = {}
local storage = 199901
function onCastSpell(cid, var)
table.insert(inimigo, getCreatureTarget(cid))
if isPlayer then
setPlayerStorageValue(#inimigo, storage, 1)
doSendAnimatedText(getCreaturePosition(cid), 'Charged', 180)
else
return doCombat(cid, combat, var)
end
addEvent(function()
if isCreature(cid) then
setPlayerStorageValue(#inimigo, storage, 0)
doSendAnimatedText(getCreaturePosition(cid), 'Charge lost', 180)
end
end,4000)
return doCombat(cid, combat, var)
end
O que me intriga muito nos 2 scripts é o fato de não ter nenhum erro no debugger (OtScriptLive) e nem no distro do servidor.
o unico erro aparente é quano o player usa que aparece o erro avisando que o player está sem mana...
porém baixei o custo de mana da magia pra 0 e testei em 2 personagens com mais de 5k de mana...
eu sou um scripter iniciante (MUITO iniciante... NOVATO... NEWBA) portanto deve ser um erro ridiculo...
Pergunta
Darkraus 2
Bom dia/tarde/noite.
pra ser direto ao ponto... Eu tive uma ideia de um sistema muito interessante para meu servidor.
após algum tempo estudando formas de faze-lo eu descobri uma forma (bem feia) de fazer.
Após algum tempo trabalhando no script cheguei a um resultado... porém não funcional vejamos:
Primeiro a ideia: esse script ,era pra ser bem simples, seria uma skill target que quando atingisse o inimigo deixaria nele um storage value por determinado tempo.
sairia um texto animado por puro capricho. passado o tempo esse storage value seria removido e sairia outro texto animado.
Esse sistema que pretendo fazer funcionaria somente se o player tivesse equipado com um item, mas tornou-se muito mais problematico do que eu imaginava.
vou postar os 2 pois acredito que o erro seja o mesmo então... não muda muito haha.
Verifica se X item está equipado:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2, -1, -3, -2) local inimigo = {} local escudo = 2520 local slot1 = getPlayerSlotItem(getCreatureTarget(cid), 5) local slot2 = getPlayerSlotItem(getCreatureTarget(cid), 6) local storage = 199901 function onCastSpell(cid, var) table.insert(inimigo, getCreatureTarget(cid)) if isPlayer then if slot1 or slot2 == 2520 then setPlayerStorageValue(#inimigo, storage, 1) doSendAnimatedText(getCreaturePosition(cid), 'Charged', 180) else return doCombat(cid, combar, var) end addEvent(function() if isCreature(cid) then setPlayerStorageValue(#inimigo, storage, 0) doSendAnimatedText(getCreaturePosition(cid), 'Charge lost', 180) end end,4000) return doCombat(cid, combat, var) end endNão verifica se item está equipado:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2, -1, -3, -2) local inimigo = {} local storage = 199901 function onCastSpell(cid, var) table.insert(inimigo, getCreatureTarget(cid)) if isPlayer then setPlayerStorageValue(#inimigo, storage, 1) doSendAnimatedText(getCreaturePosition(cid), 'Charged', 180) else return doCombat(cid, combat, var) end addEvent(function() if isCreature(cid) then setPlayerStorageValue(#inimigo, storage, 0) doSendAnimatedText(getCreaturePosition(cid), 'Charge lost', 180) end end,4000) return doCombat(cid, combat, var) endO que me intriga muito nos 2 scripts é o fato de não ter nenhum erro no debugger (OtScriptLive) e nem no distro do servidor.
o unico erro aparente é quano o player usa que aparece o erro avisando que o player está sem mana...
porém baixei o custo de mana da magia pra 0 e testei em 2 personagens com mais de 5k de mana...
eu sou um scripter iniciante (MUITO iniciante... NOVATO... NEWBA) portanto deve ser um erro ridiculo...
alguem tem alguma solução? haha
Link para o comentário
https://xtibia.com/forum/topic/239495-erro-em-script-sem-erro-no-distro/Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados