Qual jeito mais facil de fazer uma spell q empurra pra onde o player esta olhando
eu ja vi uns tutoriais por ai
mas n consegui fazer funcionar
queria a base
para tentar entender
Qual jeito mais facil de fazer uma spell q empurra pra onde o player esta olhando
eu ja vi uns tutoriais por ai
mas n consegui fazer funcionar
queria a base
para tentar entender
Só não esquece de colocar isso no spells.xml
direction="1"
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POFF) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, 0, -1, 0) local area = createCombatArea({ {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 3, 0}, }) setCombatArea(combat, area) function onTargetCreature(cid, target) if not isNpc(target) then local player_position = getThingPosition(cid) local target_position = getThingPosition(target) local x = (target_position.x < player_position.x and -1 or (target_position.x == player_position.x and 0 or 1)) local y = (target_position.y < player_position.y and -1 or (target_position.y == player_position.y and 0 or 1)) local to_position = {x = target_position.x + x, y = target_position.y + y, z = target_position.z} if doTileQueryAdd(target, to_position) == RETURNVALUE_NOERROR then doTeleportThing(target, to_position, true) end end end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
se usar desse jeito q vc fez
ele empurra certo
local area = createCombatArea({{0, 1, 0},
{0, 1, 0},
{0, 1, 0},
{0, 3, 0},
})
setCombatArea(combat, area)
só q se eu fizer isso
ele vai empurrar em diagonal
e n em horizontal
local area = createCombatArea({{1, 0, 1},
{1, 0, 1},
{1, 0, 1},
{1, 2, 1},
})
setCombatArea(combat, area)
no caso eu tava querendo q empurra-se sempre em horizontal
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POFF) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, 0, -1, 0) local area = createCombatArea({ {1, 0, 1}, {1, 0, 1}, {1, 0, 1}, {1, 2, 1}, }) setCombatArea(combat, area) local function push(cid, target) local direction = getCreatureLookDirection(cid) local x = (direction == 1 and 1 or (direction == 3 and -1 or 0)) local y = (direction == 0 and -1 or (direction == 2 and 1 or 0)) local position = getCreaturePosition(target) position.x = position.x + x position.y = position.y + y if doTileQueryAdd(target, position) == RETURNVALUE_NOERROR then doTeleportThing(target, position, true) end end function onTargetCreature(cid, target) if not isNpc(target) then addEvent(push, 100, cid, target) end end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
funciono vlw =)]
to sem rep agora depois lhe dou +rep
podem mover duvida sanada
Tópico movido para a seção de dúvidas e pedidos resolvidos.
Tem como atualizar para TFS 1.3?
Coloquei aqui no servidor e saiu o efeito e deu dano, porém não puxou o alvo e também deu erro na distro:
CitarLua Script Error: [Spell Interface]
in callback: data/spells/scripts/support/pull.lua:onTargetCreature
(Unknown scriptfile)
LuaScriptInterface::luaAddEvent(). Arguments #3 and #4 are unsafe
stack traceback:
[C]: in function 'addEvent'
data/spells/scripts/support/pull.lua:29: in function <data/spells/scripts/support/pull.lua:27>
[C]: at 0x7ff732fa1ee0Lua Script Error: [Main Interface]
in a timer event called from:
(Unknown scriptfile)
data/spells/scripts/support/pull.lua:15: attempt to call global 'getCreatureLookDirection' (a nil value)
stack traceback:
[C]: in function 'getCreatureLookDirection'
data/spells/scripts/support/pull.lua:15: in function <data/spells/scripts/support/pull.lua:14>