Também preciso desse npc.
info
Grupo: Visconde
Registrado: 28/06/11
Posts: 356
Reputação: +26
Char no Tibia: Akor Rysea

Editado Setembro 26 por julhinhokullitz
local config = {
effect = xxx, --Efeito.
price = xxx, --Preço para viajar.
destinations = {
--["message"] = toPos,
--Ex.:
["carlin"] = {x = xxx, y = yyy, z = zzz},
["yalahar"] = {x = x, y = y, z = z},
}
}
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)
msg = msg:lower()
if not npcHandler:isFocused(cid) then
return false
elseif not config.destinations[msg] then
return selfSay("This option isn't available.", cid)
elseif getPlayerMoney(cid) < config.price then
return selfSay("You do not have enough money.", cid)
end
doPlayerRemoveMoney(cid, config.price)
doTeleportThing(cid, config.destinations[msg])
doSendMagicEffect(getThingPos(cid), config.effect)
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado Setembro 27 por zipter98
info
Grupo: Cavaleiro
Registrado: 17/06/15
Posts: 177
Reputação: +9
Char no Tibia: GOD Server

local destinations = { --["message"] = toPos, --Ex.: ["carlin"] = {x = xxx, y = yyy, z = zzz}, ["yalahar"] = {x = x, y = y, z = z}, } 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 return destinations[msg] and doTeleportThing(cid, destinations[msg]) or selfSay("This option isn't available.", cid) end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Manoow configurei tudo serto mais sempre da isso ao viajar
This option isn't available.
n da nenhum erro
Letras maiúsculas e minúsculas fazem diferença neste caso. Logo, se for configurado "carlin" e você digitar "Carlin" o NPC lhe responderá que a opção não está disponível.
Levando isso em consideração, você provavelmente está enviando uma mensagem que não foi configurada na tabela destinations.
info
Grupo: Visconde
Registrado: 28/06/11
Posts: 356
Reputação: +26
Char no Tibia: Akor Rysea

Coloca mais o menos assim:
local destinations = {
["carlin"] = {x =1234, y = 1234, z = 1}, -- 1º destino
["thais"] = {x =1234, y = 1234, z = 2}, -- 2º destino e assim por diante
}
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
return destinations[msg] and doTeleportThing(cid, destinations[msg]) or selfSay("This option isn't available.", cid)
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Letras maiúsculas e minúsculas fazem diferença neste caso. Logo, se for configurado "carlin" e você digitar "Carlin" o NPC lhe responderá que a opção não está disponível.
Levando isso em consideração, você provavelmente está enviando uma mensagem que não foi configurada na tabela destinations.
Zipter não se poderia colocar esta parte assim:
local destinations = {
["carlin","Carlin"] = {x =1234, y = 1234, z = 1},
["thais", "Thais"] = {x =1234, y = 1234, z = 2},
}
function creatureSayCallback(cid, type, msg)
msg = msg:lower()
info
Grupo: Visconde
Registrado: 28/06/11
Posts: 356
Reputação: +26
Char no Tibia: Akor Rysea

Uma opção é a seguinte:Abaixo de:function creatureSayCallback(cid, type, msg)coloque:msg = msg:lower()Assim, a mensagem do jogador será passada para letras minúsculas.Exemplo: "Carlin" seria interpretado como "carlin".
Agora sim, o npc está perfeito só falta o Dennyz testa no otserver dele.
info
Grupo: Cavaleiro
Registrado: 17/06/15
Posts: 177
Reputação: +9
Char no Tibia: GOD Server

manoow fico Shoow
porem player viaja mesmo sem grana
da pra por 1 preço?
i se der da pra bota um efeito
quando viaja
aii fexo
Editado Setembro 27 por Dennyz Dias
OK, código editado.
info
Grupo: Cavaleiro
Registrado: 17/06/15
Posts: 177
Reputação: +9
Char no Tibia: GOD Server

OK, código editado.
Assim
HAHAHA
Obrigado zipter98
Tu eo cara
do jeito que eu queria
Editado Setembro 27 por Dennyz Dias






info
Grupo: Cavaleiro
Registrado: 17/06/15
Posts: 177
Reputação: +9
Char no Tibia: GOD Server
Eai galera blz
Bem queria pedi uma ajuda axo nao e só eu que queria isso é
Sim bastante nego tambem
Gostaria de deixar os npc de barco do meu servidor pra viajar sem falar "yes"
Exemplo o cara fala hi carlin e ja viaja
Sem precisa fala yes
Se alguem puder ajudar
REPP ++
Obrigado