ON
spell

Aura Spell 2.0

Por Oneshot, 15 de set. de 2012 em Globalevents e Spells

otserv
tibia
script
18
4.4k
OneshotO
15 de setembro de 2012 às 13:24

Nome: Aura System 2.0

Tipo: Magia

Autor: Oneshot

 


 

Eu prometi, o troco vem cedo. Quer ganhar dinheiro, crie suas próprias coisas e não se baseie nas coisas dos outros.

 

Enfim, sem flames, segue abaixo a magia Aura Spell 2.0.

 


 

Crie um arquivo chamado aura spell.lua em data/spells/scripts, e coloque o seguinte conteúdo:

 

local AURASYSTEM_STORAGE = 200001 -- STORAGE DE CONTROLE
local AURASYSTEM_AURA_DELAY = 0.1


local AURASYSTEM_CONFIG = {
DURATION = 30, -- O tempo de duração da aura
DELAY = 0.1, -- O delay, quanto menor, mais rápida a aura será.
TYPE = "all", -- O tipo de aura. [fire/ice/energy/earth/death/holy/all]
DAMAGE = {-100, -200} -- O dano da aura
}

local AURASYSTEM_DIRECTIONS = {
[NORTH] = {
	{0, 0}, {1, 0}, {1, 1}, {1, 2}, {0, 2}, {-1, 2}, {-1, 1}, {-1, 0}
},
[EAST] = {
	{0, 0}, {0, 1}, {-1, 1}, {-2, 1}, {-2, 0}, {-2, -1}, {-1, -1}, {0, -1}
},
[sOUTH] = {
	{0, 0}, {-1, 0}, {-1, -1}, {-1, -2}, {0, -2}, {1, -2}, {1, -1}, {1, 0}
},
[WEST] = {
	{0, 0}, {0, -1}, {1, -1}, {2, -1}, {2, 0}, {2, 1}, {1, 1}, {0, 1}
}
}

local AURASYSTEM_TEMPLATES = {
["fire"] = {COMBAT_FIREDAMAGE, CONST_ME_FIREATTACK},
["ice"] = {COMBAT_ICEDAMAGE, CONST_ME_ICEATTACK},
["earth"] = {COMBAT_EARTHDAMAGE, CONST_ME_SMALLPLANTS},
["energy"] = {COMBAT_ENERGYDAMAGE, CONST_ME_PURPLEENERGY},
["holy"] = {COMBAT_HOLYDAMAGE, CONST_ME_HOLYDAMAGE},
["death"] = {COMBAT_DEATHDAMAGE, CONST_ME_MORTAREA},
["all"] = {
	{COMBAT_FIREDAMAGE, CONST_ME_FIREATTACK},
	{COMBAT_ICEDAMAGE, CONST_ME_ICEATTACK},
	{COMBAT_EARTHDAMAGE, CONST_ME_SMALLPLANTS},
	{COMBAT_ENERGYDAMAGE, CONST_ME_PURPLEENERGY},
	{COMBAT_HOLYDAMAGE, CONST_ME_HOLYDAMAGE},
	{COMBAT_DEATHDAMAGE, CONST_ME_MORTAREA}
}
}

local AURASYSTEM_COUNT = 1

function doPlayerCastAura(cid, position)
if getCreatureStorage(cid, AURASYSTEM_STORAGE) == -1 then

end

local PLAYER_LOOKDIRECTION = getCreatureLookDirection(cid)

local tmp = AURASYSTEM_DIRECTIONS[PLAYER_LOOKDIRECTION][AURASYSTEM_COUNT]
local position = getPositionByDirection(getThingPosition(cid), PLAYER_LOOKDIRECTION, 1)

position.x = position.x + tmp[1]
position.y = position.y + tmp[2]

if AURASYSTEM_CONFIG.TYPE == "all" then
	local x = AURASYSTEM_TEMPLATES[AURASYSTEM_CONFIG.TYPE]
	local r = math.random(1, #x)
	doAreaCombatHealth(cid, x[r][1], position, 0, AURASYSTEM_CONFIG.DAMAGE[1], AURASYSTEM_CONFIG.DAMAGE[2], x[r][2])
else
	doAreaCombatHealth(cid, AURASYSTEM_TEMPLATES[AURASYSTEM_CONFIG.TYPE][1], position, 0, AURASYSTEM_CONFIG.DAMAGE[1], AURASYSTEM_CONFIG.DAMAGE[2], AURASYSTEM_TEMPLATES[AURASYSTEM_CONFIG.TYPE][2])
end

if getCreatureStorage(cid, AURASYSTEM_STORAGE) > os.time() then
	addEvent(doPlayerCastAura, AURASYSTEM_CONFIG.DELAY * 1000, cid)
end

AURASYSTEM_COUNT = AURASYSTEM_COUNT + 1
if AURASYSTEM_COUNT > #AURASYSTEM_DIRECTIONS[PLAYER_LOOKDIRECTION] then
	AURASYSTEM_COUNT = 1
end
end

function onCastSpell(cid, var)
if getCreatureStorage(cid, AURASYSTEM_STORAGE) > os.time() then
	return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
end

doCreatureSetStorage(cid, AURASYSTEM_STORAGE, os.time() + AURASYSTEM_CONFIG.DURATION)
return doPlayerCastAura(cid)
end

 

E adicione a seguinte linha no arquivo spells.xml

 

<instant name="Aura" words="aura" lvl="50" mana="100" prem="0" blockwalls="1" needlearn="0" event="script" value="aura spell.lua"/>

 

Para configurar a magia, mexa apenas nessa parte do script:

 


local AURASYSTEM_CONFIG = {
DURATION = 30, -- O tempo de duração da aura
DELAY = 0.1, -- O delay, quanto menor, mais rápida a aura será.
TYPE = "all", -- O tipo de aura. [fire/ice/energy/earth/death/holy/all]
DAMAGE = {-100, -200} -- O dano da aura
}

 


 

Segue abaixo o vídeo de demonstração que o coleguinha Jhon992 gravou para gente icon_lol.gif

 

Editado Setembro 17 por caotic

Retirado site de venda para evitar confus&#245;es

SkyDangerousS
15 de setembro de 2012 às 13:30

Muito bom.

Eu ia comprar, mas ai você postou vou usar o gratuito.

 

Obrigado pro compartilhar.

OneshotO
15 de setembro de 2012 às 13:33

O próximo script que eu vou fazer é o Auction NPC, viva aos piratas \o/

15 de setembro de 2012 às 14:34
Eu prometi, o troco vem cedo. Quer ganhar dinheiro, crie suas próprias coisas e não se baseie nas coisas dos outros.

o que aconteceu ??

gostei da spell rep+

jhon992J
15 de setembro de 2012 às 15:27

Na minha humilde opinião tudo que se cria é baseado em algum conhecimento de outras fontes...

Mal ae por usar sua ideia só tava afim de inovar porque eu tinha achado a spell muito limitada! E o resultado como todos podem ver ficou ótimo!

Rep+ pra ti, e vou disponibilizar pra download lá agora né.. saijda. Download: http://www.#####/categorias-index/275781/sistemas.html

OneshotO
15 de setembro de 2012 às 20:31

Na minha humilde opinião tudo que se cria é baseado em algum conhecimento de outras fontes...

Mal ae por usar sua ideia só tava afim de inovar porque eu tinha achado a spell muito limitada! E o resultado como todos podem ver ficou ótimo!

Rep+ pra ti, e vou disponibilizar pra download lá agora né.. saijda. Download: http://www.jhon-soft...1/sistemas.html

 

Ah, você tinha achado a spell muito limitada? Engraçado é que não vi ninguém pensar no algoritmo por trás da spell antes, depois que foi feito e disponibilizado, é muito fácil fazer uma alteração ridícula e falar que a spell estava muito limitada.

 

Acho que estou ficando louco para retrucar algo para alguém banido.

 

Abraços.

SkymagnumS
15 de setembro de 2012 às 20:34

Muito bom OneShot só não dou REP+ porquê estou sem.

milbradtM
16 de setembro de 2012 às 00:20

Um otimo script.

Sem duvidas, merece muitos rep+ por ele.

E obrigado por compartilhar!

Editado Setembro 18 por Demonbholder

DelaksD
16 de setembro de 2012 às 13:59

bom spell OneShot!

Editado Setembro 18 por Demonbholder

juan500J
17 de setembro de 2012 às 14:10

vou usa essa spell sim! mais uma pergunta e se o player morre enquanto vais essa spell oq acontece?

15790911
17 de setembro de 2012 às 14:21

Espero que faça o auction npc, porque fiquei sabendo que você não ia fazer:

 

Vou criar porra nenhuma não. Reputação eu tenho até demais e reconhecimento do fórum, pff... que dó.

 

http://www.xtibia.com/forum/topic/194106-demo-auction-npc/page__fromsearch__1

OneshotO
17 de setembro de 2012 às 15:12

Não vou mesmo. Se eu fizesse algo desse tipo, até eu ia querer vender. Vamos parar de querer tudo caindo do céu e estudar LUA, né, meus queridos?

Editado Setembro 17 por Oneshot

juan500J
17 de setembro de 2012 às 15:22

responde minha pergunta por favor (se o player morre usando a spell buga o distro?)

15790911
17 de setembro de 2012 às 15:25

Oneshot, não adianta se mandar o povo estudar lua, só estou querendo saber se vc vai cumprir com o que disse:

 

 

O próximo script que eu vou fazer é o Auction NPC, viva aos piratas \o/

 

só isso. A resposta é não? Ok então, só queria saber!

18 de setembro de 2012 às 12:45

Pô galera, que chato isso! Um tópico com um código exclente e é transformado nessa baderna.

 

Excluí alguns posts e editei outros, pois acho uma sacanagem fechar um tópico desses.

 

juan500 suspenso.