Problema Sistem realizari

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
icS
Nou Venit

Nou Venit
Mesaje: 45
Membru din: 03 Noi 2014, 22:50
Server: metin2scandal
Regat: Chunjo
Aprecieri: 5  
Mulţumiri: 0
 Contact:
Medalii

*Problemă: Nu se inregistreaza achivementul la metine
Tipologie server: PVM
*Resursă folosită:ARGO
*ServerFiles utilizat: ARGO
*Syserr:
Poză:
*Detalii suplimentare: De exemplu am misiunea sa bat 2 metine gelozie, dupa ce le bati nu se inregistreaza .
achievements_lib.lua :

Cod: Selectaţi tot

--[[
	
	## Achievementsystem v1.0 ~ Shang ##
	####################################
	
	To set level achievements syntax = achievements['Level'] = {{level, points}, {level, points}}
	To set played time achievements syntax = achievements['PlayedTime'] = {{time, points}, {time, points}}
	To set pvp kills achievements syntax = achievements['Pvp'] = {{kills, points}, {kills, points}}
	To set mobs, bosses and metinstones achievements syntax = 
		
		achievements['Mobs']['MIDX'] = {
			[map_idx_from_mob] = {mob_vnums}
		}
		achievements['Mobs'][mob_vnum] = {{kills, points}, {kills, points}}
		
		achievements['Bosses']['MIDX'] = {
			[map_idx_from_boss] = {boss_vnums}
		}
		achievements['Bosses'][boss_vnum] = {{kills, points}, {kills, points}}
		
		achievements['Metins']['MIDX'] = {
			[map_idx_from_metinstone] = {metinstone_vnums}
		}		
		achievements['Metins'][metinstone_vnum] = {{kills, points}, {kills, points}}
	
	example:
]]

achievements = {}
achievements['Level'] = {{5, 5}, {20, 20}, {40, 40}, {60, 60}, {80, 80}, {85, 90}, {90, 100}, {95, 110}, {100, 120}, {105, 150}}
achievements['Mobs'] = {}
achievements['Mobs']['MIDX'] = {
	[1] = {101, 103, 105, 107, 109, 112, 115},
	[21] = {101, 103, 105, 107, 109, 112, 115},
	[41] = {101, 103, 105, 107, 109, 112, 115},
	[3] = {433, 453, 501, 502, 503, 504, 553},
	[23] = {433, 453, 501, 502, 503, 504, 553},
	[43] = {433, 453, 501, 502, 503, 504, 553},
	[64] = {603, 635, 636, 637, 653, 706, 756},
	[63] = {2103, 2104, 2106, 2108, 2158},
	[71] = {2056, 2061, 2064, 2132, 2133, 2134},
}
achievements['Mobs'][101] = {{10, 2}, {20, 2}, {30, 2}, {40, 2}, {50, 2}, {60, 2}, {70, 2}, {80, 2}, {90, 2}, {100, 2}}
achievements['Mobs'][103] = {{10, 2}, {20, 2}, {30, 2}, {40, 2}, {50, 2}, {60, 2}, {70, 2}, {80, 2}, {90, 2}, {100, 2}}
achievements['Mobs'][105] = {{10, 2}, {20, 2}, {30, 2}, {40, 2}, {50, 2}, {60, 2}, {70, 2}, {80, 2}, {90, 2}, {100, 2}}
achievements['Mobs'][107] = {{10, 2}, {20, 2}, {30, 2}, {40, 2}, {50, 2}, {60, 2}, {70, 2}, {80, 2}, {90, 2}, {100, 2}}
achievements['Mobs'][109] = {{10, 2}, {20, 2}, {30, 2}, {40, 2}, {50, 2}, {60, 2}, {70, 2}, {80, 2}, {90, 2}, {100, 2}}
achievements['Mobs'][112] = {{10, 2}, {20, 2}, {30, 2}, {40, 2}, {50, 2}, {60, 2}, {70, 2}, {80, 2}, {90, 2}, {100, 2}}
achievements['Mobs'][115] = {{10, 2}, {20, 2}, {30, 2}, {40, 2}, {50, 2}, {60, 2}, {70, 2}, {80, 2}, {90, 2}, {100, 2}}

achievements['Mobs'][433] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][453] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][501] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][502] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][503] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][504] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][553] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}

achievements['Mobs'][603] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][635] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][636] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][637] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][653] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][706] = {{100, 10}, {200, 10}, {300, 10}, {400, 10}, {500, 10}, {600, 10}, {700, 10}, {800, 10}, {900, 10}, {1000, 10}, {1100, 20}, {1200, 20}, {1300, 20}, {1400, 20}, {1500, 20}, {1600, 20}, {1700, 20}, {1800, 20}, {1900, 20}, {2000, 20}, {5000, 300}}
achievements['Mobs'][756] = {{100, 10}, {200, 10}, {300, 10}, {400, 10}, {500, 10}, {600, 10}, {700, 10}, {800, 10}, {900, 10}, {1000, 10}, {1100, 20}, {1200, 20}, {1300, 20}, {1400, 20}, {1500, 20}, {1600, 20}, {1700, 20}, {1800, 20}, {1900, 20}, {2000, 20}, {5000, 300}}

achievements['Mobs'][2103] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][2104] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][2106] = {{100, 5}, {200, 5}, {300, 5}, {400, 5}, {500, 5}, {600, 5}, {700, 5}, {800, 5}, {900, 5}, {1000, 5}, {1100, 10}, {1200, 10}, {1300, 10}, {1400, 10}, {1500, 10}, {1600, 10}, {1700, 10}, {1800, 10}, {1900, 10}, {2000, 10}, {5000, 100}}
achievements['Mobs'][2108] = {{100, 10}, {200, 10}, {300, 10}, {400, 10}, {500, 10}, {600, 10}, {700, 10}, {800, 10}, {900, 10}, {1000, 10}, {1100, 20}, {1200, 20}, {1300, 20}, {1400, 20}, {1500, 20}, {1600, 20}, {1700, 20}, {1800, 20}, {1900, 20}, {2000, 20}, {5000, 300}}
achievements['Mobs'][2158] = {{100, 10}, {200, 10}, {300, 10}, {400, 10}, {500, 10}, {600, 10}, {700, 10}, {800, 10}, {900, 10}, {1000, 10}, {1100, 20}, {1200, 20}, {1300, 20}, {1400, 20}, {1500, 20}, {1600, 20}, {1700, 20}, {1800, 20}, {1900, 20}, {2000, 20}, {5000, 300}}

achievements['Mobs'][2056] = {{200, 5}, {400, 5}, {600, 5}, {800, 5}, {1000, 5}, {1200, 10}, {1400, 10}, {1600, 10}, {1800, 10}, {2000, 10}, {2400, 20}, {2800, 20}, {3200, 20}, {3600, 20}, {4000, 20}, {4500, 40}, {5000, 40}, {6000, 50}, {7000, 50}, {12000, 100}, {25000, 300}}
achievements['Mobs'][2061] = {{200, 5}, {400, 5}, {600, 5}, {800, 5}, {1000, 5}, {1200, 10}, {1400, 10}, {1600, 10}, {1800, 10}, {2000, 10}, {2400, 20}, {2800, 20}, {3200, 20}, {3600, 20}, {4000, 20}, {4500, 40}, {5000, 40}, {6000, 50}, {7000, 50}, {12000, 100}, {25000, 300}}
achievements['Mobs'][2064] = {{200, 5}, {400, 5}, {600, 5}, {800, 5}, {1000, 5}, {1200, 10}, {1400, 10}, {1600, 10}, {1800, 10}, {2000, 10}, {2400, 20}, {2800, 20}, {3200, 20}, {3600, 20}, {4000, 20}, {4500, 40}, {5000, 40}, {6000, 50}, {7000, 50}, {12000, 100}, {25000, 300}}
achievements['Mobs'][2132] = {{200, 5}, {400, 5}, {600, 5}, {800, 5}, {1000, 5}, {1200, 10}, {1400, 10}, {1600, 10}, {1800, 10}, {2000, 10}, {2400, 20}, {2800, 20}, {3200, 20}, {3600, 20}, {4000, 20}, {4500, 40}, {5000, 40}, {6000, 50}, {7000, 50}, {12000, 100}, {25000, 300}}
achievements['Mobs'][2133] = {{200, 5}, {400, 5}, {600, 5}, {800, 5}, {1000, 5}, {1200, 10}, {1400, 10}, {1600, 10}, {1800, 10}, {2000, 10}, {2400, 20}, {2800, 20}, {3200, 20}, {3600, 20}, {4000, 20}, {4500, 40}, {5000, 40}, {6000, 50}, {7000, 50}, {12000, 100}, {25000, 300}}
achievements['Mobs'][2134] = {{200, 5}, {400, 5}, {600, 5}, {800, 5}, {1000, 5}, {1200, 10}, {1400, 10}, {1600, 10}, {1800, 10}, {2000, 10}, {2400, 20}, {2800, 20}, {3200, 20}, {3600, 20}, {4000, 20}, {4500, 40}, {5000, 40}, {6000, 50}, {7000, 50}, {12000, 100}, {25000, 300}}















achievements['Metins'] = {}
achievements['Metins']['MIDX'] = {
	[1] = {8001, 8002, 8003, 8004, 8005},
	[21] = {8001, 8002, 8003, 8004, 8005},
	[41] = {8001, 8002, 8003, 8004, 8005},
	[3] = {8005, 8006, 8007},
	[23] = {8005, 8006, 8007},
	[43] = {8005, 8006, 8007},
	[64] = {8009},
	[63] = {8008, 8009, 8010},
}
achievements['Metins'][8001] = {{3, 2}, {7, 2}, {10, 2}, {13, 2}, {17, 2}, {20, 2}, {25, 2}, {30, 2}, {35, 2}, {40, 2}, {50, 5}, {60, 5}, {70, 5}, {80, 5}, {90, 5}, {100, 5}, {150, 10}, {200, 10}, {300, 15}, {500, 20}}
achievements['Metins'][8002] = {{3, 2}, {7, 2}, {10, 2}, {13, 2}, {17, 2}, {20, 2}, {25, 2}, {30, 2}, {35, 2}, {40, 2}, {50, 5}, {60, 5}, {70, 5}, {80, 5}, {90, 5}, {100, 5}, {150, 10}, {200, 10}, {300, 15}, {500, 20}}
achievements['Metins'][8003] = {{3, 2}, {7, 2}, {10, 2}, {13, 2}, {17, 2}, {20, 2}, {25, 2}, {30, 2}, {35, 2}, {40, 2}, {50, 5}, {60, 5}, {70, 5}, {80, 5}, {90, 5}, {100, 5}, {150, 10}, {200, 10}, {300, 15}, {500, 20}}
achievements['Metins'][8004] = {{3, 2}, {7, 2}, {10, 2}, {13, 2}, {17, 2}, {20, 2}, {25, 2}, {30, 2}, {35, 2}, {40, 2}, {50, 5}, {60, 5}, {70, 5}, {80, 5}, {90, 5}, {100, 5}, {150, 10}, {200, 10}, {300, 15}, {500, 20}}
achievements['Metins'][8005] = {{3, 2}, {7, 2}, {10, 2}, {13, 2}, {17, 2}, {20, 2}, {25, 2}, {30, 2}, {35, 2}, {40, 2}, {50, 5}, {60, 5}, {70, 5}, {80, 5}, {90, 5}, {100, 5}, {150, 10}, {200, 10}, {300, 15}, {500, 20}}

achievements['Metins'][8005] = {{10, 5}, {30, 5}, {50, 5}, {75, 5}, {100, 5}, {150, 5}, {200, 5}, {250, 5}, {300, 5}, {350, 5}, {400, 5}, {500, 10}, {700, 10}, {900, 10}, {1200, 15}, {1500, 15}, {2000, 20}, {2500, 20}, {3000, 20}, {5000, 100}}
achievements['Metins'][8006] = {{10, 5}, {30, 5}, {50, 5}, {75, 5}, {100, 5}, {150, 5}, {200, 5}, {250, 5}, {300, 5}, {350, 5}, {400, 5}, {500, 10}, {700, 10}, {900, 10}, {1200, 15}, {1500, 15}, {2000, 20}, {2500, 20}, {3000, 20}, {5000, 100}}
achievements['Metins'][8007] = {{10, 5}, {30, 5}, {50, 5}, {75, 5}, {100, 5}, {150, 5}, {200, 5}, {250, 5}, {300, 5}, {350, 5}, {400, 5}, {500, 10}, {700, 10}, {900, 10}, {1200, 15}, {1500, 15}, {2000, 20}, {2500, 20}, {3000, 20}, {5000, 100}}

achievements['Metins'][8009] = {{10, 5}, {30, 5}, {50, 5}, {75, 5}, {100, 5}, {150, 5}, {200, 5}, {250, 5}, {300, 5}, {350, 5}, {400, 5}, {500, 10}, {700, 10}, {900, 10}, {1200, 15}, {1500, 15}, {2000, 20}, {2500, 20}, {3000, 20}, {5000, 100}}

achievements['Metins'][8008] = {{10, 5}, {30, 5}, {50, 5}, {75, 5}, {100, 5}, {150, 5}, {200, 5}, {250, 5}, {300, 5}, {350, 5}, {400, 5}, {500, 10}, {700, 10}, {900, 10}, {1200, 15}, {1500, 15}, {2000, 20}, {2500, 20}, {3000, 20}, {5000, 100}}
achievements['Metins'][8009] = {{10, 5}, {30, 5}, {50, 5}, {75, 5}, {100, 5}, {150, 5}, {200, 5}, {250, 5}, {300, 5}, {350, 5}, {400, 5}, {500, 10}, {700, 10}, {900, 10}, {1200, 15}, {1500, 15}, {2000, 20}, {2500, 20}, {3000, 20}, {5000, 100}}
achievements['Metins'][8010] = {{10, 5}, {30, 5}, {50, 5}, {75, 5}, {100, 5}, {150, 5}, {200, 5}, {250, 5}, {300, 5}, {350, 5}, {400, 5}, {500, 10}, {700, 10}, {900, 10}, {1200, 15}, {1500, 15}, {2000, 20}, {2500, 20}, {3000, 20}, {5000, 100}}




achievements['Bosses'] = {}
achievements['Bosses']['MIDX'] = {
	[1] = {691},
	[21] = {691},
	[41] = {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,bosses,metins,played_time,pvp = achievements['Level'],achievements['Mobs'],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
	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,6 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 * FROM player.player WHERE name = '"..pc.get_name().."' LIMIT 1;")
	cmdchat("ACHIEVEMENTS SET_AP#"..info[1].pz)
	return info[1].pz or 0
end

function achievements.set_ap(points)
	mysql.direct_query("UPDATE player.player SET pz = pz + "..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,9 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('Nu aveti suficiente Puncte Realizare(PR).') 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 pz = pz - "..points.." WHERE name = '"..pc.get_name().."';")
	achievements.get_ap()
end
achievements.quest :

Cod: Selectaţi tot

quest achievementsystem begin
	state start begin
		
		when login begin
			cmdchat("ACHIEVEMENTS QID#"..q.getcurrentquestindex())
			achievements.check_if_first()
			achievements.create_categorys()
			achievements.load_achievements()
			achievements.load_last_finished_achievements()
			achievements.set_achievementshop_categories()
			achievements.load_achievementshop_items()
			loop_timer('achievements_level_flogin_check', 5)
			loop_timer('achievementstime_achievements_flogin_check', 1)
		end
		
		when logout or disconnect begin
			cleartimer('time_achievements')
		end
		
		when button begin
			cmdchat('ACHIEVEMENTS INPUT#1')
			local ashop = split(input(cmdchat('ACHIEVEMENTS SEND#')), '#')
			cmdchat('ACHIEVEMENTS INPUT#0')
			if ashop[1] == 'BUY_ITEM' then
				achievements.buy_achievementshop_item(tonumber(ashop[2]), tonumber(ashop[3]))
			end
		end
		
		when levelup begin
			local info_level = achievements.get_next_achievement("level", 'Level')
			if type(info_level) ~= 'table' then return end
			cmdchat(string.format('ACHIEVEMENTS UPDATE_ACHIEVEMENT#%d#%d', 1, pc.get_level()))
			cmdchat('ACHIEVEMENTS REFRESH_ACHIEVEMENTS#')
			if pc.get_level() >= info_level[1] then
				achievements.set_finished(1, info_level[1], info_level[2], 0)
				achievements.set_ap(info_level[2])
				achievements.setf("level", achievements.getf("level")+1)
			end
		end	
		
		when kill begin
			local npcRace = npc.get_race()
			local achievementMobInfo,mobInfo,mobKills = achievements.getAchievementInfo(npcRace, 'Mobs'),achievements.getf(string.format("mob_info_%d", npcRace))+1,achievements.getf(string.format("mob_kills_%d", npcRace))+1
			if table.getn(achievementMobInfo) < mobInfo then return end
			cmdchat('ACHIEVEMENTS UPDATE_ACHIEVEMENT#2#'..mobKills..'#'..npcRace)
			cmdchat('ACHIEVEMENTS REFRESH_ACHIEVEMENTS#')
			achievementMobInfo = achievementMobInfo[mobInfo]
			achievements.setf(string.format("mob_kills_%d", npcRace), mobKills)
			if mobKills >= achievementMobInfo[1] then
				achievements.set_finished(2, achievementMobInfo[1], achievementMobInfo[2], npcRace)
				achievements.set_ap(achievementMobInfo[2])
				achievements.setf(string.format("mob_info_%d", npcRace), mobInfo)
			end
		end
		
		when kill begin
			local npcRace = npc.get_race()
			local achievementBossInfo,bossInfo,bossKills = achievements.getAchievementInfo(npcRace, 'Bosses'),achievements.getf(string.format("boss_info_%d", npcRace))+1,achievements.getf(string.format("boss_kills_%d", npcRace))+1
			if table.getn(achievementBossInfo) < bossInfo then return end
			cmdchat('ACHIEVEMENTS UPDATE_ACHIEVEMENT#3#'..bossKills..'#'..npcRace)
			cmdchat('ACHIEVEMENTS REFRESH_ACHIEVEMENTS#')
			achievementBossInfo = achievementBossInfo[bossInfo]
			achievements.setf(string.format("boss_kills_%d", npcRace), bossKills)
			if bossKills >= achievementBossInfo[1] then
				achievements.set_finished(3, achievementBossInfo[1], achievementBossInfo[2], npcRace)
				achievements.set_ap(achievementBossInfo[2])
				achievements.setf(string.format("boss_info_%d", npcRace), bossInfo)
			end
		end
		
		when kill begin
			local npcRace = npc.get_race()
			local achievementMetinInfo,metinInfo,metinKills = achievements.getAchievementInfo(npcRace, 'Metins'),achievements.getf(string.format("metin_info_%d", npcRace))+1,achievements.getf(string.format("metin_kills_%d", npcRace))+1
			if table.getn(achievementMetinInfo) < metinInfo then return end
			cmdchat('ACHIEVEMENTS UPDATE_ACHIEVEMENT#4#'..metinKills..'#'..npcRace)
			cmdchat('ACHIEVEMENTS REFRESH_ACHIEVEMENTS#')
			achievementMetinInfo = achievementMetinInfo[metinInfo]
			achievements.setf(string.format("metin_kills_%d", npcRace), metinKills)
			if metinKills >= achievementMetinInfo[1] then
				achievements.set_finished(4, achievementMetinInfo[1], achievementMetinInfo[2], npcRace)
				achievements.set_ap(achievementMetinInfo[2])
				achievements.setf(string.format("metin_info_%d", npcRace), metinInfo)
			end
		end

		when kill begin
			if npc.is_pc() then
			local vid = npc.get_vid()
			local old_pc = pc.select(vid)
			pc.select(old_pc)
			local pvp,info_pvp = achievements.getf("pc_kills")+1,achievements.get_next_achievement("pvp", 'Pvp')
			achievements.setf("pc_kills", pvp)
			if type(info_pvp) ~= 'table' then return end
			cmdchat(string.format('ACHIEVEMENTS UPDATE_ACHIEVEMENT#%d#%d', 6, pvp))
			cmdchat('ACHIEVEMENTS REFRESH_ACHIEVEMENTS#')
			if pvp >= info_pvp[1] then
				achievements.set_finished(6, info_pvp[1], info_pvp[2], 0)
				achievements.set_ap(info_pvp[2])
				achievements.setf("pvp", achievements.getf("pvp")+1)
			end
		end
	end
		
		when time_achievements.timer begin
			chat('time_achievements: 180sec')
			local info_time = achievements.get_next_achievement("time", 'PlayedTime')
			if type(info_time) ~= 'table' then return end
			cmdchat(string.format('ACHIEVEMENTS UPDATE_ACHIEVEMENT#%d#%d', 5, pc.get_playtime()))
			cmdchat('ACHIEVEMENTS REFRESH_ACHIEVEMENTS#')
			if pc.get_playtime() >= info_time[1] then
				achievements.set_finished(5, info_time[1], info_time[2], 0)
				achievements.set_ap(info_time[2])
				achievements.setf("time", achievements.getf("time")+1)
			end
		end
		
		when achievementstime_achievements_flogin_check.timer begin
			cleartimer('achievementstime_achievements_flogin_check') loop_timer('achievementstime_achievements_flogin_check', 10)
			local info_time = achievements.get_next_achievement("time", 'PlayedTime')
			if type(info_time) ~= 'table' then cleartimer('achievementstime_achievements_flogin_check') loop_timer('time_achievements', 60*3) return end
			if pc.get_playtime() >= info_time[1] then
				achievements.set_finished(5, info_time[1], info_time[2], 0)
				achievements.set_ap(info_time[2])
				achievements.setf("time", achievements.getf("time")+1)
			end
		end
		
		when achievements_level_flogin_check.timer begin
			local info_level = achievements.get_next_achievement("level", 'Level')
			if type(info_level) ~= 'table' then cleartimer('achievements_level_flogin_check') return end
			if pc.get_level() >= info_level[1] then
				achievements.set_finished(1, info_level[1], info_level[2], 0)
				achievements.set_ap(info_level[2])
				achievements.setf("level", achievements.getf("level")+1)
			end
		end

	end
end
[/b]
Imagine
Afișează semnătura
Avatar utilizator
Hardwell
Veteran

Veteran
Mesaje: 1091
Membru din: 14 Ian 2017, 15:46
Regat: Chunjo
Aprecieri: 83  
Mulţumiri: 1602  
Discord: Copiază ID
Medalii

iti recomand sa nu folosesti argo, are comenzi ascunse o tona plus o gramada de exploituri.
Pentru acest mesaj, Hardwell for the post:
icS
Imagine
Imagine
Afișează semnătura
Avatar utilizator
icS
Nou Venit

Nou Venit
Mesaje: 45
Membru din: 03 Noi 2014, 22:50
Server: metin2scandal
Regat: Chunjo
Aprecieri: 5  
Mulţumiri: 0
 Contact:
Medalii

D.Eduard scrie:iti recomand sa nu folosesti argo, are comenzi ascunse o tona plus o gramada de exploituri.

Da stiu ce zici , dar am rezolvat multe dintre ele.
Imagine
Afișează semnătura
Avatar utilizator
icS
Nou Venit

Nou Venit
Mesaje: 45
Membru din: 03 Noi 2014, 22:50
Server: metin2scandal
Regat: Chunjo
Aprecieri: 5  
Mulţumiri: 0
 Contact:
Medalii

UP , stie cineva care ar fi problema sau de unde ar proveni ?
Imagine
Afișează semnătura
Avatar utilizator
Simplw
Nivel 3

Nivel 3
Mesaje: 374
Membru din: 18 Sep 2014, 06:54
Server: Metin2Vision
Regat: Jinno
Aprecieri: 140  
Mulţumiri: 27  
  Rezolvări prob.: 1
 Contact:
Medalii

UP!
Avatar utilizator
Titan
Metin Master

Metin Master
Mesaje: 2783
Membru din: 01 Iun 2015, 15:09
Server: In curand.
Regat: Chunjo
Aprecieri: 42  
Mulţumiri: 377  
  Rezolvări prob.: 3
Discord: Copiază ID
 Contact:
Medalii

Habar n-am despre ce sistem e vorba, dar probabil că e bazat pe py și lua, so verifică-i quest-ul.
Imagine
Afișează semnătura
Avatar utilizator
FRANCIS
Administrator Adjunct

Administrator Adjunct
Mesaje: 7879
Membru din: 06 Noi 2015, 19:52
Regat: Chunjo
Aprecieri: 334  
Mulţumiri: 54528  
Discord: Copiază ID
Medalii

Topic inactiv . Arhivat !
If you talk to a man in a language he understands, that goes to his head. If you talk to him in his own language, that goes to his heart.
Imagine
ENJOY
Imagine
Afișează semnătura
Închis
Răspunsuri
8
Vizualizări
452
Răspunsuri
5
Vizualizări
517
Răspunsuri
2
Vizualizări
603

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie