Ir para conteúdo
  • 0

NPC que viaja sem falar "yes"


Dennyz Dias

Pergunta

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

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0


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 por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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},

}
Link para o comentário
Compartilhar em outros sites

  • 0
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".

Link para o comentário
Compartilhar em outros sites

  • 0

 

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.

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...