Advertisement
Guest User

Untitled

a guest
Jul 28th, 2021
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.47 KB | None | 0 0
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <mod name="Simple Task" version="4.0" author="Vodkart" contact="tibiaking.com" enabled="yes">
  3. <config name="task_func"><![CDATA[
  4. task_sys = {
  5. [1] = {name = "janemba", start = 176201, monsters_list = {"janemba lvl 1","janemba lvl 2","janemba lvl 3","janemba lvl 4","janemba lvl 5"}, level = 100, count = 500, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0},
  6. [2] = {name = "freeza", start = 176202, monsters_list = {"freeza lvl 1","freeza lvl 2","freeza lvl 3","freeza lvl 4","freeza lvl 5"}, level = 100, count = 700, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0},
  7. [3] = {name = "heaven soldier", start = 176203, monsters_list = {"heaven soldier lvl 1","heaven soldier lvl 2","heaven soldier lvl 3","heaven soldier lvl 4","heaven soldier lvl 5","heaven soldier lvl 6","heaven soldier lvl 7"}, level = 100, count = 700, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0},
  8. [4] = {name = "namekjin", start = 176204, monsters_list = {"namekjin lvl 1","namekjin lvl 2","namekjin lvl 3","namekjin lvl 4","namekjin lvl 5","namekjin lvl 6","namekjin lvl 7","namekjin lvl 8","namekjin lvl 9","namekjin lvl 10"}, level = 100, count = 1000, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0},
  9. [5] = {name = "Oozaru", start = 176205, monsters_list = {"Oozaru lvl 1","Oozaru lvl 2","Oozaru lvl 3","Oozaru lvl 4","Oozaru lvl 5","Oozaru lvl 6","Oozaru lvl 7"}, level = 100, count = 1300, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0},
  10. [6] = {name = "soldier", start = 176206, monsters_list = {"soldier lvl 1","soldier lvl 2","soldier lvl 3","soldier lvl 4","soldier lvl 5","soldier lvl 6"}, level = 100, count = 800, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0},
  11. [7] = {name = "tsufurjin", start = 176207, monsters_list = {"tsufurjin lvl 1","tsufurjin lvl 2","tsufurjin lvl 3","tsufurjin lvl 4","tsufurjin lvl 5","tsufurjin lvl 6"}, level = 100, count = 650, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0},
  12. [8] = {name = "zeltajin", start = 176208, monsters_list = {"zeltajin lvl 1","zeltajin lvl 2","zeltajin lvl 3","zeltajin lvl 4"}, level = 100, count = 1500, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0},
  13. [9] = {name = "majin", start = 176209, monsters_list = {"majin lvl 1","majin lvl 2","majin lvl 3","majin lvl 4","majin lvl 5"}, level = 100, count = 850, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0},
  14. [10] = {name = "mega mvp" ,start = 176210, monsters_list = {"xicor mega mvp","lost saiyan mega mvp","goku ssj5 mega mvp","tapion mega mvp","janemba mega mvp","c17 mega mvp","vegetto mega mvp","shin mega mvp","buu mega mvp","gohan mega mvp","goku god mega mvp","goku blue mega mvp","vegeta blue mega mvp","golden freeza mega mvp"}, level = 100, count = 666, points = 1, items = {}, reward = {{7528,2}}, exp = 0, money = 0}
  15. }
  16. daily_task = {
  17. [1] = {name = "Orcs" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 0, reward = {}, exp = 5000, money = 10000},
  18. [2] = {name = "TarantulaS" ,monsters_list = {"Tarantula"}, count = 120, points = 1, reward = {}, exp = 9000, money = 12000},
  19. [3] = {name = "Wyvern" ,monsters_list = {"Wyvern"}, count = 125, points = 2, reward = {}, exp = 9000, money = 15000},
  20. [4] = {name = "Dragons" ,monsters_list = {"Dragon","Dragon Hatchling"}, count = 150, points = 0, reward = {}, exp = 2000, money = 10000},
  21. [5] = {name = "Wailing Widows" ,monsters_list = {"Wailing Widows"}, count = 200, points = 1, reward = {}, exp = 20000, money = 25000},
  22. [6] = {name = "Ancient Scarabs" ,monsters_list = {"Ancient Scarab"}, count = 180, points = 5, reward = {}, exp = 22000, money = 18000},
  23. [7] = {name = "High Class Lizards" ,monsters_list = {"Corrupted Soul","Eternal Guardian","Lizard Chosen","Lizard Dragon Priest","Lizard High Guard","Lizard Legionnaire","Lizard Magistratus","Lizard Noble","Lizard Zaogun"}, count = 300, points = 3, reward = {}, exp = 50000, money = 60000},
  24. [8] = {name = "Mutated BatS" ,monsters_list = {"Mutated Bat"}, count = 260, points = 2, reward = {}, exp = 40000, money = 55000},
  25. [9] = {name = "Giant Spiders" ,monsters_list = {"Giant Spider"}, count = 350, points = 3, reward = {}, exp = 60000, money = 70000},
  26. [10] = {name = "Undead Dragons" ,monsters_list = {"Undead Dragon"}, count = 500, points = 3, reward = {{2173,1}}, exp = 90000, money = 120000},
  27. [11] = {name = "HydraS" ,monsters_list = {"Hydra"}, count = 600, points = 3, reward = {{2173,1}}, exp = 100000, money = 160000},
  28. [12] = {name = "Ghastly Dragons" ,monsters_list = {"Ghastly Dragon"}, count = 700, points = 3, reward = {{2173,1}}, exp = 130000, money = 200000}
  29. }
  30. task_sys_storages = {176601, 176602, 176603, 176604, 176605, 176606, 176607, 176608} -- task, points, count, daily task, daily count, daily time , daily start, contador
  31. function getTaskMission(cid)
  32. return getPlayerStorageValue(cid,task_sys_storages[1]) < 0 and 1 or getPlayerStorageValue(cid,task_sys_storages[1])
  33. end
  34. function getDailyTaskMission(cid)
  35. return getPlayerStorageValue(cid,task_sys_storages[4]) < 0 and 1 or getPlayerStorageValue(cid,task_sys_storages[4])
  36. end
  37. function getTaskPoints(cid)
  38. return getPlayerStorageValue(cid,task_sys_storages[2]) < 0 and 0 or getPlayerStorageValue(cid,task_sys_storages[2])
  39. end
  40. function doRandomDailyTask(cid)
  41. local t = {
  42. [{6,49}] = {1,3},
  43. [{50,79}] = {4,6},
  44. [{80,129}] = {7,9},
  45. [{130,math.huge}] = {10,12}
  46. }
  47. for a , b in pairs(t) do
  48. if getPlayerLevel(cid) >= a[1] and getPlayerLevel(cid) <= a[2] then
  49. return math.random(b[1], b[2])
  50. end
  51. end
  52. return 0
  53. end
  54. function GetRankTask(cid)
  55. local ranks = {
  56. [{1, 20}] = "Huntsman",
  57. [{21, 50}] = "Ranger",
  58. [{51, 100}] = "Big Game Hunter",
  59. [{101, 200}] = "Trophy Hunter",
  60. [{201, math.huge}] = "Elite Hunter"
  61. }
  62. for v , r in pairs(ranks) do
  63. if getTaskPoints(cid) >= v[1] and getTaskPoints(cid) <= v[2] then
  64. return r
  65. end
  66. end
  67. return 0
  68. end
  69. function getItemsFromList(items)
  70. local str = ''
  71. if table.maxn(items) > 0 then
  72. for i = 1, table.maxn(items) do
  73. str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1])
  74. if i ~= table.maxn(items) then str = str .. ', '
  75. end
  76. end
  77. end
  78. return str
  79. end
  80. function doRemoveItemsFromList(cid,items)
  81. local count = 0
  82. if table.maxn(items) > 0 then
  83. for i = 1, table.maxn(items) do
  84. if getPlayerItemCount(cid,items[i][1]) >= items[i][2] then
  85. count = count + 1 end
  86. end
  87. end
  88. if count == table.maxn(items) then
  89. for i = 1, table.maxn(items) do doPlayerRemoveItem(cid,items[i][1],items[i][2]) end
  90. else
  91. return false
  92. end
  93. return true
  94. end
  95. function getMonsterFromList(monster)
  96. local str = ''
  97. if #monster > 0 then
  98. for i = 1, #monster do
  99. str = str .. monster[i]
  100. if i ~= #monster then str = str .. ', ' end
  101. end
  102. end
  103. return str
  104. end
  105. function GiveRewardsTask(cid, items)
  106. local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID
  107. for _, i_i in ipairs(items) do
  108. local item, amount = i_i[1],i_i[2]
  109. if isItemStackable(item) or amount == 1 then
  110. doAddContainerItem(backpack, item, amount)
  111. else
  112. for i = 1, amount do
  113. doAddContainerItem(backpack, item, 1)
  114. end
  115. end
  116. end
  117. end
  118. function isSummon(cid)
  119. if(not isCreature(cid)) then
  120. return false
  121. end
  122. return getCreatureMaster(cid) ~= cid
  123. end
  124. ]]></config>
  125. <event type="login" name="TaskLogin" event="script"><![CDATA[
  126. function onLogin(cid)
  127. registerCreatureEvent(cid, "KillTask")
  128. registerCreatureEvent(cid, "TaskLook")
  129. return true
  130. end]]></event>
  131. <talkaction words="/task;!task" event="buffer"><![CDATA[
  132. domodlib('task_func')
  133. param,task,daily = param:lower(), getTaskMission(cid), getDailyTaskMission(cid)
  134. if isInArray({"counter","contador"},param) then
  135. setPlayerStorageValue(cid, task_sys_storages[8], getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and 1 or 0)
  136. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Task System] O contador foi "..(getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and "ativado" or "desativado")..".") return true
  137. elseif isInArray({"daily","diaria"},param) then
  138. if not daily_task[daily] or getPlayerStorageValue(cid, task_sys_storages[7]) <= 0 then
  139. doPlayerSendCancel(cid, "Desculpe, Mas você não está em nenhuma Daily Task.") return true
  140. elseif getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily_task[daily].count then
  141. doPlayerSendCancel(cid,"Desculpe, Mas Você não terminou a Daily Task a tempo! Por favor volte ao npc e comece uma nova Daily Task!") return true
  142. end
  143. return doShowTextDialog(cid, 8983, "[->] CURRENT DAILY TASK INFO [<-]\n\nNome: "..daily_task[daily].name.."\nProgresso: ["..(getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 0 or getPlayerStorageValue(cid, task_sys_storages[5])).."/"..daily_task[daily].count.."]\nPrazo para entrega: "..os.date("%d %B %Y %X ", getPlayerStorageValue(cid,task_sys_storages[6])).."\nMonstros para caçar: "..getMonsterFromList(daily_task[daily].monsters_list).."\n\n[->] CURRENT TASK REWARDS [<-]\n\nMoney: "..(daily_task[daily].money > 0 and daily_task[daily].money or 0).."\nExperiencia: "..(daily_task[daily].exp > 0 and daily_task[daily].exp or 0).."\nTask Points: "..daily_task[daily].points.."\nItems: "..(#daily_task[daily].reward > 0 and getItemsFromList(daily_task[daily].reward) or "Nenhum item de recompensa")..".")
  144. end
  145. if not task_sys[task] or getPlayerStorageValue(cid, task_sys[task].start) <= 0 then
  146. doPlayerSendCancel(cid, "você não está em nenhuma task.") return true
  147. end
  148. return doShowTextDialog(cid, 8983, "-> CURRENT TASK ["..getTaskMission(cid).."/"..#task_sys.."] <-\n\nTask Name: "..task_sys[task].name.."\nTask Level: "..task_sys[task].level.."\nTask Progress: ["..(getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 0 or getPlayerStorageValue(cid, task_sys_storages[3])).."/"..task_sys[task].count.."]\nMonster To Hunt: "..getMonsterFromList(task_sys[task].monsters_list)..".\nItens Para Entrega: "..(#task_sys[task].items > 0 and getItemsFromList(task_sys[task].items) or "Nenhum")..".\n\n[->] CURRENT TASK REWARDS [<-]\n\nReward Money: "..(task_sys[task].money > 0 and task_sys[task].money or 0).."\nReward Experiencia: "..(task_sys[task].exp > 0 and task_sys[task].exp or 0).."\nReward Points: "..task_sys[task].points.."\nRedward Items: "..(#task_sys[task].reward > 0 and getItemsFromList(task_sys[task].reward) or "Nenhum item de recompensa")..".")
  149. ]]></talkaction>
  150. <event type="look" name="TaskLook" event="script"><![CDATA[
  151. domodlib('task_func')
  152. function onLook(cid, thing, position, lookDistance)
  153. if isPlayer(thing.uid) and getTaskPoints(thing.uid) > 0 then
  154. doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").. " is a "..GetRankTask(thing.uid))
  155. end
  156. return true
  157. end]]></event>
  158. <event type="kill" name="KillTask" event="script"><![CDATA[
  159. domodlib('task_func')
  160. function onKill(cid, target)
  161. if isPlayer(cid) and isMonster(target) then
  162. local t,daily = task_sys[getTaskMission(cid)], daily_task[getDailyTaskMission(cid)]
  163. if t and getPlayerStorageValue(cid, t.start) > 0 and isInArray(t.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
  164. setPlayerStorageValue(cid, task_sys_storages[3], getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[3])+1))
  165. if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
  166. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[3]) .. "/" .. t.count .. "] da Task do " .. t.name .. ".")
  167. end
  168. if getPlayerStorageValue(cid, task_sys_storages[3]) >= t.count then
  169. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] You have finished the Task of "..t.name..", go back to npc seems to get your reward.")
  170. end
  171. end
  172. if daily and getPlayerStorageValue(cid, task_sys_storages[7]) > 0 and getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() >= 0 and isInArray(daily.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
  173. setPlayerStorageValue(cid, task_sys_storages[5], getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[5])+1))
  174. if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
  175. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Daily Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[5]) .. "/" .. daily.count .. "] da Task do " .. daily.name .. ".")
  176. end
  177. if getPlayerStorageValue(cid, task_sys_storages[5]) >= daily.count then
  178. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Daily Task System] Congratulations! You have finished the Task of "..daily.name..", go back to npc seems to get your reward.")
  179. end
  180. end
  181. end
  182. return true
  183. end]]></event>
  184. <movevent type="StepIn" actionid ="45250" event="script"><![CDATA[
  185. domodlib('task_func')
  186. function onStepIn(cid, item, position, fromPosition)
  187. local amount = 5
  188. if getTaskPoints(cid) < amount then
  189. doTeleportThing(cid, fromPosition, true)
  190. doPlayerSendTextMessage(cid, 25, "You can only pass if you have already completed up to task 5")
  191. doSendMagicEffect(getThingPos(cid), 2)
  192. return true
  193. end
  194. return true
  195. end]]></movevent>
  196. </mod>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement