Turn my Car Bomb System for only 1 faction!
#1

Guyz i have this File script but every one can use it.
its a car bomb system i want that only faction 13 can use it can u make this change for me plz

Код:
// CONFIGURATION
//

#define FILTERSCRIPT

#define CB_COLOR_GREY 					0xAFAFAF00
#define CB_COLOR_WHITE 					0xFFFFFFAA
#define CB_COLOR_FADE1 					0xE6E6E6E6
#define CB_COLOR_FADE3 					0xAAAAAAAA
#define CB_COLOR_GREEN 					0x33AA33AA
#define CB_COLOR_RED 					0xAA3333AA
#define CB_COLOR_LIGHTRED 				0xFF6347AA

#define BOMB_ARMTIME					15 		// Amount of seconds it takes to arm a bomb
#define BOMB_CHECKTIME 					10		// Amount of seconds it takes to check for bombs in a vehicle
#define BOMB_DISARMTIME					5		// Amount of seconds it takes to attempt to disarm a bomb
#define BOMB_USE_DISTANCE				3.0		// FLOAT, how far away the player has to be from the vehicle to use any bombs

stock PlayerHasCarBomb(playerid)
{
												// Write your code to check if the player has a bomb
	#pragma unused playerid 					// Don't forget to remove this line
	return 1;
}

stock CanPlayerDisarmBomb(playerid)
{
												// Write your code to check if the player can disarm a bomb (Like if he is a police or something)
	#pragma unused playerid 					// Don't forget to remove this line
	return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	#pragma unused playerid, ispassenger
	CarBomb_OnVehicleStart(vehicleid); 			// Move this some place else if you have a different technique of starting vehicles
}

//
// CONFIGURATION END

#include <a_samp>
#include <zcmd>
#include <strtok>

main() {}

stock Float:GetVehicleSpeed(vehicleid)
{
	new 
	Float:	speed_x,
	Float:	speed_y,
	Float:	speed_z,
	Float:	temp_speed;

	GetVehicleVelocity(vehicleid, speed_x, speed_y, speed_z);

	temp_speed = floatsqroot( ( (speed_x * speed_x ) + ( speed_y * speed_y ) ) + ( speed_z * speed_z ) ) * 136.666667;
	
	return temp_speed;
}

// Bomb types
#define VEHICLE_BOMB_TYPE_UNARMED		0
#define VEHICLE_BOMB_TYPE_IGNITION		1
#define VEHICLE_BOMB_TYPE_TIMER			2
#define VEHICLE_BOMB_TYPE_SPEED			3
#define VEHICLE_BOMB_TYPE_REMOTE		4

// Timers
forward PlayerPutBombInVehicle(seconds, playerid, vehicleid, bomb_type, bomb_timer);
forward BombActivated(vehicleid);
forward ArmSpeedBomb(vehicleid);
forward CheckForBombs(playerid, vehicleid);
forward DisarmBomb(playerid, vehicleid);

enum e_Bomb_Vehicles
{
			bv_i_ArmedType,
			bv_i_ExplosionTimer,
			bv_i_BombOwner,
	bool: 	bv_b_BombActivated,
	bool:	bv_b_BombDisarmed
};

new
	g_Bomb_Vehicles[MAX_VEHICLES][e_Bomb_Vehicles];
	
stock ResetBombInfo(vehicleid)
{									
	g_Bomb_Vehicles[vehicleid][bv_i_ArmedType] = 0;				
	g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer] = 0;				
	g_Bomb_Vehicles[vehicleid][bv_i_BombOwner] = 0;					
	g_Bomb_Vehicles[vehicleid][bv_b_BombActivated] = false;
	g_Bomb_Vehicles[vehicleid][bv_b_BombDisarmed] = false;
}
	
public DisarmBomb(playerid, vehicleid)
{
	DeletePVar(playerid, "DisarmingBomb");
	
	new
		Float: f_vPos[3];
		
	GetVehiclePos(vehicleid, f_vPos[0], f_vPos[1], f_vPos[2]);
	
	if(!IsPlayerInRangeOfPoint(playerid, BOMB_USE_DISTANCE, f_vPos[0], f_vPos[1], f_vPos[2]))
	{
		SendClientMessage(playerid, CB_COLOR_GREY, "You are not close enough to the vehicle anymore.");
		return 1;
	}
	
	ResetBombInfo(vehicleid);
	
	g_Bomb_Vehicles[vehicleid][bv_b_BombDisarmed] = true;
		
	SendClientMessage(playerid, CB_COLOR_GREEN, "You have disarmed the bomb.");
	
	return 1;
}
	
public CheckForBombs(playerid, vehicleid)
{
	DeletePVar(playerid, "CheckingForBombs");
	SetPVarInt(playerid, "CheckedCarForBombs", vehicleid);
	
	new
		Float: f_vPos[3];
		
	GetVehiclePos(vehicleid, f_vPos[0], f_vPos[1], f_vPos[2]);
	
	if(!IsPlayerInRangeOfPoint(playerid, BOMB_USE_DISTANCE, f_vPos[0], f_vPos[1], f_vPos[2]))
	{
		SendClientMessage(playerid, CB_COLOR_GREY, "You are not close enough to the vehicle anymore.");
		return 1;
	}
	
	if(g_Bomb_Vehicles[vehicleid][bv_i_ArmedType])
	{
		SendClientMessage(playerid, CB_COLOR_RED, "You have found an armed bomb inside the vehicle!");
		if(g_Bomb_Vehicles[vehicleid][bv_b_BombActivated])
		{
			SendClientMessage(playerid, CB_COLOR_LIGHTRED, "WARNING! THE BOMB IS ACTIVE AND ABOUT TO BLOW!");
		}
		SetPVarInt(playerid, "FoundBombInCar", vehicleid);
	}
	
	else if(g_Bomb_Vehicles[vehicleid][bv_b_BombDisarmed])
	{
		SendClientMessage(playerid, CB_COLOR_GREEN, "You have found a disarmed bomb.");
	}
	
	else
	{
		SendClientMessage(playerid, CB_COLOR_GREEN, "You didn't find any bombs.");
	}
	
	return 1;
}
	
stock CarBomb_OnVehicleStart(vehicleid)
{
	if(g_Bomb_Vehicles[vehicleid][bv_i_ArmedType] != VEHICLE_BOMB_TYPE_UNARMED && g_Bomb_Vehicles[vehicleid][bv_b_BombActivated] == false)
	{
		switch(g_Bomb_Vehicles[vehicleid][bv_i_ArmedType])
		{
			case VEHICLE_BOMB_TYPE_IGNITION:
			{
				BombActivated(vehicleid);
				return 1;
			}
			
			case VEHICLE_BOMB_TYPE_SPEED:
			{
				SetTimerEx("ArmSpeedBomb", g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer] * 1000, false, "d", vehicleid);
				return 1;
			}
		}
	}
	
	return 1;
}

public ArmSpeedBomb(vehicleid)
{
	if(GetVehicleSpeed(vehicleid) < 40.0)
	{
		g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer] = 2;
		BombActivated(vehicleid);
		return 1;
	}
	
	SetTimerEx("ArmSpeedBomb", 400, 0, "d", vehicleid);
	
	return 1;
}
	
public BombActivated(vehicleid)
{
	if(g_Bomb_Vehicles[vehicleid][bv_b_BombDisarmed])
	{
		return 1;
	}
	
	if(!g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer])
	{
		ExplodeVehicleBomb(vehicleid);
		g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer]--;
		SetTimerEx("BombActivated", 400, 0, "d", vehicleid);
		return 1;
	}
	
	new
		Float:	f_Pos[3];
		
	GetVehiclePos(vehicleid, f_Pos[0], f_Pos[1], f_Pos[2]);	
	
	if(g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer] < 0)
	{
		CreateExplosion(f_Pos[0], f_Pos[1], f_Pos[2], 4, 2.0); // Extra effects
		CreateExplosion(f_Pos[0], f_Pos[1], f_Pos[2], 5, 2.0); // Extra effects
		
		if(g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer] == -2)
		{
			CreateExplosion(f_Pos[0], f_Pos[1], f_Pos[2], 1, 2.0); // Small explosion
		}
		
		if(g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer] < -3)
		{
			return 1;
		}
		
		g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer]--;
		SetTimerEx("BombActivated", 400, 0, "d", vehicleid);
		return 1;
	}
	
	g_Bomb_Vehicles[vehicleid][bv_b_BombActivated] = true;
	
	if(g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer] == 1)
	{
		PlayVehicleBombSound(vehicleid, 17803); // Clicking sound
	}
	
	if(g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer] == 2)
	{
		PlayVehicleBombSound(vehicleid, 6400); // Digital sound
	}
	
	g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer]--;
	
	SetTimerEx("BombActivated", 1000, 0, "d", vehicleid);
	
	return 1;
}
	
public PlayerPutBombInVehicle(seconds, playerid, vehicleid, bomb_type, bomb_timer)
{
	if(!seconds)
	{
		TogglePlayerControllable(playerid, 1);
		new
			Float: 	f_Pos[3];
			
		GetVehiclePos(vehicleid, f_Pos[0], f_Pos[1], f_Pos[2]);
		
		if(!IsPlayerInRangeOfPoint(playerid, BOMB_USE_DISTANCE, f_Pos[0], f_Pos[1], f_Pos[2]))
		{
			SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: You are not close enough to this vehicle anymore.");
			return 1;
		}
		
		g_Bomb_Vehicles[vehicleid][bv_i_ArmedType] = bomb_type;
		g_Bomb_Vehicles[vehicleid][bv_i_ExplosionTimer] = bomb_timer;
		g_Bomb_Vehicles[vehicleid][bv_i_BombOwner] = playerid;
		
		
		if(bomb_type == VEHICLE_BOMB_TYPE_TIMER)
		{
			//SetTimerEx("BombActivated", 1000, 0, "d", vehicleid);
			BombActivated(vehicleid);
		}
		
		DeletePVar(playerid, "PuttingBomb");
		
		SendClientMessage(playerid, CB_COLOR_GREEN, "You have planted and armed the bomb.");
		
		GameTextForPlayer(playerid, "~r~Bomb armed", 2000, 3);
		
		TogglePlayerControllable(playerid, 1);
		
		return 1;
	}	
	
	new
		szString[69];
		
	format(szString, sizeof(szString), "~g~Arming bomb...~n~~r~%d ~n~ ~y~Type ~r~/bomb put~y~ again to stop", seconds);
	GameTextForPlayer(playerid, szString, 2000, 3);
	
	SetPVarInt(playerid, "PuttingBomb", SetTimerEx("PlayerPutBombInVehicle", 1000, 0, "ddddd", seconds - 1, playerid, vehicleid, bomb_type, bomb_timer));
	
	return 1;
}

stock ExplodeVehicleBomb(vehicleid)
{
	SetVehicleHealth(vehicleid, 50.0);
	
	new
		Float: f_vPos[3];
		
	GetVehiclePos(vehicleid, f_vPos[0], f_vPos[1], f_vPos[2]);
	
	CreateExplosion(f_vPos[0], f_vPos[1], f_vPos[2], 4, 5.0); // Extra effects
	CreateExplosion(f_vPos[0], f_vPos[1], f_vPos[2], 5, 5.0); // Extra effects
	
	CreateExplosion(f_vPos[0], f_vPos[1], f_vPos[2], 6, 5.0); // Big one
	
	ResetBombInfo(vehicleid);
}

CMD:bomb(playerid, params[])
{
	new
		idx,
		szParameters[2][128 - 6];
		
	szParameters[0] = strtok(params, idx);
	
	if(isnull(szParameters[0]))
	{
		SendClientMessage(playerid, CB_COLOR_GREY, "USAGE: /bomb [Parameter]");
		SendClientMessage(playerid, CB_COLOR_GREY, "Available parameters: {E6E6E6}put{AFAFAF}, {E6E6E6}activate{AFAFAF}");
		
		if(CanPlayerDisarmBomb(playerid))
		{
			SendClientMessage(playerid, CB_COLOR_GREY, "{33CCFF}Disarming parameters{AFAFAF}: {E6E6E6}check{AFAFAF}, {E6E6E6}disarm{AFAFAF}");
		}
		
		return 1;
	}
	
	szParameters[1] = strtok(params, idx);
	
	if(!strcmp(szParameters[0], "put", true, 4))
	{
		new
			BombTimerID = GetPVarInt(playerid, "PuttingBomb"),
			szSetting[20],
			iTimer;
			
		if(BombTimerID)
		{
			KillTimer(BombTimerID);
			DeletePVar(playerid, "PuttingBomb");
			GameTextForPlayer(playerid, "~r~Stopped arming bomb", 2000, 3);
			TogglePlayerControllable(playerid, 1);
			return 1;
		}
	
		if(!PlayerHasCarBomb(playerid))
		{
			SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: You don't have a bomb.");
			return 1;
		}
		
		szSetting = strtok(params, idx);
		iTimer = strval(strtok(params, idx));
	
		if(isnull(szParameters[1]))
		{
			SendClientMessage(playerid, CB_COLOR_GREY, "USAGE: /bomb put [{E6E6E6}Vehicle ID{AFAFAF}] [{E6E6E6}Setting{AFAFAF}] [{E6E6E6}Timer (Seconds){AFAFAF}]");
			SendClientMessage(playerid, CB_COLOR_FADE3, "Available settings: {E6E6E6}Ignition, timer, speed, remote"),
			SendClientMessage(playerid, CB_COLOR_GREY, "NOTE: Use \"{E6E6E6}/bomb put help{AFAFAF}\" for explinations of use.");
			return 1;
		}
		
		if(!strcmp(szParameters[1], "help", true, 5))
		{
			SendClientMessage(playerid, CB_COLOR_WHITE, "[ BOMB PUT MANUAL ]");
			SendClientMessage(playerid, CB_COLOR_WHITE, "Setting 1: IGNITION {AAAAAA}- Activates the bomb timer after the {E6E6E6}vehicle's ignition{AAAAAA} is activated.");
			SendClientMessage(playerid, CB_COLOR_WHITE, "Setting 2: TIMER {AAAAAA}- {E6E6E6}Immediately{AAAAAA} activates the bomb timer.");
			SendClientMessage(playerid, CB_COLOR_WHITE, "Setting 3: SPEED {AAAAAA}- The bomb will explode as soon as the {E6E6E6}vehicle speed{AAAAAA}");
			SendClientMessage(playerid, CB_COLOR_FADE3, "drops under {E6E6E6}40{AAAAAA} km/h. It is activated {E6E6E6}as soon as the vehicle is started{AAAAAA}.");
			SendClientMessage(playerid, CB_COLOR_WHITE, "Setting 4: REMOTE {AAAAAA}- Bomb is activated with \"{E6E6E6}/bomb activate{AAAAAA}\". Note that the {E6E6E6}remote range is limited{AAAAAA}.");
			SendClientMessage(playerid, CB_COLOR_WHITE, "The timer: {AAAAAA}- Decides how long it takes for the bomb to {E6E6E6}detonate{AAAAAA} from the moment it is activated.");
			SendClientMessage(playerid, CB_COLOR_FADE3, "You can get the {E6E6E6}ID{AAAAAA} of the vehicle by using the \"{E6E6E6}/dl{AAAAAA}\" command.");
			SendClientMessage(playerid, CB_COLOR_WHITE, "[ END OF BOMB PUT MANUAL ]");
			return 1;
		}
		
		if( !GetVehicleModel( strval( szParameters[1] ) ) ) // The car isn't spawned
		{
			SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: Invalid vehicle ID.");
			SendClientMessage(playerid, CB_COLOR_GREY, "TIP: You can use \"{E6E6E6}/dl{AFAFAF}\" to see the IDs of nearby vehicles.");
			return 1;
		}
		
		if(IsPlayerInAnyVehicle(playerid))
		{
			SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: You need to stand close to the vehicle, not in it.");
			return 1;
		}
		
		new
					iVehicleID = strval(szParameters[1]),
			Float: 	f_Pos[3];
			
		GetVehiclePos(iVehicleID, f_Pos[0], f_Pos[1], f_Pos[2]);
		
		if(!IsPlayerInRangeOfPoint(playerid, BOMB_USE_DISTANCE, f_Pos[0], f_Pos[1], f_Pos[2]))
		{
			SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: You are not close enough to this vehicle.");
			return 1;
		}
		
		new
			iSetting;
		
		if(!strcmp(szSetting, "ignition", true, 9))
		{
			if(iTimer < 1 || iTimer > 60)
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: Invalid timer input. Must be between {E6E6E6}1{AFAFAF} and {E6E6E6}60{AFAFAF} seconds.");
				return 1;
			}
			iSetting = VEHICLE_BOMB_TYPE_IGNITION;
		}
		
		else if(!strcmp(szSetting, "timer", true, 6))
		{
			if(iTimer < 10 || iTimer > 120)
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: Invalid timer input. Must be between {E6E6E6}10{AFAFAF} and {E6E6E6}120{AFAFAF} seconds.");
				return 1;
			}
			iSetting = VEHICLE_BOMB_TYPE_TIMER;
		}
		
		else if(!strcmp(szSetting, "speed", true, 6))
		{
			if(iTimer < 15 || iTimer > 60)
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: Invalid timer input. Must be between {E6E6E6}15{AFAFAF} and {E6E6E6}60{AFAFAF} seconds.");
				return 1;
			}
			iSetting = VEHICLE_BOMB_TYPE_SPEED;
		}
		
		else if(!strcmp(szSetting, "remote", true, 6))
		{
			if(iTimer < 1 || iTimer > 60)
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: Invalid timer input. Must be between {E6E6E6}1{AFAFAF} and {E6E6E6}60{AFAFAF} seconds.");
				return 1;
			}
			iSetting = VEHICLE_BOMB_TYPE_REMOTE;
		}
			
		else
		{
			SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: Invalid setting. Please refer to manual: \"{E6E6E6}/bomb put help{AFAFAF}\".");
			return 1;
		}
		
		ResetBombInfo(iVehicleID);
		
		ApplyAnimation(playerid, "BOMBER", "BOM_Plant_Loop", 2.0, 0, 0, 0, 0, BOMB_ARMTIME * 1100, 0); 
		
		SetPVarInt(playerid, "PuttingBomb", SetTimerEx("PlayerPutBombInVehicle", 0, 0, "ddddd", BOMB_ARMTIME, playerid, iVehicleID, iSetting, iTimer));
	
		return 1;
		
	}
	
	if(!strcmp(szParameters[0], "activate", true, 4))
	{
		new
			Float: 	f_vPos[3],
					iHasAnyRemoteBombs;
			
		for(new i; i < MAX_VEHICLES; i++)
		{
			if(g_Bomb_Vehicles[i][bv_i_ArmedType] == VEHICLE_BOMB_TYPE_REMOTE && g_Bomb_Vehicles[i][bv_i_BombOwner] == playerid)
			{
				iHasAnyRemoteBombs = 1;
				GetVehiclePos(i, f_vPos[0], f_vPos[1], f_vPos[2]);
				if(IsPlayerInRangeOfPoint(playerid, 100.0, f_vPos[0], f_vPos[1], f_vPos[2]))
				{
					g_Bomb_Vehicles[i][bv_i_BombOwner] = INVALID_PLAYER_ID;
					BombActivated(i);
				}
			}
		}
		
		if(!iHasAnyRemoteBombs)
		{
			SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: You haven't planted any bombs.");
			return 1;
		}
		
		new
			Float:	f_Pos[3];
			
		GetPlayerPos(playerid, f_Pos[0], f_Pos[1], f_Pos[2]);
		
		PlayerPlaySound(playerid, 6400, f_Pos[0], f_Pos[1], f_Pos[2]);
		
		SendClientMessage(playerid, CB_COLOR_GREEN, "You pressed the trigger on your remote to active your bomb(s).");
		SendClientMessage(playerid, CB_COLOR_GREY, "NOTE: The distance for the remote is limited.");
		
		return 1;
	}
	
	if(CanPlayerDisarmBomb(playerid))
	{
		if(!strcmp(szParameters[0], "check", true, 4))
		{
			new
				BombCheckingTimerID = GetPVarInt(playerid, "CheckingForBombs");
				
			if(BombCheckingTimerID)
			{
				KillTimer(BombCheckingTimerID);
				DeletePVar(playerid, "CheckingForBombs");
				GameTextForPlayer(playerid, "~r~Stopped looking for bombs", 2000, 3);
				return 1;
			}
			
			if(GetPVarInt(playerid, "DisarmingBomb"))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "You are busy disarming the bomb.");
				return 1;
			}
			
			if(isnull(szParameters[1]))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "USAGE: /bomb check [Vehicle ID]");
				return 1;
			}
			
			new
				iVehicleID = strval(szParameters[1]);
			
			if(!GetVehicleModel(iVehicleID))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: Invalid vehicle ID.");
				SendClientMessage(playerid, CB_COLOR_GREY, "TIP: You can use \"{E6E6E6}/dl{AFAFAF}\" to see the IDs of nearby vehicles.");
				return 1;
			}
			
			if(IsPlayerInAnyVehicle(playerid))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: You need to stand close to the vehicle, not in it.");
				return 1;
			}
			
			new
				Float: f_vPos[3];
				
			GetVehiclePos(iVehicleID, f_vPos[0], f_vPos[1], f_vPos[2]);
			
			if(!IsPlayerInRangeOfPoint(playerid, BOMB_USE_DISTANCE, f_vPos[0], f_vPos[1], f_vPos[2]))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "You are not close enough to the vehicle.");
				return 1;
			}
			
			GameTextForPlayer(playerid, "~g~Checking for bombs... ~n~ ~y~Type ~r~/bomb check~y~ again to stop.", BOMB_CHECKTIME * 1100, 3);
			
			ApplyAnimation(playerid, "BOMBER", "BOM_Plant_Loop", 2.0, 0, 0, 0, 0, BOMB_CHECKTIME * 1100, 0); 
			
			SetPVarInt(playerid, "CheckingForBombs", SetTimerEx("CheckForBombs", BOMB_CHECKTIME * 1000, 0, "dd", playerid, iVehicleID));
			
			return 1;
		}
		
		if(!strcmp(szParameters[0], "disarm", true, 4))
		{
			new
				DisarmingBombTimerID = GetPVarInt(playerid, "DisarmingBomb");
				
			if(DisarmingBombTimerID)
			{
				KillTimer(DisarmingBombTimerID);
				DeletePVar(playerid, "DisarmingBomb");
				GameTextForPlayer(playerid, "~r~Stopped disarming the bomb", 2000, 3);
				return 1;
			}
			
			if(GetPVarInt(playerid, "CheckingForBombs"))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "You are busy checking for bombs.");
				return 1;
			}
			
			if(isnull(szParameters[1]))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "USAGE: /bomb disarm [Vehicle ID]");
				SendClientMessage(playerid, CB_COLOR_GREY, "TIP: You can use \"{E6E6E6}/dl{AFAFAF}\" to see the IDs of nearby vehicles.");
				return 1;
			}
			
			new
				iVehicleID = strval(szParameters[1]);
			
			if(!GetVehicleModel(iVehicleID))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: Invalid vehicle ID.");
				SendClientMessage(playerid, CB_COLOR_GREY, "TIP: You can use \"{E6E6E6}/dl{AFAFAF}\" to see the IDs of nearby vehicles.");
				return 1;
			}
			
			if(IsPlayerInAnyVehicle(playerid))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: You need to stand close to the vehicle, not in it.");
				return 1;
			}
			
			new
				Float: f_vPos[3];
				
			GetVehiclePos(iVehicleID, f_vPos[0], f_vPos[1], f_vPos[2]);
			
			if(!IsPlayerInRangeOfPoint(playerid, BOMB_USE_DISTANCE, f_vPos[0], f_vPos[1], f_vPos[2]))
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "You are not close enough to the vehicle.");
				return 1;
			}
			
			if(GetPVarInt(playerid, "CheckedCarForBombs") != iVehicleID)
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: You haven't checked this car for bombs yet, you need to see where it is first.");
				return 1;
			}
			
			if(GetPVarInt(playerid, "FoundBombInCar") != iVehicleID)
			{
				SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: You haven't found any bombs on this vehicle.");
				return 1;
			}
			
			GameTextForPlayer(playerid, "~g~Disarming bomb...~n~ ~y~Type ~r~/bomb disarm~y~ again to stop.", BOMB_DISARMTIME * 1000, 3);
			
			ApplyAnimation(playerid, "BOMBER", "BOM_Plant_Loop", 2.0, 0, 0, 0, 0, BOMB_DISARMTIME * 1100, 0); 
			
			SetPVarInt(playerid, "DisarmingBomb", SetTimerEx("DisarmBomb", BOMB_DISARMTIME * 1000, 0, "dd", playerid, iVehicleID));
			
			return 1;
		}
	}
	
	SendClientMessage(playerid, CB_COLOR_GREY, "ERROR: Invalid parameter. For a full list of available parameters, type \"/bomb\".");
	return 1;
}

stock PlayVehicleBombSound(vehicleid, sound)
{
	new
		Float:	v_Pos[3];
		
	GetVehiclePos(vehicleid, v_Pos[0], v_Pos[1], v_Pos[2]);
	
	for(new i; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerInVehicle(i, vehicleid))
		{
			PlayerPlaySound(i, sound, v_Pos[0], v_Pos[1],v_Pos[2]);
		}
		else
		{
			if(IsPlayerInRangeOfPoint(i, 10.0, v_Pos[0], v_Pos[1], v_Pos[2]))
			{
				PlayerPlaySound(i, sound, v_Pos[0], v_Pos[1],v_Pos[2]);
			}
		}
	}
}

public OnPlayerDisconnect(playerid, reason)
{
	for(new i; i < MAX_VEHICLES; i++)
	{
		if(g_Bomb_Vehicles[i][bv_i_BombOwner] == playerid)
		{
			g_Bomb_Vehicles[i][bv_i_BombOwner] = INVALID_PLAYER_ID;
		}
	}
}
here is script file plz when u make change in it so post in this form
Download: http://www.solidfiles.com/d/e3a154ca2a/
Reply
#2

If you want to restrict it to a certain faction in your script, you'll need to add it into your actual game-mode and not use it as a filter-script.
Reply
#3

ok i will put it in game mode but how can i make it 1 faction cmd
Reply
#4

you Don't have to put it in your gamemode you can use remote functions
https://sampwiki.blast.hk/wiki/CallRemoteFunction
Reply
#5

So plz can u make it for me bcoz i am v.bad in scripting
and i dont have any scripter
Reply
#6

Sry i can't i never used this but i know it works
Reply
#7

if any one can help me then plzz help
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)