20
action

♠ [Action] Controlled Attack

Por 20cm, 29 de fev. de 2012 em Actions e Talkactions

script
17
2.7k
20cm2
29 de fevereiro de 2012 às 23:15

ATENÇÃO:

NÃO DOU DIREITO À NINGUÉM DE POSTAR ESTE SCRIPT EM OUTRO LUGAR, SEM MINHA PERMISSÃO.

MEU MSN: eitorlaba@hotmail.com

 

Pretexto:

Sem muita explicação, eu coloquei um vídeo que explica melhor o que o script faz.

 

Explicando:

O script é basicamente um ataque que tem uma rota controlada por você, usando ctrl + setas, para direcionar o ataque.

Tempo de controle limitado

Não tem efeito em proction-zone

Os danos são: level do jogador (min), e level do jogador x 3 (max)

Mana gasta: level do jogador x 6

 

Bugs:

Às vezes o script tira a mana do jogador mas não cria o ataque :S

 

Script:

[data/actions/scripts/cattack.lua]

function onUse(cid, item, fromPosition, itemEx, toPosition)
minMana = getPlayerLevel(cid) * 6
onoff = 4956
quantx = 0
quanty = 0

function setAxis()
o = getPlayerPosition(cid)
xe = o.x
ye = o.y
ze = o.z
tempo = 3
velocidade = 150
end

function doEffect()
pos = {x=xe+quantx,y=ye+quanty,z=ze}

if getPlayerMana(cid) < minMana then
setPlayerStorageValue(cid,work,0)
setPlayerStorageValue(cid,onoff,0)
elseif getTilePzInfo(pos) == FALSE then
local ef = 6
of = 2
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, pos, 0, -getPlayerLevel(cid), -getPlayerLevel(cid) * 3, ef)
-- doPlayerSendCancel(cid,"x = "..xe+quantx..", y = "..ye+quanty..", z = "..ze.."")
else
doSendMagicEffect(pos,of)
-- doPlayerSendCancel(cid,"x = "..xe+quantx..", y = "..ye+quanty..", z = "..ze.."")
end
addEvent(checkDir,velocidade)
end


function checkPer()
if getPlayerStorageValue(cid,work) == 1 then
checkTime()
end
end

function checkTime()
if tempo > 0 then
doEffect()
else
stop()
end
end

function stop()
posi = {x=xe+quantx,y=ye+quanty,z=ze}
doSendMagicEffect(posi,49)
doSendAnimatedText(posi,"...",TEXTCOLOR_YELLOW)
setPlayerStorageValue(cid,onoff,0)
doPlayerSetNoMove(cid,0)
addEvent(doPlayerSendCancel,800,cid,"Tempo restante: 0.")
end

function minusTime()
if getPlayerStorageValue(cid,onoff) == 0 then
elseif tempo > 0 then
doPlayerSendCancel(cid,"Tempo restante: "..tempo..".")
tempo = tempo - 1
addEvent(minusTime,1000)
elseif tempo == 0 then
stop()
end
end

function checkDir()
po = getCreatureLookDirection(cid)


if po == NORTH then
quanty = quanty - 1
elseif po == SOUTH then
quanty = quanty + 1
elseif po == WEST then
quantx = quantx - 1
elseif po == EAST then
quantx = quantx + 1
end
checkPer()
end

if getTilePzInfo(getPlayerPosition(cid)) == TRUE then
doSendAnimatedText(getPlayerPosition(cid),"PZ!",TEXTCOLOR_YELLOW)
setPlayerStorageValue(cid,work,0)
setPlayerStorageValue(cid,onoff,0)
elseif getPlayerMana(cid) < minMana then
doSendAnimatedText(getPlayerPosition(cid),"MANA",TEXTCOLOR_LIGHTBLUE)
doPlayerSendCancel(cid,"Você precisa de "..minMana.." de mana para isso.")
setPlayerStorageValue(cid,work,0)
setPlayerStorageValue(cid,onoff,0)
elseif getPlayerStorageValue(cid,onoff) == 0 then
setPlayerStorageValue(cid,work,1)
setPlayerStorageValue(cid,onoff,1)
doPlayerAddMana(cid,-minMana)
doPlayerSetNoMove(cid,1)
setAxis()
minusTime()
checkDir()
else
doPlayerSendCancel(cid,"Contagem cancelada.")
setPlayerStorageValue(cid,work,0)
setPlayerStorageValue(cid,onoff,0)
doPlayerSetNoMove(cid,0)
end

return TRUE
end

 

"velocidade = 150": velocidade em milisegundos

"tempo = 3": tempo em segundos

 

Tag:

[data/actions/actions.xml]

<action itemid="xxx" script="cattack.lua"/>

Note: xxx é o ID do item que será utilizado.

 

Vídeo:

 

 

Editado Março 16 por 20cm

SubwatS
01 de março de 2012 às 01:26

vou testar parece ser fera.

01 de março de 2012 às 20:47

irado, da pra fazer umas coisas legais usando esse script.

 

parabéns, rep+

SkyDangerousS
01 de março de 2012 às 20:48

Esse cara é fera meu !

Te amo 20cm .. sabe que te amo né?

 

Você aprendeu muito cmg em .. olha já está bem avançado :D

AdministradorA
01 de março de 2012 às 21:43

Parabéns amigo, mandando bem!

SnowszS
01 de março de 2012 às 22:27

amigo teria como passar isso para spell?

edmollaE
01 de março de 2012 às 23:17

man eu curti pakas esse seu script mais tem como vc tirar uma dúvida,como não sou scripter eu não intendo muito

 

ESSE CONTROLLED ATTACK é utilizado como spell ou como item que quando da use ele funfa?

SkyDangerousS
01 de março de 2012 às 23:48

Preste atenção.

 

<action itemid="xxx" script="cattack.lua"/>

 

Isso é uma action e não spell.

20cm2
02 de março de 2012 às 00:22

man eu curti pakas esse seu script mais tem como vc tirar uma dúvida,como não sou scripter eu não intendo muito

 

ESSE CONTROLLED ATTACK é utilizado como spell ou como item que quando da use ele funfa?

 

 

O nome do tópico é "[Action]" Controlled Attack haha, enfim, é uma action :p

 

amigo teria como passar isso para spell?

 

Eu posso tentar, mas não sou bom com spells :\

Se eu conseguir te mando uma mensagem, ok ?

Abraço.

AnjoxA
02 de março de 2012 às 12:37

Mto maneiro o script, deve ter dado um put* trabalho!

WatersonW
02 de março de 2012 às 12:40

Muito Louco.,.

Legalzin...

Show de Bolla!

edmollaE
02 de março de 2012 às 12:52

Bom se vc conseguir manda pra gente aee pq como spells eu tenho muitas ideias pra isso

20cm2
02 de março de 2012 às 12:58

Bom se vc conseguir manda pra gente aee pq como spells eu tenho muitas ideias pra isso

 

Vou começar a tentar agora, manda seu MSN por mensagem pra mim ter como te ajudar melhor

Se quiser dar um Rep+, eu não vou reclamar, sério whistle.gif

edmollaE
02 de março de 2012 às 15:30

mandei já man preciso mesmo que vc me adicione no msn da pra gente conversar melhor :D

 

seu rep ta a caminho man já dei meu rep diario

Editado Março 2 por edmolla

AlicqA
03 de março de 2012 às 21:08

Interessante,foi feito um excelente trabalho.

:XTibia_smile: