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['Droga'] = {
- -- najemnik
- [1] = {
- {"najemnik_010", 70},
- {"najemnik_030", 80},
- {"najemnik_050", 90},
- {"najemnik_070", 100},
- {"najemnik_090", 110},
- {"najemnik_110", 120},
- {"najemnik_130", 130},
- {"najemnik_140", 140},
- {"najemnik_150", 150},
- {"najemnik_151", 160},
- {"najemnik_152", 170},
- {"najemnik_153", 180},
- {"najemnik_154", 190},
- {"najemnik_155", 200}
- },
- -- wojownik
- [2] = {
- {"wojownik_010", 70},
- {"wojownik_030", 80},
- {"wojownik_050", 90},
- {"wojownik_070", 100},
- {"wojownik_090", 110},
- {"wojownik_110", 120},
- {"wojownik_130", 130},
- {"wojownik_140", 140},
- {"wojownik_150", 150},
- {"wojownik_151", 160},
- {"wojownik_152", 170},
- {"wojownik_153", 180},
- {"wojownik_154", 190},
- {"wojownik_155", 200}
- },
- -- odkrywca
- [3] = {
- {"odkrywca_010", 70},
- {"odkrywca_030", 80},
- {"odkrywca_050", 90},
- {"odkrywca_070", 100},
- {"odkrywca_090", 110},
- {"odkrywca_110", 120},
- {"odkrywca_130", 130},
- {"odkrywca_140", 140},
- {"odkrywca_150", 150},
- {"odkrywca_151", 160},
- {"odkrywca_152", 170},
- {"odkrywca_153", 180},
- {"odkrywca_154", 190},
- {"odkrywca_155", 200}
- }
- }
- achievements['Biolog'] = {
- {"collect_quest_lv030", 80},
- {"collect_quest_lv050", 90},
- {"collect_quest_lv070", 100},
- {"collect_quest_lv090", 110},
- {"collect_quest_lv110", 120},
- {"collect_quest_lv130", 130},
- {"collect_quest_lv140", 140},
- {"collect_quest_lv150", 150},
- {"collect_quest_lv151", 160},
- {"collect_quest_lv152", 170},
- {"collect_quest_lv153", 180},
- {"collect_quest_lv154", 190},
- {"collect_quest_lv155", 200}
- },
- achievements['Mobs'] = {}
- achievements['Mobs']['MIDX'] = {
- 101
- }
- achievements['Mobs'][101] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
- achievements['Mobs2'] = {}
- achievements['Mobs2']['MIDX'] = {
- 5391
- }
- achievements['Mobs2'][5391] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
- achievements['Mobs3'] = {}
- achievements['Mobs3']['MIDX'] = {
- 5191
- }
- achievements['Mobs3'][5191] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
- achievements['Mobs4'] = {}
- achievements['Mobs4']['MIDX'] = {
- 5291
- }
- achievements['Mobs4'][5291] = {{10, 5}, {15, 10}, {20, 15}, {25, 20}, {30, 25}}
- achievements['Metins'] = {}
- achievements['Metins']['MIDX'] = {
- 9001
- }
- achievements['Metins'][9001] = {{2, 10}, {5, 15}}
- achievements['Bosses'] = {}
- achievements['Bosses']['MIDX'] = {
- 691
- }
- achievements['Bosses'][691] = {{5, 50}, {10, 100}}
- 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']
- 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
- local wybrana_droga = tonumber(pc.getf("twoja_droga","wybrana_droga"))
- if (wybrana_droga == 0) then
- local misje = achievements['Droga'][1]
- for i = 1, table.getn(misje) do
- cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#2#%d#%d#%d#%d", 0, 1, misje[i][2], 0))
- end
- else
- local complete = 0
- local misje = achievements['Droga'][wybrana_droga]
- for i = 1, table.getn(misje) do
- if achievements.is_quest_complete(misje[i][1]) then
- complete = 1
- else
- complete = 0
- end
- cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#2#%d#%d#%d#%d", complete, 1, misje[i][2], 0))
- end
- end
- local badania_biologa = tonumber(pc.getf("collect","badania_biologa"))
- if (badania_biologa == 0) then
- local misje_biolog = achievements['Biolog'][1]
- for i = 1, table.getn(misje_biolog) do
- cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#3#%d#%d#%d#%d", 0, 1, misje_biolog[i][2], 0))
- end
- else
- local complete = 0
- local misje_biolog = achievements['Biolog']
- for i = 1, table.getn(misje_biolog) do
- if achievements.is_quest_complete(misje_biolog[i][1]) then
- complete = 1
- else
- complete = 0
- end
- cmdchat(string.format("ACHIEVEMENTS SET_ACHIEVEMENT#3#%d#%d#%d#%d", complete, 1, misje_biolog[i][2], 0))
- end
- end
- -- for index, value in pairs(achievements['Mobs']['MIDX']) 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
- -- for index, value in pairs(achievements['Mobs2']['MIDX']) 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
- for index, value in pairs(achievements['Mobs3']['MIDX']) 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
- for index, value in pairs(achievements['Mobs4']['MIDX']) 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
- for index, value in pairs(achievements['Bosses']['MIDX']) 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
- for index, value in pairs(achievements['Metins']['MIDX']) 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
- 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()
- 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
- function achievements.getf(flag)
- return pc.getf("achievements", flag)
- end
- function achievements.setf(flag, value)
- pc.setf("achievements", flag, value)
- end
- function achievements.is_quest_complete(quest_name)
- return !(get_quest_state(quest_name) != get_quest_state("state_complete_value"))
- end
Advertisement
Add Comment
Please, Sign In to add comment