Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <mod name="Simple Task" version="3.0" author="Vodkart" contact="tibiaking.com" enabled="yes">
- <config name="task_func"><![CDATA[
- tasktabble = {
- ["rats"] = {monster_race={"rat","cave rat"}, storage_start = 200201, storage = 91001,count = 50,exp = 500,money = 500},
- ["troll"] = {monster_race={"troll","frost troll","swamp troll"}, storage_start = 200202, storage = 91002,count = 150,exp = 0,money = 800},
- ["rotworm"] = {monster_race={"rotworm","carrion worm"}, storage_start = 200203, storage = 91003,count = 300,exp = 1000,money = 800},
- ["cyclops"] = {monster_race={"cyclops","cyclops smith","cyclops drone"}, storage_start = 200204, storage = 91004,count = 300,exp = 2000,money = 1000},
- ["thornback tortoise"] = {monster_race={"thornback tortoise"}, storage_start = 200205, storage = 91005,count = 300,exp = 1500,money = 0},
- ["tarantula"] = {monster_race={"tarantula"}, storage_start = 200206, storage = 91006,count = 300,exp = 1500, money = 0, reward = {{5879,1}}},
- ["monkey"] = {monster_race={"konkra","sibang","merlkin"}, storage_start = 200207, storage = 91007,count = 300,exp = 1000,money = 0},
- ["pirate two"] = {monster_race={"pirate buccaneer","pirate corsair","pirate cutthroat","pirate ghost","pirate marauder","pirate skeleton"}, storage_start = 200208, storage = 91008,count = 300,exp = 10000,money = 5000},
- ["minotaur"] = {monster_race={"minotaur","minotaur archer","minotaur mage","minotaur guard"}, storage_start = 200209, storage = 91009,count = 20},
- ["mammoth"] = {monster_race={"mammoth"}, storage_start = 200210, storage = 91010,count= 300},
- ["carniphila"] = {monster_race={"carniphila"}, storage_start = 200211, storage = 91011,count= 150, exp = 2500},
- ["stone golem"] = {monster_race={"stone golem"}, storage_start = 200212, storage = 91012,count= 200, exp = 2000},
- ["ice golem"] = {monster_race={"ice golem"}, storage_start = 200213, storage = 91013,count= 300, exp = 12000},
- ["dragon"] = {monster_race={"dragon","dragon lord"}, storage_start = 200214, storage = 91014,count= 1000, exp = 25000},
- ["giant spider"] = {monster_race={"giant spider"}, storage_start = 200215, storage = 91016,count = 500, exp = 20000, money = 0, reward = {{5886,1}}},
- ["ancient scarab"] = {monster_race={"ancient scarab"}, storage_start = 200217, storage = 91017,count = 300, exp = 15000, money = 10000, reward = {{2181,1}}},
- ["crystal spider"] = {monster_race={"crystal spider"}, storage_start = 200218, storage = 91018,count = 300, exp = 15000, money = 0},
- ["bonebeast"] = {monster_race={"bonebeast"}, storage_start = 200219, storage = 91019,count = 300, exp = 12000, money = 0},
- ["nightmare"] = {monster_race={"nightmare"}, storage_start = 200220, storage = 91020,count = 400, exp = 25000, money = 30000},
- ["hydra"] = {monster_race={"hydra"}, storage_start = 200221, storage = 91021,count = 650, exp = 30000, money = 0, reward = {{2195,1}}},
- ["quara"] = {monster_race={"quara predator","quara constrictor","quara hydromancer","quara mantassin","quara pincher"}, storage_start = 200222, storage = 91022,count = 600, exp = 15000 money = 0},
- ["serpent spawn"] = {monster_race={"serpent spawn"}, storage_start = 200223, storage = 91023,count = 800, exp = 30000, money = 0, reward = {{10309,1}}},
- ["medusa"] = {monster_race={"medusa"}, storage_start = 200224, storage = 91024,count = 500, exp = 40000, money = 25000},
- ["behemoth"] = {monster_race={"behemoth"}, storage_start = 200224, storage = 91024,count = 500, exp = 40000, money = 25000},
- }
- configbosses_task = {
- {race = "minotaur",Playerpos = {x = 189, y = 57, z = 7}, FromPosToPos = {{x = 186, y = 54, z = 7},{x = 193, y = 60, z = 7}},time = 5},
- {race = "necromancer",Playerpos = {x = 196, y = 39, z = 7}, FromPosToPos = {{x = 195, y = 37, z = 7},{x = 198, y = 41, z = 7}}, time = 5},
- {race = "dragon",Playerpos = {x = 208, y = 59, z = 7}, FromPosToPos = {{x = 206, y = 56, z = 7},{x = 209, y = 65, z = 7}}, time = 5}
- }
- function CheckTask(cid)
- for k, v in pairs(tasktabble) do
- if getPlayerStorageValue(cid,v.storage_start) >= 1 then return true end
- end
- return false
- end
- function finisheAllTask(cid)
- local config = {
- exp = {true,100000},
- money = {true,200000},
- items ={false,{{2124,2},{2173,1}}},
- premium ={true,5}
- }
- local x = true
- for k, v in pairs(tasktabble) do
- if tonumber(getPlayerStorageValue(cid,v.storage)) then
- x = false
- end
- end
- if x == true then
- setPlayerStorageValue(cid, 521456, 0)
- local b = getGlobalStorageValue(63005) if b == -1 then b = 1 end
- if b < 11 then
- setGlobalStorageValue(63005,b+1)
- doBroadcastMessage('[Task Mission Complete] '..getCreatureName(cid)..' was the '..b..' to finish the task!.')
- doPlayerAddPremiumDays(cid, config.premium[1] == true and config.premium[2] or 0)
- doPlayerAddExp(cid, config.exp[1] == true and config.exp[2] or 0)
- doPlayerAddMoney(cid, config.money[1] == true and config.money[2] or 0)
- if config.items[1] == true then doAddItemsFromList(cid,config.items[2]) end
- doItemSetAttribute(doPlayerAddItem(cid, 7369), "name", "trophy "..getCreatureName(cid).." completed all the task.")
- end
- end
- end
- function HavePlayerPosition(cid, from, to)
- return isInRange(getPlayerPosition(cid), from, to) and true or false
- end
- function getRankStorage(cid, value, max, RankName) -- by vodka
- local str =""
- str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n\n"
- local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY cast(value as INTEGER) DESC;")
- if (query:getID() ~= -1) then k = 1 repeat if k > max then break end
- str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "]"
- k = k + 1 until not query:next() end return doShowTextDialog(cid, 2529, str)
- end
- function getItemsInContainerById(container, itemid) -- Function By Kydrai
- local items = {}
- if isContainer(container) and getContainerSize(container) > 0 then
- for slot=0, (getContainerSize(container)-1) do
- local item = getContainerItem(container, slot)
- if isContainer(item.uid) then
- local itemsbag = getItemsInContainerById(item.uid, itemid)
- for i=0, #itemsbag do
- table.insert(items, itemsbag[i])
- end
- else
- if itemid == item.itemid then
- table.insert(items, item.uid)
- end
- end
- end
- end
- return items
- end
- function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo
- local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid)
- local piles = 0
- if #item > 0 then
- for i,x in pairs(item) do
- if getThing(x).type < 100 then
- local it = getThing(x)
- doTransformItem(it.uid, itemid, it.type+quant)
- if it.type+quant > 100 then
- doPlayerAddItem(cid, itemid, it.type+quant-100)
- end
- else
- piles = piles+1
- end
- end
- else
- return doPlayerAddItem(cid, itemid, quant)
- end
- if piles == #item then
- doPlayerAddItem(cid, itemid, quant)
- end
- end
- function getItemsFromList(items) -- by vodka
- local str = ''
- if table.maxn(items) > 0 then
- for i = 1, table.maxn(items) do
- str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1])
- if i ~= table.maxn(items) then str = str .. ', ' end end end
- return str
- end
- function doAddItemsFromList(cid,items) -- by vodka
- if table.maxn(items) > 0 then
- for i = 1, table.maxn(items) do
- local count = items[i][2]
- while count > 0 do
- if isItemStackable(items[i][1]) then
- doPlayerAddItemStacking(cid, items[i][1], 1)
- else
- doPlayerAddItem(cid, items[i][1],1)
- end
- count = count - 1
- end
- end
- end
- end
- function pairsByKeys(t, f)
- local a = {}
- for n in pairs(t) do table.insert(a, n) end
- table.sort(a, f)
- local i = 0
- local iter = function ()
- i = i + 1
- if a[i] == nil then return nil
- else return a[i], t[a[i]]
- end
- end
- return iter
- end
- ]]></config>
- <event type="login" name="TaskLogin" event="script"><![CDATA[
- function onLogin(cid)
- registerCreatureEvent(cid, "KillTask")
- return true
- end]]></event>
- <talkaction words="/task;!task" event="buffer"><![CDATA[
- domodlib('task_func')
- local param = string.lower(param)
- if param == "rank" then
- getRankStorage(cid, 521456, 20, "Task Rank Finalizadas") return true
- end
- local str = ""
- str = str .. "Task Completed :\n\n"
- for k, v in pairsByKeys(tasktabble) do
- local contagem = getPlayerStorageValue(cid, v.storage)
- if (contagem == -1) then contagem = 1 end
- str = str..k.." = ".. (not tonumber(contagem) and "["..contagem.."]" or "["..((contagem)-1).."/"..v.count.."]") .."\n"
- end
- str = str .. ""
- return doShowTextDialog(cid, 8983, str)
- ]]></talkaction>
- <event type="kill" name="KillTask" event="script"><![CDATA[
- domodlib('task_func')
- function onKill(cid, target, lastHit)
- if(isMonster(target) == true) then
- local n = string.lower(getCreatureName(target))
- for race, mob in pairs(tasktabble) do
- if getPlayerStorageValue(cid,mob .storage_start) >= 1 then
- for i = 1,#mob.monster_race do
- if n == mob.monster_race[i] then
- local contagem = getPlayerStorageValue(cid, mob.storage)
- if (contagem == -1) then contagem = 1 end
- if not tonumber(contagem) then return true end
- if contagem > mob.count then return true end
- if contagem > mob.count then return true end
- setPlayerStorageValue(cid, mob.storage, contagem+1)
- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,""..(contagem == mob.count and "Congratulations! You finished the task of "..race.."." or "You killed " .. contagem .. " off " .. mob.count .. " " .. race .. "s.").."")
- end
- end
- end
- end
- end
- return true
- end]]></event>
- </mod>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement