Ir para conteúdo
Entre para seguir isso  
esau

Dash Spell

Recommended Posts

esau    0
esau

Nome: Dash

Nome do Autor: esau

Versão Testada: 8.54 (cryingdamson6pl1-console)

Descrição: Spell que faz o player se mover rapidamente pelo mapa.

 

Primeiramente você precisara instalar a OTAL, clicando aqui!

 

Após ter instalado a LIB crie um arquivo em data\spells\scripts\support chamado dash.lua com o seguinte código:

 

local area = {
{0,0,0},
{0,3,0},
{0,0,0},
}

function onDash(cid)
local poslook = getCreatureLookPosition(cid)
poslook.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
    if isWalkable(poslook, false, false, false) then
    if not isCreature(getThingfromPos(poslook).uid) then
         doMoveCreature(cid, getPlayerLookDirection(cid))
         doSendMagicEffect(getPlayerPosition(cid), 2)
    return TRUE
     else
         doMoveCreature(cid, getPlayerLookDirection(cid))
         doAreaCombatHealth(0, 1, poslook, area, -getCreatureSpeed(cid)*2/(getCreatureHealth(cid)/300), -getCreatureSpeed(cid)*3/(getCreatureHealth(cid)/30), 9)
         doCreatureSay(getThingfromPos(poslook).uid, 'Auch', TALKTYPE_MONSTER)
         doSetItemOutfit(getThingfromPos(poslook).uid, 2317, 1*1000)
         doSendMagicEffect(getCreaturePosition(getThingfromPos(poslook).uid), 31)
    return TRUE
     end
      end
      end


function onCastSpell(cid, var)
local distance = 8

     for i = 0, distance do
     addEvent(onDash,90*i,cid)
      end
       return TRUE
       end 

function isWalkable(pos, creature, proj, pz)-- by Nord
   if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
   if getTopCreature(pos).uid > 0 and creature then return false end
   if getTileInfo(pos).protection and pz then return false, true end
   local n = not proj and 3 or 2
   for i = 0, 255 do
       pos.stackpos = i
       local tile = getTileThingByPos(pos)
       if tile.itemid ~= 0 and not isCreature(tile.uid) then
           if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
               return false
           end
       end
   end
   return true
end

 

Você podera configurar algumas coisas no script como o numero de passos que o jogador irá correr, basta editar a variável distance que está na linha 28 no código.

 

para Usuário com um nivel maior de conhecimento sera possivel mudar a fórmula de dano em caso de batidas que está na linha 17.

 

Salve e feche o arquivo.

 

volta para a pasta Spells e abra o arquivo spells.xml, colocando a seguinte tag:

 

<instant name="Dash" words="Dash" lvl="50" mana="250" prem="0" exhaustion="2000" needlearn="0" event="script" value="support/dash.lua">
<vocation id="1"/>
<vocation id="2"/>
<vocation id="3"/>
<vocation id="4"/>
</instant>

 

Podem mudar os valores de level, mana e vocations à vontade.

 

agora para finalizar apenas salve o arquivo e feche o mesmo, de preferência reinicie o servidor, mas você também poderá usar o comando /reload spells.

 

é isso pessoal, o script pode conter algum bug, pois o script é velho e como não usava decidi postar aqui.

 

Obrigado. :hehe:

Editado por iuniX

Compartilhar este post


Link para o post
iuniX    4
iuniX

Muito legal o script, parabéns. Tomei a liberdade de adicionar a função isWalkable pois nem todo mundo usa Otal.

 

  • Avaliação:

B

Código: 70

Utilidade: 60

Criatividade: 70

Média: 67.5

Pontos MIS: 25

17009120015510003635.png

Compartilhar este post


Link para o post
tigerx2    1
tigerx2

Legal, mas tem uma coisa que eu mudaria:

 

return TRUE

por

return true

 

@iuniX, coloque a função isWalkable lá nas últimas linhas do script, pois está atrapalhando algumas explicações que ele deu, como:

Você podera configurar algumas coisas no script como o numero de passos que o jogador irá correr, basta editar a variável distance que está na linha 28 no código.

 

Bem, é só isso, eu gosto muito desta spell por tê-la visto em vários jogos.

Parabéns :)

Editado por tigerx2

Compartilhar este post


Link para o post
iuniX    4
iuniX

É, não tinha prestado a atenção nisso. Obrigado tigerx2, vou concertar.

Compartilhar este post


Link para o post
ADM MaX DE    0
ADM MaX DE

Ótima spell, muito boa mesma!

A construção do script tbm está muito boa e de facil intendimento!

 

Parabens, esau!

Compartilhar este post


Link para o post
tigerx2    1
tigerx2

E ate hoje, nada de moderador ou dono do topico arrumar o script.

Lembrando que o iuniX viu o erro.

Compartilhar este post


Link para o post
iuniX    4
iuniX
E ate hoje, nada de moderador ou dono do topico arrumar o script.

Lembrando que o iuniX viu o erro.

 

Qual erro?

Compartilhar este post


Link para o post
tigerx2    1
tigerx2

Mudar o lugar da funcao isWalkable para baixo,

para nao afetar na explicacao do topico.

Compartilhar este post


Link para o post
nari14    0
nari14

Descupa estar revivendo o topico, mas como faço para andar mais rapido?

Compartilhar este post


Link para o post
Etoyoc    0
Etoyoc

Queria saber como faço pro char nao tomar hit quando usa, mudei o dano pra 0. Até apaguei a linha e continua tomando dano.

Compartilhar este post


Link para o post
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×