Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- achievements = {}
- achievements['Level'] =
- {
- {10, 10},
- {15, 15},
- {20, 20},
- {25, 25},
- {30, 30},
- {35, 35},
- {40, 40},
- {45, 45},
- {50, 50},
- {55, 55},
- {60, 60},
- {65, 65},
- {70, 70},
- {75, 75},
- {80, 80},
- {85, 85},
- {90, 90},
- {95, 95},
- {100, 100},
- {105, 105},
- {110, 110},
- {115, 115},
- {120, 120},
- {125, 125},
- {130, 130},
- {135, 135},
- {140, 140},
- {145, 145},
- {150, 150},
- {151, 155},
- {152, 160},
- {153, 165},
- {154, 170},
- {155, 175}
- }
- achievements['Mobs'] = {}
- achievements['Mobs']['MIDX'] = {
- [1] = {101},
- }
- achievements['Mobs'][101] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
- --achievements['Mobs'][102] = {{29, 29}}
- achievements['Mobs2'] = {}
- achievements['Mobs2']['MIDX'] = {
- [1] = {5391},
- }
- achievements['Mobs2'][5391] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
- achievements['Mobs3'] = {}
- achievements['Mobs3']['MIDX'] = {
- [1] = {5191},
- }
- achievements['Mobs3'][5191] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
- achievements['Mobs4'] = {}
- achievements['Mobs4']['MIDX'] = {
- [1] = {5291},
- }
- achievements['Mobs4'][5291] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
- achievements['Metins'] = {}
- achievements['Metins']['MIDX'] = {
- [1] = {9001},
- }
- achievements['Metins'][9001] = {{2, 10}, {5, 15}}
- achievements['Bosses'] = {}
- achievements['Bosses']['MIDX'] = {
- [1] = {691},
- }
- achievements['Bosses'][691] = {{5, 50}, {10, 100}}
- achievements['PlayedTime'] = {{500, 50}, {2000, 200}, {5000, 500}, {10000, 1000}, {17500, 3000}, {25000, 5000}, {40000, 8000}, {50000, 10000}}
- achievements['Pvp'] = {{2, 300}, {5, 600}, {8, 900}, {10, 1200}, {1750, 1500}, {2000, 1800}, {2650, 2200}, {3000, 2600}, {4250, 3200}, {5000, 4000}}
- function achievements.getf(flag)
- return pc.getf("achievements", flag)
- end
- function achievements.setf(flag, value)
- pc.setf("achievements", flag, value)
- end
- function achievements.load_achievements()
- 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']
- -- if achievements['Mobs']['MIDX'][pc.get_map_index()] ~= nil then
- -- 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
- -- end
- 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
- if achievements['Mobs2']['MIDX'][pc.get_map_index()] ~= nil then
- 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
- end
- if achievements['Mobs3']['MIDX'][pc.get_map_index()] ~= nil then
- 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
- end
- if achievements['Mobs4']['MIDX'][pc.get_map_index()] ~= nil then
- 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
- end
- if achievements['Bosses']['MIDX'][pc.get_map_index()] ~= nil then
- 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
- end
- if achievements['Metins']['MIDX'][pc.get_map_index()] ~= nil then
- 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
- end
- for i = 1, table.getn(levels) do
- cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#1#%d#%d#%d#%d", pc.get_level(), levels[i][1], levels[i][2], 0))
- end
- -- for i = 1, table.getn(played_time) do
- -- cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#5#%d#%d#%d#%d", pc.get_playtime(), played_time[i][1], played_time[i][2], 0))
- -- end
- -- for i = 1, table.getn(pvp) do
- -- cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#6#%d#%d#%d#%d", achievements.getf("pc_kills"), pvp[i][1], pvp[i][2], 0))
- -- end
- achievements.get_ap()
- end
- function achievements.create_categorys()
- for i = 1,7 do
- cmdchat("ACHIEVEMENTS SET_CATEGORY#"..i)
- end
- end
- function achievements.getAchievementInfo(race, tab)
- if achievements[tab][race] ~= nil then
- return achievements[tab][race]
- else
- return {}
- end
- end
- function achievements.get_next_achievement(flag, tab)
- local n = achievements.getf(flag)
- return achievements[tab][n] or 0
- end
- function achievements.get_ap()
- -- local c,info = mysql_direct_query("SELECT punkty_osiagniec FROM player.player WHERE name = '"..pc.get_name().."' LIMIT 1;")
- cmdchat("ACHIEVEMENTS SET_AP#"..AchivmentAllPoints())
- return AchivmentAllPoints()
- end
- function achievements.get_only_ap()
- local c,info = mysql_direct_query("SELECT punkty_osiagniec FROM player.player WHERE name = '"..pc.get_name().."' LIMIT 1;")
- cmdchat("ACHIEVEMENTS SET_AP#"..info[1].punkty_osiagniec)
- return info[1].punkty_osiagniec or 0
- end
- function achievements.set_ap(points)
- mysql_direct_query("UPDATE player.player SET punkty_osiagniec = punkty_osiagniec + "..points.." WHERE name = '"..pc.get_name().."';")
- achievements.get_ap()
- end
- function achievements.check_if_first()
- if achievements.getf("first_login") == 0 then
- local categorys = {"level", "pvp", "time", "first_login"}
- for i = 1, table.getn(categorys) do
- achievements.setf(categorys[i], 1)
- end
- io.open(get_locale_base_path()..'/quest/Achievementsystem/'..pc.get_player_id()..'.txt', 'w')
- end
- end
- function achievements.set_finished(category, value, points, mobVnum)
- local file_path = io.open(get_locale_base_path()..'/quest/Achievementsystem/'..pc.get_player_id()..'.txt', 'a+')
- file_path:write(string.format('%d,%d,%d,%d\n', category, value, points, mobVnum))
- file_path:close()
- cmdchat('ACHIEVEMENTS SET_FINISHED#'..category..'#'..value..'#'..points..'#'..mobVnum)
- achievements.load_last_finished_achievements()
- end
- function achievements.load_last_finished_achievements()
- cmdchat('ACHIEVEMENTS CLEAR_LAST_FINISHED#')
- local file_path = get_locale_base_path()..'/quest/Achievementsystem/'..pc.get_player_id()..'.txt'
- for line in io.lines(file_path, 'r') do
- cmdchat('ACHIEVEMENTS SET_LAST_FINISHED#'..line)
- end
- cmdchat('ACHIEVEMENTS REFRESH_LAST_FINISHED#')
- end
- function achievements.load_achievementshop_items()
- local c,items = mysql_direct_query("SELECT * FROM account.achievementshop_items;")
- if c > 0 then
- for i = 1,c do
- cmdchat('ACHIEVEMENTS SET_ACHIEVEMENTSHOP_ITEM#'..items[i].category..'#'..items[i].id..'#'..items[i].vnum..'#'..items[i].price)
- end
- end
- end
- function achievements.set_achievementshop_categories()
- for i = 1,5 do
- cmdchat('ACHIEVEMENTS SET_ACHIEVEMENTSHOP_CATEGORY#'..i)
- end
- end
- function achievements.buy_achievementshop_item(item_id, amount)
- local c,itemInfo = mysql_direct_query("SELECT * FROM account.achievementshop_items WHERE id = "..item_id..";")
- if c > 0 then
- local price = tonumber(itemInfo[1].price)
- if amount > 1 then price = price*amount end
- if achievements.get_ap() < price then syschat('No tienes suficientes puntos de logro.') return end
- pc.give_item2_select(tonumber(itemInfo[1].vnum), amount)
- achievements.unset_ap(price)
- end
- end
- function achievements.unset_ap(points)
- mysql_direct_query("UPDATE player.player SET punkty_osiagniec = punkty_osiagniec - "..points.." WHERE name = '"..pc.get_name().."';")
- achievements.get_ap()
- end
Add Comment
Please, Sign In to add comment