Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //*************************************************************************************************************//
- // Control the filterscript // Kontrolliere das FilterScript
- //*************************************************************************************************************//
- #define German //German or english? // Deutsch oder English?
- #define Color 0xFF6400FF //what is the Color? // Was für eine Farbe?
- #define VOTT 1 // how long is the "KickEnd" timer? (in minutes) // Wie lang ist der "KickEnd Timer? (in Minuten)
- //*************************************************************************************************************//
- #include <a_samp> //Download: http://sa-mp.com/ (=
- #include <ocmd> //Download: http://forum.sa-mp.de/san-andreas-multiplayer/scripting-base/showroom/32461-include-ocmd/
- #include <sscanf> //Download: http://forum.sa-mp.com/showthread.php?t=120356
- #include <banfix> // Download: http://forum.sa-mp.de/san-andreas-multiplayer/scripting-base/showroom/159082-kick-ban-fix/
- new VoteYes;
- new VoteNo;
- new KickID;
- new bool:VoteAktiv;
- new KickReason[128];
- forward KickEnd();
- new bool:Votet[MAX_PLAYERS];
- new Text:VBox;
- new Text:VHeader;
- new Text:VPlayer;
- new Text:VLine1;
- new Text:VLine2;
- new Text:VReasonTD;
- new Text:VLine3;
- new Text:VYesTD;
- new Text:VNoTD;
- new Text:VYesVoteTD;
- new Text:VNoVoteTD;
- public OnFilterScriptInit()
- {
- VBox = TextDrawCreate(115.599998, 125.446670, "usebox");
- TextDrawLetterSize(VBox, 0.000000, 11.464073);
- TextDrawTextSize(VBox, -3.599998, 0.000000);
- TextDrawAlignment(VBox, 1);
- TextDrawColor(VBox, 0);
- TextDrawUseBox(VBox, true);
- TextDrawBoxColor(VBox, 102);
- TextDrawSetShadow(VBox, 0);
- TextDrawSetOutline(VBox, 0);
- TextDrawFont(VBox, 0);
- VHeader = TextDrawCreate(18.400016, 114.986656, "Votekick");
- TextDrawLetterSize(VHeader, 0.449999, 1.600000);
- TextDrawAlignment(VHeader, 1);
- TextDrawColor(VHeader, -1);
- TextDrawSetShadow(VHeader, 0);
- TextDrawSetOutline(VHeader, 1);
- TextDrawBackgroundColor(VHeader, -2147483393);
- TextDrawFont(VHeader, 1);
- TextDrawSetProportional(VHeader, 1);
- VPlayer = TextDrawCreate(51.200012, 141.120056, "Player");
- TextDrawLetterSize(VPlayer, 0.449999, 1.600000);
- TextDrawAlignment(VPlayer, 2);
- TextDrawColor(VPlayer, -1);
- TextDrawSetShadow(VPlayer, 0);
- TextDrawSetOutline(VPlayer, 1);
- TextDrawBackgroundColor(VPlayer, 255);
- TextDrawFont(VPlayer, 1);
- TextDrawSetProportional(VPlayer, 1);
- VLine1 = TextDrawCreate(-6.400009, 126.186576, "-----------------");
- TextDrawLetterSize(VLine1, 0.449999, 1.600000);
- TextDrawAlignment(VLine1, 1);
- TextDrawColor(VLine1, -1);
- TextDrawSetShadow(VLine1, 0);
- TextDrawSetOutline(VLine1, 1);
- TextDrawBackgroundColor(VLine1, 51);
- TextDrawFont(VLine1, 1);
- TextDrawSetProportional(VLine1, 1);
- VLine2 = TextDrawCreate(-6.400004, 153.066711, "-----------------");
- TextDrawLetterSize(VLine2, 0.449999, 1.600000);
- TextDrawAlignment(VLine2, 1);
- TextDrawColor(VLine2, -1);
- TextDrawSetShadow(VLine2, 0);
- TextDrawSetOutline(VLine2, 1);
- TextDrawBackgroundColor(VLine2, 51);
- TextDrawFont(VLine2, 1);
- TextDrawSetProportional(VLine2, 1);
- VReasonTD = TextDrawCreate(51.199970, 165.013320, "Reason");
- TextDrawLetterSize(VReasonTD, 0.322798, 1.510398);
- TextDrawAlignment(VReasonTD, 2);
- TextDrawColor(VReasonTD, 255);
- TextDrawSetShadow(VReasonTD, 0);
- TextDrawSetOutline(VReasonTD, 1);
- TextDrawBackgroundColor(VReasonTD, -1);
- TextDrawFont(VReasonTD, 1);
- TextDrawSetProportional(VReasonTD, 1);
- VLine3 = TextDrawCreate(-5.599973, 176.213272, "-----------------");
- TextDrawLetterSize(VLine3, 0.449999, 1.600000);
- TextDrawAlignment(VLine3, 1);
- TextDrawColor(VLine3, -1);
- TextDrawSetShadow(VLine3, 0);
- TextDrawSetOutline(VLine3, 1);
- TextDrawBackgroundColor(VLine3, 51);
- TextDrawFont(VLine3, 1);
- TextDrawSetProportional(VLine3, 1);
- #if defined German
- VYesTD = TextDrawCreate(27.199989, 191.893325, "Ja(Z)");
- #else
- VYesTD = TextDrawCreate(27.199989, 191.893325, "Yes(Z)");
- #endif
- TextDrawLetterSize(VYesTD, 0.449999, 1.600000);
- TextDrawAlignment(VYesTD, 2);
- TextDrawColor(VYesTD, -1);
- TextDrawSetShadow(VYesTD, 0);
- TextDrawSetOutline(VYesTD, 1);
- TextDrawBackgroundColor(VYesTD, -2147483393);
- TextDrawFont(VYesTD, 1);
- TextDrawSetProportional(VYesTD, 1);
- #if defined German
- VNoTD = TextDrawCreate(81.599975, 192.639984, "Nein(N)");
- #else
- VNoTD = TextDrawCreate(81.599975, 192.639984, "No(N)");
- #endif
- TextDrawLetterSize(VNoTD, 0.449999, 1.600000);
- TextDrawAlignment(VNoTD, 2);
- TextDrawColor(VNoTD, -1);
- TextDrawSetShadow(VNoTD, 0);
- TextDrawSetOutline(VNoTD, 1);
- TextDrawBackgroundColor(VNoTD, -2147483393);
- TextDrawFont(VNoTD, 1);
- TextDrawSetProportional(VNoTD, 1);
- VYesVoteTD = TextDrawCreate(19.999998, 210.559936, "0");
- TextDrawLetterSize(VYesVoteTD, 0.449999, 1.600000);
- TextDrawAlignment(VYesVoteTD, 2);
- TextDrawColor(VYesVoteTD, -1);
- TextDrawSetShadow(VYesVoteTD, 2);
- TextDrawSetOutline(VYesVoteTD, 0);
- TextDrawBackgroundColor(VYesVoteTD, 255);
- TextDrawFont(VYesVoteTD, 1);
- TextDrawSetProportional(VYesVoteTD, 1);
- VNoVoteTD = TextDrawCreate(69.599998, 210.559967, "0");
- TextDrawLetterSize(VNoVoteTD, 0.449999, 1.600000);
- TextDrawAlignment(VNoVoteTD, 1);
- TextDrawColor(VNoVoteTD, -1);
- TextDrawSetShadow(VNoVoteTD, 2);
- TextDrawSetOutline(VNoVoteTD, 0);
- TextDrawBackgroundColor(VNoVoteTD, 255);
- TextDrawFont(VNoVoteTD, 1);
- TextDrawSetProportional(VNoVoteTD, 1);
- #if defined German
- print(" Vote System von DialogHD wurde erfolgreich geladen.");
- #else
- print(" Vote system by DialogHD loaded successfully");
- #endif
- VoteAktiv = false;
- return 1;
- }
- public OnFilterScriptExit()
- {
- if(VoteAktiv == true)
- {
- #if defined German
- SendClientMessageToAll(Color,"Server Restart - der Vote Kick wurde agebrochen.");
- #else
- SendClientMessageToAll(Color,"Server restart - the vote kick was canceled.");
- #endif
- VoteYes = 0;
- VoteNo = 0;
- KickID = 0;
- VoteAktiv = false;
- TextDrawHideForAll(VBox);
- TextDrawHideForAll(VHeader);
- TextDrawHideForAll(VPlayer);
- TextDrawHideForAll(VLine1);
- TextDrawHideForAll(VLine2);
- TextDrawHideForAll(VReasonTD);
- TextDrawHideForAll(VLine3);
- TextDrawHideForAll(VYesTD);
- TextDrawHideForAll(VNoTD);
- TextDrawHideForAll(VYesVoteTD);
- TextDrawHideForAll(VNoVoteTD);
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(VoteAktiv == true)
- {
- if(playerid == KickID && VoteAktiv == true)
- {
- #if defined German
- SendClientMessageToAll(Color,"Der Spieler hat den Server Verlassen, die Vote runde wurde abgebrochen.");
- #else
- SendClientMessageToAll(Color,"The VPlayer has disconnected from the server - the vote was canceled.");
- #endif
- VoteYes = 0;
- VoteNo = 0;
- KickID = 0;
- VoteAktiv = false;
- }
- }
- return 1;
- }
- ocmd:votekick(playerid,params[])
- {
- if(!IsPlayerConnected(playerid)) return 1;
- new ID,Reason[128];
- #if defined German
- if(sscanf(params, "us",ID,Reason)) { return SendClientMessage(playerid, Color, "/votekick [ID] [Grund]"); }
- #else
- if(sscanf(params, "us",ID,Reason)) { return SendClientMessage(playerid, Color, "/votekick [ID] [Reason]"); }
- #endif
- if(VoteAktiv == true) { return 1; }
- if(strlen(Reason) > 15)
- {
- #if defined German
- SendClientMessage(playerid, Color, "Der Grund ist zu lang! [Maximal 15 Buchstaben]");
- #else
- SendClientMessage(playerid, Color, "The reason is too long [maximum 15 letters]");
- #endif
- return 1;
- }
- if(!IsPlayerConnected(ID))
- {
- #if defined German
- SendClientMessage(playerid, Color, "Der Spieler ist nicht Verbunden.");
- #else
- SendClientMessage(playerid, Color, "The VPlayer is not connected.");
- #endif
- return 1;
- }
- if(ID == playerid) return 1;
- for(new pID = 0; pID < MAX_PLAYERS; pID++) {if(IsPlayerConnected(pID)) { Votet[pID] = false; } }
- new TDM[16],name[MAX_PLAYER_NAME];
- GetPlayerName(ID,name,sizeof(name));
- format(TDM,sizeof(TDM),"%s",Reason);
- TextDrawSetString(VPlayer,name);
- TextDrawSetString(VReasonTD,TDM);
- VoteYes = 0;
- VoteNo = 0;
- KickID = ID;
- VoteAktiv = true;
- KickReason = Reason;
- format(TDM,sizeof(TDM),"%d",VoteNo);
- TextDrawSetString(VNoVoteTD,TDM);
- format(TDM,sizeof(TDM),"%d",VoteYes);
- TextDrawSetString(VYesVoteTD,TDM);
- TextDrawShowForAll(VBox);
- TextDrawShowForAll(VHeader);
- TextDrawShowForAll(VPlayer);
- TextDrawShowForAll(VLine1);
- TextDrawShowForAll(VLine2);
- TextDrawShowForAll(VReasonTD);
- TextDrawShowForAll(VLine3);
- TextDrawShowForAll(VYesTD);
- TextDrawShowForAll(VNoTD);
- SetTimer("KickEnd",60000*VOTT,false);
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(VoteAktiv == true)
- {
- if(playerid == KickID) return 1;
- if(Votet[playerid] == true) return 1;
- if(newkeys == KEY_YES)
- {
- if(Votet[playerid] == false)
- {
- VoteYes ++;
- #if defined German
- SendClientMessage(playerid,Color,"Du hast für Ja abgestimmt.");
- #else
- SendClientMessage(playerid,Color,"You have vote for yes.");
- #endif
- new TDM[3];
- format(TDM,sizeof(TDM),"%d",VoteYes);
- TextDrawSetString(VYesVoteTD,TDM);
- TextDrawShowForPlayer(playerid,VYesVoteTD);
- TextDrawShowForPlayer(playerid,VNoVoteTD);
- Votet[playerid] = true;
- return 1;
- }
- }
- if(newkeys == KEY_NO)
- {
- if(Votet[playerid] == false)
- {
- VoteNo ++;
- #if defined German
- SendClientMessage(playerid,Color,"Du hast für Nein abgestimmt.");
- #else
- SendClientMessage(playerid,Color,"You have vote for no.");
- #endif
- new TDM[3];
- format(TDM,sizeof(TDM),"%d",VoteNo);
- TextDrawSetString(VNoVoteTD,TDM);
- TextDrawShowForPlayer(playerid,VYesVoteTD);
- TextDrawShowForPlayer(playerid,VNoVoteTD);
- Votet[playerid] = true;
- return 1;
- }
- }
- }
- return 1;
- }
- public KickEnd()
- {
- if(VoteYes > VoteNo && VoteAktiv == true)
- {
- new stringM[128];
- new KickName[MAX_PLAYER_NAME];
- GetPlayerName(KickID,KickName,sizeof(KickName));
- #if defined German
- format(stringM,sizeof(stringM),"[VOTEKICK] %s wurde gekickt [Grund: %s]",KickName,KickReason);
- #else
- format(stringM,sizeof(stringM),"[VOTEKICK] %s was kicked [reason: %s]",KickName,KickReason);
- #endif
- SendClientMessageToAll(Color,stringM);
- VoteAktiv = false;
- TextDrawHideForAll(VBox);
- TextDrawHideForAll(VHeader);
- TextDrawHideForAll(VPlayer);
- TextDrawHideForAll(VLine1);
- TextDrawHideForAll(VLine2);
- TextDrawHideForAll(VReasonTD);
- TextDrawHideForAll(VLine3);
- TextDrawHideForAll(VYesTD);
- TextDrawHideForAll(VNoTD);
- TextDrawHideForAll(VYesVoteTD);
- TextDrawHideForAll(VNoVoteTD);
- Kick(KickID);
- printf("Vote End");
- return 1;
- }
- else if(VoteNo >= VoteYes && VoteAktiv == true)
- {
- TextDrawHideForAll(VBox);
- TextDrawHideForAll(VHeader);
- TextDrawHideForAll(VPlayer);
- TextDrawHideForAll(VLine1);
- TextDrawHideForAll(VLine2);
- TextDrawHideForAll(VReasonTD);
- TextDrawHideForAll(VLine3);
- TextDrawHideForAll(VYesTD);
- TextDrawHideForAll(VNoTD);
- TextDrawHideForAll(VYesVoteTD);
- TextDrawHideForAll(VNoVoteTD);
- VoteAktiv = false;
- printf("Vote End");
- return 1;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment