Ir para conteúdo
Entre para seguir isso  
Undead Slayer

[8.10 ~ 8.40] Arrow Fury

Recommended Posts

Undead Slayer    0
Undead Slayer

-------------------------------

 

Nome: Arrow Fury

Versão: 8.10 ~ 8.40

Tipo do script: Spells

Servidor Testado: The Forgotten Server 0.3 Beta 2

Autor: Undead Slayer

 

-------------------------------

 

 

INOVAÇÃO

Apos seculos sem postar magia, trago para você, uma nova magia. Diferente daquelas magias que as formulas são programadas pelo propio Server, esta magia possui uma formula propia, ou seja, o dano dela não é nem irreal, e nem muito baixo, ou seja, magia ideal para servidores serios com experiencia Baixa

 

Como é a Magia

A magia simplesmente considera para que lado o char esta virado, e solta em uma area na sua frente, uma quanditade indefinida de arrows (de 12 a 20), e o dano é baseado no skill de distance e no tipo de arrow lançada (Pode sair varios tipos de arrows, - Flaming, Earth, Flash, Shiver, Burst, Poison, Onyx, Sniper e Arrow Normal - depende da sorte do cara :)), lembrando que a spell é para Paladin e Royal Paladin.

 

O Script

Para adicionar esta spell em seu servidor, va na pasta data/spells/scripts, crie uma subpasta chamada 'news spells', crie um arquivo de extensão .LUA nesta pasta (Ou copie um arquivo ja existente com essa mesma extenção, e cole dentro da pasta criada), coloque o nome deste arquivo como 'Arrow Fury', (Se você copiou um arquivo, apague tudo dentro dele) e coloque isto dentro do arquivo:

 

[spoiler_name=Arrow Fury]--- Arrow Fury Spell ---

--- Made By Undead Slayer ---

function onCastSpell(cid, var)

 

--- Vars ---

 

local arrow_type = math.random(1,9)

 

local arrow_types = {

[1] = {ani = CONST_ANI_ARROW, me = CONST_ME_HITAREA, damage = COMBAT_PHYSICALDAMAGE, random = math.random(1,5)},

[2] = {ani = CONST_ANI_POISONARROW, me = CONST_ME_POISONAREA, damage = COMBAT_POISONDAMAGE, random = math.random(2,6)},

[3] = {ani = CONST_ANI_BURSTARROW, me = CONST_ME_EXPLOSIONHIT, damage = COMBAT_FIREDAMAGE, random = math.random(3,7)},

[4] = {ani = CONST_ANI_FLAMMINGARROW, me = CONST_ME_FIREAREA, damage = COMBAT_FIREDAMAGE, random = math.random(5,10)},

[5] = {ani = CONST_ANI_FLASHARROW, me = CONST_ME_ENERGYHIT, damage = COMBAT_ENERGYDAMAGE, random = math.random(5,10)},

[6] = {ani = CONST_ANI_SHIVERARROW, me = CONST_ME_ICEATTACK, damage = COMBAT_ICEDAMAGE, random = math.random(5,10)},

[7] = {ani = CONST_ANI_EARTHARROW, me = CONST_ME_CARNIPHILA, damage = COMBAT_EARTHDAMAGE, random = math.random(5,10)},

[8] = {ani = CONST_ANI_SNIPERARROW, me = CONST_ME_GROUNDSHAKER, damage = COMBAT_PHYSICALDAMAGE, random = math.random(6,12)},

[9] = {ani = CONST_ANI_ONYXARROW, me = CONST_ME_GROUNDSHAKER, damage = COMBAT_PHYSICALDAMAGE, random = math.random(7,15)}

}

 

local send_arrows = math.random(12,20)

 

local send_storage = 1000000

 

local parameters = {

cid = cid,

var = var,

send_storage = send_storage,

send_arrows = send_arrows,

arrow_type = arrow_type,

arrow_types = arrow_types

}

 

--- Function ---

 

addEvent(onSendAttack,100,parameters)

setPlayerStorageValue(cid,send_storage,0)

end

 

function onSendAttack(parameters)

 

--- Vars ---

 

local dir = getPlayerLookDir(parameters.cid)

 

local distance = getPlayerSkillLevel(parameters.cid,SKILL_DISTANCE)

 

local formula = distance*(parameters.arrow_types[parameters.arrow_type].random)

 

local min = formula-50

 

local max = formula+50

 

local cid_pos = getCreaturePosition(parameters.cid)

 

local random_pos = math.random(1,2)

 

local the_random_1 = {

[1] = cid_pos.x+math.random(0,3),

[2] = cid_pos.x-math.random(0,3)

}

 

local the_random_2 = {

[1] = cid_pos.y+math.random(0,3),

[2] = cid_pos.y-math.random(0,3)

}

 

local sends_pos = {

[0] = {x=the_random_1[random_pos], y=cid_pos.y-math.random(1,4), z=cid_pos.z, stackpos=255},

[1] = {x=cid_pos.x+math.random(1,4), y=the_random_2[random_pos], z=cid_pos.z, stackpos=255},

[2] = {x=the_random_1[random_pos], y=cid_pos.y+math.random(1,4), z=cid_pos.z, stackpos=255},

[3] = {x=cid_pos.x-math.random(1,4), y=the_random_2[random_pos], z=cid_pos.z, stackpos=255}

}

 

local send_pos = sends_pos[dir]

 

local send_status = getPlayerStorageValue(parameters.cid,parameters.send_storage)

 

local creature = getThingfromPos(send_pos)

 

--- Function ---

 

if send_status < parameters.send_arrows then

addEvent(onSendAttack,100,parameters)

doSendDistanceShoot(cid_pos,send_pos,parameters.arrow_types[parameters.arrow_type].ani)

doSendMagicEffect(send_pos,parameters.arrow_types[parameters.arrow_type].me)

setPlayerStorageValue(parameters.cid,parameters.send_storage,send_status+1)

if isCreature(creature.uid) == TRUE then

doTargetCombatHealth(parameters.cid, creature.uid, parameters.arrow_types[parameters.arrow_type].damage, -min, -max, CONST_ME_NONE)

end

end

end[/spoiler_name]

 

E para finalizar, abra o arquivo spells.xml e adicione esta TAG:

 

[spoiler_name=TAG]<instant name="Arrow Fury" words="exevo con mas hur" lvl="40" mana="300" direction="1" exhaustion="2000" needlearn="0" script="news spells/Arrow Fury.lua">

<vocation name="Paladin"/>

<vocation name="Royal Paladin"/>

</instant>[/spoiler_name]

 

Editando

Se você quiser mudar o lvl, as palavras ou a mana nescessaria, edite as seguintes partes:

*De vermelho, são as palavras usadas para invocar a spell

*De Azul Mais escuro, é o lvl nescessario para invocar a spell

*De Azul Claro, é a mana nescessaria para invocar a spell

 

[spoiler_name=Screen Shot]imagemaj5.png[/spoiler_name]

 

Creditos: Undead Slayer

Se forem postar em outro lugar, coloquem meus creditos (Isso vale pros X-PERTINHOS de plantão do X-TIBIA :@)

 

Comentem, critiquem, reclamem, ou elogie. Seu comentario é muito importante. Estou aberto a qualquer comentario, dica, reclamação, ou afins.

 

(Y):bye:

Editado por Undead Slayer
Colocar Screen Shot

Compartilhar este post


Link para o post
Mock    32
Mock

Que spell mais mal feita o.o!

 

XD zuera vei ta massa sei q vc apanho p faze ela.

Aprovado

Compartilhar este post


Link para o post
Undead Slayer    0
Undead Slayer

apanhei pra faze essa? nem... se eu tivesse apanhado pra fazer essa, imagina o que eu tinha feito pra fazer a Arrow Shower.... auehuaehuaheuaehae

Compartilhar este post


Link para o post
Vinah    0
Vinah

gostei, mto boa Dead Slayer =D

 

local send_arrows = math.random(0,700) ;D

Compartilhar este post


Link para o post
Undead Slayer    0
Undead Slayer

OMG, 700 arrows, aeuhae, DEAD na hora o alvo

Compartilhar este post


Link para o post
MotoBoy    0
MotoBoy

sauhsasauhsauh

ainda acho qeu o 700 ia cair bem :D

uhaasasauhsa

 

