Exceed 1 Postado Julho 31, 2011 Share Postado Julho 31, 2011 (editado) Tipo do script: Não sei (NPC Que muda vocation) Protocolo (versão do Tibia): 8.4 Servidor utilizado: Darkness OT Nível de experiência: '-' Adicionais/Informações: No meu OT editado, o player começa sem voc e fala com um NPC pra conseguir uma. (Presiso desse NPC) ele tem que mudar pra Knight por 10 Platinum Coins (¿2152?). Thx desde já ^^ Editado Julho 31, 2011 por Exceed Link para o comentário Compartilhar em outros sites More sharing options...
galaverna 24 Postado Julho 31, 2011 Share Postado Julho 31, 2011 (editado) AJUDEI??REP+ por favor tenta fazer isso vai no npc/scripts e cria um arquivo.lua e coloca esse código 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 npcHandler:setMessage(MESSAGE_GREET, "Olá, eu sou a {Ministra dos Carimbos}, como vai?") function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'knight')) then selfSay('Para virar knight você precisa ter 10 platinum coins, e falar trocar',cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'trocar') and talkState[talkUser] == 1 and getPlayerItemCount(cid,2152)>=10) then doPlayerRemoveItem(cid,2152,10) selfSay('Muito bem sua vocation foi trocada.', cid) doPlayerSetVocation(cid,voc) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Basta trocar essa parte : doPlayerSetVocation(cid,voc) voc = id da vocation e depois vai no npc: <?xml version="1.0" encoding="UTF-8"?> <npc name="Testee" script="data/npc/scripts/script.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="132" head="20" body="39" legs="45" feet="7" addons="3"/> <parameters> <parameter key="message_greet" value="Hello, |PLAYERNAME|. I can 'heal', 'haste', 'mana shield', invisible', upgrade your 'melee', 'magic', 'distance' and 'shield' skills."/> </parameters> </npc> script.lua é o nome desse script ai é so trocar nome aparencia vida e tals Editado Julho 31, 2011 por galaverna Link para o comentário Compartilhar em outros sites More sharing options...
Exceed 1 Postado Julho 31, 2011 Autor Share Postado Julho 31, 2011 (editado) Vou tentar aqui ^^ vlw por ajudar tá +Zado ^^ se n funfar eu edito aqui te avisando @Edit² Man, consegui fazer seu script funfar, tipo, acho q na hra que fui mudar eu deletei alguma coisa errada, mais enfim, esta funfando, so gostaria de saber se tem um jeito de fazer com que o NPC mande uma menssagem para o player se ele n tiver 10 Platinum Coins. Se tiver me ajuda? vlw ^^ Editado Julho 31, 2011 por Exceed Link para o comentário Compartilhar em outros sites More sharing options...
fake123 1 Postado Julho 31, 2011 Share Postado Julho 31, 2011 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 npcHandler:setMessage(MESSAGE_GREET, "Olá, eu sou o Guild Master da ZK (Zombie Killers) , você gostaria de participar dessa guild?)") function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'yes')) then selfSay('Para entrar para a ZK você tera que me pagar 10 Gold Coins Ok?',cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2 and getPlayerItemCount(cid,2152)>=10) then doPlayerRemoveItem(cid,2152,10) selfSay('Bem vindo a Zombie Killers !', cid) doPlayerSetVocation(cid,4) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Tenta assim nem testei aki Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados