sabrina9292 1 Postado Janeiro 20, 2012 Share Postado Janeiro 20, 2012 Bom pessoal... Como mudar a palavra de inicializaçao de dialago de um npc? Gostaria que ao invez de dizer hi, dizer "hauchi", mas queria que fosse apenas em um unico npc Brigada Link para o comentário Compartilhar em outros sites More sharing options...
Tryller 192 Postado Janeiro 20, 2012 Share Postado Janeiro 20, 2012 data/npc/lib/main.lua (no crystal) em outro npc nao melembro qual aruivo... mas deve conter isto FOCUS_GREETWORDS = {'hi', 'hello', 'hey'} FOCUS_FAREWELLWORDS = {'bye', 'farewell', 'cya'} Link para o comentário Compartilhar em outros sites More sharing options...
bepokemon 101 Postado Janeiro 20, 2012 Share Postado Janeiro 20, 2012 (editado) Você deve colocar dentro do script do NPC algo assim: FOCUS_GREETWORDS = {'hauchi', 'hauchi'} Se não me engano tenho um NPC Blind Orc perfeito aqui, vou procurar para você. Editado Janeiro 20, 2012 por Byerne Link para o comentário Compartilhar em outros sites More sharing options...
sabrina9292 1 Postado Janeiro 21, 2012 Autor Share Postado Janeiro 21, 2012 Levou meu rep+ Vou aguardar anciosa pelo script do blind orc, ele sera otimo para mim treinar, existem muito poucos tutoriais de npc... Link para o comentário Compartilhar em outros sites More sharing options...
bepokemon 101 Postado Janeiro 21, 2012 Share Postado Janeiro 21, 2012 Levou meu rep+ Vou aguardar anciosa pelo script do blind orc, ele sera otimo para mim treinar, existem muito poucos tutoriais de npc... Mas você conseguiu fazer da forma que te falei? Não estou achando o Blind Orc neste computador. Link para o comentário Compartilhar em outros sites More sharing options...
sabrina9292 1 Postado Janeiro 22, 2012 Autor Share Postado Janeiro 22, 2012 Levou meu rep+ Vou aguardar anciosa pelo script do blind orc, ele sera otimo para mim treinar, existem muito poucos tutoriais de npc... Mas você conseguiu fazer da forma que te falei? Não estou achando o Blind Orc neste computador. Bom, depois que você ja havia respondido que fui perceber que minha duvida nao e bem isso... Eu estou tentando criar um npc oracle igual o do global, so que sempre que falava hi com ele, ele dizia uma frase configurada na lib que nao tinha nada a ver, mesmo se fosse um level menor que 8... Mas depois que muito quebrar a cabeça e ver varios exemplos... Saiu isto: 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) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) if msg == 'hi' and (not npcHandler:isFocused(cid)) or msg == 'hello' and (not npcHandler:isFocused(cid)) then if getPlayerLevel(cid) >= 8 then npcHandler:addFocus(cid) selfSay(getCreatureName(cid).. ', você está preparado para encarar o seu destino?', cid) talkState[talkUser] = 1 else selfSay('Criança! Volte quando você crescer!', cid) end elseif msg ~= 'yes' then if npcHandler:isFocused(cid) then selfSay('Volte quando você estiver preparado para encarar o seu destino!', cid) npcHandler:releaseFocus(cid) end end if msg == "yes" and talkState[talkUser] == 1 then selfSay('Eu posso levá-lo para a Ilha Do Destino... Entretanto você não será capaz de retornar. Está certo que deseja ir?', cid) talkState[talkUser] = 2 elseif msg == "yes" and talkState[talkUser] == 2 then doPlayerSetTown(cid, 11) doTeleportThing(cid,{x=1251, y=519, z=7}) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) selfSay('QUE ASSIM SEJA!', cid) npcHandler:releaseFocus(cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:setMessage(MESSAGE_WALKAWAY, false) Só que ele ta com um probleminha... O npc so encerra o dialago com vc se vc falar qualquer coisa diferente de yes, voce pode falar hi, dar uma volta na cidade e quando voltar, ele estara converando com vc como se vc nao tivesse saido de perto dele.. =/ E alem do mais, sinto que ele esta ENORME... Sei la, acho que estou usando muitos comandos que sao desnecessarios... Alguem que entende sobre npc e sabe uma maneira mais curta de fazer o que eu quero, pode me dizer onde coloquei coisas desnecessarias? Desde já... Muito obrigada Link para o comentário Compartilhar em outros sites More sharing options...
Tryller 192 Postado Janeiro 22, 2012 Share Postado Janeiro 22, 2012 (editado) Levou meu rep+ Vou aguardar anciosa pelo script do blind orc, ele sera otimo para mim treinar, existem muito poucos tutoriais de npc... Mas você conseguiu fazer da forma que te falei? Não estou achando o Blind Orc neste computador. Bom, depois que você ja havia respondido que fui perceber que minha duvida nao e bem isso... Eu estou tentando criar um npc oracle igual o do global, so que sempre que falava hi com ele, ele dizia uma frase configurada na lib que nao tinha nada a ver, mesmo se fosse um level menor que 8... Mas depois que muito quebrar a cabeça e ver varios exemplos... Saiu isto: 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) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) if msg == 'hi' and (not npcHandler:isFocused(cid)) or msg == 'hello' and (not npcHandler:isFocused(cid)) then if getPlayerLevel(cid) >= 8 then npcHandler:addFocus(cid) selfSay(getCreatureName(cid).. ', você está preparado para encarar o seu destino?', cid) talkState[talkUser] = 1 else selfSay('Criança! Volte quando você crescer!', cid) end elseif msg ~= 'yes' then if npcHandler:isFocused(cid) then selfSay('Volte quando você estiver preparado para encarar o seu destino!', cid) npcHandler:releaseFocus(cid) end end if msg == "yes" and talkState[talkUser] == 1 then selfSay('Eu posso levá-lo para a Ilha Do Destino... Entretanto você não será capaz de retornar. Está certo que deseja ir?', cid) talkState[talkUser] = 2 elseif msg == "yes" and talkState[talkUser] == 2 then doPlayerSetTown(cid, 11) doTeleportThing(cid,{x=1251, y=519, z=7}) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) selfSay('QUE ASSIM SEJA!', cid) npcHandler:releaseFocus(cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:setMessage(MESSAGE_WALKAWAY, false) Só que ele ta com um probleminha... O npc so encerra o dialago com vc se vc falar qualquer coisa diferente de yes, voce pode falar hi, dar uma volta na cidade e quando voltar, ele estara converando com vc como se vc nao tivesse saido de perto dele.. =/ E alem do mais, sinto que ele esta ENORME... Sei la, acho que estou usando muitos comandos que sao desnecessarios... Alguem que entende sobre npc e sabe uma maneira mais curta de fazer o que eu quero, pode me dizer onde coloquei coisas desnecessarias? Desde já... Muito obrigada Isto de dar voltinha e ão fexar conversa é problema no distro Maioria dos oT's 8.6 ate 9.30 possuem isto Editado Janeiro 22, 2012 por Tryller Link para o comentário Compartilhar em outros sites More sharing options...
sabrina9292 1 Postado Janeiro 22, 2012 Autor Share Postado Janeiro 22, 2012 @Tryller Mas acredito que este não seja o caso... Pois todos os npcs do meu ot, com excessao deste, que pos coinsidencia foi eu que fiz ¬¬, funcionam "perfeitamente", quando se afastam deles, eles encerram a conversa, sendo necessario dizer hi novamente Link para o comentário Compartilhar em outros sites More sharing options...
bepokemon 101 Postado Janeiro 22, 2012 Share Postado Janeiro 22, 2012 (editado) @Tryller Mas acredito que este não seja o caso... Pois todos os npcs do meu ot, com excessao deste, que pos coinsidencia foi eu que fiz ¬¬, funcionam "perfeitamente", quando se afastam deles, eles encerram a conversa, sendo necessario dizer hi novamente Em vez de usar msg == '' use msgcontains(msg, ''). Isto serve para maiusculo, minúsculo e se escrever 'Yes I do.' ele também vai. Editado Janeiro 22, 2012 por Byerne Link para o comentário Compartilhar em outros sites More sharing options...
Tryller 192 Postado Janeiro 22, 2012 Share Postado Janeiro 22, 2012 use onCreatureDisapper() Link para o comentário Compartilhar em outros sites More sharing options...
sabrina9292 1 Postado Janeiro 22, 2012 Autor Share Postado Janeiro 22, 2012 use onCreatureDisapper() Se importa de me explicar como uso esta funçao? Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados