Oskar1121

Untitled

Sep 15th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.84 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 = 1
  5. REWARD_EXP = 2
  6. REWARD_MONEY = 3
  7. REWARD_ADDON = 4
  8. REWARD_SKILL = 5
  9. REWARD_STORAGE = 6
  10. REWARD_LEVEL = 7
  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. doPlayerAddItem(cid, var[i * 3 - 1], var[i * 3])
  91. elseif var[i * 3 - 2] == REWARD_EXP then
  92. doAddExp(cid, var[i * 3])
  93. elseif var[i * 3 - 2] == REWARD_STORAGE then
  94. doCreatureSetStorage(cid, var[i * 3 - 1], var[i * 3])
  95. elseif var[i * 3 - 2] == REWARD_MONEY then
  96. doPlayerAddMoney(cid, var[i * 3])
  97. elseif var[i * 3 - 2] == REWARD_SKILL then
  98. doPlayerSetSkill(cid, var[i * 3 - 1], getPlayerSkillLevel(cid, var[i * 3 - 1]) + var[i * 3])
  99. elseif var[i * 3 - 2] == REWARD_ADDON then
  100. doPlayerAddOutfit(cid, (getPlayerSex(cid) == 0 and var[i * 3 - 1][1] or var[i * 3 - 1][2]), var[i * 3])
  101. elseif var[i * 3 - 2] == REWARD_LEVEL then
  102. doPlayerAddLevel(cid, var[i * 3])
  103. end
  104. end
  105. end
  106.  
  107. local function getTaskByName(name)
  108. for _, v in pairs(AUTO_TASK_LIST) do
  109. for i = 1, #v.details do
  110. if name == v.details[i]:lower() then
  111. return v
  112. end
  113. end
  114. end
  115.  
  116. return false
  117. end
  118.  
  119. function onKill(cid, target)
  120. if not isMonster(target) or not isPlayer(cid) then
  121. return true
  122. end
  123.  
  124. local var = getTaskByName(getCreatureName(target):lower())
  125. if not var then
  126. return true
  127. end
  128.  
  129. local storage = math.max(0, getCreatureStorage(cid, var.storage))
  130. if storage >= var.totalKills then
  131. return true
  132. end
  133.  
  134. storage = storage + 1
  135. if storage >= var.totalKills then
  136. doTakeReward(cid, var.rewards)
  137. doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Congratulations! You finished ' .. var.name .. ' task.')
  138. else
  139. doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You have killed ' .. var.name .. '. [' .. storage .. '/' .. var.totalKills .. '].')
  140. end
  141.  
  142. doCreatureSetStorage(cid, var.storage, storage)
  143. return true
  144. end
  145. ]]></event>
  146.  
  147. <talkaction words='!mission' event='script'><![CDATA[
  148. domodlib('tasks_conf')
  149.  
  150. function onSay(cid, words, param, channel)
  151. local message = 'Your task list'
  152. for i = 1, #AUTO_TASK_LIST do
  153. local var = AUTO_TASK_LIST[i]
  154. message = message .. '\n' .. i .. '. You have killed ' .. var.name .. '. [' .. math.max(0, getCreatureStorage(cid, var.storage)) .. '/' .. var.totalKills .. '].'
  155. end
  156.  
  157. doPlayerPopupFYI(cid, message)
  158. end
  159.  
  160. ]]></talkaction>
  161.  
  162. <event type="login" name="taskLogin" event="script"><![CDATA[
  163.  
  164. function onLogin(cid)
  165. registerCreatureEvent(cid, 'taskKill')
  166. return true
  167. end
  168. ]]></event>
  169. </mod>
Advertisement
Add Comment
Please, Sign In to add comment