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)
info
Grupo: Campones
Registrado: 02/07/11
Posts: 55
Reputação: +2
Gênero: Masculino

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 por trituration
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.
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.
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.
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.
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.
Não funcionou, poderia min dizer como você fez, ou postar seu script?
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.
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()
npcHandler:addModule(FocusModule:new())
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) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendlocal talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cidif(msgcontains(msg, 'reparar')) thenselfSay('I can repair your Soft Boots by 15000 gold coins. Want me to do the repair in your boots?', cid)talkState[talkUser] = 1elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) thenif(getPlayerItemCount(cid, 10021) >= 1) thenif(doPlayerRemoveMoney(cid, 15000) == TRUE) thendoPlayerRemoveItem(cid, 10021, 1)doPlayerAddItem(cid, 2640)selfSay('Here you are.', cid)elseselfSay('Sorry, but I can not repair your boots for free. Come back when you achieve enough money.', cid)endelseselfSay('Sorry, but you must bring your boots so that I can repair.', cid)endtalkState[talkUser] = 0elseif(msgcontains(msg, 'nao') and isInArray({1}, talkState[talkUser]) == TRUE) thentalkState[talkUser] = 0selfSay('sim then.', cid) --Parar após essa frase.endreturn trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())
O que você fez? Traduziu a frase do npc?
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
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.
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

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.
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.
info
Grupo: Campones
Registrado: 06/11/13
Posts: 99
Reputação: +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.