Ir para conteúdo
  • 0

Vocation, Level 50,pergunta, Escolha, Ganhar Item!


1579091

Pergunta

Bom pessoal, desta vez venho pedir um script pouco complicado, mas que seria muito útil a mim e a muitas pessoas.

 

Como funciona ou pelo menos como gostaria que funcionasse:

Gostaria que quando um player de x vocation atingisse level 50 (configuravel) aparesse uma perguntinha no default mesmo dizendo

(caso ele seja knight):

 

Você quer escolher para sua jornada: Sword, Axe ou Club? Lembrando que sua resposta definirá seu presente.

 

Agora vai a lista das vocações, level e premio:

 

Knights:

Level 50

Pergunta: Você quer escolher para sua jornada: Sword, Axe ou Club? Lembrando que sua resposta definirá seu presente.

Rewards: Sword = 7383 / Axe = 7411 / Club = 7409.

 

Druids:

Level 42

Pergunta: Você quer escolher para sua jornada: Tera, Ice ou Death? Lembrando que sua resposta definirá seu presente.

Rewards: Tera = 8912 / Ice = 2183 / Death = 8910.

 

Sorcerers:

Level 42

Pergunta: Você quer escolher para sua jornada: Energy, Death ou Fire? Lembrando que sua resposta definirá seu presente.

Rewards: Energy = 8920 / Death = 8922 / Fire = 2187.

 

Paladins:

Level 55

Pergunta: Você quer escolher para sua jornada: Star, Arrow ou Bolt? Lembrando que sua resposta definirá seu presente.

Rewards: Star = 7366 / Arrow = 7365 e 8857 / Bolt = 2547 e 5803.

 

Pode ser em scripts separados, não sei como é mais facil de desenvolver, crie do jeito que se quiser deis de que siga os padrões do pedido, obrigado!

Acho que é um pouco complicado de desenvolver o script, mas não impossivel. Grato a quem puder me ajudar!

Editado por GuizitoG
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

blz.. assim.. eu n intendo nd de Tibia... entao.. hehe

n esqueça de configurar o numero das vocations nas 2 tabelas...

 

1* - va em creaturescripts/creaturescripts.xml, e adicione essa tag..

<event type="advance" name="rewardLevelUp" event="script" value="rewardLevelUp.lua"/>

 

2* - va em creaturescripts/scripts/ e crie um arquivo .lua com o nome: rewardLevelUp.lua... e adicione o script abaixo nele..

 

local configs = {

--[vocation] = {lvl, msg},

[1] = {50,

"Você quer escolher para sua jornada: Sword, Axe ou Club? Lembrando que sua resposta definirá seu presente.\nDiga /resposta, com a sua resposta. Exemplo: /resposta Axe"},

[2] = {42,

"Você quer escolher para sua jornada: Tera, Ice ou Death? Lembrando que sua resposta definirá seu presente.\nDiga /resposta, com a sua resposta. Exemplo: /resposta Tera"},

[3] = {42,

"Você quer escolher para sua jornada: Energy, Death ou Fire? Lembrando que sua resposta definirá seu presente.\nDiga /resposta, com a sua resposta. Exemplo: /resposta Fire"},

[4] = {55,

"Você quer escolher para sua jornada: Star, Arrow ou Bolt? Lembrando que sua resposta definirá seu presente.\nDiga /resposta, com a sua resposta. Exemplo: /resposta Bolt"},

}

 

function onAdvance(cid, skill, oldLevel, newLevel)

if skill ~= 8 then return true end

 

local pergunta = configs[getPlayerVocation(cid)]

if pergunta and newLevel == pergunta[1] and getPlayerStorageValue(cid, 98799) <= 0 then

doPlayerSendTextMessage(cid, 27, pergunta[2])

setPlayerStorageValue(cid, 98799, 1)

end

return true

end

 

 

3* va em creaturescripts/scripts/login.lua, e adicione isso la..

registerCreatureEvent(cid, "rewardLevelUp")

 

4* - va em talkactions/talkactions.xml, e adicione essa tag la..

<talkaction words="/resposta" event="script" value="rewardLevelUp.lua"/>

 

5* - va em talkactions/scripts/ e crie um arquivo .lua la com o nome: rewardLevelUp.lua, e adicione isso nele...

 

local configs = {

--[vocation] = {ids = {[arma] = {id}}}

[1] = {ids = {["sword"] = {7383}, ["axe"] = {7411}, ["club"] = {7409}}},

[2] = {ids = {["tera"] = {8912}, ["ice"] = {2183}, ["death"] = {8910}}},

[3] = {ids = {["energy"] = {8920}, ["death"] = {8922}, ["fire"] = {2187}}},

[4] = {ids = {["star"] = {7366}, ["arrow"] = {7365, 8857}, ["bolt"] = {2547, 5803}}},

}

 

function onSay(cid, words, param)

if getPlayerStorageValue(cid, 98799) ~= 1 then return true end

if tostring(param) == nil then

doPlayerSendTextMessage(cid, 27, "Você precisa responder qual arma você quer!")

return true

end

 

local reward = configs[getPlayerVocation(cid)]

param = string.lower(tostring(param))

 

if reward and reward.ids[param] then

for i = 1, #reward.ids[param] do

doPlayerAddItem(cid, reward.ids[param])

end

setPlayerStorageValue(cid, 98799, 2)

doPlayerSendTextMessage(cid, 27, "") --caso queira mandar uma msg pro player depois q ele recebe o item...

end

return true

end

 

 

achu q deu... qlqr duvida soh perguntar ^^

Link para o comentário
Compartilhar em outros sites

  • 0

Ahh man... jurava q ngm ia responde... VLW MESMO nem testei ainda mais ja vai um rep de incentivo jaja edit dizendo se funfo ou n!!

 

@Edit -- Cara não da nenhum erro no distro nem nada, mais quando eu pego level vem a mensagem... Quando eu respondo não acontece nada, mais também a mensagem não apareçe em cima do player nem nada, só que o jogador não recebe o item... Não acontece simplesmente nada.... *Nao da nenhum Erro no distro* por favor tenta arruma! Eu ja mudei as vocations sim!

Link para o comentário
Compartilhar em outros sites

  • 0

mudase nas tabelas as vocations q tu queria?

[1] = {ids = {["sword"] = {7383}, ["axe"] = {7411}, ["club"] = {7409}}},

no caso ae no [1] terias q por a voc de knight do teu serv...

e na outra tabela tb...

deve ta dando isso, ou pq a voc ta diferente, ou a storage n ta certa..

n tas usando essa storage pra outra coisa sera? ;x

ou pq n tas flando certo... o certo seria /resposta axe, por exemplo..

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

No caso eu mudei apenas o numero das vocations nos scripts (nao mudei a ordem dos scripts ao mudar os numeros, a ordem ficou:4 2 1 3) , e não no xml... Vou fazer o teste das storages.. Tentar troca-las! jaja edit!

 

@Edit -- Realmente, a nobeza foi minha... Cara você não tem noção de como me ajudou... me ajudou muito, mas muito mesmo!

Amanha se não esquecer te dou mais um rep. Obrigado! Funcionou! HAHAHA TE AMOO!!

 

Se puder voltar a me ajudar na quele tópico, estaria mais grato ainda: http://www.xtibia.com/forum/topic/195825-arrumar-teleport-task/page__fromsearch__1

Editado por GuizitoG
Link para o comentário
Compartilhar em outros sites

  • 0

de nd ^^ se quiser.. podes usar esse aki... \/ .. tem mais msgs e pah.. pode ajudar mais os players ^^

 

local configs = {

--[vocation] = {ids = {[arma] = {id}}}

[4] = {lvl = 50, ids = {["sword"] = {7383}, ["axe"] = {7411}, ["club"] = {7409}}},

[2] = {lvl = 42, ids = {["tera"] = {8912}, ["ice"] = {2183}, ["death"] = {8910}}},

[1] = {lvl = 42, ids = {["energy"] = {8920}, ["death"] = {8922}, ["fire"] = {2187}}},

[3] = {lvl = 55, ids = {["star"] = {7366}, ["arrow"] = {7365, 8857}, ["bolt"] = {2547, 5803}}},

}

 

function onSay(cid, words, param)

--------

local reward = configs[getPlayerVocation(cid)]

param = string.lower(tostring(param))

--------

if not reward then

doPlayerSendTextMessage(cid, 27, "Sua vocação não pode usar esse comando!")

return true

elseif getPlayerLevel(cid) < reward.lvl then

doPlayerSendTextMessage(cid, 27, "Você não tem level suficiente para usar esse comando!")

return true

elseif getPlayerStorageValue(cid, 98799) > 1 then

doPlayerSendTextMessage(cid, 27, "Você ja escolheu sua arma!")

return true

elseif tostring(param) == nil then

doPlayerSendTextMessage(cid, 27, "Você precisa responder qual arma você quer!")

return true

end

--------

 

if reward.ids[param] then

for i = 1, #reward.ids[param] do

doPlayerAddItem(cid, reward.ids[param])

end

setPlayerStorageValue(cid, 98799, 2)

doPlayerSendTextMessage(cid, 27, "Aproveite a nova arma!") --caso queira mandar uma msg pro player depois q ele recebe o item...

else

doPlayerSendTextMessage(cid, 27, "Essa não é uma arma valida para sua vocação!")

local str = "Você pode escolher entre: "

for e, f in pairs(reward.ids) do

str = str.. tostring(e).." or "

end

doPlayerSendTextMessage(cid, 27, str..".")

return true

end

return true

end

 

-essa eh a talk...-

Link para o comentário
Compartilhar em outros sites

  • 0

Haha eu sei qndo é talk creature scripts, só mosquei akela hora rlx... n sou tao noob assim nao. Mais aí vlww mesmo, mesmo mesmo mesmo! Obrigadãooo! Mais uma vez pesso, se puder me ajudar na kele script das tasks... VLW!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...