Ir para conteúdo
  • 0

Editar Script de morar na cidade


AdilsonHacker

Pergunta

Galera queria que apenas tal vocation id possa se batizar nessa cidade, e os que nao for dessa vocation id o npc diga a mensagem.. "Apenas humanos podem morar nessa cidade."

 

Script 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, 'sim')) then
doPlayerSetTown(cid, 5)
npcHandler:say("Seja bem vindo a Edoras.", cid)
talkState[talkUser] = 1
 
elseif(msgcontains(msg, 'nao')) then
npcHandler:say('Adeus Forasteiro..', cid)
talkState[talkUser] = 0
 
end
 
return true
end
 
function msgcontains(message, keyword)
if(type(keyword) == "table") then
return table.isStrIn(keyword, message)
end
 
local a, b = message:lower():find(keyword:lower())
if(a ~= nil and b ~= nil) then
return true
end
 
return false
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

 

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
local vocation_ids = {...}   --IDs das vocations que poderão se batizar na cidade.. Ex.: {1, 2, 4} 
 
    if msgcontains(msg:lower(), "sim") then
        if isInArray(vocation_ids, getPlayerVocation(cid)) then
            doPlayerSetTown(cid, 5)
            npcHandler:say("Seja bem vindo a Edoras.", cid)
            talkState[talkUser] = 0
            return true
        else
            npcHandler:say("Apenas humanos podem morar nessa cidade.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif msgcontains(msg:lower(), "nao") then
        npcHandler:say('Adeus Forasteiro..', cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
 
function msgcontains(message, keyword)
if(type(keyword) == "table") then
return table.isStrIn(keyword, message)
end
 
local a, b = message:lower():find(keyword:lower())
if(a ~= nil and b ~= nil) then
return true
end
 
return false
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

  • 0

Tenta 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)
if(not npcHandler:isFocused(cid)) then
return false
end
 
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
if(msgcontains(msg, 'sim')) and getPlayerVocation(cid, 2) then -- AQUI 
doPlayerSetTown(cid, 5)
npcHandler:say("Seja bem vindo a Edoras.", cid)
talkState[talkUser] = 1
 
elseif(msgcontains(msg, 'nao')) then
npcHandler:say('Adeus Forasteiro..', cid)
talkState[talkUser] = 0
 
end
 
return true
end
 
function msgcontains(message, keyword)
if(type(keyword) == "table") then
return table.isStrIn(keyword, message)
end
 
local a, b = message:lower():find(keyword:lower())
if(a ~= nil and b ~= nil) then
return true
end
 
return false
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Onde está o "AQUI", está o numero 2 como número da vocação, alí você muda para a vocação que quiser.

Editado por Seagull
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado por responder meu tópico, Mais tipo poderei add varias vocation ali? E cade a mensagem tipo doPlayerCancel "Apenas humanos podem morar aqui.", para quando for um player que não seja da vocation id que coloquei ali.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...