Tenta assim:
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 = {
[1] = {newPromotion = 9},
[2] = {newPromotion = 10},
[3] = {newPromotion = 11},
[4] = {newPromotion = 12}
}
if msgcontains(msg, 'promotion') or msgcontains(msg, 'PROMOTION') then
selfSay("You want to be promoted?", cid)
talkState[talkUser] = 1
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
selfSay("Okay, you've earned your promotion.", cid)
doPlayerSetVocation(cid, vocation[getPlayerVocation(cid)].newPromotion)
doSendMagicEffect(getThingPos(cid), math.random(28, 30))
talkState[talkUser] = 0
return true
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Fale "hi", "promotion" e "yes".