curti muuuito a magia :o

babei xD

realmente muito boa.. formula 100%

cara..

pela primeira vez vi um script que eu num possu criticar =/

sahahuahusa

 

parabéns!!!

Hail Undead~~

 

flws~~

Compartilhar este post


Link para o post
henrique_ms    0
henrique_ms

Nossa...muito bom

bem criativa

gosteiii =]

aprovadoo

 

======--------============-------------=========

Meu Servidor:

forcedreamnc0.png

 

 

 

[spoiler_name=Trabalhos]4 novas vocações

1 Magia nova

[/spoiler_name]

 

 

 

[spoiler_NAME=Recomendo]

2m7x1n8.jpg

 

mrbeanfacesqh7.gif

[/spoiler_NAME]

 

Compartilhar este post


Link para o post
Armageddom    0
Armageddom

Muito boa essa sua Spell, com certeza futuramente

colocarei no meu Servidor.

Valeu e muito obrigado por compartilhar com

nois os membros do "Otnet".

 

Aprovado.

Compartilhar este post


Link para o post
Seven    0
Seven

Eita, sempre gostei desses tipo de spell.

Parabéns mano...

Ultimamente tem bastante spell rox aqui.

Gostei mesmo, (Y)

Até...

Compartilhar este post


Link para o post
Jereziah    0
Jereziah

Gostei pra Caramba.

Sempre sou Paladin/RP.

Só que nunca tem magia boa de ATK.

Thanks pela magia...

Muito bem feita.

 

Até mais!

• DarkHunter

Compartilhar este post


Link para o post
CM Bigorna~*    0
CM Bigorna~*

