• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Spells] Empujar (spell que mueve hacia atras al contricante)

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Hola usuarios de tibiaface


    Como dice el titulo esta es una spells que mueve al personaje o al oponente hacia atras y le da unos segundos mas de vida al personaje atacado esto seria muy util para personas que llegan a sufrir un trap.
    En la carpeta spells cree unos nuevos archivos llamado

    [Spells] Empujar (spell que mueve hacia atras al contricante) Rjy5cg10


    empurrararea.lua

    Código:

    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, 0, 0, 0, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
    {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
    {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
    {0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0},
    {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
    {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
    {0, 0, 0, 0, 1, 1, 1, 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},
      } 
        },
        [2] = {
      damageType = 1,
      areaEffect = 2,
      area = {
      {0, 0, 0, 0, 0, 0, 0},
      {0, 0, 1, 1, 1, 0, 0},
      {0, 1, 0, 0, 0, 1, 0},
      {0, 1, 0, 2, 0, 1, 0},
      {0, 1, 0, 0, 0, 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, 2, 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)
        setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -4, 0, -4.7, 0)
        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 * 120), cid, spell.combats[n], var)
        end
        return true
    end


    puxararea.lua

    Código:

    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 = {
        [1] = {
      damageType = 1,
      areaEffect = 2,
      area = {
    {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, 1, 1, 1, 0, 0, 0, 0},
    {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
    {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
    {0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0},
    {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
    {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
    {0, 0, 0, 0, 1, 1, 1, 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},
      } 
        },
        [2] = {
      damageType = 1,
      areaEffect = 2,
      area = {
      {0, 0, 0, 0, 0, 0, 0},
      {0, 0, 1, 1, 1, 0, 0},
      {0, 1, 0, 0, 0, 1, 0},
      {0, 1, 0, 2, 0, 1, 0},
      {0, 1, 0, 0, 0, 1, 0},
      {0, 0, 1, 1, 1, 0, 0},
      {0, 0, 0, 0, 0, 0, 0}
      } 
        },
        [3] = {
      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, 2, 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)
        setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -4, 0, -4.7, 0)
        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 * 120), cid, spell.combats[n], var)
        end
        return true
    end


    En spells.xml agregue estas lineas y listo

    Código:

    ​<instant name="Get off here (AREA)" words="exani mas grav" lvl="160"  mana="500" prem="1" exhaustion="2000" needlearn="0" event="script" value="especiais/empurrararea.lua">
    <vocation id="6"/>
    <vocation id="7"/>
    <vocation id="5"/>
    </instant>
    <instant name="Get over here (AREA)" words="exina mas grav" lvl="160"  mana="500" prem="1" exhaustion="2000" needlearn="0" event="script" value="especiais/puxararea.lua">
    <vocation id="6"/>
    <vocation id="7"/>
    <vocation id="5"/>
    </instant>






















    [Spells] Empujar (spell que mueve hacia atras al contricante) YNU5B25
    http://www.tibiaface.com

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).