Sistem Realizari

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

*Problemă/Întrebare: Buna seara tuturor, am probat sistemul de realizari de pe Server File Argo, si pentru cine stie, sistemul are 5 categorii de completat: Nivel, Monstrii, Sefi, Metine si Timp Jucat. Problema este ca la Sefi si la Metine, sistemul nu actualizeaza sau nu ia in calcul realizarea facuta. Exemplu: Ucide 5x Orc Sef. La aceasta normal dupa uciderea unui singur Orc sef iti va arata ca mai ai de ucis 4, iar la al 5lea ar trebui sa fie completata realizarea ceea ce nu se intampla si as dori daca se poate sa imi explice cineva de ce se intampla asa sau daca questul are vreo problema. Multumesc
Tipologie server: PvM PvP
*Resursă folosită:
*ServerFiles utilizat: Argo
*Syserr:
Poză:
*Detalii suplimentare:

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
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Up

[ Postat de pe Android ] Imagine
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

up
Avatar utilizator
exo.
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 1038
Membru din: 29 Ian 2017, 12:38
Aprecieri: 289  
Mulţumiri: 1314  
Discord: Copiază ID
Medalii

De ce nu bagi battlepass, e acelasi lucru
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Nu, multumesc. Up
Avatar utilizator
tastatura
Nivel 2

Nivel 2
Mesaje: 156
Membru din: 03 Mar 2016, 17:43
Server: 2021
Regat: Shinsoo
Aprecieri: 731  
Mulţumiri: 21  
Discord: Copiază ID
 Contact:
Medalii

Salut! Cauta la monstri toata partea la update si vezi daca coincide si la sefi si pietre. Altceva nu stiu ce sa zic si nu sunt un mare tegnician, dar poate te ajuta.

La quest uita-te la partea de update categorie daca are... (nu am server files sa ma uit)
Pentru acest mesaj, tastatura for the post:
DragonA7X
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Multumesc, am sa ma uit.
Avatar utilizator
MapshitoWork
Utilizator interzis !

Utilizator interzis !
Mesaje: 68
Membru din: 28 Iun 2020, 12:38
Regat: Jinno
Aprecieri: 4  
Mulţumiri: 223  
Discord: Copiază ID
Medalii

Trimite si quest-ul sa vedem.
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
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

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
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

up
Închis
Răspunsuri
2
Vizualizări
603
Răspunsuri
6
Vizualizări
410
Răspunsuri
1
Vizualizări
350

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

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 57 vizitatori