Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***************************************************************
- * *
- * Bomb System v2.0 *
- * (c) 2012. B-Matt *
- * *
- ****************************************************************/
- //----Includes----
- #include <a_samp>
- #include <ZCMD>
- #include <sscanf2>
- //----News----
- new Bomb[MAX_PLAYERS]; //Timer bomb
- new TB[MAX_PLAYERS]; //Trigger Bomb
- new CBomb[MAX_VEHICLES]; //Car Bomb
- new TCBomb[MAX_VEHICLES]; //Vehicle Bomb aka Car bomb2
- new BArmed[MAX_PLAYERS]; //Timer bomb
- new TArmed[MAX_PLAYERS]; //Trigger bomb
- new CArmed[MAX_PLAYERS]; //Car bomb
- new TCArmed[MAX_PLAYERS]; //Trigger car bomb
- new BombO; //bomb object
- new BombT; //bomb timer
- //----Forwards----
- forward detonate(bomb);
- //----SA-MP Callbacks----
- public OnFilterScriptInit()
- {
- print("\n*************************************************");
- print("* Bomb system by: B-Matt *");
- print("*************************************************\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(response)
- {
- switch(dialogid)
- {
- case 1:
- {
- switch(listitem)
- {
- case 0://TBOMB
- {
- if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash (500$).");
- GivePlayerMoney(playerid, -500);
- SendClientMessage(playerid, 0xFFFFFFFF, "You successfully bought Timer bomb!");
- Bomb[playerid] = 1;
- }
- case 1: //TB
- {
- if(GetPlayerMoney(playerid) < 800) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash (800$).");
- GivePlayerMoney(playerid, -800);
- SendClientMessage(playerid, 0xFFFFFFFF, "You successfully bought Trigger bomb!");
- TB[playerid] = 1;
- }
- case 2: //CBOMB
- {
- if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash (1.000$).");
- GivePlayerMoney(playerid, -1000);
- SendClientMessage(playerid, 0xFFFFFFFF, "You successfully bought Car bomb!");
- CBomb[playerid] = 1;
- }
- case 3: //TCBOMB
- {
- if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash (1.500$).");
- GivePlayerMoney(playerid, -1500);
- SendClientMessage(playerid, 0xFFFFFFFF, "You successfully bought Trigger Car bomb!");
- TCBomb[playerid] = 1;
- }
- }
- }
- }
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- new pState = GetPlayerState(playerid);
- if (pState == PLAYER_STATE_DRIVER)
- {
- if (newkeys & KEY_UP)
- {
- if(CArmed[playerid] == 1)
- {
- if (IsPlayerInAnyVehicle(playerid))
- {
- new Float:X, Float:Y, Float:Z;
- new vehicleid = GetPlayerVehicleID(playerid);
- GetVehiclePos(vehicleid, X, Y, Z);
- CreateExplosion(X, Y, Z, 12, 15.0);
- CreateExplosion(X, Y, Z, 10, 15.0);
- CArmed[playerid] = 0;
- }
- }
- }
- }
- if (newkeys & KEY_FIRE) //TB
- {
- if(TArmed[playerid] == 1)
- {
- new Float:X, Float:Y, Float:Z;
- GetObjectPos(BombO, X, Y, Z);
- CreateExplosion(X, Y, Z, 2, 100.0);
- CreateExplosion(X, Y, Z, 12, 25.0);
- CreateExplosion(X, Y, Z, 10, 30.0);
- DestroyObject(BombO);
- TArmed[playerid] = 0;
- }
- }
- if (newkeys & KEY_FIRE) //TCBomb
- {
- if(TCArmed[playerid] == 1)
- {
- new Float:X, Float:Y, Float:Z;
- new vehicleid = GetPlayerVehicleID(playerid);
- GetVehiclePos(vehicleid, X, Y, Z);
- CreateExplosion(X, Y, Z, 2, 100.0);
- CreateExplosion(X, Y, Z, 12, 25.0);
- CreateExplosion(X, Y, Z, 12, 50.0);
- CreateExplosion(X, Y, Z, 10, 35.0);
- DestroyObject(BombO);
- TCArmed[playerid] = 0;
- }
- }
- return 1;
- }
- //----Custom Callbacks----
- public detonate(bomb)
- {
- new Float:X, Float:Y, Float:Z;
- GetObjectPos(BombO, X, Y, Z);
- CreateExplosion(X, Y, Z, 0, 50.0);
- DestroyObject(BombO);
- KillTimer(BombT);
- return 1;
- }
- //----Commands----
- CMD:buy(playerid, params[])
- {
- if(Bomb[playerid] == 0 || TB[playerid] == 0 || CBomb[playerid] == 0)
- {
- ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Bomb buy", "Timer bomb\nTrigger bomb\nCar Bomb\nTrigger car bomb", "Buy", "Select");
- }
- else return SendClientMessage(playerid, 0xE21414FF, "You already have bomb!");
- return 1;
- }
- CMD:plant(playerid, params[])
- {
- if(Bomb[playerid] == 1) //BOMBT
- {
- new time;
- if (sscanf(params, "i", time)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /plant [time]");
- BombT = SetTimer("detonate",time*1000,false); //time*1000 because if you type 5 it will convert that in seconds (5*1000=5000 miliseconds = 5 seconds)
- ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 0, 0, 0, 0, 1000, 1);
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, X, Y, Z);
- BombO = CreateObject(1252, X, Y, Z, 0.0, 0.0, 96.0);
- BArmed[playerid] = 1;
- Bomb[playerid] = 0;
- }
- if(TB[playerid] == 1)//TB
- {
- ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 0, 0, 0, 0, 1000, 1);
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, X, Y, Z);
- BombO = CreateObject(1252, X, Y, Z, 0.0, 0.0, 96.0);
- TArmed[playerid] = 1;
- GivePlayerWeapon(playerid, 40, 2);
- TB[playerid] = 0;
- }
- if(CBomb[playerid] == 1) //CBOMB
- {
- new Float:X, Float:Y, Float:Z;
- new vehicleid = GetPlayerVehicleID(playerid);
- GetVehiclePos(vehicleid, X, Y, Z);
- if(IsPlayerInRangeOfPoint(playerid, 2.0, X, Y, Z))
- {
- SendClientMessage(playerid, 0xFFFFFFFF, "You planted bomb! Get out of there!");
- CArmed[playerid] = 1;
- CBomb[playerid] = 0;
- }
- }
- if(TCBomb[playerid] == 1) //TCBOMB
- {
- new Float:X, Float:Y, Float:Z;
- new vehicleid = GetPlayerVehicleID(playerid);
- GetVehiclePos(vehicleid, X, Y, Z);
- if(IsPlayerInRangeOfPoint(playerid, 2.0, X, Y, Z))
- {
- SendClientMessage(playerid, 0xFFFFFFFF, "You planted bomb! Get out of there!");
- GivePlayerWeapon(playerid, 40, 2);
- TCArmed[playerid] = 1;
- TCBomb[playerid] = 0;
- }
- }
- return 1;
- }
- CMD:give(playerid, params[])
- {
- if(Bomb[playerid] == 1)
- {
- if (sscanf(params, "u")) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /give [playerid/username]");
- new PID, string[64];
- new Sendername[MAX_PLAYER_NAME], Playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Sendername, sizeof(Sendername));
- GetPlayerName(PID, Playername, sizeof(Playername));
- format(string, sizeof(string), "You sent Bomb to %s", Playername);
- SendClientMessage(playerid, 0xFFFFFFFF, string);
- format(string, sizeof(string), "You received a Bomb from %s", Sendername);
- SendClientMessage(PID, 0xFFFFFFFF, string);
- Bomb[PID] = 1;
- }
- if(TB[playerid] == 1)
- {
- if (sscanf(params, "u")) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /give [playerid/username]");
- new PID, string[64];
- new Sendername[MAX_PLAYER_NAME], Playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Sendername, sizeof(Sendername));
- GetPlayerName(PID, Playername, sizeof(Playername));
- format(string, sizeof(string), "You sent Trigger bomb to %s", Playername);
- SendClientMessage(playerid, 0xFFFFFFFF, string);
- format(string, sizeof(string), "You received a Trigger bomb from %s", Sendername);
- SendClientMessage(PID, 0xFFFFFFFF, string);
- TB[PID] = 1;
- }
- if(CBomb[playerid] == 1)
- {
- if (sscanf(params, "u")) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /give [playerid/username]");
- new PID, string[64];
- new Sendername[MAX_PLAYER_NAME], Playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Sendername, sizeof(Sendername));
- GetPlayerName(PID, Playername, sizeof(Playername));
- format(string, sizeof(string), "You sent Car bomb to %s", Playername);
- SendClientMessage(playerid, 0xFFFFFFFF, string);
- format(string, sizeof(string), "You received a Car bomb from %s", Sendername);
- SendClientMessage(PID, 0xFFFFFFFF, string);
- CBomb[PID] = 1;
- }
- if(TCBomb[playerid] == 1)
- {
- if (sscanf(params, "u")) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /give [playerid/username]");
- new PID, string[64];
- new Sendername[MAX_PLAYER_NAME], Playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Sendername, sizeof(Sendername));
- GetPlayerName(PID, Playername, sizeof(Playername));
- format(string, sizeof(string), "You sent Trigger car bomb to %s", Playername);
- SendClientMessage(playerid, 0xFFFFFFFF, string);
- format(string, sizeof(string), "You received a Trigger car bomb from %s", Sendername);
- SendClientMessage(PID, 0xFFFFFFFF, string);
- TCBomb[PID] = 1;
- }
- return 1;
- }
- CMD:defuse(playerid, params[])
- {
- if(BArmed[playerid] == 1)
- {
- new Float:X, Float:Y, Float:Z;
- GetObjectPos(BombO, X, Y, Z);
- if(IsPlayerInRangeOfPoint(playerid, 1.0, X, Y, Z))
- {
- new defuse = random(2);
- switch(defuse)
- {
- case 0:
- {
- SendClientMessage(playerid, 0xFF1F1FFF, "You failed to defuse the bomb. {FFFFFF}GET OUT OF THERE!");
- GetObjectPos(BombO, X, Y, Z);
- CreateExplosion(X, Y, Z, 0, 50.0);
- DestroyObject(BombO);
- KillTimer(BombT);
- }
- case 1:
- {
- SendClientMessage(playerid, 0xFFFFFFFF, "You successfully defused bomb.");
- BArmed[playerid] = 0;
- DestroyObject(BombO);
- KillTimer(BombT);
- }
- }
- }
- else return SendClientMessage(playerid, 0xFF1F1FFF, "You are not near a bomb!");
- }
- if(TArmed[playerid] == 1)
- {
- new Float:X, Float:Y, Float:Z;
- GetObjectPos(BombO, X, Y, Z);
- if(IsPlayerInRangeOfPoint(playerid, 1.0, X, Y, Z))
- {
- new defuse = random(2);
- switch(defuse)
- {
- case 0:
- {
- SendClientMessage(playerid, 0xFF1F1FFF, "You failed to defuse the bomb. {FFFFFF}GET OUT OF THERE!");
- GetObjectPos(BombO, X, Y, Z);
- CreateExplosion(X, Y, Z, 2, 100.0);
- CreateExplosion(X, Y, Z, 12, 25.0);
- CreateExplosion(X, Y, Z, 10, 30.0);
- DestroyObject(BombO);
- BArmed[playerid] = 0;
- }
- case 1:
- {
- SendClientMessage(playerid, 0xFFFFFFFF, "You successfully defused bomb.");
- DestroyObject(BombO);
- TArmed[playerid] = 0;
- }
- }
- }
- else return SendClientMessage(playerid, 0xFF1F1FFF, "You are not near a bomb!");
- }
- if(CArmed[playerid] == 1 || TCArmed[playerid] == 1)
- {
- new Float:X, Float:Y, Float:Z;
- new vehicleid = GetPlayerVehicleID(playerid);
- GetVehiclePos(vehicleid, X, Y, Z);
- if(IsPlayerInRangeOfPoint(playerid, 1.0, X, Y, Z))
- {
- new defuse = random(2);
- switch(defuse)
- {
- case 0:
- {
- SendClientMessage(playerid, 0xFF1F1FFF, "You failed to defuse the bomb. {FFFFFF}GET OUT OF THERE!");
- GetVehiclePos(vehicleid, X, Y, Z);
- CreateExplosion(X, Y, Z, 12, 15.0);
- CreateExplosion(X, Y, Z, 10, 15.0);
- CArmed[playerid] = 0;
- TCArmed[playerid] = 0;
- }
- case 1:
- {
- SendClientMessage(playerid, 0xFFFFFFFF, "You successfully defused bomb.");
- CArmed[playerid] = 0;
- TCArmed[playerid] = 0;
- }
- }
- }
- else return SendClientMessage(playerid, 0xFF1F1FFF, "You are not near a bomb!");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement