Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Olá galera, nunca postei aqui no fórum pra tentar ajudar a turma.... Bom, esses dias eu estava procurando uma talkaction aqui no fórum, que mude o elemento da wand... Eu não achei nenhum tópico, porém, achei uma resposta em um tópico e eu decidi postar aqui no fórum. Se estiver na seção errada, por favor, mova para a correta, ou se ja tiver um tutorial assim aqui, pode deletar se possível.

 

Bom vamos lá:

 

1 - Vá em data/creaturescripts/scripts/login.lua e adicione a seguinte tag antes do último "Return True":

 

Spoiler

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

setPlayerStorageValue(cid, 12036, 1)
end
 

 

2 - Vá em data/items/items.xml e adicione isso, ou edite o item desejado:

 

Spoiler

<item id="XXXX" 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" />
 

Onde está "XXXX" você coloca o ID do item, e você pode editar o item à seu gosto.

 

 

3 - Vá em data/talkactions/talkactions.xml e adicione a seguinte tag:

 

Spoiler

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

 

 

Ainda em talkactions, abra a pasta scripts e crie um arquivo chamado wand.lua e coloque o seguinte código dentro deste arquivo:

 

Spoiler

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 = 7735 --- 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
 

 

4 - Vá em data/weapons/weapons.xml e adicione a seguinte tag:

 

Spoiler

<wand id="XXXX" level="50" mana="0" min="0" max="0" type="earth" event="script" value="wand1.lua">

<vocation id="1"/>
<vocation id="2"/>
<vocation id="5"/>
<vocation id="6"/>
 
 

Ainda em weapons, abra a pasta scripts e crie um arquivo chamado wand1.lua e coloque o seguinte código dentro do mesmo:

 

Spoiler

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
 

 

Pronto, basta você retirar o item do loot dos monstros, editar ao seu gosto a wand, e ser feliz com ela  :D

 

Créditos:

Zaruss por postar esse script na resposta de um tópico aqui no TK

jvcasarin(EU) por postar um tópico aqui no TK

 

Se te ajudei, dê um REP+ ai  :D 

  • Respostas 19
  • Visualizações 6.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • felipeaffonso96
    felipeaffonso96

    Obrigado, estava precisando dessa action e não achava mesmo em nenhum lugar. rep+

  • e se não usar addEvent? já tentou? @Toulouse   tenta assim:   w = { [12031] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE}, [12032] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},

  • A 3 opção resolveu

Postado

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServScriptingGeral"

Para: "OTServScriptingActions e TalkActions"

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Postado

@jvcasarin, isso é por que você deve criar esse tipo de tópico nesta seção: http://www.tibiaking.com/forum/forum/291-aprova%C3%A7%C3%A3o-de-t%C3%B3picos-de-conte%C3%BAdos/

 

Para que ele passe por uma avaliação para ajudar a manter o fórum mais limpo e organizado. ^^

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo