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.


info
Grupo: Campones
Registrado: 21/07/13
Posts: 55
Reputação: +2
Char no Tibia: Kavaskiva
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 endNessa 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] = 1mudar - Palavra ue o personagem tem ue dizer
{sim} - Palavra para confirmar
Deseja mudar de classe ? - o ue o npc falara !
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 .