armyman
Member
- Joined
- Feb 15, 2014
- Messages
- 318
- Reaction score
- 14
Hello Friends, anyone can help me with my Task Script?
Imgur: The most awesome images on the Internet
The msg of Creatures Killed is showing up on my screen... can i do the msg only show in my default channel?
NPC SCRIPT
Imgur: The most awesome images on the Internet
The msg of Creatures Killed is showing up on my screen... can i do the msg only show in my default channel?
NPC SCRIPT
LUA:
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 = {
["rats"] = {killsRequired = 100, storage = 9001, money = 1500},
["minotaurs"] = {killsRequired = 5000, storage = 9002, exp = 325000},
["ghouls"] = {killsRequired = 600, storage = 9003, exp = 70000},
["cyclops"] = {killsRequired = 500, storage = 9004, exp = 150000},
["ancient scarabs"] = {killsRequired = 3500, storage = 9006, exp = 1800000},
["dragons"] = {killsRequired = 1250, storage = 9007, exp = 1000000},
["necromancers"] = {killsRequired = 500, storage = 9008, item = 2195},
["giant spiders"] = {killsRequired = 500, storage = 9009, exp = 1100000},
["warlocks"] = {killsRequired = 150, storage = 9012, exp = 500000},
["demons"] = {killsRequired = 6666, storage = 9013, item = 2495},
["goblins"] = {killsRequired = 155, storage = 9014, exp = 5000},
["larvas"] = {killsRequired = 900, storage = 9015, exp = 95000},
["rotworms"] = {killsRequired = 300, storage = 9016, exp = 28500},
["orcs"] = {killsRequired = 400, storage = 9017, exp = 33500},
["scarabs"] = {killsRequired = 500, storage = 9018, exp = 130000},
["trolls"] = {killsRequired = 100, storage = 9019, exp = 4500},
["black knights"] = {killsRequired = 100, storage = 9020, exp = 300000, item = {2195}},
["demon skeletons"] = {killsRequired = 400, storage = 9021, exp = 200000},
["dwarf guards"] = {killsRequired = 900, storage = 9022, exp = 320000},
["fire elementals"] = {killsRequired = 70, storage = 9023, exp = 80000},
["heros"] = {killsRequired = 200, storage = 9024, exp = 260000},
["vampires"] = {killsRequired = 450, storage = 9025, exp = 260000},
["snakes"] = {killsRequired = 100, storage = 9026, money = 3000},
["wasps"] = {killsRequired = 300, storage = 9027, exp = 25000},
["wolfs"] = {killsRequired = 250, storage = 9028, money = 4000},
["dwarfs"] = {killsRequired = 700, storage = 9029, exp = 75000},
["dwarf soldiers"] = {killsRequired = 800, storage = 9030, exp = 110000},
["cave rats"] = {killsRequired = 100, storage = 9031, money = 2500},
["amazons"] = {killsRequired = 250, storage = 9032, money = 8000},
["valkyries"] = {killsRequired = 260, storage = 9033, money = 10000},
["scorpions"] = {killsRequired = 100, storage = 9034, money = 6000},
["lions"] = {killsRequired = 100, storage = 9035, money = 5000},
["dragon lords"] = {killsRequired = 500, storage = 9036, exp = 800000},
["poison Spiders"] = {killsRequired = 300, storage = 9037, exp = 20000},
["wild Warriors"] = {killsRequired = 250, storage = 9038, exp = 39000},
["slimes"] = {killsRequired = 290, storage = 9039, exp = 91000},
["hunters"] = {killsRequired = 385, storage = 9040, exp = 125000},
["bonebeast"] = {killsRequired = 500, storage = 9041, exp = 330000},
["elfs"] = {killsRequired = 300, storage = 9042, exp = 25000},
["elf scouts"] = {killsRequired = 400, storage = 9043, exp = 70000},
["elf arcanists"] = {killsRequired = 600, storage = 9044, exp = 355000},
["swamp trolls"] = {killsRequired = 100, storage = 9045, exp = 5250},
["frost trolls"] = {killsRequired = 200, storage = 9046, exp = 12000},
["bugs"] = {killsRequired = 100, storage = 9047, exp = 4000},
["hyaenas"] = {killsRequired = 140, storage = 9048, exp = 7800},
["stone golems"] = {killsRequired = 210, storage = 9049, exp = 22500},
["stalkers"] = {killsRequired = 400, storage = 9050, exp = 83000},
["ghosts"] = {killsRequired = 320, storage = 9051, exp = 90000},
["gargoyles"] = {killsRequired = 275, storage = 9052, exp = 99000},
["crypt shamblers"] = {killsRequired = 380, storage = 9053, exp = 160000},
["beholders"] = {killsRequired = 420, storage = 9054, exp = 110000},
["minotaur mages"] = {killsRequired = 335, storage = 9055, exp = 100000},
["monks"] = {killsRequired = 220, storage = 9056, exp = 115000},
["witches"] = {killsRequired = 80, storage = 9057, exp = 50000},
["polar bears"] = {killsRequired = 220, storage = 9058, exp = 42000},
["skeletons"] = {killsRequired = 400, storage = 9059, exp = 37000},
}
local monster = tasks[msg]
local tblMonsters, kills, totalKills, exp, money, item = {},{},{},{},{},{}
if (msgKeywords(msg, {"task","mission","work","kill"})) then
table.foreach(tasks, function(k, v)
if getPlayerStorageValue(cid, v.storage) >= 0 and getPlayerStorageValue(cid, v.storage) <= (v.killsRequired)+1 then
table.insert(tblMonsters, k) table.insert(kills, v.storage) table.insert(totalKills, v.killsRequired)
table.insert(exp, v.exp) table.insert(money, v.money) table.insert(item, v.item)
end
end)
if (#kills ~= 0) then
if (getPlayerStorageValue(cid, kills[1]) >= 0) and (getPlayerStorageValue(cid, kills[1]) < totalKills[1]) then
npcHandler:say("You haven't killed enough "..table.concat(tblMonsters, ", ").." yet. You need ["..totalKills[1]-getPlayerStorageValue(cid, kills[1]).."] kills left.", cid)
elseif (getPlayerStorageValue(cid, kills[1]) == totalKills[1]+1) then
npcHandler:say("Congratulations so you've got killed "..table.concat(tblMonsters, ", ").."! and passed the task. Here is your reward.", cid)
setPlayerStorageValue(cid, kills[1], getPlayerStorageValue(cid, kills[1]) + 1)
doPlayerAddExp(cid, exp[1])
doPlayerAddMoney(cid, money[1])
if (#item ~= 0) then
for i, v in ipairs(item) do
local container = doPlayerAddItem(cid, 1987, 1)
for i = 1, #v do
doAddContainerItem(container, v[i], 1)
end
end
end
talkState[talkUser] = 0
end
else
table.foreach(tasks, function(k, v) table.insert(tblMonsters, k) return nil end)
npcHandler:say("Ahh... you looking for a new mission. I'll reward you for "..table.concat(tblMonsters, ", ").." which one we are talking about?", cid)
talkState[talkUser] = 1
end
elseif (msgKeywords(msg, {"cancel","remove","skip","demission"})) then
npcHandler:say("Which task do you want to cancel? Don't forget that you'll lost previous killing are you sure?", cid)
talkState[talkUser] = 2
elseif monster and (talkState[talkUser] == 2) then
if (getPlayerStorageValue(cid, monster.storage) >= 0) and (getPlayerStorageValue(cid, monster.storage) < monster.killsRequired) then
npcHandler:say("Let it be! "..msg.." task has been canceled. ", cid)
setPlayerStorageValue(cid, monster.storage, -1)
talkState[talkUser] = 0
else
npcHandler:say("You can't cancel completed tasks.", cid)
end
elseif (monster and talkState[talkUser] == 1) then
npcHandler:say("Do you really want "..msg.." task?", cid)
killsRequired = monster.killsRequired storage = monster.storage premium = monster.premium
talkState[talkUser] = 3
elseif (msgKeywords(msg, {"yes","yep","yea","yeah"})) and (talkState[talkUser] == 3) then
if (premium ~= nil and premium == true) then
if (isPremium(cid) == FALSE) then
npcHandler:say("You need premium account in order to do "..msg.." task.", cid)
return false
end
end
if (getPlayerStorageValue(cid, storage) < 0) then
npcHandler:say("Alright then.. you have to kill ["..killsRequired.."] "..msg..". Good luck!", cid)
setPlayerStorageValue(cid, storage, 0)
talkState[talkUser] = 0
else
npcHandler:say("Sorry but you've got killed "..msg.." already and passed the task. Ask me for new tasks.", cid)
end
elseif (talkState[talkUser] == 1) or (talkState[talkUser] == 2) then
npcHandler:say("I don't understand. Can you repeat?", cid)
elseif (talkState[talkUser] == 3) then
npcHandler:say("Maybe later.", cid)
talkState[talkUser] = 0
end
return 1
end
npcHandler:setCallback(CALLBACK_GREET, MandusGreetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, MandusSayCallback)
npcHandler:addModule(FocusModule:new())