Postado Outubro 21, 2014 10 anos ola pessoal gostaria de pedir um script de um npc que faz virar morador da cidade em vez do player ter que passar em cima de um tile. Ou seja, o jogador fala com o npc que pergunta se ele deseja virar morador de tal cidade. ai o player diz "yes" e passa a ser morador dessa cidade. Segue o script do tile que faz virar morador da cidade em meu servidor. function onStepIn(cid, item, position, fromPosition) if(item.actionid > 30020 and item.actionid < 30100) then local townId = (item.actionid - 30020) doPlayerSetTown(cid, townId) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce agora e um morador de " .. getTownName(townId) .. ".") end return true end Se alguém puder me ajudar fico muito grato, já procurei em todo o tibiaking e não encontrei. abraços! Editado Outubro 21, 2014 10 anos por maiconmnt (veja o histórico de edições)
Postado Novembro 10, 2014 10 anos Tenta colocar isso aqui no .lua do NPC: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local townid = [COLOQUE O ID DA CIDADE AQUI] 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 greetCallback(cid) if msgcontains(cid,"citizen") then selfSay("Do you want to become a citizen?", cid) talkState[talkUser]=1 end if talkState[talkUser]==1 then if msgcontains(cid,"yes") then selfSay("So be it!", cid) doPlayerSetTown(cid, townid) elseif msgcontains(cid,"no") then selfSay("As you wish.", cid) end talkState[talkUser]=0 end end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:addModule(FocusModule:new()) Não esquece de mudar o ID da cidade ali. Se não funcionar, me avisa. Abraço. Editado Novembro 10, 2014 10 anos por palubo (veja o histórico de edições)
Postado Novembro 12, 2014 10 anos Autor então não deu certo. coloquei o npc no mapa e tudo mas ele não aparece e nem consigo sumonar ele. como coloco no script do npc em si? coloquei assim... <?xml version="1.0" encoding="UTF-8"?> <npc name="Rei De Baiak" script="data/npc/scripts/reidebaiak.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="19" body="69" legs="107" feet="50" addons="0"/> <parameters> <parameter key="message_greet" value="Bem vindo |PLAYERNAME|. Eu posso fazelo virar morador de Baiak, basta dizer {citizen}."/> <parameter key="message_farewell" value="Ate Logo"/> </parameters> </npc> de qualquer forma rep + por tentar me ajudar. vou dar uma verificada aqui no código e ve se consigo alguma coisa.
Postado Novembro 12, 2014 10 anos 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 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, "yes")) then if getPlayerTown(cid) == 0 then npcHandler:say("Welcome! You are now a citizen of Baiak Town", cid) doPlayerSetTown(cid, 1) else npcHandler:say("sorry you already are a resident of this city!!", cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Novembro 12, 2014 10 anos por klipstyle (veja o histórico de edições) www.pokemiw.com 24 Horas Online - 1º 2º 3º 4º 5º 6º 7º gerações 100%
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.