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'}
info
Grupo: Barão
Registrado: 05/10/10
Posts: 238
Reputação: +193
Gênero: Masculino
Char no Tibia: Yirosh

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'}
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

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 por Byerne
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

Levou meu rep+
Vou aguardar anciosa pelo script do blind orc, ele sera otimo para mim treinar, existem muito poucos tutoriais de npc...
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

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.
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

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
info
Grupo: Barão
Registrado: 05/10/10
Posts: 238
Reputação: +193
Gênero: Masculino
Char no Tibia: Yirosh

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 por Tryller
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

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
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

@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 por Byerne
info
Grupo: Barão
Registrado: 05/10/10
Posts: 238
Reputação: +193
Gênero: Masculino
Char no Tibia: Yirosh

use onCreatureDisapper()
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

use onCreatureDisapper()
Se importa de me explicar como uso esta funçao?
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1
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