Ir para conteúdo
  • 0
Entre para seguir isso  
Lusgo

Scripting Magia com efeito diferente a cada direção

Pergunta

Lusgo    3
Lusgo

Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo:

https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/

https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/

Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.).

Ex: The Forgotten Server 1.3, Versão: 10.98.

Base:

OTServBR-Global 12.x

Qual é a sua pergunta?

Olá, eu gostaria de criar uma magia tipo flamethrower, dos ATS de pokemon. Essa magia consiste em haver um efeito diferente para cada direção que o jogador olha, por exemplo.
Norte: efeito x
Sul: efeito y
Leste: efeito w
Oeste: efeito z

 

Eu encontrei esse script, porem não consegui adapta-lo, uma vez que apresenta o seguinte erro:

Lua Script Error: [Spell Interface]
data/spells/scripts/class\archer\instant\offensive\area\chuva_morte.lua:onCastSpell
...ipts/class\archer\instant\offensive\area\chuva_morte.lua:26: attempt to index global 'exhaustion' (a nil value)
stack traceback:
        [C]: in function '__index'
        ...ipts/class\archer\instant\offensive\area\chuva_morte.lua:26: in function <...ipts/class\archer\instant\offensive\area\chuva_morte.lua:22>

 

Removendo as partes referentes ao erro acima, eu obtenho o seguinte erro:

Nota: essa parte do exhaustion não me interessa, já pretendia remover.

Lua Script Error: [Spell Interface]
data/spells/scripts/class\archer\instant\offensive\area\chuva_morte.lua:onCastSpell
...ipts/class\archer\instant\offensive\area\chuva_morte.lua:38: attempt to call global 'getCreatureLookDirection' (a nil value)
stack traceback:
        [C]: in function 'getCreatureLookDirection'
        ...ipts/class\archer\instant\offensive\area\chuva_morte.lua:38: in function <...ipts/class\archer\instant\offensive\area\chuva_morte.lua:22> 

 

Tentei adaptar utilizando creature:getDirection(), mas não obtive sucesso.
Alguém teria alguma ideia?

 

 

Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo:

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -45.2, 1, -65.2, 1)
 
arr = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function onCastSpell(cid, var)
local waittime = 2
local storage = 5868

if isPlayer(cid) and exhaustion.check(cid, storage) then
doPlayerSendCancel(cid, "You are exhausted.")
doSendMagicEffect(getCreaturePosition(cid), 2)
return FALSE
end

local p = getCreaturePosition(cid)
local x = {
[0] = {x=p.x+1, y=p.y-1, z=p.z},
[1] = {x=p.x+7, y=p.y+1, z=p.z},
[2] = {x=p.x+1, y=p.y+7, z=p.z},
[3] = {x=p.x-1, y=p.y+1, z=p.z}
}

local y = {
[0] = 172,
[1] = 170,
[2] = 173,
[3] = 171
}

pos = x[getCreatureLookDirection(cid)]
eff = y[getCreatureLookDirection(cid)]
doSendMagicEffect(pos, eff)
exhaustion.set(cid, storage, waittime)
doCombat(cid, combat, var)
return TRUE
end

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:

Spoiler

 

 

Compartilhar este post


Link para o post

0 respostass a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta

Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×