Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Jaja liebe Typen die das Filterscript gedownloadet haben :O
- ich habe dieses kleine Vote System einfach mal aus Spaß geschrieben,
- ich hoffe es gefällt euch.
- */
- #include <a_samp>
- /* === FARBEN ===*/
- #define cROT 0xE60000FF
- #define cAROT 0xFB0000FF
- #define cGELB 0xFFFF00FF
- #define cORANGE 0xF97804FF
- #define cLROT 0xFF8080FF
- #define cLBLAU 0x00C2ECFF
- #define cBLAU 0x33AAFFFF
- #define cLGREEN 0x38FF06FF
- #define cDPINK 0xE100E1FF
- #define cFARBESYSTEM 0xEFEFF7AA
- /* === EINSTELLUNGEN ===*/
- #define STIMMZEIT 30000
- #define STRING 255
- #define WARTEZEIT 120000
- /* === DEFINDES NEW === */
- new STIMMKICK;
- new Votes;
- new Voted[MAX_PLAYERS];
- new PlayerCount;
- new Wait[MAX_PLAYERS];
- forward VoteTimer(giveplayerid);
- forward WaitT(playerid);
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print("Kleines Votesystem von mir! (Maax_)");
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- Voted[playerid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- Voted[playerid] = 0;
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[128];
- new tmp[128];
- new idx;
- new giveplayerid;
- new giveplayer[MAX_PLAYER_NAME];
- new sendername[MAX_PLAYER_NAME];
- new string[STRING];
- cmd = strtok(cmdtext,idx);
- if(strcmp(cmd, "/STIMMKICK", true) == 0)
- {
- if(Wait[playerid] == 1) return SendClientMessage(playerid, cBLAU, ">> Du musst 60 Sekunden warten bevor du wieder ein Vote startest!");
- for (new i = 0; i < GetMaxPlayers(); i++)
- {
- if(IsPlayerConnected(i))
- {
- #if defined ADMINSONLNE
- if(IsPlayerAdmin(i))
- {
- format(string, sizeof(string), "ERROR: Derzeit ist ein Admin Online. (%s (%d)) schreibe einfach einen Report zu einem Admin. (/sup)", Name(i), i);
- SendClientMessage(playerid, cROT, string);
- return 1;
- }
- #endif
- PlayerCount++;
- }
- }
- if(PlayerCount <= 3)
- {
- SendClientMessage(playerid, cROT, "ERROR: Es müssen 3 Spieler Online sein damit du einen STIMMKICK Starten kannst!");
- return 1;
- }
- new reason[256];
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp))
- {
- SendClientMessage(playerid, cBLAU, "* /STIMMKICK [pID] [Grund]");
- return 1;
- }
- if(STIMMKICK == 1)
- {
- SendClientMessage(playerid, cROT, "ERROR: Es läuft gerade eine Umfrage für einen STIMMKICK!");
- return 1;
- }
- if(IsPlayerAdmin(giveplayerid))
- {
- SendClientMessage(playerid, cROT, "ERROR: Du kannst auf keinen Admin Voten!");
- return 1;
- }
- giveplayerid = ReturnUser(tmp);
- if(giveplayerid != INVALID_PLAYER_ID)
- {
- GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
- GetPlayerName(playerid, sendername, sizeof(sendername));
- new length = strlen(cmdtext);
- while ((idx < length) && (cmdtext[idx] <= ' '))
- {
- idx++;
- }
- new offset = idx;
- while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
- {
- reason[idx - offset] = cmdtext[idx];
- idx++;
- }
- reason[idx - offset] = EOS;
- if(!strlen(reason))
- {
- SendClientMessage(playerid, cBLAU, "* /STIMMKICK [pID] [Grund]");
- return 1;
- }
- else
- {
- format(string, sizeof(string), "[NEWS]: Spieler %s hat einen STIMMKICK auf %s gestartet, Grund: %s | Verbleibende Zeit: %d Sekunden", Name(playerid), Name(giveplayerid), reason, STIMMZEIT / 1000);
- print(string);
- SendClientMessageToAll(cGELB, string);
- SendClientMessageToAll(cGELB, "* Möchtest du auch das dieser Spieler gekickt wird? Nutze /vote");
- Votes = 1;
- SetTimerEx("VoteTimer", STIMMZEIT, 0, "i", giveplayerid);
- STIMMKICK = 1;
- Voted[playerid] = 1;
- Wait[playerid] = 1;
- SetTimerEx("WaitT", WARTEZEIT, 0, "d", playerid);
- }
- }
- else if(giveplayerid == INVALID_PLAYER_ID)
- {
- format(string, sizeof(string), "* Derzeit ist kein Spieler mit der ID %d Online!", giveplayerid);
- SendClientMessage(playerid, cBLAU, string);
- }
- return 1;
- }
- if(strcmp(cmd, "/vote", true) == 0)
- {
- if(Voted[playerid] == 1)
- {
- SendClientMessage(playerid, cROT, "Du hast schon ein Vote gemacht!");
- }
- else
- {
- Voted[playerid] = 1;
- Votes++;
- format(string, sizeof(string), "%s hat einen Vote gemacht (%d/%d)", Name(playerid), Votes, (PlayerCount /= 2)+1);
- SendClientMessageToAll(cGELB, string);
- }
- return 1;
- }
- return 0;
- }
- public VoteTimer(giveplayerid)
- {
- new string[STRING];
- new TempPlayerCount = PlayerCount;
- TempPlayerCount /= 2;
- if(Votes > TempPlayerCount)
- {
- format(string, sizeof(string), "%s wurde von dem Vote System gekickt!", Name(giveplayerid));
- SendClientMessageToAll(cGELB, string);
- Kick(giveplayerid);
- }
- else
- {
- format(string, sizeof(string), "%s wurde nicht von dem Vote System gekickt, Grund: nicht genug Votes", Name(giveplayerid));
- SendClientMessageToAll(cGELB, string);
- }
- for(new i = 0; i < GetMaxPlayers(); i++)
- {
- Voted[i] = 0;
- }
- Votes = 0;
- STIMMKICK = 0;
- return 1;
- }
- public WaitT(playerid)
- {
- Wait[playerid] = 0;
- return 1;
- }
- stock Name(playerid) //By Alex "Y_Less" Cole
- {
- new plname[24];
- GetPlayerName(playerid, plname, sizeof(plname));
- return plname;
- }
- stock strtok(const string[], &index,seperator=' ')
- {
- new length = strlen(string);
- new offset = index;
- new result[128];
- while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- if ((index < length) && (string[index] == seperator))
- {
- index++;
- }
- return result;
- }
- stock IsNumeric(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++)
- if (string[i] > '9' || string[i] < '0')
- return 0;
- return 1;
- }
- ReturnUser(text[], playerid = INVALID_PLAYER_ID)
- {
- new pos = 0;
- while (text[pos] < 0x21)
- {
- if (text[pos] == 0) return INVALID_PLAYER_ID;
- pos++;
- }
- new userid = INVALID_PLAYER_ID;
- if (IsNumeric(text[pos]))
- {
- userid = strval(text[pos]);
- if (userid >=0 && userid < MAX_PLAYERS)
- {
- if(!IsPlayerConnected(userid))
- userid = INVALID_PLAYER_ID;
- else return userid;
- }
- }
- new len = strlen(text[pos]);
- new count = 0;
- new pname[MAX_PLAYER_NAME];
- for (new i = 0; i < GetMaxPlayers(); i++)
- {
- if (IsPlayerConnected(i))
- {
- GetPlayerName(i, pname, sizeof (pname));
- if (strcmp(pname, text[pos], true, len) == 0)
- {
- if (len == strlen(pname)) return i;
- else
- {
- count++;
- userid = i;
- }
- }
- }
- }
- if (count != 1)
- {
- if (playerid != INVALID_PLAYER_ID)
- {
- if (count) SendClientMessage(playerid, cFARBESYSTEM, "ERROR: Mit diesem Namen gibt es mehrere Benutzer, bitte geben sie den Namen vollständig ein!");
- else SendClientMessage(playerid, cFARBESYSTEM, "ERROR: Benutzer nicht gefunden.");
- }
- userid = INVALID_PLAYER_ID;
- }
- return userid;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement