Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <YSI\y_commands>
- new Text: TDName, Text: TDYes, Text: TDNo, Text: TDYesResult, Text: TDNoResult, Text: TDTime;
- new Yes, No, seconds = 60, PlayerToBan =- 1;
- new bool: IsVoteBanStarted, bool: HasPlayerVoted[MAX_PLAYERS];
- new tdstring[128], tdstring2[128], tdname[24], tdname2[24];
- public OnFilterScriptInit()
- {
- print("\n");
- print(" \4\4\4\4\4\4\4\4\4\4\4\4\4\4");
- print(" \4 S32VoteBan \4");
- print(" \4 by \4");
- print(" \4 System32 \4");
- print(" \4\4\4\4\4\4\4\4\4\4\4\4\4\4\n");
- TDName = TextDrawCreate(56.000000, 211.000000, "Name");
- TextDrawBackgroundColor(TDName, 255);
- TextDrawFont(TDName, 2);
- TextDrawLetterSize(TDName, 0.280000, 0.799999);
- TextDrawColor(TDName, -1);
- TextDrawSetOutline(TDName, 0);
- TextDrawSetProportional(TDName, 1);
- TextDrawSetShadow(TDName, 1);
- TDYes = TextDrawCreate(42.000000, 226.000000, "Yes");
- TextDrawBackgroundColor(TDYes, 255);
- TextDrawFont(TDYes, 2);
- TextDrawLetterSize(TDYes, 0.500000, 1.000000);
- TextDrawColor(TDYes, 16777215);
- TextDrawSetOutline(TDYes, 0);
- TextDrawSetProportional(TDYes, 1);
- TextDrawSetShadow(TDYes, 1);
- TDNo = TextDrawCreate(133.000000, 226.000000, "No");
- TextDrawBackgroundColor(TDNo, 255);
- TextDrawFont(TDNo, 2);
- TextDrawLetterSize(TDNo, 0.500000, 1.000000);
- TextDrawColor(TDNo, 16777215);
- TextDrawSetOutline(TDNo, 0);
- TextDrawSetProportional(TDNo, 1);
- TextDrawSetShadow(TDNo, 1);
- TDYesResult = TextDrawCreate(52.000000, 236.000000, "0");
- TextDrawBackgroundColor(TDYesResult, 255);
- TextDrawFont(TDYesResult, 2);
- TextDrawLetterSize(TDYesResult, 0.500000, 1.000000);
- TextDrawColor(TDYesResult, -16711681);
- TextDrawSetOutline(TDYesResult, 0);
- TextDrawSetProportional(TDYesResult, 1);
- TextDrawSetShadow(TDYesResult, 1);
- TDNoResult = TextDrawCreate(137.000000, 236.000000, "0");
- TextDrawBackgroundColor(TDNoResult, 255);
- TextDrawFont(TDNoResult, 2);
- TextDrawLetterSize(TDNoResult, 0.500000, 1.000000);
- TextDrawColor(TDNoResult, -16711681);
- TextDrawSetOutline(TDNoResult, 0);
- TextDrawSetProportional(TDNoResult, 1);
- TextDrawSetShadow(TDNoResult, 1);
- TDTime = TextDrawCreate(93.000000, 230.000000, "60");
- TextDrawBackgroundColor(TDTime, 255);
- TextDrawFont(TDTime, 2);
- TextDrawLetterSize(TDTime, 0.430000, 0.699999);
- TextDrawColor(TDTime, -1);
- TextDrawSetOutline(TDTime, 0);
- TextDrawSetProportional(TDTime, 1);
- TextDrawSetShadow(TDTime, 1);
- return 1;
- }
- public OnFilterScriptExit()
- {
- TextDrawDestroy(TDName);
- TextDrawDestroy(TDYes);
- TextDrawDestroy(TDNo);
- TextDrawDestroy(TDYesResult);
- TextDrawDestroy(TDNoResult);
- TextDrawDestroy(TDTime);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(IsVoteBanStarted == true)
- {
- TextDrawShowForPlayer(playerid, TDName);
- TextDrawShowForPlayer(playerid, TDYes);
- TextDrawShowForPlayer(playerid, TDNo);
- TextDrawShowForPlayer(playerid, TDYesResult);
- TextDrawShowForPlayer(playerid, TDNoResult);
- TextDrawShowForPlayer(playerid, TDTime);
- return 1;
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- if(PlayerToBan == playerid)
- {
- GetPlayerName(playerid, tdname, sizeof(tdname));
- format(tdstring, sizeof(tdstring), "%s exited the server, so the voteban has been closed automatically!", tdname);
- SendClientMessageToAll(0x6DC5F3FF, tdstring);
- Yes=0, No=0, PlayerToBan =- 1, seconds=60, IsVoteBanStarted = false;
- TextDrawHideForAll(TDName);
- TextDrawHideForAll(TDYes);
- TextDrawHideForAll(TDNo);
- TextDrawHideForAll(TDYesResult);
- TextDrawHideForAll(TDNoResult);
- TextDrawHideForAll(TDTime);
- return 1;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == 5656)
- {
- if(response)
- {
- if(IsNumeric(inputtext)) StartVoteBan(strval(inputtext));
- else
- {
- for(new i = 0; i<MAX_PLAYERS; i++)
- {
- GetPlayerName(playerid, tdname, sizeof(tdname));
- if(!strcmp(inputtext, tdname, true))
- {
- StartVoteBan(i);
- break;
- }
- }
- }
- if(PlayerToBan == -1) return SendClientMessage(playerid, 0x6DC5F3FF, "Player not found!");
- GetPlayerName(playerid, tdname2, sizeof(tdname2));
- format(tdstring, sizeof(tdstring), "%s has started a voteban for %s! Type Yes or No to vote", tdname2, tdname);
- SendClientMessageToAll(0x6DC5F3FF, tdstring);
- }
- }
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(!strcmp("Yes", text, true) && strlen(text) == strlen("Yes") && IsVoteBanStarted == true && HasPlayerVoted[playerid] == false)
- {
- Yes++;
- HasPlayerVoted[playerid] = true;
- SendClientMessage(playerid, 0x6DC5F3FF, "Thanks for voting!");
- format(tdstring, sizeof(tdstring), "%d", Yes);
- TextDrawHideForAll(TDYesResult);
- TextDrawSetString(TDYesResult, tdstring);
- TextDrawShowForAll(TDYesResult);
- return 0;
- }
- if(!strcmp("No", text, true) && strlen(text) == strlen("No") && IsVoteBanStarted == true && HasPlayerVoted[playerid] == false)
- {
- No++;
- HasPlayerVoted[playerid] = true;
- SendClientMessage(playerid, 0x6DC5F3FF, "Thanks for voting!");
- format(tdstring, sizeof(tdstring), "%d", No);
- TextDrawHideForAll(TDNoResult);
- TextDrawSetString(TDNoResult, tdstring);
- TextDrawShowForAll(TDNoResult);
- return 0;
- }
- return 1;
- }
- stock IsNumeric(str[])
- {
- for(new i=0; i<strlen(str); i++)
- {
- if(str[i]<'0' || str[i]>'9')
- return 0;
- }
- return 1;
- }
- stock StartVoteBan(playerid)
- {
- if(!IsPlayerConnected(playerid)) return 0;
- PlayerToBan = playerid;
- IsVoteBanStarted = true;
- GetPlayerName(PlayerToBan, tdname, sizeof(tdname));
- format(tdstring, sizeof(tdstring), "~<~%s~>~", tdname);
- TextDrawHideForAll(TDName);
- TextDrawSetString(TDName, tdstring);
- TextDrawShowForAll(TDName);
- TextDrawShowForAll(TDYes);
- TextDrawShowForAll(TDNo);
- TextDrawShowForAll(TDYesResult);
- TextDrawShowForAll(TDNoResult);
- TextDrawShowForAll(TDTime);
- for(new i = 0; i<MAX_PLAYERS; i++)
- HasPlayerVoted[i] = false;
- SetTimer("KickTimer", 1000, false);
- return 1;
- }
- forward KickTimer();
- public KickTimer()
- {
- if(PlayerToBan == -1) return 1;
- if(seconds == 0) return EndVoteBan();
- seconds--;
- format(tdstring, sizeof(tdstring), "%02d", seconds);
- TextDrawHideForAll(TDTime);
- TextDrawSetString(TDTime, tdstring);
- TextDrawShowForAll(TDTime);
- SetTimer("KickTimer", 1000, false);
- return 1;
- }
- stock EndVoteBan()
- {
- GetPlayerName(PlayerToBan, tdname, sizeof(tdname));
- if(Yes > No)
- {
- format(tdstring, sizeof(tdstring), "%s has been votebanned [Yes %d | %d No]", tdname, Yes, No);
- Ban(PlayerToBan);
- }
- else
- {
- format(tdstring2, sizeof(tdstring2), "%s has not been banned! [Yes %d | %d No]", tdname, Yes, No);
- }
- SendClientMessageToAll(0x6DC5F3FF, tdstring2);
- Yes = 0, No = 0, PlayerToBan =- 1, seconds = 60, IsVoteBanStarted = false;
- TextDrawHideForAll(TDName);
- TextDrawHideForAll(TDYes);
- TextDrawHideForAll(TDNo);
- TextDrawHideForAll(TDYesResult);
- TextDrawHideForAll(TDNoResult);
- TextDrawHideForAll(TDTime);
- return 1;
- }
- YCMD:voteban(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- if(IsVoteBanStarted == true) return SendClientMessage(playerid, 0x6DC5F3FF, "A votekban has been already started! Wait until it finish to ask for a new one!");
- ShowPlayerDialog(playerid, 5656, DIALOG_STYLE_INPUT, "Vote Ban", "Type an ID or name of player that you want to ban!", "Ok", "Exit");
- return 1;
- }
- /*=======================================================S32VoteBan=======================================================
- Credits to Phanto90 & System32*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement