deadx2

Untitled

Aug 15th, 2017
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.00 KB | None | 0 0
  1. achievements = {}
  2. achievements['Level'] =
  3. {
  4. {10, 10},
  5. {15, 15},
  6. {20, 20},
  7. {25, 25},
  8. {30, 30},
  9. {35, 35},
  10. {40, 40},
  11. {45, 45},
  12. {50, 50},
  13. {55, 55},
  14. {60, 60},
  15. {65, 65},
  16. {70, 70},
  17. {75, 75},
  18. {80, 80},
  19. {85, 85},
  20. {90, 90},
  21. {95, 95},
  22. {100, 100},
  23. {105, 105},
  24. {110, 110},
  25. {115, 115},
  26. {120, 120},
  27. {125, 125},
  28. {130, 130},
  29. {135, 135},
  30. {140, 140},
  31. {145, 145},
  32. {150, 150},
  33. {151, 155},
  34. {152, 160},
  35. {153, 165},
  36. {154, 170},
  37. {155, 175}
  38. }
  39. achievements['Mobs'] = {}
  40. achievements['Mobs']['MIDX'] = {
  41.     [1] = {101},
  42. }
  43. achievements['Mobs'][101] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
  44. --achievements['Mobs'][102] = {{29, 29}}
  45. achievements['Mobs2'] = {}
  46. achievements['Mobs2']['MIDX'] = {
  47.     [1] = {5391},
  48. }
  49. achievements['Mobs2'][5391] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
  50. achievements['Mobs3'] = {}
  51. achievements['Mobs3']['MIDX'] = {
  52.     [1] = {5191},
  53. }
  54. achievements['Mobs3'][5191] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
  55. achievements['Mobs4'] = {}
  56. achievements['Mobs4']['MIDX'] = {
  57.     [1] = {5291},
  58. }
  59. achievements['Mobs4'][5291] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
  60. achievements['Metins'] = {}
  61. achievements['Metins']['MIDX'] = {
  62.     [1] = {9001},
  63. }
  64. achievements['Metins'][9001] = {{2, 10}, {5, 15}}
  65. achievements['Bosses'] = {}
  66. achievements['Bosses']['MIDX'] = {
  67.     [1] = {691},
  68. }
  69. achievements['Bosses'][691] = {{5, 50}, {10, 100}}
  70. achievements['PlayedTime'] = {{500, 50}, {2000, 200}, {5000, 500}, {10000, 1000}, {17500, 3000}, {25000, 5000}, {40000, 8000}, {50000, 10000}}
  71. achievements['Pvp'] = {{2, 300}, {5, 600}, {8, 900}, {10, 1200}, {1750, 1500}, {2000, 1800}, {2650, 2200}, {3000, 2600}, {4250, 3200}, {5000, 4000}}
  72.  
  73. function achievements.getf(flag)
  74.     return pc.getf("achievements", flag)
  75. end
  76.  
  77. function achievements.setf(flag, value)
  78.     pc.setf("achievements", flag, value)
  79. end
  80.  
  81. function achievements.load_achievements()
  82.     local levels,mobs,mobs2,mobs3,mobs4,bosses,metins = achievements['Level'],achievements['Mobs'],achievements['Mobs2'],achievements['Mobs3'],achievements['Mobs4'],achievements['Bosses'],achievements['Metins']--,achievements['PlayedTime']--,achievements['Pvp']
  83. --  if achievements['Mobs']['MIDX'][pc.get_map_index()] ~= nil then
  84. --      for index, value in pairs(achievements['Mobs']['MIDX'][pc.get_map_index()]) do local mobInfoTab = achievements.getAchievementInfo(value, 'Mobs') if mobInfoTab ~= nil then for i = 1, table.getn(mobInfoTab) do cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#2#%d#%d#%d#%d", achievements.getf(string.format("mob_kills_%d", value)), mobInfoTab[i][1], mobInfoTab[i][2], value)) end end end
  85. --  end
  86.     for index, value in pairs(achievements['Mobs']['MIDX'][pc.get_map_index()]) do
  87.         local mobInfoTab = achievements.getAchievementInfo(value, 'Mobs')
  88.         if mobInfoTab ~= nil then
  89.             for i = 1, table.getn(mobInfoTab) do
  90.                 cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#2#%d#%d#%d#%d", achievements.getf(string.format("mob_kills_%d", value)), mobInfoTab[i][1], mobInfoTab[i][2], value))
  91.             end
  92.         end
  93.     end
  94.     if achievements['Mobs2']['MIDX'][pc.get_map_index()] ~= nil then
  95.         for index, value in pairs(achievements['Mobs2']['MIDX'][pc.get_map_index()]) do local mobInfoTab2 = achievements.getAchievementInfo(value, 'Mobs2') if mobInfoTab2 ~= nil then for i = 1, table.getn(mobInfoTab2) do cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#6#%d#%d#%d#%d", achievements.getf(string.format("mob2_kills_%d", value)), mobInfoTab2[i][1], mobInfoTab2[i][2], value)) end end end
  96.     end
  97.     if achievements['Mobs3']['MIDX'][pc.get_map_index()] ~= nil then
  98.         for index, value in pairs(achievements['Mobs3']['MIDX'][pc.get_map_index()]) do local mobInfoTab3 = achievements.getAchievementInfo(value, 'Mobs3') if mobInfoTab3 ~= nil then for i = 1, table.getn(mobInfoTab3) do cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#7#%d#%d#%d#%d", achievements.getf(string.format("mob3_kills_%d", value)), mobInfoTab3[i][1], mobInfoTab3[i][2], value)) end end end
  99.     end
  100.     if achievements['Mobs4']['MIDX'][pc.get_map_index()] ~= nil then
  101.         for index, value in pairs(achievements['Mobs4']['MIDX'][pc.get_map_index()]) do local mobInfoTab4 = achievements.getAchievementInfo(value, 'Mobs4') if mobInfoTab4 ~= nil then for i = 1, table.getn(mobInfoTab4) do cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#5#%d#%d#%d#%d", achievements.getf(string.format("mob4_kills_%d", value)), mobInfoTab4[i][1], mobInfoTab4[i][2], value)) end end end
  102.     end
  103.     if achievements['Bosses']['MIDX'][pc.get_map_index()] ~= nil then
  104.         for index, value in pairs(achievements['Bosses']['MIDX'][pc.get_map_index()]) do local bossInfoTab = achievements.getAchievementInfo(value, 'Bosses') if bossInfoTab ~= nil then for i = 1, table.getn(bossInfoTab) do cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#3#%d#%d#%d#%d", achievements.getf(string.format("boss_kills_%d", value)), bossInfoTab[i][1], bossInfoTab[i][2], value)) end end end
  105.     end
  106.     if achievements['Metins']['MIDX'][pc.get_map_index()] ~= nil then
  107.         for index, value in pairs(achievements['Metins']['MIDX'][pc.get_map_index()]) do local metinInfoTab = achievements.getAchievementInfo(value, 'Metins') if metinInfoTab ~= nil then for i = 1, table.getn(metinInfoTab) do cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#4#%d#%d#%d#%d", achievements.getf(string.format("metin_kills_%d", value)), metinInfoTab[i][1], metinInfoTab[i][2], value)) end end end
  108.     end
  109.     for i = 1, table.getn(levels) do
  110.         cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#1#%d#%d#%d#%d", pc.get_level(), levels[i][1], levels[i][2], 0))
  111.     end
  112. --  for i = 1, table.getn(played_time) do
  113. --      cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#5#%d#%d#%d#%d", pc.get_playtime(), played_time[i][1], played_time[i][2], 0))
  114. --  end
  115. --  for i = 1, table.getn(pvp) do
  116. --      cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#6#%d#%d#%d#%d", achievements.getf("pc_kills"), pvp[i][1], pvp[i][2], 0))
  117. --  end
  118.     achievements.get_ap()
  119. end
  120.  
  121. function achievements.create_categorys()
  122.     for i = 1,7 do
  123.         cmdchat("ACHIEVEMENTS SET_CATEGORY#"..i)
  124.     end
  125. end
  126.  
  127. function achievements.getAchievementInfo(race, tab)
  128.     if achievements[tab][race] ~= nil then
  129.         return achievements[tab][race]
  130.     else
  131.         return {}
  132.     end
  133. end
  134.  
  135. function achievements.get_next_achievement(flag, tab)
  136.     local n = achievements.getf(flag)
  137.     return achievements[tab][n] or 0
  138. end
  139.  
  140. function achievements.get_ap()
  141. --  local c,info = mysql_direct_query("SELECT punkty_osiagniec FROM player.player WHERE name = '"..pc.get_name().."' LIMIT 1;")
  142.     cmdchat("ACHIEVEMENTS SET_AP#"..AchivmentAllPoints())
  143.     return AchivmentAllPoints()
  144. end
  145.  
  146. function achievements.get_only_ap()
  147.     local c,info = mysql_direct_query("SELECT punkty_osiagniec FROM player.player WHERE name = '"..pc.get_name().."' LIMIT 1;")
  148.     cmdchat("ACHIEVEMENTS SET_AP#"..info[1].punkty_osiagniec)
  149.     return info[1].punkty_osiagniec or 0
  150. end
  151.  
  152. function achievements.set_ap(points)
  153.     mysql_direct_query("UPDATE player.player SET punkty_osiagniec = punkty_osiagniec + "..points.." WHERE name = '"..pc.get_name().."';")
  154.     achievements.get_ap()
  155. end
  156.  
  157. function achievements.check_if_first()
  158.     if achievements.getf("first_login") == 0 then
  159.         local categorys = {"level", "pvp", "time", "first_login"}
  160.         for i = 1, table.getn(categorys) do
  161.             achievements.setf(categorys[i], 1)
  162.         end
  163.         io.open(get_locale_base_path()..'/quest/Achievementsystem/'..pc.get_player_id()..'.txt', 'w')
  164.     end
  165. end
  166.  
  167. function achievements.set_finished(category, value, points, mobVnum)
  168.     local file_path = io.open(get_locale_base_path()..'/quest/Achievementsystem/'..pc.get_player_id()..'.txt', 'a+')
  169.     file_path:write(string.format('%d,%d,%d,%d\n', category, value, points, mobVnum))
  170.     file_path:close()
  171.     cmdchat('ACHIEVEMENTS SET_FINISHED#'..category..'#'..value..'#'..points..'#'..mobVnum)
  172.     achievements.load_last_finished_achievements()
  173. end
  174.  
  175. function achievements.load_last_finished_achievements()
  176.     cmdchat('ACHIEVEMENTS CLEAR_LAST_FINISHED#')
  177.     local file_path = get_locale_base_path()..'/quest/Achievementsystem/'..pc.get_player_id()..'.txt'
  178.     for line in io.lines(file_path, 'r') do
  179.         cmdchat('ACHIEVEMENTS SET_LAST_FINISHED#'..line)
  180.     end
  181.     cmdchat('ACHIEVEMENTS REFRESH_LAST_FINISHED#')
  182. end
  183.  
  184. function achievements.load_achievementshop_items()
  185.     local c,items = mysql_direct_query("SELECT * FROM account.achievementshop_items;")
  186.     if c > 0 then
  187.         for i = 1,c do
  188.             cmdchat('ACHIEVEMENTS SET_ACHIEVEMENTSHOP_ITEM#'..items[i].category..'#'..items[i].id..'#'..items[i].vnum..'#'..items[i].price)
  189.         end
  190.     end
  191. end
  192.  
  193. function achievements.set_achievementshop_categories()
  194.     for i = 1,5 do
  195.         cmdchat('ACHIEVEMENTS SET_ACHIEVEMENTSHOP_CATEGORY#'..i)
  196.     end
  197. end
  198.  
  199. function achievements.buy_achievementshop_item(item_id, amount)
  200.     local c,itemInfo = mysql_direct_query("SELECT * FROM account.achievementshop_items WHERE id = "..item_id..";")
  201.     if c > 0 then
  202.         local price = tonumber(itemInfo[1].price)
  203.         if amount > 1 then price = price*amount end
  204.         if achievements.get_ap() < price then syschat('No tienes suficientes puntos de logro.') return end
  205.         pc.give_item2_select(tonumber(itemInfo[1].vnum), amount)
  206.         achievements.unset_ap(price)
  207.     end
  208. end
  209.  
  210. function achievements.unset_ap(points)
  211.     mysql_direct_query("UPDATE player.player SET punkty_osiagniec = punkty_osiagniec - "..points.." WHERE name = '"..pc.get_name().."';")
  212.     achievements.get_ap()
  213. end
Add Comment
Please, Sign In to add comment