Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Kill The President Event @ SiaReyes
- Description:
- Kill The President will have a president and 3 guards with him protecting him from getting killed.
- Others that join the event will try to kill the president and once the president gets killed,
- the murderer will receive his/her prize.
- Vehicles : Presidents Team = Sultan , Killer team = Rancher
- (Vehicles can only be operated by their respective teams)
- Map: Las venturas
- */
- #include <a_samp>
- #include <sscanf2>
- #include <foreach>
- #include <zcmd>
- #define RED "{FF0000}"
- #define WHITE "{FFFFFF}"
- new Float:PR_Pos[3], // President Position
- Float:kl_Pos[3], // Killers Position
- IsKTP[MAX_PLAYERS], // Check Player Team ( 1 = killers , 2 = Guards and President, 0 = None)
- KTPTickCount, // Time taken to kill the president.
- President, // The one who going be president
- KTPStarted, // Checks if event is started
- KTPActive, // Checks if event is active to join.
- KTPPlayers, // Count Players who all are joined!
- ktpstr[500], // String
- P_veh[2], // President vehicles
- K_veh[2], // Killers Vehicle
- KTP_WORLD = 100, // KTP world
- OldColor[MAX_PLAYERS] = -1, // Stores the player color.
- Guards[3]; // 3 Gards
- public OnFilterScriptInit()
- {
- PR_Pos[0] = 1501.3701;
- PR_Pos[1] = 2862.2419;
- PR_Pos[2] = 10.8247;
- kl_Pos[0] = 1488.6240;
- kl_Pos[1] = 1513.7963;
- kl_Pos[2] = 10.8203;
- KTPStarted = 0;
- KTPActive = 0;
- KTPPlayers = 0;
- KTPTickCount = 0;
- President = INVALID_PLAYER_ID;
- for(new i = 0; i < 3; i++) Guards[i] = INVALID_PLAYER_ID;
- // === President and his Guards veh ==============
- P_veh[0] = AddStaticVehicleEx(560, 1500.2139,2876.3992,10.8203,180.2151, -1, -1, 30, KTP_WORLD);
- P_veh[1] = AddStaticVehicleEx(560, 1509.1561,2876.4739,10.8203,181.4684, -1, -1, 30, KTP_WORLD);
- //==== Killers and their vehs ====================
- K_veh[0] = AddStaticVehicleEx(489, 1505.9078,1526.8363,10.8304,89.3475, -1, -1, 30, KTP_WORLD);
- K_veh[1] = AddStaticVehicleEx(489, 1504.1432,1517.1107,10.8327,92.4809, -1, -1, 30, KTP_WORLD);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- IsKTP[playerid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(IsKTP[playerid] != 0 && KTPStarted == 1)
- {
- if(playerid == President)
- {
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: "WHITE"Event has been finished.");
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: "WHITE"The president has disconnected from the event!");
- IsKTP[playerid] = 0;
- new found = 0;
- foreach(new ii : Player) if(IsKTP[ii] == 1) found++;
- if(found == 0)
- {
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: "WHITE"The killers has won the round");
- foreach(new ii : Player)
- {
- if(IsKTP[ii] == 2) GivePlayerMoney(ii, 20000*((GetTickCount() - KTPTickCount) / 2000)), SetPlayerScore(ii, GetPlayerScore(ii)+20);
- if(IsKTP[ii] != 0)
- {
- ResetPlayerWeapons(ii);
- SetPlayerVirtualWorld(ii, 0);
- IsKTP[ii] = 0;
- SpawnPlayer(ii);
- SetPlayerColor(ii, OldColor[ii]);
- }
- }
- KTPStarted = 0;
- KTPActive = 0;
- KTPPlayers = 0;
- KTPTickCount = 0;
- President = INVALID_PLAYER_ID;
- for(new i = 0; i < 3; i++) Guards[i] = INVALID_PLAYER_ID;
- }
- }
- else
- {
- IsKTP[playerid] = 0;
- KTPPlayers--;
- SetPlayerColor(playerid, OldColor[playerid]);
- format(ktpstr, sizeof(ktpstr), ""RED"[EVENT KTP]: "WHITE"%s(%d) has left the event", GetName(playerid), playerid);
- SendClientMessageToAll(-1, ktpstr);
- }
- }
- return 1;
- }
- public OnPlayerCommandReceived(playerid, cmdtext[])
- {
- if(IsKTP[playerid] != 0 && strfind(cmdtext,"exitktp",true) == -1)
- {
- SendClientMessage(playerid,0xFF0000FF, "ERROR: {FFFFFF}You can not use any command here, type /exitktp to unblock them.");
- return 0;
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(IsKTP[playerid] != 0 && KTPStarted == 1)
- {
- if(playerid == President)
- {
- if(killerid != INVALID_PLAYER_ID)
- {
- // If the Playerid is the president and he is killed by a killer.
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: "WHITE"Event has been finished.");
- format(ktpstr, sizeof(ktpstr), ""RED"[EVENT KTP]: "WHITE"%s (ID: %d) has won the event in %d seconds.", GetName(killerid), killerid, (KTPTickCount - GetTickCount()) / 1000);
- SendClientMessageToAll(-1, ktpstr);
- foreach(new ii : Player)
- {
- if(IsKTP[ii] != 0)
- {
- ResetPlayerWeapons(ii);
- SetPlayerVirtualWorld(ii, 0);
- SetPlayerColor(ii, OldColor[ii]);
- IsKTP[ii] = 0;
- KTPPlayers = 0;
- SpawnPlayer(ii);
- }
- }
- GivePlayerMoney(killerid, 20000*((GetTickCount() - KTPTickCount) / 2000));
- KTPStarted = 0;
- KTPActive = 0;
- KTPPlayers = 0;
- KTPTickCount = 0;
- President = INVALID_PLAYER_ID;
- for(new i = 0; i < 3; i++) Guards[i] = INVALID_PLAYER_ID;
- }
- else
- {
- // If the Playerid is the president and he is not killed by any killer but he was dead by any collision
- SpawnPlayer(playerid);
- SetPlayerPos(playerid, PR_Pos[0], PR_Pos[1], PR_Pos[2]);
- SetPlayerVirtualWorld(playerid, KTP_WORLD);
- ResetPlayerWeapons(playerid);
- switch(random(2))
- {
- case 0:
- {
- GivePlayerWeapon(playerid, 31, 1000);
- GivePlayerWeapon(playerid, 24, 1000);
- GivePlayerWeapon(playerid, 27, 8);
- GivePlayerWeapon(playerid, 29, 1000);
- }
- case 1:
- {
- GivePlayerWeapon(playerid, 30, 1000);
- GivePlayerWeapon(playerid, 23, 1000);
- GivePlayerWeapon(playerid, 26, 8);
- GivePlayerWeapon(playerid, 28, 1000);
- }
- }
- }
- }
- else
- {
- // if the Player is not the President but the playerid is a Guard or a Killer, he will removed from the event.
- ResetPlayerWeapons(playerid);
- SetPlayerVirtualWorld(playerid, 0);
- IsKTP[playerid] = 0;
- SpawnPlayer(playerid);
- KTPPlayers--;
- SetPlayerColor(playerid, OldColor[playerid]);
- new found = 0;
- foreach(new ii : Player) if(IsKTP[ii] == 1) found++;
- // Check for total killers
- if(found == 0)
- {
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: "WHITE"Event has been finished.");
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: "WHITE"The president escaped.");
- foreach(new ii : Player)
- {
- if(IsKTP[ii] == 2) GivePlayerMoney(ii, 20000*((GetTickCount() - KTPTickCount) / 2000)), SetPlayerScore(ii, GetPlayerScore(ii)+20);
- if(IsKTP[ii] != 0)
- {
- ResetPlayerWeapons(ii);
- SetPlayerVirtualWorld(ii, 0);
- SetPlayerColor(ii, OldColor[ii]);
- IsKTP[ii] = 0;
- SpawnPlayer(ii);
- }
- }
- KTPStarted = 0;
- KTPActive = 0;
- KTPPlayers = 0;
- KTPTickCount = 0;
- President = INVALID_PLAYER_ID;
- for(new i = 0; i < 3; i++) Guards[i] = INVALID_PLAYER_ID;
- }
- }
- }
- return 1;
- }
- CMD:exitktp(playerid)
- {
- if(KTPStarted == 0 && KTPActive == 0) return SendClientMessage(playerid, -1, ""RED"There is no KTP event going on!");
- if(IsKTP[playerid] == 0) return SendClientMessage(playerid, -1, ""RED" You are not in the event");
- if(playerid == President) return SendClientMessage(playerid, -1, ""RED"You are not allowed to exit the event, until it ends!");
- for(new i = 0; i < 3; i++) if(playerid == Guards[i]) return SendClientMessage(playerid, -1, ""RED"You are not allowed to exit the event, until it ends!");
- ResetPlayerWeapons(playerid);
- SetPlayerVirtualWorld(playerid, 0);
- IsKTP[playerid] = 0;
- SpawnPlayer(playerid);
- KTPPlayers--;
- SetPlayerColor(playerid, OldColor[playerid]);
- new found = 0;
- foreach(new ii : Player) if(IsKTP[ii] == 1) found++;
- if(found == 0)
- {
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: "WHITE"Event has been finished.");
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: "WHITE"The president escaped.");
- foreach(new ii : Player)
- {
- if(IsKTP[ii] == 2) GivePlayerMoney(ii, 20000*((GetTickCount() - KTPTickCount) / 2000)), SetPlayerScore(ii, GetPlayerScore(ii)+20);
- if(IsKTP[ii] != 0)
- {
- ResetPlayerWeapons(ii);
- SetPlayerVirtualWorld(ii, 0);
- SetPlayerColor(ii, OldColor[ii]);
- IsKTP[ii] = 0;
- SpawnPlayer(ii);
- }
- }
- KTPStarted = 0;
- KTPActive = 0;
- KTPPlayers = 0;
- KTPTickCount = 0;
- President = INVALID_PLAYER_ID;
- for(new i = 0; i < 3; i++) Guards[i] = INVALID_PLAYER_ID;
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- CMD:startktp(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, ""RED" You need to be an admin to start an event!");
- if(KTPActive == 1) return SendClientMessage(playerid, -1, ""RED" KTP event is already started");
- new otherid, guard1 , guard2, guard3;
- if(sscanf(params, "dddd", otherid, guard1 , guard2, guard3)) return SendClientMessage(playerid, -1, "Don't put same players ID"), SendClientMessage(playerid, -1, "Usage: /startktp <president> <guard 1> <guard 2> <guard 3>");
- if(!IsPlayerConnected(otherid) || !IsPlayerConnected(guard1) || !IsPlayerConnected(guard2) || !IsPlayerConnected(guard3))
- return SendClientMessage(playerid, -1, ""RED" One of the selected player is not connected, Please enter a valid player id!");
- President = otherid;
- Guards[0] = guard1;
- Guards[1] = guard2;
- Guards[2] = guard3;
- KTPActive = 1;
- SendClientMessage(playerid, -1, "Okay, Announcing it....");
- SendClientMessageToAll(-1, ""RED"[KTP]"WHITE" Kill the president is starting in 20 seconds! Use /ktp to join the event!");
- SetTimer("OnKTPStart", 20*1000, false);
- return 1;
- }
- CMD:ktp(playerid)
- {
- if(KTPActive == 0 && KTPStarted == 0) return SendClientMessage(playerid, -1, ""RED"There is no KTP event going on!");
- if(playerid == President) return SendClientMessage(playerid, -1, ""RED"You are already signed to the KTP event! 'President'");
- for(new i = 0; i < 3; i++) if(playerid == Guards[i]) return SendClientMessage(playerid, -1, ""RED"You are already signed to the KTP event! 'Guard'");
- if(KTPPlayers >= 20)
- {
- SendClientMessage(playerid, -1, ""RED"Sorry you can no longer join the event, it has reached its max players!");
- return 1;
- }
- if(IsKTP[playerid] != 0) return SendClientMessage(playerid, -1, ""RED" You are already in the event");
- KTPPlayers++;
- IsKTP[playerid] = 1;
- SendClientMessage(playerid, -1, ""RED"[EVENT KTP] "WHITE"You have joined the ktp event, you target is the president, so be reay.");
- format(ktpstr, sizeof(ktpstr), ""RED"[EVENT KTP] "WHITE" %s(%i) has signed up to Kill the president event, type /ktp ingame to join.", GetName(playerid), playerid);
- SendClientMessageToAll(-1, ktpstr);
- return 1;
- }
- forward OnKTPStart();
- public OnKTPStart()
- {
- if(KTPPlayers <= 3)
- {
- KTPStarted = 0;
- KTPActive = 0;
- KTPPlayers = 0;
- KTPTickCount = 0;
- President = INVALID_PLAYER_ID;
- for(new i = 0; i < 3; i++) Guards[i] = INVALID_PLAYER_ID;
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: The event has ended, Max Players : 4");
- return 1;
- }
- foreach(new ii : Player)
- {
- if(IsKTP[ii] != 0)
- {
- SetCameraBehindPlayer(ii);
- if(ii == President) SetPlayerPos(ii, PR_Pos[0], PR_Pos[1], PR_Pos[2]);
- if(ii == Guards[0] || ii == Guards[1] || ii == Guards[2])
- {
- new Float: x = PR_Pos[0] + float(random(10));
- new Float: y = PR_Pos[1] + float(random(5));
- SetPlayerPos(ii, x, y, PR_Pos[2]);
- }
- else
- {
- new Float: x = kl_Pos[0] + float(random(10));
- new Float: y = kl_Pos[1] + float(random(5));
- SetPlayerPos(ii, x, y, kl_Pos[2]);
- }
- ResetPlayerWeapons(ii);
- switch(random(2))
- {
- case 0:
- {
- GivePlayerWeapon(ii, 31, 1000);
- GivePlayerWeapon(ii, 24, 1000);
- GivePlayerWeapon(ii, 27, 8);
- GivePlayerWeapon(ii, 29, 1000);
- }
- case 1:
- {
- GivePlayerWeapon(ii, 30, 1000);
- GivePlayerWeapon(ii, 23, 1000);
- GivePlayerWeapon(ii, 26, 8);
- GivePlayerWeapon(ii, 28, 1000);
- }
- }
- SetPlayerVirtualWorld(ii, KTP_WORLD);
- GameTextForPlayer(ii, "~r~Kill the president.", 5000, 0);
- SetPlayerColor(ii, -1);
- SetPlayerHealth(ii, 100);
- OldColor[ii] = GetPlayerColor(ii);
- if(ii == President) SetPlayerColor(ii, 1), IsKTP[ii] = 2;
- if(ii == Guards[0] || ii == Guards[1] || ii == Guards[2]) SetPlayerColor(ii, 0x0000BBAA), IsKTP[ii] = 2;
- }
- }
- KTPStarted = 1;
- KTPTickCount = GetTickCount();
- SendClientMessageToAll(-1, ""RED"[EVENT KTP]: The event has started, Good luck");
- return true;
- }
- GetName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, MAX_PLAYER_NAME);
- return name;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- new Float:POS[3];
- for(new i; i < 2; i++)
- {
- if(vehicleid == P_veh[i] && IsKTP[playerid] == 1 && KTPStarted == 1)
- {
- GetPlayerPos(playerid, POS[0], POS[1], POS[2]);
- SetPlayerPos(playerid, POS[0], POS[1], POS[2]);
- SendClientMessage(playerid ,-1, ""RED"This vehicle can only be operated by President and his guards!");
- }
- if(vehicleid == K_veh[i] && IsKTP[playerid] == 2 && KTPStarted == 1)
- {
- GetPlayerPos(playerid, POS[0], POS[1], POS[2]);
- SetPlayerPos(playerid, POS[0], POS[1], POS[2]);
- SendClientMessage(playerid , -1, ""RED"This vehicle can only be operated by killers!");
- }
- }
- return 1;
- }
Add Comment
Please, Sign In to add comment