Ir para conteúdo

[Spells] Troque De Posição


SkyDangerous

Posts Recomendados

Mais uma spell que achei muito interessante, e vou compartilhar ;D

 

local combat = createCombatObject()

local config = {
   notAllowed = {"training monk", "Slaktaren", "Admin"},
   exhaustStorage = 1338,
   exhaustTime = 5, -- Seconds
   slowStorage = 1339,
   slowTime = 3, -- Seconds
   slowSpeed = 100, -- Speed will be set to 100 when swaping for slowTime seconds.
   }

function effect(cid, var, targetpos, mypos, target)
   doSendMagicEffect(mypos, CONST_ME_ENERGYHIT)
   doSendMagicEffect(targetpos, CONST_ME_ENERGYHIT)
end

function slowed(cid, speed)
   doChangeSpeed(cid, getPlayerStorageValue(cid, config.slowStorage) - getCreatureSpeed(cid))
   doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN)
end

function onUseWeapon(cid, var)
   setPlayerStorageValue(cid, config.slowStorage, getCreatureSpeed(cid))
   local mypos = getCreaturePosition(cid)
   local target = getCreatureTarget(cid)
   local targetpos = getCreaturePosition(target)
   if not exhaustion.get(cid, config.exhaustStorage) then
       for _,v in ipairs(config.notAllowed) do
           if string.find(getCreatureName(target):lower(), v) then
               doPlayerSendCancel(cid, "You can't swap " .. getCreatureName(target) .. "!")
               doSendMagicEffect(mypos, CONST_ME_POFF)
               return false
           else
               doTeleportThing(cid, targetpos)
               doTeleportThing(target, mypos)
               doChangeSpeed(cid, -getCreatureSpeed(cid)+config.slowSpeed)
               doSendDistanceShoot(mypos, targetpos, CONST_ANI_ENERGYBALL)
               doSendDistanceShoot(targetpos, mypos, CONST_ANI_ENERGYBALL)
               addEvent(effect, 150, cid, var, targetpos, mypos, target)
               addEvent(slowed, config.slowTime * 1000, cid, speed)
               exhaustion.set(cid, config.exhaustStorage, config.exhaustTime)
           end
       end
   else
       doPlayerSendCancel(cid, "You have to wait " .. exhaustion.get(cid, config.exhaustStorage) .. " seconds to swap positions again!")
       return false
   end
   doCombat(cid, combat, var)
   return true
end

 

Obs: Se quiser usar como magia só trocar onUseWeapon por OnCastSpells

 

Fotos:

 

Posição Atual:



 

semttulopok.png

 

Posição Após usar a Magia:

 

semttulo1mfu.png

 

 

Informações:

-Sistema ótimo para configurar do seu jeito

-Proibição de usar magias em tais pessoas

 





 

Créditos:


Gatupojk

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...