Olá! Faço parte de um projeto OpenTibia, e fiquei encarregado da criação dos spells. A versão que estamos usando é YurOts 8.0, estamos simplesmente usando ela como base, implementando nossa preferências nela. Indo direto ao assunto, preciso criar spells focados ( que atinjam o alvo, não como o "exura sio", por exemplo, mas como uma SD ) do tipo instant. Já tentei pegar os scripts da SD e transformar em instant, mudando o tipo de dano, a animação e outras coisas, mas não obtive sucesso. O que aconteceu foi que quando tentei usar o spell, o client acusou o seguinte : "A player with that name is not online" Oo ( WTF ). Tentei também editar o já existente "exori flam", mas na codificação do nosso OT, ele não é focado, simplesmente ataca o tile da frente. As exigências do spell são as seguintes :
Spell que atinja o alvo que estiver marcado no momento;
A animação do projétil deve ser uma bola de fogo;
Ao causar dano no alvo, ele deve causar dano em uma área em forma de cruz em volta do alvo, um tile pra cada direção;
Deve se chamar "fire launch"
Abaixo um exemplo de script de spell do nosso server:
É o código referente ao spell "breath of fire", editado por mim a partir do já existente "exevo flam hur"
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.7, -3, -1.1, 0)
local arr = {
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0},
{0, 0, 3, 0, 0},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
Gostaria que alguém mais experiente postasse o script da spell "fire launch" com as exigências citadas acima, usando o script de "breath of fire" como exemplo do sistema de codificação do nosso OT. Eu tomaria o código mostrado como exemplo pra poder fazer outros spells focados.
Bom, expliquei minha necessidade... preciso muito da orientação de alguém mais experiente, aprender só com tutoriais tá me deixando meio grog.