Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <djson>
- #include <zcmd>
- #undef MAX_PLAYERS
- #define MAX_SLOTS 30
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_GREEN 0xFF0000AA
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_GRAY 0xAFAFAFAA
- #define ploop(%0) for(new %0 = 0; %0 < MAX_SLOTS; %0++) if(IsPlayerConnected(%0))
- new PlayerName[MAX_SLOTS][MAX_PLAYER_NAME],
- Text:TextDraw0, Text:TextDraw1,
- Text:TextDraw2, Text:TextDraw3,
- Text:TextDraw4, Text:TextDraw5,
- Text:R_1[MAX_SLOTS], Text:Stats[MAX_SLOTS],
- Kills[MAX_SLOTS], Deaths[MAX_SLOTS]
- ;
- public OnFilterScriptInit()
- {
- djson_GameModeInit();
- djStyled(true);
- if(!fexist("Deaths.cfg")) djCreateFile("Deaths.cfg");
- if(!fexist("Kills.cfg")) djCreateFile("Kills.cfg");
- TextDraw0 = TextDrawCreate(46.000000,254.000000,"Top 5 list");
- TextDraw1 = TextDrawCreate(45.000000,274.000000,"1.name 111 Shooter");
- TextDraw2 = TextDrawCreate(41.000000,286.000000,"2.name 111 Shooter");
- TextDraw3 = TextDrawCreate(40.000000,299.000000,"3.name 111 Shooter");
- TextDraw4 = TextDrawCreate(40.000000,311.000000,"4.name 111 Shooter");
- TextDraw5 = TextDrawCreate(40.000000,322.000000,"5.name 111 Shooter");
- TextDrawAlignment(TextDraw0,0);
- TextDrawAlignment(TextDraw1,0);
- TextDrawAlignment(TextDraw2,0);
- TextDrawAlignment(TextDraw3,0);
- TextDrawAlignment(TextDraw4,0);
- TextDrawAlignment(TextDraw5,0);
- TextDrawBackgroundColor(TextDraw0,0x000000ff);
- TextDrawBackgroundColor(TextDraw1,0x000000ff);
- TextDrawBackgroundColor(TextDraw2,0x000000ff);
- TextDrawBackgroundColor(TextDraw3,0x000000ff);
- TextDrawBackgroundColor(TextDraw4,0x000000ff);
- TextDrawBackgroundColor(TextDraw5,0x000000ff);
- TextDrawFont(TextDraw0,1);
- TextDrawLetterSize(TextDraw0,0.499999,1.000000);
- TextDrawFont(TextDraw1,1);
- TextDrawLetterSize(TextDraw1,0.299999,1.000000);
- TextDrawFont(TextDraw2,1);
- TextDrawLetterSize(TextDraw2,0.299999,1.000000);
- TextDrawFont(TextDraw3,1);
- TextDrawLetterSize(TextDraw3,0.299999,1.000000);
- TextDrawFont(TextDraw4,1);
- TextDrawLetterSize(TextDraw4,0.299999,1.000000);
- TextDrawFont(TextDraw5,1);
- TextDrawLetterSize(TextDraw5,0.299999,1.000000);
- TextDrawColor(TextDraw0,0xff0000cc);
- TextDrawColor(TextDraw1,0xffffffff);
- TextDrawColor(TextDraw2,0xffffffff);
- TextDrawColor(TextDraw3,0xffffffff);
- TextDrawColor(TextDraw4,0xffffffff);
- TextDrawColor(TextDraw5,0xffffffff);
- TextDrawSetOutline(TextDraw0,1);
- TextDrawSetOutline(TextDraw1,1);
- TextDrawSetOutline(TextDraw2,1);
- TextDrawSetOutline(TextDraw3,1);
- TextDrawSetOutline(TextDraw4,1);
- TextDrawSetOutline(TextDraw5,1);
- TextDrawSetProportional(TextDraw0,1);
- TextDrawSetProportional(TextDraw1,1);
- TextDrawSetProportional(TextDraw2,1);
- TextDrawSetProportional(TextDraw3,1);
- TextDrawSetProportional(TextDraw4,1);
- TextDrawSetProportional(TextDraw5,1);
- TextDrawSetShadow(TextDraw0,1);
- TextDrawSetShadow(TextDraw1,1);
- TextDrawSetShadow(TextDraw2,1);
- TextDrawSetShadow(TextDraw3,1);
- TextDrawSetShadow(TextDraw4,1);
- TextDrawSetShadow(TextDraw5,1);
- TextDrawShowForAll(TextDraw0);
- TextDrawShowForAll(TextDraw1);
- TextDrawShowForAll(TextDraw2);
- TextDrawShowForAll(TextDraw3);
- TextDrawShowForAll(TextDraw4);
- TextDrawShowForAll(TextDraw5);
- ploop(i)
- {
- GetPlayerName(i, PlayerName[i], MAX_PLAYER_NAME);
- TextDrawShowForPlayer(i, Stats[i]);
- TextDrawShowForPlayer(i, R_1[i]);
- }
- UpdateTopList();
- print("** Rank system loaded - Rebuild by Kwarde");
- return 1;
- }
- public OnFilterScriptExit()
- {
- djson_GameModeExit();
- TextDrawDestroy(TextDraw0);
- TextDrawDestroy(TextDraw1);
- TextDrawDestroy(TextDraw2);
- TextDrawDestroy(TextDraw3);
- TextDrawDestroy(TextDraw4);
- TextDrawDestroy(TextDraw5);
- for(new i = 0; i < MAX_SLOTS; i++)
- {
- TextDrawDestroy(R_1[i]);
- TextDrawDestroy(Stats[i]);
- }
- print("** Rank system unloaded - Rebuild by Kwarde");
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new str[128];
- GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
- Deaths[playerid] = djInt("Deaths.cfg", PlayerName[playerid]);
- Kills[playerid] = djInt("Kills.cfg", PlayerName[playerid]);
- format(str, 128, "-> Welcome to the server %s! Enjoy your stay here.", PlayerName[playerid]);
- SendClientMessage(playerid, COLOR_YELLOW, str);
- SendClientMessage(playerid, COLOR_GRAY, "** This sserver is using a rank system, which is rebuild by Kwarde");
- R_1[playerid] = TextDrawCreate(498.000000, 100.000000, " ");
- TextDrawBackgroundColor(R_1[playerid], 255);
- TextDrawFont(R_1[playerid], 2);
- TextDrawLetterSize(R_1[playerid], 0.250000, 0.899999);
- TextDrawColor(R_1[playerid], -1);
- TextDrawSetOutline(R_1[playerid], 0);
- TextDrawSetProportional(R_1[playerid], 1);
- TextDrawSetShadow(R_1[playerid], 1);
- Stats[playerid] = TextDrawCreate(499.000000, 110.000000, "~r~Kills: ~w~0 ~g~Deaths: ~w~0");
- TextDrawBackgroundColor(Stats[playerid], 255);
- TextDrawFont(Stats[playerid], 2);
- TextDrawLetterSize(Stats[playerid], 0.159999, 1.000000);
- TextDrawColor(Stats[playerid], -1);
- TextDrawSetOutline(Stats[playerid], 0);
- TextDrawSetProportional(Stats[playerid], 1);
- TextDrawSetShadow(Stats[playerid], 1);
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- djSetInt("Deaths.cfg", PlayerName[playerid], Deaths[playerid]);
- djSetInt("Kills.cfg", PlayerName[playerid], Kills[playerid]);
- TextDrawDestroy(R_1[playerid]);
- TextDrawDestroy(Stats[playerid]);
- UpdateTopList();
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- TextDrawShowForPlayer(playerid, TextDraw0);
- TextDrawShowForPlayer(playerid, TextDraw1);
- TextDrawShowForPlayer(playerid, TextDraw2);
- TextDrawShowForPlayer(playerid, TextDraw3);
- TextDrawShowForPlayer(playerid, TextDraw4);
- TextDrawShowForPlayer(playerid, TextDraw5);
- TextDrawShowForPlayer(playerid, Stats[playerid]);
- TextDrawShowForPlayer(playerid, R_1[playerid]);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(killerid != INVALID_PLAYER_ID)
- {
- Kills[killerid]++;
- djSetInt("Kills.cfg", PlayerName[killerid], Kills[killerid]);
- }
- Deaths[playerid]++;
- djSetInt("Deaths.cfg", PlayerName[playerid], Deaths[playerid]);
- TextDrawHideForPlayer(playerid, TextDraw0);
- TextDrawHideForPlayer(playerid, TextDraw1);
- TextDrawHideForPlayer(playerid, TextDraw2);
- TextDrawHideForPlayer(playerid, TextDraw3);
- TextDrawHideForPlayer(playerid, TextDraw4);
- TextDrawHideForPlayer(playerid, TextDraw5);
- TextDrawHideForPlayer(playerid, Stats[playerid]);
- TextDrawHideForPlayer(playerid, R_1[playerid]);
- UpdateTopList();
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- new str[128];
- format(str, 128, "~g~Kills: ~w~%d ~r~Deaths: ~w~%d", Kills[playerid], Deaths[playerid]);
- TextDrawSetString(Stats[playerid], str);
- format(str, 128, "~r~RANK: ~w~%s", GetPlayerRank(playerid));
- TextDrawSetString(R_1[playerid], str);
- return 1;
- }
- stock GetPlayerRank(playerid)
- {
- new str[30], k = Kills[playerid];
- if(k >= 0 && k <= 10) format(str, 30, "Newbie shooter");
- else if(k >= 11 && k <= 25) format(str, 30, "Killer shooter");
- else if(k >= 26 && k <= 75) format(str, 30, "Master shooter");
- else if(k >= 76 && k <= 150) format(str, 30, "Pro shooter");
- else if(k >= 151 && k <= 300) format(str, 30, "Striker shooter");
- else if(k >= 301 && k <= 450) format(str, 30, "Freekill shooter");
- else if(k >= 451 && k <= 675) format(str, 30, "Psycho shooter");
- else if(k >= 676 && k <= 1000) format(str, 30, "Fatal shooter");
- else if(k >= 1001 && k <= 1500) format(str, 30, "Havoc shooter");
- else if(k >= 1501 && k <= 2250) format(str, 30, "Extreme shooter");
- else if(k >= 2251 && k <= 5100) format(str, 30, "Wild shooter");
- else if(k >= 5101 && k <= 7650) format(str, 30, "Hazardous shooter");
- else if(k <= 7651 && k <= 11475) format(str, 30, "IGI Shooter");
- else if(k <= 11476 && k <= 17500) format(str, 30, "Tactical shooter");
- else if(k >= 17501 && k <= 26250) format(str, 30, "Deticated shooter");
- else if(k >= 26251 && k <= 39375) format(str, 30, "Insane shooter");
- else if(k >= 39376 && k <= 60000) format(str, 30, "The real shooter");
- else if(k >= 60001 && k <= 100000) format(str, 30, "Professional shooter");
- else format(str, 30, "Rockstar shooter");
- return str;
- }
- stock UpdateTopList()
- {
- new
- LastHighestScore = cellmin,
- LastID = INVALID_PLAYER_ID,
- TopList[5],
- str[5][128]
- ;
- ploop(i)
- {
- if(Kills[i] > LastHighestScore)
- {
- LastHighestScore = Kills[i];
- LastID = i;
- }
- }
- TopList[0] = LastID;
- LastHighestScore = cellmin;
- LastID = INVALID_PLAYER_ID;
- ploop(i)
- {
- if(i == TopList[0]) continue;
- if(Kills[i] > LastHighestScore)
- {
- LastHighestScore = Kills[i];
- LastID = i;
- }
- }
- TopList[1] = LastID;
- LastHighestScore = cellmin;
- LastID = INVALID_PLAYER_ID;
- ploop(i)
- {
- if(i == TopList[0] || i == TopList[1]) continue;
- if(Kills[i] > LastHighestScore)
- {
- LastHighestScore = Kills[i];
- LastID = i;
- }
- }
- TopList[2] = LastID;
- LastHighestScore = cellmin;
- LastID = INVALID_PLAYER_ID;
- ploop(i)
- {
- if(i == TopList[0] || i == TopList[1] || i == TopList[2]) continue;
- if(Kills[i] > LastHighestScore)
- {
- LastHighestScore = Kills[i];
- LastID = i;
- }
- }
- TopList[3] = LastID;
- LastHighestScore = cellmin;
- LastID = INVALID_PLAYER_ID;
- ploop(i)
- {
- if(i == TopList[0] || i == TopList[1] || i == TopList[2] || i == TopList[3]) continue;
- if(Kills[i] > LastHighestScore)
- {
- LastHighestScore = Kills[i];
- LastID = i;
- }
- }
- TopList[4] = LastID;
- for(new i = 0; i < 5; i++)
- {
- if(TopList[i] == INVALID_PLAYER_ID)
- format(str[i], 128, "~g~%d. ~w~None None None", i + 1);
- else format(str[i], 128, "~g~%d. ~w~%s %d %s", i + 1, PlayerName[TopList[i]], Kills[TopList[i]], GetPlayerRank(TopList[i]));
- }
- TextDrawSetString(TextDraw1, str[0]);
- TextDrawSetString(TextDraw2, str[1]);
- TextDrawSetString(TextDraw3, str[2]);
- TextDrawSetString(TextDraw4, str[3]);
- TextDrawSetString(TextDraw5, str[4]);
- return 1;
- }
- CMD:rank(playerid, params[])
- {
- new str[128], id;
- if(isnull(params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /rank [playerid]");
- id = strval(params);
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_GRAY, "* That player isn't connected!");
- format(str, 128, "{00FF00}%s's current rank: {FFFFFF}%s", PlayerName[id], GetPlayerRank(id));
- SendClientMessage(playerid, COLOR_WHITE, str);
- format(str, 128, " Kills: %d || Deaths: %d", Kills[id], Deaths[id]);
- SendClientMessage(playerid, COLOR_GREEN, str);
- return 1;
- }
- CMD:mykills(playerid, params[]) return Kills[playerid] = strval(params);
- CMD:updatetl(playerid, params[]) return UpdateTopList();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement