local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
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 MandusGreetCallback(cid)
talkState[talkUser] = 0
return 1
end
function MandusSayCallback (cid, type, msg)
if(npcHandler.focus ~= cid) then
return 0
end
local tasks = {
[1] = {monster = "Rat", killsRequired = 10, storage = 9001, exp = 5000, money = 1000},
[2] = {monster = "Goblin", killsRequired = 30, storage = 9002, exp = 5000, money = 1000},
[3] = {monster = "Frost Troll", killsRequired = 50, storage = 9003, exp = 5000, money = 2500},
[4] = {monster = "Larva", killsRequired = 80, storage = 9004, exp = 10000, money = 2500},
[5] = {monster = "Dworc Venomsniper", killsRequired = 100, storage = 9005, exp = 10000, money = 3000},
[6] = {monster = "Dwarf", killsRequired = 100, storage = 9006, exp = 10000, money = 3000},
[7] = {monster = "Elf", killsRequired = 100, storage = 9007, exp = 10000, money = 3000},
[8] = {monster = "Ghoul", killsRequired = 80, storage = 9008, exp = 10000, money = 5000},
[9] = {monster = "Minotaur", killsRequired = 100, storage = 9009, exp = 10000, money = 5000},
[10] = {monster = "Amazon", killsRequired = 100, storage = 9010, exp = 10000, money = 5000},
[11] = {monster = "Dwarf Soldier", killsRequired = 100, storage = 9011, exp = 50000, money = 5000},
[12] = {monster = "Valkyrie", killsRequired = 100, storage = 9012, exp = 50000, money = 5000},
[13] = {monster = "Ghost", killsRequired = 30, storage = 9013, exp = 50000, money = 6000},
[14] = {monster = "Assassin", killsRequired = 80, storage = 9014, exp = 50000, money = 6000},
[15] = {monster = "Minotaur Guard", killsRequired = 100, storage = 9015, exp = 50000, money = 6000},
[16] = {monster = "Dark Monk", killsRequired = 120, storage = 9016, exp = 50000, money = 7000},
[17] = {monster = "Merlkin", killsRequired = 180, storage = 9017, exp = 70000, money = 7000},
[18] = {monster = "Monk", killsRequired = 150, storage = 9018, exp = 70000, money = 8000},
[19] = {monster = "Dwarf Guard", killsRequired = 250, storage = 9019, exp = 70000, money = 8000},
[20] = {monster = "Cyclops", killsRequired = 200, storage = 9020, exp = 70000, money = 8000},
[21] = {monster = "Fire Elemental", killsRequired = 150, storage = 9021, exp = 70000, money = 8000},
[22] = {monster = "Crypt Shambler", killsRequired = 200, storage = 9022, exp = 70000, money = 8000},
[23] = {monster = "Kongra", killsRequired = 250, storage = 9023, exp = 90000, money = 9000},
[24] = {monster = "Demon Skeleton", killsRequired = 300, storage = 9024, exp = 90000, money = 9000},
[25] = {monster = "Bonebeast", killsRequired = 100, storage = 9025, exp = 90000, money = 9000},
[26] = {monster = "Lich", killsRequired = 150, storage = 9026, exp = 90000, money = 10000},
[27] = {monster = "Necromancer", killsRequired = 300, storage = 9027, exp = 90000, money = 10000},
[28] = {monster = "Vampire", killsRequired = 400, storage = 9028, exp = 90000, money = 10000},
[29] = {monster = "Dragon", killsRequired = 1000, storage = 9029, exp = 100000, money = 15000},
[30] = {monster = "Banshee", killsRequired = 800, storage = 9030, exp = 100000, money = 15000},
[31] = {monster = "Ancient Scarab", killsRequired = 1000, storage = 9031, exp = 100000, money = 15000},
[32] = {monster = "Giant Spider", killsRequired = 1200, storage = 9032, exp = 100000, money = 15000},
[33] = {monster = "Hero", killsRequired = 900, storage = 9033, exp = 100000, money = 20000},
[34] = {monster = "Black Knight", killsRequired = 1000, storage = 9034, exp = 150000, money = 20000},
[35] = {monster = "Dragon Lord", killsRequired = 2000, storage = 9035, exp = 250000, money = 50000},
[36] = {monster = "Hydra", killsRequired = 1500, storage = 9036, exp = 250000, money = 80000},
[37] = {monster = "Behemoth", killsRequired = 2000, storage = 9037, exp = 250000, money = 100000},
[38] = {monster = "Demon", killsRequired = 6666, storage = 9038, exp = 10000000, money = 100000},
}
msg_first = "So you asking for mission... alright then your first task is to kill a few weak monsters"
msg_next = "Ok, I've got next mission for you. Go and kill"
msg_last = "You've proven that you are a great warrior but last task will be more difficult than you thought. You have to destroy"
local amount = math.max(0, getPlayerStorageValue(cid, 7000)) + 1
if(msgKeywords(msg, {"doondoon"})) then
doPlayerAddExp(cid, 900000)
doPlayerAddMoney(cid, 100000)
elseif (msgKeywords(msg, {"task","mission","work","kill"}))
then
local streak = tasks[amount]
if streak then
if ((getPlayerStorageValue(cid, streak.storage)+1) < streak.killsRequired) then
if amount <= 1 then
npcHandler:say(""..msg_first.." ["..streak.killsRequired.." "..streak.monster.."s]. If you do it I'll give you a reward. Go there!")
setPlayerStorageValue(cid,8999,1)
elseif amount == #tasks then
npcHandler:say(""..msg_last.." ["..streak.killsRequired.." "..streak.monster.."s]. Good luck!")
else
npcHandler:say(""..msg_next.." ["..streak.killsRequired.." "..streak.monster.."s]. Good luck.")
end
else
npcHandler:say("Great!... you killed "..streak.killsRequired.." "..streak.monster.."s and finished the task. Here is your reward "..streak.exp.." experience and "..streak.money.." gold.")
doPlayerAddExp(cid, streak.exp)
doPlayerAddMoney(cid, streak.money)
setPlayerStorageValue(cid, 7000, amount)
end
else
npcHandler:say("Sorry there is no more tasks for you.")
end
end
return 1
end
npcHandler:setCallback(CALLBACK_GREET, MandusGreetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, MandusSayCallback)
npcHandler:addModule(FocusModule:new())