Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #include <dini>
- #define MAX_LEVEL 99
- #define COLOR_RED 0xFF0000AA
- #define COLOR_YELLOW 0xFFFF00AA
- new XP[MAX_PLAYERS]; //player xp
- new lvl[MAX_PLAYERS]; //player lvl
- public OnFilterScriptInit()
- {
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- XP[playerid]=0;
- lvl[playerid]=0;
- new file[128], vardas[128];
- GetPlayerName(playerid, vardas, 128);
- format(file,128,"Users/%s.ini",vardas);
- XP[playerid] = dini_Int(file, "XP");
- lvl[playerid] = dini_Int(file, "LVL");
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new file[128], vardas[128];
- GetPlayerName(playerid, vardas, 128);
- format(file,128,"Users/%s.ini",vardas);
- if(!dini_Exists(file))
- {
- dini_Create(file);
- }
- dini_IntSet(file,"XP",XP[playerid]);
- dini_IntSet(file,"LVL",lvl[playerid]);
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- stock XpForLevel(level)
- {
- new total = 0;
- for (new i = 1; i < level; i++)
- {
- total += floatround(i + 300 * floatpower(2, i / 7.0),floatround_floor);
- }
- return floatround(total/4,floatround_floor);
- }
- stock CheckLevel(playerid)
- {
- if(XP[playerid] >= XpForLevel(lvl[playerid] + 1))
- {
- if(lvl[playerid] == MAX_LEVEL) return 1;
- lvl[playerid] ++;
- if(GetPlayerScore(playerid) != lvl[playerid])
- {
- SetPlayerScore(playerid,lvl[playerid]);
- }
- new levelstr[100];
- format(levelstr,sizeof(levelstr),"I reached level: %d", lvl[playerid]);
- SendClientMessage(playerid, COLOR_YELLOW, levelstr);
- }
- return 1;
- }
- COMMAND:xp(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid)) { return SendClientMessage(playerid, 0xFF6347FF, "You dont have permision!"); }
- new Target;
- new xplevel;
- if(!sscanf(params, "ui", Target, xplevel))
- {
- if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"ERROR: Bad player ID/name.");
- XP[Target] += xplevel;
- CheckLevel(Target);
- }
- else SendClientMessage(playerid,COLOR_YELLOW,"Use: /xp (player) (xp)");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement