Xchos 1 Odesláno: 19. Listopad, 2014 Share Odesláno: 19. Listopad, 2014 Statistics v1.0.1 Úvod:Napsal jsem jednoduchou knihovnu pro zavedení statistik do hry. Je to psané pro širokou škálu lidí, takže jsem v tvorbě koukal na univerzálnost. Pro využití je zapotřebí pouze jednoho SQLite souboru ve složce scriptfiles, který si include sám vytvoří, jakmile bude použit. Hráči je přiřazováno unikátní ID, které slouží pro zavedení statistik. Toto ID je generováno na herní přezdívku. Nebudu protahovat a tady uvedu jednoduché příklady implementace:Implementace:nahoru do .pwn #include <stats> do OnGameModeInit() případně OnFilterScriptInit() uvedeme následující: statsInit("stats.sqlite"); statsBeginTransaction(); // Začne transakci - vykoná všechny query najednou. V tomto případě registraci všech názvů statistik. SetStatName(1, "Připojení"); SetStatName(2, "Nastoupení do vozu"); SetStatName(3, "nejvyšší rychlost"); statsCommit(); // Ukončení transakce a potvrzení. Jedná se o inicializaci, takže by se měla dodržet konvence o "very first", tedy jako první pokud možno.Poté je potřeba ošetřit zavření databáze. To učiníme v OnGameModeExit() případně OnFilterScriptExit() .. statsExit(); Pak už se dá jen jednoduše pracovat. Include využívá hojně PlayerVariables a to s prefixem stats_. Do těchto proměnných si ukládá Cache. Cache slouží k tomu, aby se redukovali co nejvíce režijní náklady na databázi.Soubor funkcí:Funkce, které include obsahuje: native queryLog(bool:state); // slouží k printu dotazů na databázi do server_log.log native statsInit(name[]); // inicializace statistik native statsExit(); // odhlášení od statistik native GetStatName(statid); // returns string[] native SetStatName(statid, name[]); // returns true/false native IsPlayerUniqueStatsIDAssigned(playerid); // returns true/false native AssignPlayerUniqueStatsID(playerid); // returns (int)uniqueID native GetPlayerUniqueStatsID(playerid); // returns (int)uniqueID native SetPlayerIntegerStat(playerid, statid, value); //returns true/false native GetPlayerIntegerStat(playerid, statid); //returns (int)value native SetPlayerFloatStat(playerid, statid, Float:value); //returns true/false native Float:GetPlayerFloatStat(playerid, statid); //returns (float)value Využití:Ukázka z práce tímto includem může být následující: public OnPlayerConnect(playerid){ AssignPlayerUniqueStatsID(playerid); // Zajistíme unikátní ID pro statistiky hráči. new connections = GetPlayerIntegerStat(playerid, 1); // Zjistíme hodnotu statistiky. SetPlayerIntegerStat(playerid, 1, connections+1); // Nastavíme novou hodnotu } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { new enters = GetPlayerIntegerStat(playerid, 2); // Zjistíme hodnotu statistiky. SetPlayerIntegerStat(playerid, 2, enters+1); // Nastavíme novou hodnotu return 1; } public OnPlayerUpdate(playerid) { if(IsPlayerInAnyVehicle(playerid)) { new vehicleid = GetPlayerVehicleID(playerid); new Float:currentspeed = GetVehicleSpeed(vehicleid); new Float:maxspeed = GetPlayerFloatStat(playerid, 3); if(currentspeed>maxspeed) SetPlayerFloatStat(playerid, 3, currentspeed); } } https://github.com/Xchos/samp V případě chyb mne prosím kontaktujte pomocí emailu uvedeném v souboru stats.inc a já se je pokusím odstranit. Případné dotazy můžete také pokládat přímo do emailu. Poprosím všechny, co se tuto knihovnu rozhodnou využít aby mě zanechali jako autora tohoto scriptu. Děkuji! Link to comment Share on other sites More sharing options...
Wertix 1 Odesláno: 19. Listopad, 2014 Share Odesláno: 19. Listopad, 2014 Velmi luxusní práce!! Musím tě pochválit Luky :-) (Snad víš kdo jsem :-D) Link to comment Share on other sites More sharing options...
Xchos 1 Odesláno: 19. Listopad, 2014 Author Share Odesláno: 19. Listopad, 2014 Jasné ze vim, díky .. Ohledně chyb, pokud se vám nebude chtít psát na email, využije issues na githubu. Link to comment Share on other sites More sharing options...
TheRohlikar 21 Odesláno: 23. Listopad, 2014 Share Odesláno: 23. Listopad, 2014 No, jako ujde to, no. (Good job ! ) Link to comment Share on other sites More sharing options...
arci224 11 Odesláno: 12. Prosinec, 2014 Share Odesláno: 12. Prosinec, 2014 .. Allane (Xchosi) mas chybu v nazvu (hrářů) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now