Ir para conteúdo

Posts Recomendados

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

if msgcontains(msg, "mudar") and getPlayerStorageValue(cid, oraculo) - 1 then
selfSay("Deseja mudar de classe ? {sim}", cid)
talkState[cid] = 1

elseif msgcontains(msg, "mudar") and getPlayerStorageValue(cid, oraculo) == 1 then
selfSay("Voce de novo, voce quer encarar seu destino?", cid)
talkState[cid] = 1
end

if msgcontains(msg, 'sim') and talkState[cid] == 0 and getPlayerLevel(cid) >= 8 then
selfSay("Entao voce quer sair desta salinha?", cid)
talkState[cid] = 1

else
if talkState[cid] == 0 and msgcontains(msg, 'sim') and getPlayerLevel(cid) < 0 then
selfSay("Voce acha q isso eh uma brincadeira? Volte quando estiver forte.", cid)
setPlayerStorageValue(cid, oraculo, 1) 
return true
end

if msgcontains(msg, 'sim') and talkState[cid] == 1 then
selfSay("Tudo bem. você ganhara a xxxxx, {ok}?", cid)
talkState[cid] = 2
end

if msgcontains(msg, 'ok') and talkState[cid] == 2 then
selfSay("Otimo... Voce pode ser um {CLASSE}...", cid)
selfSay("...", cid)
talkState[cid] = 3
end

if msgcontains(msg, 'dumbledore') and talkState[cid] == 3 then
selfSay("Voce quer ser um XXXXX de CIDADE?", cid)
selfSay("{sim}", cid)
talkState[cid] = 4
elseif msgcontains(msg, 'druidakkz') and talkState[cid] == 3 then
selfSay("Tem certeza q deseja ser um(a) Druida?", cid)
selfSay("Saiba q qualquer decisao q tome eh irrevogavel. Portanto pense bem...", cid)
talkState[cid] = 5
elseif msgcontains(msg, 'Renegadokkk') and talkState[cid] == 3 then
selfSay("Tem certeza q deseja ser um Renegado?", cid)
selfSay("Voce nao poderá escolher denovo...{sim}", cid)
talkState[cid] = 6
elseif msgcontains(msg, 'cavaleirokkz') and talkState[cid] == 3 then
selfSay("Tem certeza q deseja ser um(a) Cavaleiro(a)?", cid)
selfSay("Saiba q qualquer decisao q tome eh irrevogavel. Portanto pense bem...", cid)
talkState[cid] = 7
end

if msgcontains(msg, 'sim') and talkState[cid] == 4 then
doPlayerSetVocation(cid, 3)
doSendMagicEffect(getPlayerPosition(cid), 10)
doPlayerSendTextMessage(cid, 22,"Voce virou um XXXXX (a).")
talkState[cid] = 8
elseif msgcontains(msg, 'sim') and talkState[cid] == 5 then
doPlayerSetVocation(cid, 0)
doSendMagicEffect(getPlayerPosition(cid), 10)
doPlayerSendTextMessage(cid, 22,"Agora vc eh um(a) Druida")
talkState[cid] = 9
elseif msgcontains(msg, 'sim') and talkState[cid] == 6 then
doPlayerSetVocation(cid, 2)
doSendMagicEffect(getPlayerPosition(cid), 10)
doPlayerSendTextMessage(cid, 22,"Agora voce e um Renegado")
talkState[cid] = 10
elseif msgcontains(msg, 'sim') and talkState[cid] == 7 then
doPlayerSetVocation(cid, 0)----------------------------------------------------------ID da vocação escolhida (Conferida em "data/XML/vocations")
doSendMagicEffect(getPlayerPosition(cid), 10)
doPlayerSendTextMessage(cid, 22,"Agora vc eh um(a) Cavaleiro(a)")
talkState[cid] = 11
end

if talkState[cid] == 8 or talkState[cid] == 9 or talkState[cid] == 10 or talkState[cid] == 11 then
selfSay("Otimo agora, que voce e um dumbledore, voce pode escolher sua nova cidade... {Ok}?", cid)
talkState[cid] = 12
end

if msgcontains(msg, "ok") and talkState[cid] == 12 then
selfSay("Voce deseja começar sua vida de XXXXX? {CIDADE}", cid)
selfSay("Quer ir mesmo?", cid)
talkState[cid] = 13
end

if msgcontains(msg, "CIDADE") and talkState[cid] == 13 then
selfSay("Vai querer mesmo ir para CIDADE? {sim}", cid)
talkState[cid] = 14
elseif msgcontains(msg, "thaiszz") and talkState[cid] == 13 then
selfSay("Tem certeza q deseja {VIVER} em Thais?", cid)
talkState[cid] = 15
elseif msgcontains(msg, "venorezz") and talkState[cid] == 13 then
selfSay("Tem certeza q deseja {VIVER} em Venore?", cid)
talkState[cid] = 16
end

if msgcontains(msg, "sim") and talkState[cid] == 14 then
selfSay("Boa viagem XXXXX e tome cuidado", cid)
doPlayerSetTown(cid, 1)-------------------------------------------------------ID da nova cidade (Conferido pelo map editor)
doTeleportThing(cid, {x=1000, y=1000, z=7, stackpos=253})-------------------coordenadas da nova cidade
doPlayerSendTextMessage(cid, 22,"Bem vindo a Diagonal")
elseif msgcontains(msg, "sim") and talkState[cid] == 15 then
selfSay("Boa viagem e tome cuidado", cid)
doPlayerSetTown(cid, 5)-------------------------------------------------------ID da nova cidade (Conferido pelo map editor)
doTeleportThing(cid, {x=32369, y=32241, z=7, stackpos=253})-------------------coordenadas da nova cidade
doSendMagicEffect({x=32369, y=32241, z=7, stackpos=253}, 10)------------------coordenadas do efeito de teleporte
doPlayerSendTextMessage(cid, 22,"Bem vindo. Agora vc eh um cidadao de Thais")
elseif msgcontains(msg, "sim") and talkState[cid] == 16 then
selfSay("Boa viagem e tome cuidado", cid)
doPlayerSetTown(cid, 6)-------------------------------------------------------ID da nova cidade (Conferido pelo map editor)
doTeleportThing(cid, {x=32957, y=32076, z=7, stackpos=253})-------------------coordenadas da nova cidade
doSendMagicEffect({x=32957, y=32076, z=7, stackpos=253}, 10)------------------coordenadas do efeito de teleporte
doPlayerSendTextMessage(cid, 22,"Bem vindo. Agora vc eh um cidadao de Venore")
end
return true
end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

explicando

elseif msgcontains(msg, "mudar") and getPlayerStorageValue(cid, oraculo) == 1 then
selfSay("Voce de novo, voce quer encarar seu destino?", cid)
talkState[cid] = 1
end

if msgcontains(msg, 'sim') and talkState[cid] == 0 and getPlayerLevel(cid) >= 8 then
selfSay("Entao voce quer sair desta salinha?", cid)
talkState[cid] = 1

else
if talkState[cid] == 0 and msgcontains(msg, 'sim') and getPlayerLevel(cid) < 0 then
selfSay("Voce acha q isso eh uma brincadeira? Volte quando estiver forte.", cid)
setPlayerStorageValue(cid, oraculo, 1)
return true
end

Nessa parte não mexa deixe como esta !

if msgcontains(msg, "mudar") and getPlayerStorageValue(cid, oraculo) - 1 then
selfSay("Deseja mudar de classe ? {sim}", cid)
talkState[cid] = 1

mudar - Palavra ue o personagem tem ue dizer

{sim} - Palavra para confirmar

Deseja mudar de classe ? - o ue o npc falara !

if msgcontains(msg, 'sim') and talkState[cid] == 4 then
doPlayerSetVocation(cid, 3)
doSendMagicEffect(getPlayerPosition(cid), 10)
doPlayerSendTextMessage(cid, 22,"Voce virou um XXXXX (a).")
talkState[cid] = 8

doPlayerSetVocation(cid, 3) - No 3 colo ue o ID DA VOCATION !

doPlayerSendTextMessage(cid, 22,"Voce virou um XXXXX (a).") - MENSAGEM UE O NPC DIRA !

 

Agora configure e deixe como você achar melhor :]

 

 

~~ é isso ae .

Link para o comentário
https://xtibia.com/forum/topic/228789-npc-mudando-classe/
Compartilhar em outros sites

  • 4 weeks later...

Não sei porque mas eu tenho uma breve sensação que essa script não e sua, se não for poste os créditos.

E eu acho melhor você coloca local's pra que fique mas fácil de iniciante configurarem, pois alguns tem preguiça de ler a script.

Alem de usa identificação que fica melhor.

Fora isso obrigado por contribuir pro xtibia.

Editado por RigBy
Link para o comentário
https://xtibia.com/forum/topic/228789-npc-mudando-classe/#findComment-1623140
Compartilhar em outros sites

×
×
  • Criar Novo...