Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- forward CheckForSpree();
- new PKills[MAX_PLAYERS+1];
- new SpreeP = -1;
- new Text:NameSpree;
- new Text:SpreeNumb;
- stock PName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
- stock RemoveSpree(playerid)
- {
- SpreeP = -1;
- PKills[playerid] = 0;
- new Higher=-1;
- new PHigher=-1;
- new i=0;
- while(i < MAX_PLAYERS)
- {
- if(PKills[i] > Higher)
- {
- Higher = PKills[i];
- PHigher = i;
- }
- i++;
- }
- if(Higher <= 0) SpreeP = -1;
- else
- {
- Higher = 0;
- SpreeP = PHigher;
- }
- return 1;
- }
- IsNumeric(const string[])
- {
- new i;
- while(string[i] != '\0')
- {
- if (string[i] > '9' || string[i] < '0'){return 0;}
- i++;
- }
- return 1;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
- public OnFilterScriptInit()
- {
- NameSpree = TextDrawCreate(628.000000, 391.000000, "~b~~h~PlayerName~w~~h~ is on a spree");
- TextDrawAlignment(NameSpree, 3);
- TextDrawBackgroundColor(NameSpree, 255);
- TextDrawFont(NameSpree, 1);
- TextDrawLetterSize(NameSpree, 0.500000, 2.099999);
- TextDrawColor(NameSpree, -1);
- TextDrawSetOutline(NameSpree, 0);
- TextDrawSetProportional(NameSpree, 1);
- TextDrawSetShadow(NameSpree, 1);
- SpreeNumb = TextDrawCreate(627.000000, 411.000000, "~r~~h~Number of Kills~w~~h~ in a row");
- TextDrawAlignment(SpreeNumb, 3);
- TextDrawBackgroundColor(SpreeNumb, 255);
- TextDrawFont(SpreeNumb, 1);
- TextDrawLetterSize(SpreeNumb, 0.519999, 2.099999);
- TextDrawColor(SpreeNumb, -1);
- TextDrawSetOutline(SpreeNumb, 0);
- TextDrawSetProportional(SpreeNumb, 1);
- TextDrawSetShadow(SpreeNumb, 1);
- SetTimer("CheckForSpree", 1000, true);
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- PKills[killerid]++;
- PKills[playerid] = 0;
- if(SpreeP != -1){if(PKills[killerid] > PKills[SpreeP]) SpreeP = killerid;}
- else
- {
- SpreeP = killerid;
- }
- if(playerid == SpreeP)
- {
- RemoveSpree(playerid);
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(playerid == SpreeP)
- {
- RemoveSpree(playerid);
- }
- }
- public CheckForSpree()
- {
- new FormA[128], FormB[128];
- if(SpreeP != -1)
- {
- format(FormA, sizeof(FormA), "~b~~h~%s~w~~h~ is on a spree", PName(SpreeP));
- format(FormB, sizeof(FormB), "~r~~h~%i kills~w~~h~ in a row", PKills[SpreeP]);
- TextDrawSetString(NameSpree, FormA);
- TextDrawSetString(SpreeNumb, FormB);
- TextDrawShowForAll(NameSpree);
- TextDrawShowForAll(SpreeNumb);
- }
- else
- {
- TextDrawHideForAll(NameSpree);
- TextDrawHideForAll(SpreeNumb);
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[128], idx;
- cmd = strtok(cmdtext, idx);
- if(!strcmp(cmd, "/rmvspree", true))
- {
- if(!IsPlayerAdmin(playerid)) return 0;
- new tmp[128];
- tmp = strtok(cmdtext, idx);
- new PID = strval(tmp);
- if(!IsPlayerConnected(PID) || !IsNumeric(tmp) || !strlen(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "Invalid input");
- RemoveSpree(PID);
- SendClientMessage(playerid, 0x00FF00FF, "Spree sucessfully removed!");
- SendClientMessage(PID, 0xFF00FFFF, "A Admin has removed your spree!");
- return 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement