SK
talkaction

[Wand] Muda De Efeito

Por Skymagnum, 13 de ago. de 2012 em Mods, funções e outros

otserv
tibia
script
20
12.8k
SkymagnumS
13 de agosto de 2012 às 01:31

Olá, galerinha do xtibia vi esse sistema em 1 site e eles estavam vendendo por 9,90 então resolvi fazer e postar de graça

 

primeiramente va em

 

data/talkactions/scripts crie um arquivo chamando wand.lua e coloque isso dentro

 

function onSay(cid, words, param)
local param = string.lower(param)
local table = {
["fire"] = 12031,
["ice"] = 12032,
["earth"] = 12033,
["death"] = 12034,
["energy"] = 12035,
["holy"] = 12036
}
local id = 12609 --- aqui vai o id da wand
local a = table[param]

if not a then
doPlayerSendTextMessage(cid, 28, "Digite !wand info para saber os elementos disponiveis")
return true
end

if (param == "info") then
for element, stor in pairs(table) do
text = "Elementos: "..element..""
doPlayerPopupFYI(cid, text)
end
end

if getPlayerItemCount(cid, id) >= 1 then
setPlayerStorageValue(cid, 12031, 0)
setPlayerStorageValue(cid, 12032, 0)
setPlayerStorageValue(cid, 12033, 0)
setPlayerStorageValue(cid, 12034, 0)
setPlayerStorageValue(cid, 12035, 0)
setPlayerStorageValue(cid, 12036, 0)
setPlayerStorageValue(cid, a, 1)
doPlayerSendTextMessage(cid, 27 , "Você mudou o elemento da wand para ".. param .. ".")
else
doPlayerSendTextMessage(cid, 28, "Desculpe, mais você precisa ter a ".. getItemNameById(id) .. " para trocar o elemento.")
end
return true
end

 

 

em talkactions.xml

<talkaction words="!wand" event="script" value="wand.lua"/>

 

 

agora em data/weapons/scripts crie um arquivo e renomeie para wand1.lua e adicione isso dentro:

 

w = {
[12031] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
[12032] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
[12033] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE},
[12034] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
[12035] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
[12036] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
}

function onUseWeapon(cid, var)
min, max = 300, 300 -- dano minimo e maximo
target = getCreatureTarget(cid)
for stor, info in pairs(w) do
if getPlayerStorageValue(cid, stor) == 1 then
if target ~= 0 then
doSendDistanceShoot(getThingPos(cid), getThingPos(target), info.sh)
addEvent(doAreaCombatHealth, 100, cid, info.dmg, getThingPos(target), 0, -min, -max, info.ef)
end
end
end
return true
end

 

 

 

em weapons.xml

<wand id="xxx" level="50" mana="13" min="0" max="0" type="earth" event="script" value="wand1.lua"> <!-- wand of effects -->
<vocation id="1"/>
<vocation id="2"/>
<vocation id="5"/>
<vocation id="6"/>

 

 

em items.xml

<item id="xxx" article="the" name="nome da sua wand">
<attribute key="description" value="Você pode mudar o elemento da wand digitando !wand elemento desejado." />
<attribute key="weight" value="2300" />
<attribute key="weaponType" value="wand" />
<attribute key="shootType" value="holy" />
<attribute key="range" value="8" />

 

em data/creaturescripts/scripts login.lua antes do ultimo return true adicione essa linha:

if getPlayerStorageValue(cid, 12036) == -1 then
setPlayerStorageValue(cid, 12036, 1)
end

 

PS : Testado, e funcionando

PS2 : Podem postar em outros fórums se colocarem créditos

PS3 : Tem que ser o mesmo id em items.xml talkactions.xml e weapons.xml

Editado Agosto 14 por Skymagnum

notle2012N
13 de agosto de 2012 às 02:45

bacana vai ajudar muita gente que queria

Wand com varios efeitos :D

1 mês depois...
GustavocoG
18 de setembro de 2012 às 14:27

k7 que susto akele video a hora que abri krl kkkkk

 

 

vlw a script ae rep+

VincV
19 de setembro de 2012 às 16:01

usa um storgae so com os numeros e emves de usar um loop com pairs usa pra pega direto pelo storage e index tipo w[getPlayerStorageValue(cid,storage)]

ErimythE
25 de setembro de 2012 às 01:38

Muito Boa a script legal testei e funcionou.

Rep+

MrCatraM
25 de setembro de 2012 às 09:23

Muito bom este script,bem inovador (na minha opnião).

 

Parabéns.

3 meses depois...
juninhoo360J
08 de dezembro de 2012 às 01:15

Ótimo tutorial amigo.

Testei e funcionou 100%, mas tive que pedir ajuda ao LuckOake pois no meu server ficou com alguns bugs.

Arrume isto:

<item id="xxx" article="the" name="Nome da Wand">

<attribute key="description" value="Você pode mudar o elemento da wand digitando !wand elemento desejado." />

<attribute key="weight" value="2300" />

<attribute key="weaponType" value="wand" />

<attribute key="shootType" value="holy" />

<attribute key="range" value="8" />

</item>

 

para isto:

<item id="xxx" article="the" name="Nome da Wand">
<attribute key="description" value="Mude o elemento da wand digitando !wand elemento desejado." />
<attribute key="weight" value="2300" />
<attribute key="weaponType" value="wand" />
<attribute key="shootType" value="holy" />
<attribute key="range" value="8" />
</item> 

O problema está no "VOCÊ".

Fora isto, muito bom, rep+.

Editado Dezembro 8 por JuninhoLopes

SkymagnumS
09 de dezembro de 2012 às 14:16

É porquê seu client não aceita acentos aí dá esse bug.

3 meses depois...
shuzinS
04 de março de 2013 às 20:39

Como posso mudar para quem devo usar, tipo wand ( tanto para sorcerer quanto para druid? ) com esse mesmo script?

 

obg

 

Eu criei e está dando erro agora no meu ot ;x

 

No lugar do xxx tinha que por o id da wand? ou deixar assim como está?!

2 semanas depois...
SkymagnumS
14 de março de 2013 às 17:10

Vocações nessa parte;

 

<wand id="xxx" level="50" mana="13" min="0" max="0" type="earth" event="script" value="wand1.lua"> <!-- wand of effects -->

<vocation id="1"/>

<vocation id="2"/>

<vocation id="5"/>

<vocation id="6"/>

 

 

você tem que mudar o xxx para o id ;d.

2 semanas depois...
Tsunna4ST
25 de março de 2013 às 19:06

Ah lek, eu tava fazendo errado, por isso que não estava pegando. Agora que eu concertei tá tudo funfando legal!!! Vlw ai, ótimo script, parabéns!

 

+++REP

 

@edit

 

Só tem um probleminha, eu fiz uma wand e uma rod, e quero que a rod também tenha dois efeitos, mas os efeitos da rod são death e ice? Pode me ajudar...

Editado Março 25 por Tsunna4S

meubkM
27 de março de 2013 às 16:17

legal a idéia

1 mês depois...
lucas831L
13 de abril de 2013 às 11:21

Amigo da pra fazer isso com armas pra kinas?

Tipo a Ice Ripier vc fala !sword fire, e ela passa a ser Fire Ripier?

2 meses depois...
markindootM
01 de junho de 2013 às 23:42

Não sei se pode, Queria pedir para reabrir esse Tópico.

Eu tenho 1 Duvida,

o char para tomar o dano dos elementos dessa "Wand of Effects" precisa estar parado, se o player usar dash e correr feito louco,

o hit não pega pois para tomar o dano a wand joga o efeito no chão para sim subir e hitar o player.

 

Teria como colocar essa wand como outra wand qualquer, para acertar o alvo correndo, voando, etc.

 

O Script é mt bom só tenho essa duvida sobre ele.

 

Responde Porfavor REP+

SkymagnumS
01 de junho de 2013 às 23:45

Não sei se pode, Queria pedir para reabrir esse Tópico.

Eu tenho 1 Duvida,

o char para tomar o dano dos elementos dessa "Wand of Effects" precisa estar parado, se o player usar dash e correr feito louco,

o hit não pega pois para tomar o dano a wand joga o efeito no chão para sim subir e hitar o player.

 

Teria como colocar essa wand como outra wand qualquer, para acertar o alvo correndo, voando, etc.

 

O Script é mt bom só tenho essa duvida sobre ele.

 

Responde Porfavor REP+

Ela tira o dano sim, só o efeito que fica para trás amigo ;d.