Aki nun funfo =( fis direitinhu como vc mando mais msm assim nao funfou...

tentei num slayer yourots v9 8.4..

Compartilhar este post


Link para o post
pepelino    0
pepelino

Nem no meu Pego ...

Compartilhar este post


Link para o post
Tunock    0
Tunock

meu tbm nao

Compartilhar este post


Link para o post
wilsonic10    0
wilsonic10

rox otima magia parabens mano!

Compartilhar este post


Link para o post
DiegooooxD    0
DiegooooxD

axei bota rox

movido~~

Compartilhar este post


Link para o post
Scryder    0
Scryder

Aqui tá dando erro na hora de usa (tava com uns erro de espaço que arrumei mas agora da otra coisa ¬¬)

 

Aparece isso:

.../Arrow Fury.lua:46: attempt to call global 'getPlayerSkillLevel' <a nil value>

stack traceback:

.../Arrow Fury.lua:46: in function <data/spells/scripts/attack/Arrow Fury.lua:40>

 

e não sai nada dai >.>

 

--Editado

Para quem não deu certo troque as coisas do arquivo por isso:

--- Arrow Fury Spell ---

--- Made By Undead Slayer ---

function onCastSpell(cid, var)

 

--- Vars ---

 

local arrow_type = math.random(1,9)

 

local arrow_types = {

[1] = {ani = CONST_ANI_ARROW, me = CONST_ME_HITAREA, damage = COMBAT_PHYSICALDAMAGE, random = math.random(1,5)},

[2] = {ani = CONST_ANI_POISONARROW, me = CONST_ME_POISONAREA, damage = COMBAT_POISONDAMAGE, random = math.random(2,6)},

[3] = {ani = CONST_ANI_BURSTARROW, me = CONST_ME_EXPLOSIONHIT, damage = COMBAT_FIREDAMAGE, random = math.random(3,7)},

[4] = {ani = CONST_ANI_FLAMMINGARROW, me = CONST_ME_FIREAREA, damage = COMBAT_FIREDAMAGE, random = math.random(5,10)},

[5] = {ani = CONST_ANI_FLASHARROW, me = CONST_ME_ENERGYHIT, damage = COMBAT_ENERGYDAMAGE, random = math.random(5,10)},

[6] = {ani = CONST_ANI_SHIVERARROW, me = CONST_ME_ICEATTACK, damage = COMBAT_ICEDAMAGE, random = math.random(5,10)},

[7] = {ani = CONST_ANI_EARTHARROW, me = CONST_ME_CARNIPHILA, damage = COMBAT_EARTHDAMAGE, random = math.random(5,10)},

[8] = {ani = CONST_ANI_SNIPERARROW, me = CONST_ME_GROUNDSHAKER, damage = COMBAT_PHYSICALDAMAGE, random = math.random(6,12)},

[9] = {ani = CONST_ANI_ONYXARROW, me = CONST_ME_GROUNDSHAKER, damage = COMBAT_PHYSICALDAMAGE, random = math.random(7,15)}

}

 

local send_arrows = math.random(12,20)

 

local send_storage = 1000000

 

local parameters = {

cid = cid,

var = var,

send_storage = send_storage,

send_arrows = send_arrows,

arrow_type = arrow_type,

arrow_types = arrow_types

}

 

--- Function ---

 

addEvent(onSendAttack,100,parameters)

setPlayerStorageValue(cid,send_storage,0)

end

 

function onSendAttack(parameters)

 

--- Vars ---

 

local dir = getPlayerLookDir(parameters.cid)

 

local distance = getPlayerSkill(cid, 4)

 

local formula = distance*(parameters.arrow_types[parameters.arrow_type].random)

 

local min = formula-50

 

local max = formula+50

 

local cid_pos = getCreaturePosition(parameters.cid)

 

local random_pos = math.random(1,2)

local the_random_1 = {

[1] = cid_pos.x+math.random(0,3),

[2] = cid_pos.x-math.random(0,3)

}

 

local the_random_2 = {

[1] = cid_pos.y+math.random(0,3),

[2] = cid_pos.y-math.random(0,3)

}

 

local sends_pos = {

[0] = {x=the_random_1[random_pos], y=cid_pos.y-math.random(1,4), z=cid_pos.z, stackpos=255},

[1] = {x=cid_pos.x+math.random(1,4), y=the_random_2[random_pos], z=cid_pos.z, stackpos=255},

[2] = {x=the_random_1[random_pos], y=cid_pos.y+math.random(1,4), z=cid_pos.z, stackpos=255},

[3] = {x=cid_pos.x-math.random(1,4), y=the_random_2[random_pos], z=cid_pos.z, stackpos=255}

}

 

local send_pos = sends_pos[dir]

 

local send_status = getPlayerStorageValue(parameters.cid,parameters.send_storage)

 

local creature = getThingfromPos(send_pos)

 

--- Function ---

 

if send_status < parameters.send_arrows then

addEvent(onSendAttack,100,parameters)

doSendDistanceShoot(cid_pos,send_pos,parameters.arrow_types[parameters.arrow_type].ani)

doSendMagicEffect(send_pos,parameters.arrow_types[parameters.arrow_type].me)

 

setPlayerStorageValue(parameters.cid,parameters.send_storage,send_status+1)

if isCreature(creature.uid) == TRUE then

doTargetCombatHealth(parameters.cid, creature.uid, parameters.arrow_types[parameters.arrow_type].damage, -min, -max, CONST_ME_NONE)

end

end

end

 

--Editado2

Não tenho certeza se deu certo pq o dano ta mt baxo '-'

Editado por Arcane Slayer
consegui /o/ - ou naõ '-'

Compartilhar este post


Link para o post
Gordow    0
Gordow

bem legal mesmo a magia.

 

só que por uns erros de digitação, ta dando ero no ot.

pra quem não intende fica dificil intão vo ajudar voces ai

 

--- Arrow Fury Spell ---

--- Made By Undead Slayer ---

function onCastSpell(cid, var)

 

--- Vars ---

 

local arrow_type = math.random(1,9)

 

local arrow_types = {

[1] = {ani = CONST_ANI_ARROW, me = CONST_ME_HITAREA, damage = COMBAT_PHYSICALDAMAGE, random = math.random(1,5)},

[2] = {ani = CONST_ANI_POISONARROW, me = CONST_ME_POISONAREA, damage = COMBAT_POISONDAMAGE, random = math.random(2,6)},

[3] = {ani = CONST_ANI_BURSTARROW, me = CONST_ME_EXPLOSIONHIT, damage = COMBAT_FIREDAMAGE, random = math.random(3,7)},

[4] = {ani = CONST_ANI_FLAMMINGARROW, me = CONST_ME_FIREAREA, damage = COMBAT_FIREDAMAGE, random = math.random(5,10)},

[5] = {ani = CONST_ANI_FLASHARROW, me = CONST_ME_ENERGYHIT, damage = COMBAT_ENERGYDAMAGE, random = math.random(5,10)},

[6] = {ani = CONST_ANI_SHIVERARROW, me = CONST_ME_ICEATTACK, damage = COMBAT_ICEDAMAGE, random = math.random(5,10)},

[7] = {ani = CONST_ANI_EARTHARROW, me = CONST_ME_CARNIPHILA, damage = COMBAT_EARTHDAMAGE, random = math.random(5,10)},

[8] = {ani = CONST_ANI_SNIPERARROW, me = CONST_ME_GROUNDSHAKER, damage = COMBAT_PHYSICALDAMAGE, random = math.random(6,12)},

[9] = {ani = CONST_ANI_ONYXARROW, me = CONST_ME_GROUNDSHAKER, damage = COMBAT_PHYSICALDAMAGE, random = math.random(7,15)}

}

 

local send_arrows = math.random(12,20)

 

local send_storage = 1000000

 

local parameters = {

cid = cid,

var = var,

send_storage = send_storage,

send_arrows = send_arrows,

arrow_type = arrow_type,

arrow_types = arrow_types

}

 

--- Function ---

 

addEvent(onSendAttack,100,parameters)

setPlayerStorageValue(cid,send_storage,0)

end

 

function onSendAttack(parameters)

 

--- Vars ---

 

local dir = getPlayerLookDir(parameters.cid)

 

local distance = getPlayerSkillLevel(parameters.cid,SKILL_DISTANCE)

 

local formula = distance*(parameters.arrow_types[parameters.arrow_type].random)

 

local min = formula-50

 

local max = formula+50

 

local cid_pos = getCreaturePosition(parameters.cid)

 

local random_pos = math.random(1,2)

 

local the_random_1 = {

[1] = cid_pos.x+math.random(0,3),

[2] = cid_pos.x-math.random(0,3)

}

 

local the_random_2 = {

[1] = cid_pos.y+math.random(0,3),

[2] = cid_pos.y-math.random(0,3)

}

 

local sends_pos = {

[0] = {x=the_random_1[random_pos], y=cid_pos.y-math.random(1,4), z=cid_pos.z, stackpos=255},

[1] = {x=cid_pos.x+math.random(1,4), y=the_random_2[random_pos], z=cid_pos.z, stackpos=255},

[2] = {x=the_random_1[random_pos], y=cid_pos.y+math.random(1,4), z=cid_pos.z, stackpos=255},

[3] = {x=cid_pos.x-math.random(1,4), y=the_random_2[random_pos], z=cid_pos.z, stackpos=255}

}

 

local send_pos = sends_pos[dir]

 

local send_status = getPlayerStorageValue(parameters.cid,parameters.se nd_storage)

 

local creature = getThingfromPos(send_pos)

 

--- Function ---

 

if send_status < parameters.send_arrows then

addEvent(onSendAttack,100,parameters)

doSendDistanceShoot(cid_pos,send_pos,parameters.ar row_types[parameters.arrow_type].ani)

doSendMagicEffect(send_pos,parameters.arrow_types[parameters.arrow_type].me)

setPlayerStorageValue(parameters.cid,parameters.se nd_storage,send_status+1)

if isCreature(creature.uid) == TRUE then

doTargetCombatHealth(parameters.cid, creature.uid, parameters.arrow_types[parameters.arrow_type].damage, -min, -max, CONST_ME_NONE)

end

end

end

 

 

só essas.

 

arrow_types

 

e

 

send_storage

só ajeitar as palavras e já esta funcionando.(Y)

Compartilhar este post


Link para o post
f@bio    0
f@bio

Muito fera esta tua spell, vc trabalha com exclusividade???? por favor mande uma PM caso fassa, eu pago em OT$s...

Compartilhar este post


Link para o post
Tozim    0
Tozim

ate q enfim uma magia seria,

vo usar ela no meu ot

obrigado pelo otimo trabalho!

Compartilhar este post


Link para o post
luan1234    0
luan1234

Aprovado.,Gostei....

 

Abraços,Luan.

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.

×