Pedrook
Advanced OT User
- Joined
- May 24, 2009
- Messages
- 484
- Solutions
- 3
- Reaction score
- 225
- Location
- Brazil
- GitHub
- pedrogiampietro
in a system of task sistem, I go to npc and ask about the daily rewards, or rewards of normal tasks, it opens me a book with the rewards, I would like it to be by the npcs tab.
I would say, daily rewards, and on the npcs tab he would tell me which monster and then reward x.
I would say, daily rewards, and on the npcs tab he would tell me which monster and then reward x.
Code:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
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
npcHandler:addModule(FocusModule:new())
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local player = Player(cid)
local msg = msg:lower()
------------------------------------------------------------------
if npcHandler.topic[cid] == 0 and msgcontains(msg, 'normal') then
npcHandler:say("Ótimo. A task de qual monstro você gostaria de fazer ?", cid)
npcHandler.topic[cid] = 1
elseif npcHandler.topic[cid] == 1 then
for mon, l in pairs(task_monsters) do
if player:getStorageValue(task_sto_time) < os.time() then
if player:getStorageValue(task_storage) == -1 then
if msg == l.nome then
npcHandler:say("Muito bem, você agora está fazendo a task do {"..l.nome:gsub("^%l", string.upper).."}, você precisa matar "..l.amount.." deles. Boa Sorte!", cid)
player:setStorageValue(task_storage, mon)
player:setStorageValue(l.storage, 0)
npcHandler.topic[cid] = 0
npcHandler:releaseFocus(cid)
break
else
npcHandler:say("Desculpe mais não temos essa task.", cid)
npcHandler.topic[cid] = 0
end
else
npcHandler:say("Você já está fazendo uma task. Você só pode fazer uma por vez. Diga {!task} para ver informações sobre sua task atual.", cid)
npcHandler.topic[cid] = 0
end
else
npcHandler:say("Não estou altorizado a lhe entregar nenhuma missão, por você ter abandonado a anterior. Espere as 2 horas de punicação acabar.", cid)
npcHandler.topic[cid] = 0
end
end
------------------------------------------------------------------
------------------------------------------------------------------
elseif npcHandler.topic[cid] == 0 and msgcontains(msg, 'diaria') then
if player:getStorageValue(time_daySto) < os.time() then
npcHandler:say("Lembre-se, é de grande importância que as task diarias sejam feita. Agora me diga, a task de qual monstro você gostaria de fazer ?", cid)
npcHandler.topic[cid] = 2
else
npcHandler:say('Você já completou a task diaria de hoje, espere passar as 24 horas para fazer novamente.', cid)
npcHandler:releaseFocus(cid)
end
elseif npcHandler.topic[cid] == 2 then
for mon, l in pairs(task_daily) do
if player:getStorageValue(task_sto_time) < os.time() then
if player:getStorageValue(taskd_storage) == -1 then
if msg == l.nome then
npcHandler:say("Muito bem, você agora está fazendo a task diaria do {"..l.nome:gsub("^%l", string.upper).."}, você precisa matar "..l.amount.." deles. Boa Sorte!", cid)
player:setStorageValue(taskd_storage, mon)
player:setStorageValue(l.storage, 0)
npcHandler.topic[cid] = 0
npcHandler:releaseFocus(cid)
break
else
npcHandler:say("Desculpe mais não temos essa task diaria.", cid)
npcHandler.topic[cid] = 0
end
else
npcHandler:say("Você já está fazendo uma task diaria. Você só pode fazer uma por dia. Diga {!task} para ver informações sobre sua task atual.", cid)
npcHandler.topic[cid] = 0
end
else
npcHandler:say("Não estou altorizado a lhe entregar nenhuma missão, por você ter abandonado a anterior. Espere as 2 horas de punicação acabar.", cid)
npcHandler.topic[cid] = 0
end
end
------------------------------------------------------------------
------------------------------------------------------------------
elseif msgcontains(msg, 'receber') then
if npcHandler.topic[cid] == 0 then
npcHandler:say("Qual tipo de task você terminou, {normal} ou {diaria} ?", cid)
npcHandler.topic[cid] = 3
end
elseif npcHandler.topic[cid] == 3 then
if msgcontains(msg, 'normal') then
if getTaskInfos(player) then
if player:getStorageValue(getTaskInfos(player).storage) == getTaskInfos(player).amount then
npcHandler:say('Muito bom, aqui está seus prêmios: '..getItemsFromTable(getTaskInfos(player).items)..'.', cid)
for g = 1, #getTaskInfos(player).items do
player:addItem(getTaskInfos(player).items[g].id, getTaskInfos(player).items[g].count)
end
player:addExperience(getTaskInfos(player).exp)
taskPoints_add(player, getTaskInfos(player).pointsTask[1])
taskRank_add(player, getTaskInfos(player).pointsTask[2])
player:setStorageValue(getTaskInfos(player).storage, -1)
player:setStorageValue(task_storage, -1)
npcHandler.topic[cid] = 0
npcHandler:releaseFocus(cid)
else
npcHandler:say('Você ainda não terminou sua task atual. Receberá ela quando termina.', cid)
npcHandler.topic[cid] = 0
npcHandler:releaseFocus(cid)
end
else
npcHandler:say('Você não está fazendo nenhuma task.', cid)
npcHandler.topic[cid] = 0
npcHandler:releaseFocus(cid)
end
elseif npcHandler.topic[cid] == 3 and msgcontains(msg, 'diaria') then
if player:getStorageValue(time_daySto)-os.time() <= 0 then
if getTaskDailyInfo(player) then
if player:getStorageValue(getTaskDailyInfo(player).storage) == getTaskDailyInfo(player).amount then
npcHandler:say('Muito bom, aqui está os prêmios da task diaria: '..getItemsFromTable(getTaskDailyInfo(player).items)..'. Te vejo amanha!', cid)
for g = 1, #getTaskDailyInfo(player).items do
player:addItem(getTaskDailyInfo(player).items[g].id, getTaskDailyInfo(player).items[g].count)
end
player:addExperience(getTaskDailyInfo(player).exp)
taskPoints_add(player, getTaskDailyInfo(player).pointsTask[1])
taskRank_add(player, getTaskDailyInfo(player).pointsTask[2])
player:setStorageValue(getTaskDailyInfo(player).storage, -1)
player:setStorageValue(taskd_storage, -1)
player:setStorageValue(time_daySto, 1*60*60*24+os.time())
npcHandler.topic[cid] = 0
npcHandler:releaseFocus(cid)
else
npcHandler:say('Você ainda não terminou sua task atual. Receberá ela quando termina.', cid)
npcHandler.topic[cid] = 0
npcHandler:releaseFocus(cid)
end
else
npcHandler:say('Você não está fazendo nenhuma task diaria.', cid)
npcHandler.topic[cid] = 0
npcHandler:releaseFocus(cid)
end
else
npcHandler:say('Você já fez uma task diaria, aguarde completar 24 horas para fazer outra novamente.', cid)
npcHandler.topic[cid] = 0
npcHandler:releaseFocus(cid)
end
end
------------------------------------------------------------------
------------------------------------------------------------------
elseif msgcontains(msg, 'abandonar') then
if npcHandler.topic[cid] == 0 then
npcHandler:say("Qual tipo de task você quer abandonar, {normal} ou {diaria} ?", cid)
npcHandler.topic[cid] = 4
end
elseif npcHandler.topic[cid] == 4 and msgcontains(msg, 'normal') then
if getTaskInfos(player) then
npcHandler:say('Lamentável essa situação, tinha fé que você me traria essa missão feita, mais estava errado. Como punição ficará 2 horas sem poder fazer qualquer task.', cid)
player:setStorageValue(task_sto_time, os.time()+task_time*60*60)
player:setStorageValue(getTaskInfos(player).storage, -1)
player:setStorageValue(task_storage, -1)
npcHandler:releaseFocus(cid)
else
npcHandler:say('Você não está fazendo nenhuma task para poder abandona-lá.', cid)
npcHandler:releaseFocus(cid)
end
elseif npcHandler.topic[cid] == 4 and msgcontains(msg, 'diaria') then
if getTaskDailyInfo(player) then
npcHandler:say('Lamentável essa situação, tinha fé que você me traria essa missão feita, mais estava errado. Como punição ficará 2 horas sem poder fazer qualquer task.', cid)
player:setStorageValue(task_sto_time, os.time()+task_time*60*60)
player:setStorageValue(getTaskDailyInfo(player).storage, -1)
player:setStorageValue(taskd_storage, -1)
npcHandler:releaseFocus(cid)
else
npcHandler:say('Você não está fazendo nenhuma task diaria para poder abandona-lá.', cid)
npcHandler:releaseFocus(cid)
end
------------------------------------------------------------------
------------------------------------------------------------------
elseif msgcontains(msg, "lista de tasks normais") then
local text = "----**| -> Tasks Normal <- |**----\n\n"
for _, d in pairs(task_monsters) do
text = text .."------ [*] "..d.nome.." [*] ------ \n[+] Quantidade [+] -> ["..(player:getStorageValue(d.storage) + 1).."/"..d.amount.."]:\n[+] Prêmios [+] -> "..getItemsFromTable(d.items).." - "..d.exp.." experience \n\n"
end
player:showTextDialog(1811, "" .. text)
npcHandler:say("Aqui está a lista de task's normais.", cid)
------------------------------------------------------------------
------------------------------------------------------------------
elseif msgcontains(msg, "lista de task dailys") then
local text = "----**| -> Tasks Dailys <- |**----\n\n"
for _, d in pairs(task_daily) do
text = text .."------ [*] "..d.nome.." [*] ------ \n[+] Quantidade [+] -> ["..(player:getStorageValue(d.storage) + 1).."/"..d.amount.."]:\n[+] Prêmios [+] -> "..getItemsFromTable(d.items).." - "..d.exp.." experience \n\n"
end
player:showTextDialog(1811, "" .. text)
npcHandler:say("Aqui está a lista task's diaria.", cid)
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
Last edited: