Ir para conteúdo

Featured Replies

Postado

Alguem consegue passar esses 2 scripts para versao tfs 1.x+?

Achei interessante o script mais não funciona em verões mais atuais.

link original > https://www.xtibia.com/forum/topic/203243-pullpush-spells/

 

Pull Spell

 

 

local function doPullCreature(target, cid)
   if target > 0 then
    if not isNpc(target) then
	    local position = getThingPosition(cid)
	    local fromPosition = getThingPosition(target)
	    local x = ((fromPosition.x - position.x) < 0 and 1 or ((fromPosition.x - position.x) == 0 and 0 or -1))
	    local y = ((fromPosition.y - position.y) < 0 and 1 or ((fromPosition.y - position.y) == 0 and 0 or -1))
	    local toPosition = {x = fromPosition.x + x, y = fromPosition.y + y, z = fromPosition.z}
	    if doTileQueryAdd(target, toPosition) == 1 and getTileInfo(toPosition).house == false then
		    doTeleportThing(target, toPosition, true)
	    end
    end
   end
end
local spell = {}
spell.config = {
   [3] = {
    damageType = 1,
    areaEffect = 2,
    area = {
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 1, 1, 1, 1, 1, 0},
	    {1, 1, 1, 1, 1, 1, 1},
	    {1, 1, 1, 3, 1, 1, 1},
	    {1, 1, 1, 1, 1, 1, 1},
	    {0, 1, 1, 1, 1, 1, 0},
	    {0, 0, 1, 1, 1, 0, 0}
    }	   
   },
   [2] = {
    damageType = 1,
    areaEffect = 2,
    area = {
	    {0, 0, 0, 0, 0, 0, 0},
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 1, 1, 1, 1, 1, 0},
	    {0, 1, 1, 3, 1, 1, 0},
	    {0, 1, 1, 1, 1, 1, 0},
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 0, 0, 0, 0, 0, 0}
    }	   
   },
   [1] = {
    damageType = 1,
    areaEffect = 2,
    area = {
	    {0, 0, 0, 0, 0, 0, 0},
	    {0, 0, 0, 0, 0, 0, 0},
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 0, 1, 3, 1, 0, 0},
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 0, 0, 0, 0, 0, 0},
	    {0, 0, 0, 0, 0, 0, 0}
    }	   
   }
}

spell.combats = {}
for _, config in ipairs(spell.config) do
   local combat = createCombatObject()
   setCombatParam(combat, COMBAT_PARAM_TYPE, config.damageType)
   setCombatParam(combat, COMBAT_PARAM_EFFECT, config.areaEffect)
   function onTargetCreature(cid, target)
    doPullCreature(target, cid)
   end
   setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
   setCombatArea(combat, createCombatArea(config.area))
   table.insert(spell.combats, combat)
end
function onCastSpell(cid, var)
   for n = 1, #spell.combats do
    addEvent(doCombat, (n * 150) - 150, cid, spell.combats[n], var)
   end
   return true
end
 

 

 

Push Spell

 

 

local function doPushCreature(target, cid)
   if target > 0 then
    if not isNpc(target) then
	    local position = getThingPosition(cid)
	    local fromPosition = getThingPosition(target)
	    local x = ((fromPosition.x - position.x) < 0 and -1 or ((fromPosition.x - position.x) == 0 and 0 or 1))
	    local y = ((fromPosition.y - position.y) < 0 and -1 or ((fromPosition.y - position.y) == 0 and 0 or 1))
	    local toPosition = {x = fromPosition.x + x, y = fromPosition.y + y, z = fromPosition.z}
	    if doTileQueryAdd(target, toPosition) == 1 and getTileInfo(toPosition).house == false then
		    doTeleportThing(target, toPosition, true)
	    end
    end
   end
end
local spell = {}
spell.config = {
   [3] = {
    damageType = 1,
    areaEffect = 2,
    area = {
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 1, 1, 1, 1, 1, 0},
	    {1, 1, 1, 1, 1, 1, 1},
	    {1, 1, 1, 3, 1, 1, 1},
	    {1, 1, 1, 1, 1, 1, 1},
	    {0, 1, 1, 1, 1, 1, 0},
	    {0, 0, 1, 1, 1, 0, 0}
    }	   
   },
   [2] = {
    damageType = 1,
    areaEffect = 2,
    area = {
	    {0, 0, 0, 0, 0, 0, 0},
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 1, 1, 1, 1, 1, 0},
	    {0, 1, 1, 3, 1, 1, 0},
	    {0, 1, 1, 1, 1, 1, 0},
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 0, 0, 0, 0, 0, 0}
    }	   
   },
   [1] = {
    damageType = 1,
    areaEffect = 2,
    area = {
	    {0, 0, 0, 0, 0, 0, 0},
	    {0, 0, 0, 0, 0, 0, 0},
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 0, 1, 3, 1, 0, 0},
	    {0, 0, 1, 1, 1, 0, 0},
	    {0, 0, 0, 0, 0, 0, 0},
	    {0, 0, 0, 0, 0, 0, 0}
    }	   
   }
}

spell.combats = {}
for _, config in ipairs(spell.config) do
   local combat = createCombatObject()
   setCombatParam(combat, COMBAT_PARAM_TYPE, config.damageType)
   setCombatParam(combat, COMBAT_PARAM_EFFECT, config.areaEffect)
   function onTargetCreature(cid, target)
    doPushCreature(target, cid)
   end
   setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
   setCombatArea(combat, createCombatArea(config.area))
   table.insert(spell.combats, combat)
end
function onCastSpell(cid, var)
   for n = 1, #spell.combats do
    addEvent(doCombat, (n * 150) - 150, cid, spell.combats[n], var)
   end
   return true
end

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.8k

Informação Importante

Confirmação de Termo