Mazynho 2 Postado Abril 14, 2014 Share Postado Abril 14, 2014 Galera como que faço para um NPC parar de falar com um player quando o player falar uma palavra X. Ex: Player: HI NPC: Ola Player o que deseja? Player: Nada NPC: para de falar com player. Quando falamos bye para um npc instantaneamente ele para de falar com o player, o que quero é a mesma coisa, porém com outra palavra. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/ Compartilhar em outros sites More sharing options...
0 Omega 377 Postado Abril 17, 2014 Share Postado Abril 17, 2014 if msgcontains(msg, "tchau") then selfSay("Ateh a proxima.", cid) talkState[talkUser] = nil npcHandler:releaseFocus(cid) É só usar o método npcHandler:releaseFocus que o NPC para de falar com o jogador. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1638296 Compartilhar em outros sites More sharing options...
0 gabriellippa 2 Postado Abril 14, 2014 Share Postado Abril 14, 2014 (editado) Tipo eu não entendo muito de script, mas procura no script do npc a palavra Bye(Use CTRL+F para encontrar) Depois troque por outra. Ex: Tchau (ou no seu caso Nada) Editado Abril 14, 2014 por trituration Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637331 Compartilhar em outros sites More sharing options...
0 Mateusoo 15 Postado Abril 15, 2014 Share Postado Abril 15, 2014 Galera como que faço para um NPC parar de falar com um player quando o player falar uma palavra X. Ex: Player: HI NPC: Ola Player o que deseja? Player: Nada NPC: para de falar com player. Quando falamos bye para um npc instantaneamente ele para de falar com o player, o que quero é a mesma coisa, porém com outra palavra. Boa noite, Poste aqui o script do NPC que você quer que isso ocorra. Vou adaptar para você. Abraço, aguardando. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637455 Compartilhar em outros sites More sharing options...
0 Mazynho 2 Postado Abril 15, 2014 Autor Share Postado Abril 15, 2014 Boa noite, Poste aqui o script do NPC que você quer que isso ocorra. Vou adaptar para você. Abraço, aguardando. Ainda não tenho o script do npc, que estou querendo, estou elaborando as ideias que irei implementar, mas fiquei presso à esse impasse. O Dalvorsn min falou para usar selfFocus() então fui testar em um npc qualquer, mas não funcionou. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637509 Compartilhar em outros sites More sharing options...
0 Mateusoo 15 Postado Abril 15, 2014 Share Postado Abril 15, 2014 Ainda não tenho o script do npc, que estou querendo, estou elaborando as ideias que irei implementar, mas fiquei presso à esse impasse. O Dalvorsn min falou para usar selfFocus() então fui testar em um npc qualquer, mas não funcionou. Exatamente, eu tava testando aqui também, e consegui colocar pro Focus do NPC ser 0, ou seja, ninguém, ai ele não falou mais comigo, porem eu queria ver como você tinha declarado a função do selFocus() pra poder passar o código com a variável que você usou, quando começar a fazer o npc e declarar a variável que vai receber o focus do npc, tenta setar ela pra 0 quando você falar: "nada" pra ele, talvez funcione. Abraços. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637515 Compartilhar em outros sites More sharing options...
0 Mazynho 2 Postado Abril 15, 2014 Autor Share Postado Abril 15, 2014 Exatamente, eu tava testando aqui também, e consegui colocar pro Focus do NPC ser 0, ou seja, ninguém, ai ele não falou mais comigo, porem eu queria ver como você tinha declarado a função do selFocus() pra poder passar o código com a variável que você usou, quando começar a fazer o npc e declarar a variável que vai receber o focus do npc, tenta setar ela pra 0 quando você falar: "nada" pra ele, talvez funcione. Abraços. 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, 'repair')) then selfSay('I can repair your Soft Boots by 15000 gold coins. Want me to do the repair in your boots?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, 10021) >= 1) then if(doPlayerRemoveMoney(cid, 15000) == TRUE) then doPlayerRemoveItem(cid, 10021, 1) doPlayerAddItem(cid, 2640) selfSay('Here you are.', cid) else selfSay('Sorry, but I can not repair your boots for free. Come back when you achieve enough money.', cid) end else selfSay('Sorry, but you must bring your boots so that I can repair.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) --Parar após essa frase. end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Por exemplo nesse npc, que recarega a soft como que faço para que após o player falar "no" ele para de falar com o npc. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637522 Compartilhar em outros sites More sharing options...
0 Mateusoo 15 Postado Abril 15, 2014 Share Postado Abril 15, 2014 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, 'repair')) then selfSay('I can repair your Soft Boots by 15000 gold coins. Want me to do the repair in your boots?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, 10021) >= 1) then if(doPlayerRemoveMoney(cid, 15000) == TRUE) then doPlayerRemoveItem(cid, 10021, 1) doPlayerAddItem(cid, 2640) selfSay('Here you are.', cid) else selfSay('Sorry, but I can not repair your boots for free. Come back when you achieve enough money.', cid) end else selfSay('Sorry, but you must bring your boots so that I can repair.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) --Parar após essa frase. end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Por exemplo nesse npc, que recarega a soft como que faço para que após o player falar "no" ele para de falar com o npc. Mano, tenta adicionar um return true logo abaixo da linha onde você comentou, e ve se ele para, não manjo muito de NPC :\ Boa sorte. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637531 Compartilhar em outros sites More sharing options...
0 Mazynho 2 Postado Abril 15, 2014 Autor Share Postado Abril 15, 2014 Não funcionou, poderia min dizer como você fez, ou postar seu script? Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637542 Compartilhar em outros sites More sharing options...
0 Mateusoo 15 Postado Abril 15, 2014 Share Postado Abril 15, 2014 Não funcionou, poderia min dizer como você fez, ou postar seu script? Eu não fiz mano, não mecho com NPCS :\ Abraço. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637552 Compartilhar em outros sites More sharing options...
0 Dbko 120 Postado Abril 15, 2014 Share Postado Abril 15, 2014 Mano na seu npc.xml la vai ter o que você quer Que ele Fale no caso aki da so pra traduzilo 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, 'reparar')) then selfSay('I can repair your Soft Boots by 15000 gold coins. Want me to do the repair in your boots?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, 10021) >= 1) then if(doPlayerRemoveMoney(cid, 15000) == TRUE) then doPlayerRemoveItem(cid, 10021, 1) doPlayerAddItem(cid, 2640) selfSay('Here you are.', cid) else selfSay('Sorry, but I can not repair your boots for free. Come back when you achieve enough money.', cid) end else selfSay('Sorry, but you must bring your boots so that I can repair.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'nao') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('sim then.', cid) --Parar após essa frase. end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637557 Compartilhar em outros sites More sharing options...
0 Mazynho 2 Postado Abril 15, 2014 Autor Share Postado Abril 15, 2014 Mano na seu npc.xml la vai ter o que você quer Que ele Fale no caso aki da so pra traduzilo 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, 'reparar')) then selfSay('I can repair your Soft Boots by 15000 gold coins. Want me to do the repair in your boots?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, 10021) >= 1) then if(doPlayerRemoveMoney(cid, 15000) == TRUE) then doPlayerRemoveItem(cid, 10021, 1) doPlayerAddItem(cid, 2640) selfSay('Here you are.', cid) else selfSay('Sorry, but I can not repair your boots for free. Come back when you achieve enough money.', cid) end else selfSay('Sorry, but you must bring your boots so that I can repair.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'nao') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('sim then.', cid) --Parar após essa frase. end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) O que você fez? Traduziu a frase do npc? Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637560 Compartilhar em outros sites More sharing options...
0 Dbko 120 Postado Abril 15, 2014 Share Postado Abril 15, 2014 if(msgcontains(msg, 'repair')) then if(msgcontains(msg, 'reparar')) then elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then elseif(msgcontains(msg, 'nao') and isInArray({1}, talkState[talkUser]) == TRUE) then selfSay('oky then.', cid) --Parar após essa frase. selfSay('sim then.', cid) --Parar após essa frase. Se vocÊ quiser Tipo de vez de falar Hi E so muda no ex pair of soft.xml em npc la tem como e que ele vai falar tipo hi repair so muda como vocÊ deseja Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637562 Compartilhar em outros sites More sharing options...
0 Mazynho 2 Postado Abril 15, 2014 Autor Share Postado Abril 15, 2014 if(msgcontains(msg, 'repair')) then if(msgcontains(msg, 'reparar')) then elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then elseif(msgcontains(msg, 'nao') and isInArray({1}, talkState[talkUser]) == TRUE) then selfSay('oky then.', cid) --Parar após essa frase. selfSay('sim then.', cid) --Parar após essa frase. Se vocÊ quiser Tipo de vez de falar Hi E so muda no ex pair of soft.xml em npc la tem como e que ele vai falar tipo hi repair so muda como vocÊ deseja Não estou querendo isso, quero que quando um player falar uma certa palavra, que irei definir, o npc pare de falar com o player, continue andando para um lado e para outro, como se ninguém tivesse falado com ele. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1637567 Compartilhar em outros sites More sharing options...
0 Mazynho 2 Postado Abril 18, 2014 Autor Share Postado Abril 18, 2014 if msgcontains(msg, "tchau") then selfSay("Ateh a proxima.", cid) talkState[talkUser] = nil npcHandler:releaseFocus(cid) É só usar o método npcHandler:releaseFocus que o NPC para de falar com o jogador. Valeu Omega! Muito obrigado. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1638550 Compartilhar em outros sites More sharing options...
0 zipter98 1102 Postado Abril 18, 2014 Share Postado Abril 18, 2014 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/#findComment-1638552 Compartilhar em outros sites More sharing options...
Pergunta
Mazynho 2
Galera como que faço para um NPC parar de falar com um player quando o player falar uma palavra X.
Ex:
Player: HI
NPC: Ola Player o que deseja?
Player: Nada
NPC: para de falar com player.
Quando falamos bye para um npc instantaneamente ele para de falar com o player, o que quero é a mesma coisa, porém com outra palavra.
Link para o comentário
https://xtibia.com/forum/topic/231839-fazer-npc-parar-de-falar-com-um-player/Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados