Oskar1121

Untitled

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