Oskar1121

Untitled

Sep 15th, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.92 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <mod name="Task System" version="0.4.0" author="Oskar" contact="[email protected]" enabled="yes">
  3. <config name="tasks_conf"><![CDATA[
  4. REWARD_ITEM = 0
  5. REWARD_EXP = 1
  6. REWARD_MONEY = 2
  7. REWARD_ADDON = 3
  8. REWARD_SKILL = 4
  9. REWARD_STORAGE = 5
  10. REWARD_LEVEL = 6
  11.  
  12. AUTO_TASK_LIST = {
  13. [1] = {
  14. details = {'wolf', 'hollow snake', 'giant hollow snake', 'hollow wolf'}, totalKills = 200, storage = 2001, name = 'animals',
  15. rewards = {REWARD_ITEM, 2152, 5, REWARD_EXP, 0, 500}, -- 250 expa/500 gp -->
  16. },
  17. [2] = {
  18. details = {'bandit', 'rukongai bandit', 'mafioso'}, totalKills = 300, storage = 2002, name = 'bandits',
  19. rewards = {REWARD_ITEM, 2152, 10, REWARD_EXP, 0, 750}, -- 750 expa/1k -->
  20. },
  21. [3] = {
  22. details = {'pirate', 'pirate captain', 'hunter'}, totalKills = 500, storage = 2003, name = 'opositions',
  23. rewards = {REWARD_ITEM, 4865, 5, REWARD_EXP, 0, 2000}, -- 2000 expa/5 hunter soul -->
  24. },
  25. [4] = {
  26. details = {'academy shinigami', 'shinigami', 'shinigami captain', 'exiled shinigami'}, totalKills = 750, storage = 2004, name = 'shinigamis',
  27. rewards = {REWARD_ITEM, 5882, 1, REWARD_EXP, 0, 4500}, -- 4500 expa/symbol 12 oddzialu -->
  28. },
  29. [5] = {
  30. details = {'tsumibito', 'togabito', 'shuren', 'kushanada', 'hell guard'}, totalKills = 1000, storage = 2005, name = 'hell guards',
  31. rewards = {REWARD_ITEM, 5881, 1, REWARD_EXP, 0, 6000}, -- 6000 expa/symbol 11 oddzialu -->
  32. },
  33. [6] = {
  34. details = {'metal golem', 'golden metal'}, totalKills = 1000, storage = 2006, name = 'metals',
  35. rewards = {REWARD_ITEM, 2173, 1, REWARD_EXP, 0, 8000}, -- 8000 expa/amulet of loss -->
  36. },
  37. [7] = {
  38. details = {'fire skeleton', 'vampire', 'zombie'}, totalKills = 1000, storage = 2007, name = 'undeads',
  39. rewards = {REWARD_ITEM, 5879, 1, REWARD_EXP, 0, 10000}, -- 10000 expa/symbol 9 oddzialu -->
  40. },
  41. [8] = {
  42. details = {'blank', 'dark blank', 'fury blank'}, totalKills = 1000, storage = 2008, name = 'blanks',
  43. rewards = {REWARD_ITEM, 5877, 1, REWARD_EXP, 0, 20000}, -- 20000 expa/symbol 7 oddzialu -->
  44. },
  45. [9] = {
  46. details = {'ninja', 'white ninja'}, totalKills = 750, storage = 2009, name = 'ninjas',
  47. rewards = {REWARD_ITEM, 5876, 1, REWARD_EXP, 0, 60000}, -- 60000 expa/symbol 6 oddzialu -->
  48. },
  49. [10] = {
  50. details = {'hollow', 'hollow spider', 'hollow bird', 'elder hollow bird', 'menos grande', 'adjuchas', 'arrancar'}, totalKills = 3000, storage = 2010, name = 'hollows',
  51. rewards = {REWARD_ITEM, 5899, 1, REWARD_EXP, 0, 100000}, -- 100000 expa/stamina pill -->
  52. },
  53. [11] = {
  54. details = {'lava golem', 'marble golem', 'water golem'}, totalKills = 1000, storage = 2011, name = 'golems',
  55. rewards = {REWARD_ITEM, 4872, 1, REWARD_EXP, 0, 175000}, -- 175000 expa/symbol 3 oddzialu -->
  56. },
  57. [12] = {
  58. details = {'bakkouto member', 'bakkouto warrior', 'bakkouto leader'}, totalKills = 1000, storage = 2012, name = 'bakkoutos',
  59. rewards = {REWARD_ITEM, 8979, 5, REWARD_EXP, 0, 250000}, -- 250000 expa/5 x kaien soul -->
  60. },
  61. [13] = {
  62. details = {'samurai', 'hollow samurai', 'red samurai'}, totalKills = 1000, storage = 2013, name = 'samurais',
  63. rewards = {REWARD_ITEM, 4871, 1, REWARD_EXP, 0, 350000}, -- 350000 expa/symbol 2 oddzialu -->
  64. },
  65. [14] = {
  66. details = {'kidou corps member', 'kidou corps mage', 'kidou corps commander'}, totalKills = 1000, storage = 2014, name = 'kidou corps',
  67. rewards = {REWARD_ITEM, 8865, 1, REWARD_EXP, 0, 500000}, -- 500000 expa/espada coat -->
  68. },
  69. [15] = {
  70. details = {'hollow shinigami', 'hollow captain shinigami'}, totalKills = 1000, storage = 2015, name = 'hollow shinigamis',
  71. rewards = {REWARD_ITEM, 4870, 1, REWARD_EXP, 0, 500000}, -- 500000 expa/symbol 1 oddzialu -->
  72. },
  73. [16] = {
  74. details = {'omnitsukido member', 'omnitsukido commander', 'omnitsukido leader'}, totalKills = 2000, storage = 2016, name = 'omnitsukidos',
  75. rewards = {REWARD_ITEM, 4870, 1, REWARD_EXP, 0, 500000}, -- 500000 expa/symbol 1 oddzialu -->
  76. },
  77. [17] = {
  78. details = {'fullbring member', 'fullbring warrior', 'fullbring leader'}, totalKills = 5000, storage = 2017, name = 'fullbrings',
  79. rewards = {REWARD_ITEM, 4870, 1, REWARD_EXP, 0, 500000}, -- 500000 expa/symbol 1 oddzialu -->
  80. },
  81. }
  82. ]]></config>
  83.  
  84. <event type="kill" name="taskKill" event="script"><![CDATA[
  85. domodlib('tasks_conf')
  86.  
  87. local function doTakeReward(cid, var)
  88. for i = 1, #var / 3 do
  89. if var[i * 3 - 2] == REWARD_ITEM then
  90. print('var[i * 3 - 1]: ' .. var[i * 3 - 1] .. ', var[i * 3]: ' .. var[i * 3])
  91. doPlayerAddItem(cid, var[i * 3 - 1], var[i * 3])
  92. elseif var[i * 3 - 2] == REWARD_EXP then
  93. doAddExp(cid, var[i * 3])
  94. elseif var[i * 3 - 2] == REWARD_STORAGE then
  95. doCreatureSetStorage(cid, var[i * 3 - 1], var[i * 3])
  96. elseif var[i * 3 - 2] == REWARD_MONEY then
  97. doPlayerAddMoney(cid, var[i * 3])
  98. elseif var[i * 3 - 2] == REWARD_SKILL then
  99. doPlayerSetSkill(cid, var[i * 3 - 1], getPlayerSkillLevel(cid, var[i * 3 - 1]) + var[i * 3])
  100. elseif var[i * 3 - 2] == REWARD_ADDON then
  101. doPlayerAddOutfit(cid, (getPlayerSex(cid) == 0 and var[i * 3 - 1][1] or var[i * 3 - 1][2]), var[i * 3])
  102. elseif var[i * 3 - 2] == REWARD_LEVEL then
  103. doPlayerAddLevel(cid, var[i * 3])
  104. end
  105. end
  106. end
  107.  
  108. local function getTaskByName(name)
  109. for _, v in pairs(AUTO_TASK_LIST) do
  110. for i = 1, #v.details do
  111. if name == v.details[i]:lower() then
  112. return v
  113. end
  114. end
  115. end
  116.  
  117. return false
  118. end
  119.  
  120. function onKill(cid, target)
  121. if not isMonster(target) or not isPlayer(cid) then
  122. return true
  123. end
  124.  
  125. local var = getTaskByName(getCreatureName(target):lower())
  126. if not var then
  127. return true
  128. end
  129.  
  130. local storage = math.max(0, getCreatureStorage(cid, var.storage))
  131. if storage >= var.totalKills then
  132. return true
  133. end
  134.  
  135. storage = storage + 1
  136. if storage >= var.totalKills then
  137. doTakeReward(cid, var.rewards)
  138. doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Congratulations! You finished ' .. var.name .. ' task.')
  139. else
  140. doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You have killed ' .. var.name .. '. [' .. storage .. '/' .. var.totalKills .. '].')
  141. end
  142.  
  143. doCreatureSetStorage(cid, var.storage, storage)
  144. return true
  145. end
  146. ]]></event>
  147.  
  148. <talkaction words='!mission' event='script'><![CDATA[
  149. domodlib('tasks_conf')
  150.  
  151. function onSay(cid, words, param, channel)
  152. local message = 'Your task list'
  153. for i = 1, #AUTO_TASK_LIST do
  154. local var = AUTO_TASK_LIST[i]
  155. message = message .. '\n' .. i .. '. You have killed ' .. var.name .. '. [' .. math.max(0, getCreatureStorage(cid, var.storage)) .. '/' .. var.totalKills .. '].'
  156. end
  157.  
  158. doPlayerPopupFYI(cid, message)
  159. end
  160.  
  161. ]]></talkaction>
  162.  
  163. <event type="login" name="taskLogin" event="script"><![CDATA[
  164.  
  165. function onLogin(cid)
  166. registerCreatureEvent(cid, 'taskKill')
  167. return true
  168. end
  169. ]]></event>
  170. </mod>
Advertisement
Add Comment
Please, Sign In to add comment