PSX-SCENE Forum Discussion for Sony PlayStation/PsOne/PS2/PS3/PSP/PS VITA
  • UPDATE 3: GANG-WARS/Ped-Wars Minigame for GTA IV - 7 Gangs, 1 Group

    UPDATE 3: One new gang added (seven total), and Ped Wars introduced; plus various updates (see individual changelogs below).UPDATE 2: Two new gangs have been added! UPDATE: Many new "Themed" Gang-Wars added. Official GTA IV Mod Team member, HuN, has put together a wonderful addition to the the series; I present to everyone, the invention of the Gang-War minigame (sure to start appearing on various GTA forums without proper credit; just like another original released here at PSX-SCENE, the SCO Mod Manager by Three-Socks. Speaking of the SCO Mod Manager, these examples scripts are meant to be used with the infamous ModManager, so get ready to get your hands dirty if you want to go to war (click the link already!).


    Gang-War minigame

    i made a gang-war survival minigame ... ( sorry for the bad video quallity , my capture card is quite old )


    GTA IV Gang-War minigame

    i made a gang-war survival minigame ... ( sorry for the bad video quallity , my capture card is quite old )


    Angels of Death Gang-War :



    Here's my script example :
    (v 1.3)
    - fixed boss health bug
    - added " cancel override restart "
    - added " set police ignore player "
    - added " set cam behind ped "
    Code:
    //Core
    #include <natives.h>
    #include <common.h>
    #include <strings.h>
    #include <types.h>
    #include <consts.h>
    
    //############### Define Ps3 GamePad ################################//
    #define SELECT  0xD
    #define START  0xC
    #define SQUARE  0xE
    #define TRIANGLE  0xF
    #define X  0x10
    #define CIRCLE  0x11
    #define DPAD_UP  0x8
    #define DPAD_DOWN  0x9
    #define DPAD_LEFT  0xA
    #define DPAD_RIGHT  0xB
    #define L2  0x5
    #define R2  0x7
    #define L1  0x4
    #define R1  0x6
    #define STICK_L  0x12
    #define STICK_R  0x13  
    //############### Define Ps3 GamePad ################################//
    
    // Enemy Group coordinates
    float EGx,EGy,EGz;
    
    // Enemy Peds handles
    Ped zped;
    Ped zpeda;
    Ped zpedb;
    Ped zpedc;
    Ped zpedd;
    Ped zpede;
    Ped zpedf;
    Ped zpedg;
    Ped zpedh;
    
    // Enemy Peds Blip handles
    Blip bzPed;
    Blip bzPeda;
    Blip bzPedb;
    Blip bzPedc;
    Blip bzPedd;
    Blip bzPede;
    Blip bzPedf;
    Blip bzPedg;
    Blip bzPedh;
    
    // Player Warped 
    boolean pWarpInt = 0;
    
    // Intro & Reset Text Displayed
    boolean iTextInt = 0;
    boolean rTextInt = 0;
    
    // Enemy Peds Spawned
    boolean zPedInt = 0;
    boolean zPedaInt = 0;
    boolean zPedbInt = 0;
    boolean zPedcInt = 0;
    boolean zPeddInt = 0;
    boolean zPedeInt = 0;
    boolean zPedfInt = 0;
    boolean zPedgInt = 0;
    boolean zPedhInt = 0;
    
    // War Waves Current stage
    boolean zWarInt = 15;
    
    // Display Text Shortcut
    void Print(char *string)
    {
    	PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
    }
    
    //Various Enemy peds Settings Shortcut
    void EnemySettings(uint ptype, uint pblip)
    {
    	SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
    	SET_CHAR_RELATIONSHIP(ptype, 5, 0);
    	SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
    	SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
    	SET_CHAR_AS_ENEMY(ptype, TRUE);
    	SET_CHAR_ACCURACY(ptype, 40);    
    	SET_SENSE_RANGE(ptype, 80.0);
    	SET_CHAR_KEEP_TASK(ptype, TRUE);
    	TASK_COMBAT(ptype, GetPlayerPed());
    	SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
    	SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
    	SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
    	SET_CHAR_WILL_USE_COVER(ptype, TRUE);
    	SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
    	SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
    	SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
    	SET_BLIP_AS_FRIENDLY(pblip, FALSE);	
    }
    
    // Remove Enemy Shortcut
    void ClearEnemy(uint ptype, uint pblip)
    {
    	EXPLODE_CHAR_HEAD(ptype);
    	TASK_DIE(ptype);
    	REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
    	REMOVE_BLIP(pblip);
    }
    
    
    // Set & Spawn Enemy Boss At Requested Coordinates 
    void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
    {
    	REQUEST_MODEL(modelBoss);
    	while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
        
    	CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
    
    	ADD_ARMOUR_TO_CHAR(zped, 5000); //
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 10.0);
    	UpdateWeaponOfPed(zped, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zped, &bzPed);
    	GIVE_PED_FAKE_NETWORK_NAME(zped, "AoD Boss", 255, 140, 0, 255);
    	EnemySettings(zped, bzPed);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
    }
    
    // Set & Spawn Enemy(A) Near Boss
    void SpawnA(uint modelza, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelza);
    	while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 20.0);
    	UpdateWeaponOfPed(zpeda, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
    	GIVE_PED_FAKE_NETWORK_NAME(zpeda, "AoD", 255, 140, 0, 255); 
    	EnemySettings(zpeda, bzPeda);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
    }
    
    // Set & Spawn Enemy(B) Near Boss 
    void SpawnB(uint modelzb, uint weapon, float offset_y)
    {
    	REQUEST_MODEL(modelzb);
    	while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
    	
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 20.0);
    	UpdateWeaponOfPed(zpedb, weapon);
    	SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
    	ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedb, "AoD", 255, 140, 0, 255); 
    	EnemySettings(zpedb, bzPedb);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
    }
    
    // Set & spawn Enemy(C) Near Boss 
    void SpawnC(uint modelzc, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzc);
    	while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 20.0);
    	UpdateWeaponOfPed(zpedc, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedc, "AoD", 255, 140, 0, 255);
    	EnemySettings(zpedc, bzPedc);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
    }
    
    // Set & Spawn Enemy(D) Near Boss
    void SpawnD(uint modelzd, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzd);
    	while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 20.0);
    	UpdateWeaponOfPed(zpedd, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedd, "AoD", 255, 140, 0, 255);
    	EnemySettings(zpedd, bzPedd);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
    }
    
    // Set & Spawn Enemy(E) Near Boss
    void SpawnE(uint modelze, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelze);
    	while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpede, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpede, &bzPede);
    	GIVE_PED_FAKE_NETWORK_NAME(zpede, "AoD", 255, 140, 0, 255);
    	EnemySettings(zpede, bzPede);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
    }
    
    // Set & Spawn Enemy(F) Near Boss
    void SpawnF(uint modelzf, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzf);
    	while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedf, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedf, "AoD", 255, 140, 0, 255);
    	EnemySettings(zpedf, bzPedf);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
    }
    
    // Set & Spawn Enemy(G) Near Boss
    void SpawnG(uint modelzg, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzg);
    	while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedg, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedg, "AoD", 255, 140, 0, 255);
    	EnemySettings(zpedg, bzPedg);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
    }
    
    // Set & Spawn enemy(H) Near Boss
    void SpawnH(uint modelzh, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzh);
    	while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedh, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedh, "AoD", 255, 140, 0, 255);
    	EnemySettings(zpedh, bzPedh);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
    }
    
    // Set Various Player/World Settings
    void PlayerSettings(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()))
    	{
    		SET_MAX_WANTED_LEVEL(0);
    		SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
    		SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
    		OVERRIDE_NEXT_RESTART(824.9642, 951.3129, 1.4325, 255.7890);
    	}
    }
    
    // Teleport player near war zone	
    void WarpToWar(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
    	{
    	     while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_OUT(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
    
    		float x = 824.9642, y = 951.3129, z = 1.4325; 
    		
            SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
            LOAD_SCENE(x, y, z);
            WAIT(500);
    		SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
            SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
    		SET_CHAR_HEADING(GetPlayerPed(), 255.7890);
    		SET_CAM_BEHIND_PED(GetPlayerPed());
    		while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_IN(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
    			pWarpInt = 1;
    			iTextInt = 1;
            }
    
    	}
    }
    
    // Display Intro Text Once PLayer Teleported
    void TextIntro(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
    	{
    		Print("GANG WAR");
    		WAIT(4000);
    		Print("Kill All Gang Members And Boss To Get Into Next Wave");
    		WAIT(2000);
    		zWarInt = 0;
    		iTextInt = 0;
    	}
    }
    
    // Display Gang War Reseted Text If Player Die
    void TextReset(void)
    {
    	if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
    	{
    		WAIT(3000);
    		Print("You Died Gang War Reseted");
    		WAIT(4000);
    		Print("Get Back Into War Zone");
    		zWarInt = 0;
    		rTextInt = 0;
    	
    	}
    }
    
    // Manage Death/Reset 
    void PlayerDeathReset(void)
    {
    	if(IS_CHAR_DEAD(GetPlayerPed()))
    	{
    		zWarInt = 15;
    		rTextInt = 1;
    	}
    }
    
    // Spawn Enemy Gang Shortcut
    void SpawnGang(void)
    {
    	SpawnA(MODEL_M_Y_GBIK_HI_01, WEAPON_PISTOL, 1);
    	zPedaInt = 1;
    	SpawnB(MODEL_M_M_GBIK_LO_03, WEAPON_SHOTGUN, 1);
    	zPedbInt = 1;
    	SpawnC(MODEL_M_Y_GBIK_HI_02, WEAPON_MICRO_UZI, 2);
    	zPedcInt = 1;
    	SpawnD(MODEL_M_M_GBIK_LO_03, WEAPON_SHOTGUN, 2);
    	zPeddInt = 1;
    	SpawnE(MODEL_M_Y_GBIK_HI_01, WEAPON_PISTOL, -1);
    	zPedeInt = 1;
    	SpawnF(MODEL_M_M_GBIK_LO_03, WEAPON_SHOTGUN, -1);
    	zPedfInt = 1;
    	SpawnG(MODEL_M_Y_GBIK_HI_02, WEAPON_MICRO_UZI, -2);
    	zPedgInt = 1;
    	SpawnH(MODEL_M_M_GBIK_LO_03, WEAPON_SHOTGUN, -2);
    	zPedhInt = 1;
    }
    
    // Enemy Boss Spawning Logic & War Waves & Texts Display
    void WarWave(void)
    {
    	if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
    	{
    		if(zWarInt == 0)
    		{
    			Print("Gang War 1st Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 869.7471, 938.1767, 6.6970, WEAPON_MICRO_UZI);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 1;
    			}
    		}
    		else if(zWarInt == 1)
    		{
    			Print("You Survived 1st Wave");
    			WAIT(4000);
    			Print("Gang War 2nd Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 880.0684, 927.7195, 11.9120, WEAPON_MICRO_UZI);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 2;
    			}
    		}
    		else if(zWarInt == 2)
    		{
    			Print("You Survived 2nd Wave");
    			WAIT(4000);		
    			Print("Gang War 3rd Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 892.3710, 942.8923, 8.7248, WEAPON_MICRO_UZI);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 3;
    			}
    		}
    		else if(zWarInt == 3)
    		{
    			Print("You Survived 3rd Wave");
    			WAIT(4000);		
    			Print("Gang War 4th Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 881.3718, 948.4085, 7.8328, WEAPON_DEAGLE);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 4;
    			}
    		}
    		else if(zWarInt == 4)
    		{
    			Print("You Survived 4th Wave");
    			WAIT(4000);		
    			Print("Gang War 5th Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 906.8463, 964.9186, 8.2431, WEAPON_DEAGLE);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 5;
    			}
    		}
    		else if(zWarInt == 5)
    		{
    			Print("You Survived 5th Wave");
    			WAIT(4000);		
    			Print("Gang War 6th Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 933.8802, 963.6290, 19.4431, WEAPON_DEAGLE);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 6;
    			}
    		}
    		else if(zWarInt == 6)
    		{
    			Print("You Survived 6th Wave");
    			WAIT(4000);		
    			Print("Gang War 7th Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 943.3989, 982.6749, 17.6959, WEAPON_MP5);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 7;
    			}
    		}
    		else if(zWarInt == 7)
    		{
    			Print("You Survived 7th Wave");
    			WAIT(4000);		
    			Print("Gang War 8th Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 943.0972, 948.1227, 21.1600, WEAPON_MP5);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 8;
    			}
    		}
    		else if(zWarInt == 8)
    		{
    			Print("You Survived 8th Wave");
    			WAIT(4000);		
    			Print("Gang War 9th Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 888.9360, 917.5287, 16.9200, WEAPON_AK47);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 9;
    			}
    		}
    		else if(zWarInt == 9)
    		{
    			Print("You Survived 9th Wave");
    			WAIT(4000);		
    			Print("Gang War 10th Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 940.6735, 918.8997, 22.4565, WEAPON_MP5);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 10;
    			}
    		}
    		else if(zWarInt == 10)
    		{
    			Print("You Survived 10th Wave");
    			WAIT(4000);		
    			Print("Gang War 11th Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 915.6450, 921.5864, 20.0843, WEAPON_AK47);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 11;
    			}
    		}
    		else if(zWarInt == 11)
    		{
    			Print("You Survived 11th Wave");
    			WAIT(4000);		
    			Print("Gang War 12th Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 877.3582, 941.1133, 7.4764, WEAPON_M4);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 12;
    			}
    		}
    		else if(zWarInt == 12)
    		{
    			Print("You Survived 12th Wave");
    			WAIT(4000);		
    			Print("Gang War Final Wave");
    			SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 904.4918, 945.0982,  8.2989, WEAPON_M4);
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 13;
    			}
    		}
    		else if(zWarInt == 13) 
    		{
    			Print("You Survived The Final Wave");
    			WAIT(4000);
    			Print("The Gang War Is Over");
    			zWarInt = 14;
    		}
    		else if(zWarInt == 14) 
    		{
    			WAIT(4000);
    			CANCEL_OVERRIDE_RESTART();
    			TERMINATE_THIS_SCRIPT();
    		}
    	}
    }
    
    // Remove Enemy Boss Logic
    void RemoveBoss(void)
    {		
    	if (DOES_CHAR_EXIST(zped))
    	{
    		SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
    		if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zped, bzPed);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
    			zPedInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(A) Logic
    void RemoveA(void)
    {		
    	if(DOES_CHAR_EXIST(zpeda)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
    		if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpeda, bzPeda);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
    			zPedaInt = 0; 				
    		}
    	}
    }
    
    // Remove Enemy(B) Logic		
    void RemoveB(void)
    {		
    	if(DOES_CHAR_EXIST(zpedb)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
    		if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedb, bzPedb);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
    			zPedbInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(C) Logic
    void RemoveC(void)
    {		
    	if(DOES_CHAR_EXIST(zpedc)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
    		if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedc, bzPedc);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
    			zPedcInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(D) Logic
    void RemoveD(void)
    {		
    	if(DOES_CHAR_EXIST(zpedd)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
    		if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedd, bzPedd);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
    			zPeddInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(E) Logic
    void RemoveE(void)
    {		
    	if(DOES_CHAR_EXIST(zpede)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
    		if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpede, bzPede);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
    			zPedeInt = 0;
    		}
    	}
    }
    
    // Remove enemy(F) Logic		
    void RemoveF(void)
    {		
    	if(DOES_CHAR_EXIST(zpedf)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
    		if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedf, bzPedf);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
    			zPedfInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(G) Logic
    void RemoveG(void)
    {		
    	if(DOES_CHAR_EXIST(zpedg)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
    		if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedg, bzPedg);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
    			zPedgInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(H) Logic
    void RemoveH(void)
    {		
    	if(DOES_CHAR_EXIST(zpedh)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
    		if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedh, bzPedh);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
    			zPedhInt = 0;
    		}
    	}
    }
    
    void main(void)
    {
    
    	while (TRUE)
    	{
    		WAIT(0);
    		PlayerSettings();
    		WarpToWar();
    		TextIntro();
    		TextReset();
    		PlayerDeathReset();
    		WarWave();
    		RemoveBoss();
    		RemoveA();
    		RemoveB();
    		RemoveC();
    		RemoveD();
    		RemoveE();
    		RemoveF();
    		RemoveG();
    		RemoveH();
    	}
    
    }

    Jamaican Gang-War :



    Here's my script example :
    (v 1.2)
    - added " set police ignore player "
    - added " set cam behind ped "

    Code:
    //Core
    #include <natives.h>
    #include <common.h>
    #include <strings.h>
    #include <types.h>
    #include <consts.h>
    
    //############### Define Ps3 GamePad ################################//
    #define SELECT  0xD
    #define START  0xC
    #define SQUARE  0xE
    #define TRIANGLE  0xF
    #define X  0x10
    #define CIRCLE  0x11
    #define DPAD_UP  0x8
    #define DPAD_DOWN  0x9
    #define DPAD_LEFT  0xA
    #define DPAD_RIGHT  0xB
    #define L2  0x5
    #define R2  0x7
    #define L1  0x4
    #define R1  0x6
    #define STICK_L  0x12
    #define STICK_R  0x13  
    //############### Define Ps3 GamePad ################################//
    
    // Enemy Group coordinates
    float EGx,EGy,EGz;
    
    // Enemy Peds handles
    Ped zped;
    Ped zpeda;
    Ped zpedb;
    Ped zpedc;
    Ped zpedd;
    Ped zpede;
    Ped zpedf;
    Ped zpedg;
    Ped zpedh;
    
    // Enemy Peds Blip handles
    Blip bzPed;
    Blip bzPeda;
    Blip bzPedb;
    Blip bzPedc;
    Blip bzPedd;
    Blip bzPede;
    Blip bzPedf;
    Blip bzPedg;
    Blip bzPedh;
    
    // Player Warped 
    boolean pWarpInt = 0;
    
    // Intro & Reset Text Displayed
    boolean iTextInt = 0;
    boolean rTextInt = 0;
    
    // Enemy Peds Spawned
    boolean zPedInt = 0;
    boolean zPedaInt = 0;
    boolean zPedbInt = 0;
    boolean zPedcInt = 0;
    boolean zPeddInt = 0;
    boolean zPedeInt = 0;
    boolean zPedfInt = 0;
    boolean zPedgInt = 0;
    boolean zPedhInt = 0;
    
    // War Waves Current stage
    boolean zWarInt = 15;
    
    // Display Text Shortcut
    void Print(char *string)
    {
    	PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
    }
    
    //Various Enemy peds Settings Shortcut
    void EnemySettings(uint ptype, uint pblip)
    {
    	SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
    	SET_CHAR_RELATIONSHIP(ptype, 5, 0);
    	SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
    	SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
    	SET_CHAR_AS_ENEMY(ptype, TRUE);
    	SET_CHAR_ACCURACY(ptype, 40);    
    	SET_SENSE_RANGE(ptype, 80.0);
    	SET_CHAR_KEEP_TASK(ptype, TRUE);
    	TASK_COMBAT(ptype, GetPlayerPed());
    	SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
    	SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
    	SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
    	SET_CHAR_WILL_USE_COVER(ptype, TRUE);
    	SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
    	SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
    	SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
    	SET_BLIP_AS_FRIENDLY(pblip, FALSE);	
    }
    
    // Remove Enemy Shortcut
    void ClearEnemy(uint ptype, uint pblip)
    {
    	EXPLODE_CHAR_HEAD(ptype);
    	TASK_DIE(ptype);
    	REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
    	REMOVE_BLIP(pblip);
    }
    
    
    // Set & Spawn Enemy Boss At Requested Coordinates 
    void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
    {
    	REQUEST_MODEL(modelBoss);
    	while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
        
    	CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
    
    	ADD_ARMOUR_TO_CHAR(zped, 5000); 
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
    	UpdateWeaponOfPed(zped, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zped, &bzPed);
    	GIVE_PED_FAKE_NETWORK_NAME(zped, "JAM Boss", 255, 140, 0, 255); 
    	EnemySettings(zped, bzPed);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
    }
    
    // Set & Spawn Enemy(A) Near Boss
    void SpawnA(uint modelza, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelza);
    	while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpeda, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
    	GIVE_PED_FAKE_NETWORK_NAME(zpeda, "JAM", 255, 140, 0, 255); 
    	EnemySettings(zpeda, bzPeda);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
    }
    
    // Set & Spawn Enemy(B) Near Boss 
    void SpawnB(uint modelzb, uint weapon, float offset_y)
    {
    	REQUEST_MODEL(modelzb);
    	while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
    	
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedb, weapon);
    	SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
    	ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedb, "JAM", 255, 140, 0, 255); 
    	EnemySettings(zpedb, bzPedb);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
    }
    
    // Set & spawn Enemy(C) Near Boss 
    void SpawnC(uint modelzc, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzc);
    	while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedc, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedc, "JAM", 255, 140, 0, 255);
    	EnemySettings(zpedc, bzPedc);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
    }
    
    // Set & Spawn Enemy(D) Near Boss
    void SpawnD(uint modelzd, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzd);
    	while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedd, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedd, "JAM", 255, 140, 0, 255);
    	EnemySettings(zpedd, bzPedd);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
    }
    
    // Set & Spawn Enemy(E) Near Boss
    void SpawnE(uint modelze, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelze);
    	while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpede, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpede, &bzPede);
    	GIVE_PED_FAKE_NETWORK_NAME(zpede, "JAM", 255, 140, 0, 255);
    	EnemySettings(zpede, bzPede);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
    }
    
    // Set & Spawn Enemy(F) Near Boss
    void SpawnF(uint modelzf, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzf);
    	while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedf, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedf, "JAM", 255, 140, 0, 255);
    	EnemySettings(zpedf, bzPedf);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
    }
    
    // Set & Spawn Enemy(G) Near Boss
    void SpawnG(uint modelzg, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzg);
    	while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedg, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedg, "JAM", 255, 140, 0, 255);
    	EnemySettings(zpedg, bzPedg);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
    }
    
    // Set & Spawn enemy(H) Near Boss
    void SpawnH(uint modelzh, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzh);
    	while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedh, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedh, "JAM", 255, 140, 0, 255);
    	EnemySettings(zpedh, bzPedh);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
    }
    
    // Set Various Player/World Settings
    void PlayerSettings(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()))
    	{
    		SET_MAX_WANTED_LEVEL(0);
    		SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
    		SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
    		OVERRIDE_NEXT_RESTART(1422.6055, 9.9713, 25.1744, 22.6748);  
    	}
    }
    
    // Teleport player near war zone	
    void WarpToWar(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
    	{
    	     while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_OUT(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
    
    		float x = 1422.6055, y = 9.9713, z = 25.1744;  
    		
            SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
            LOAD_SCENE(x, y, z);
            WAIT(500);
    		SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
            SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
    		SET_CHAR_HEADING(GetPlayerPed(), 22.6748); 
     		SET_CAM_BEHIND_PED(GetPlayerPed());
    		while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_IN(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
    			pWarpInt = 1;
    			iTextInt = 1;
            }
    
    	}
    }
    
    // Display Intro Text Once PLayer Teleported
    void TextIntro(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
    	{
    		Print("GANG WAR");
    		WAIT(4000);
    		Print("Kill All Gang Members And Boss To Get Into Next Wave");
    		WAIT(2000);
    		zWarInt = 0;
    		iTextInt = 0;
    	}
    }
    
    // Display Gang War Reseted Text If Player Die
    void TextReset(void)
    {
    	if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
    	{
    		WAIT(3000);
    		Print("You Died Gang War Reseted");
    		WAIT(4000);
    		Print("Get Back Into War Zone");
    		zWarInt = 0;
    		rTextInt = 0;
    	
    	}
    }
    
    // Manage Death/Reset 
    void PlayerDeathReset(void)
    {
    	if(IS_CHAR_DEAD(GetPlayerPed()))
    	{
    		zWarInt = 15;
    		rTextInt = 1;
    	}
    }
    
    // Spawn Enemy Gang Shortcut
    void SpawnGang(void)
    {
    	SpawnA(MODEL_M_M_GJAM_HI_01, WEAPON_PISTOL, 1); 
    	zPedaInt = 1;
    	SpawnB(MODEL_M_Y_GJAM_LO_01, WEAPON_SHOTGUN, 1); 
    	zPedbInt = 1;
    	SpawnC(MODEL_M_M_GJAM_HI_02, WEAPON_MICRO_UZI, 2); 
    	zPedcInt = 1;
    	SpawnD(MODEL_M_Y_GJAM_LO_02, WEAPON_SHOTGUN, 2); 
    	zPeddInt = 1;
    	SpawnE(MODEL_M_M_GJAM_HI_01, WEAPON_PISTOL, -1); 
    	zPedeInt = 1;
    	SpawnF(MODEL_M_Y_GJAM_LO_01, WEAPON_SHOTGUN, -1); 
    	zPedfInt = 1;
    	SpawnG(MODEL_M_M_GJAM_HI_02, WEAPON_MICRO_UZI, -2); 
    	zPedgInt = 1;
    	SpawnH(MODEL_M_M_GJAM_HI_01, WEAPON_SHOTGUN, -2); 
    	zPedhInt = 1;
    }
    
    // Enemy Boss Spawning Logic & War Waves & Texts Display
    void WarWave(void)
    {
    	if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
    	{
    		if(zWarInt == 0)
    		{
    			Print("Gang War 1st Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1385.9141, 26.2958, 29.4831, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 1;
    			}
    		}
    		else if(zWarInt == 1)
    		{
    			Print("You Survived 1st Wave");
    			WAIT(4000);
    			Print("Gang War 2nd Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1361.7430, 16.1924, 32.0250, WEAPON_MICRO_UZI);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 2;
    			}
    		}
    		else if(zWarInt == 2)
    		{
    			Print("You Survived 2nd Wave");
    			WAIT(4000);		
    			Print("Gang War 3rd Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1344.1869, 53.4597, 32.1652, WEAPON_MICRO_UZI);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 3;
    			}
    		}
    		else if(zWarInt == 3)
    		{
    			Print("You Survived 3rd Wave");
    			WAIT(4000);		
    			Print("Gang War 4th Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1386.2336, 62.5527, 25.9109, WEAPON_DEAGLE); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 4;
    			}
    		}
    		else if(zWarInt == 4)
    		{
    			Print("You Survived 4th Wave");
    			WAIT(4000);		
    			Print("Gang War 5th Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1400.0679, 86.9136, 25.9109, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 5;
    			}
    		}
    		else if(zWarInt == 5)
    		{
    			Print("You Survived 5th Wave");
    			WAIT(4000);		
    			Print("Gang War 6th Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1370.5553, 64.8754, 31.6330, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 6;
    			}
    		}
    		else if(zWarInt == 6)
    		{
    			Print("You Survived 6th Wave");
    			WAIT(4000);		
    			Print("Gang War 7th Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1372.2246, 98.0066, 31.1385, WEAPON_MP5);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 7;
    			}
    		}
    		else if(zWarInt == 7)
    		{
    			Print("You Survived 7th Wave");
    			WAIT(4000);		
    			Print("Gang War 8th Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1413.0474, 83.6826, 25.7152, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 8;
    			}
    		}
    		else if(zWarInt == 8)
    		{
    			Print("You Survived 8th Wave");
    			WAIT(4000);		
    			Print("Gang War 9th Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1443.1223, 53.2962, 37.2806, WEAPON_AK47);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 9;
    			}
    		}
    		else if(zWarInt == 9)
    		{
    			Print("You Survived 9th Wave");
    			WAIT(4000);		
    			Print("Gang War 10th Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1452.4160, 55.5246, 38.6006, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 10;
    			}
    		}
    		else if(zWarInt == 10)
    		{
    			Print("You Survived 10th Wave");
    			WAIT(4000);		
    			Print("Gang War 11th Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1459.2733, 99.7263, 24.7473, WEAPON_AK47);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 11;
    			}
    		}
    		else if(zWarInt == 11)
    		{
    			Print("You Survived 11th Wave");
    			WAIT(4000);		
    			Print("Gang War 12th Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1479.2775, 58.7730, 24.9513, WEAPON_M4);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 12;
    			}
    		}
    		else if(zWarInt == 12)
    		{
    			Print("You Survived 12th Wave");
    			WAIT(4000);		
    			Print("Gang War Final Wave");
    			SpawnBoss(MODEL_M_M_GJAM_HI_03, 1463.9869, 34.9254, 37.0028, WEAPON_M4);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 13;
    			}
    		}
    		else if(zWarInt == 13) 
    		{
    			Print("You Survived The Final Wave");
    			WAIT(4000);
    			Print("The Gang War Is Over");
    			zWarInt = 14;
    		}
    		else if(zWarInt == 14) 
    		{
    			WAIT(4000);
    			CANCEL_OVERRIDE_RESTART(); 
    			TERMINATE_THIS_SCRIPT();
    		}
    	}
    }
    
    // Remove Enemy Boss Logic
    void RemoveBoss(void)
    {		
    	if (DOES_CHAR_EXIST(zped))
    	{
    		SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
    		if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zped, bzPed);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
    			zPedInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(A) Logic
    void RemoveA(void)
    {		
    	if(DOES_CHAR_EXIST(zpeda)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
    		if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpeda, bzPeda);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
    			zPedaInt = 0; 				
    		}
    	}
    }
    
    // Remove Enemy(B) Logic		
    void RemoveB(void)
    {		
    	if(DOES_CHAR_EXIST(zpedb)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
    		if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedb, bzPedb);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
    			zPedbInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(C) Logic
    void RemoveC(void)
    {		
    	if(DOES_CHAR_EXIST(zpedc)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
    		if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedc, bzPedc);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
    			zPedcInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(D) Logic
    void RemoveD(void)
    {		
    	if(DOES_CHAR_EXIST(zpedd)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
    		if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedd, bzPedd);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
    			zPeddInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(E) Logic
    void RemoveE(void)
    {		
    	if(DOES_CHAR_EXIST(zpede)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
    		if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpede, bzPede);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
    			zPedeInt = 0;
    		}
    	}
    }
    
    // Remove enemy(F) Logic		
    void RemoveF(void)
    {		
    	if(DOES_CHAR_EXIST(zpedf)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
    		if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedf, bzPedf);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
    			zPedfInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(G) Logic
    void RemoveG(void)
    {		
    	if(DOES_CHAR_EXIST(zpedg)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
    		if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedg, bzPedg);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
    			zPedgInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(H) Logic
    void RemoveH(void)
    {		
    	if(DOES_CHAR_EXIST(zpedh)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
    		if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedh, bzPedh);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
    			zPedhInt = 0;
    		}
    	}
    }
    
    void main(void)
    {
    
    	while (TRUE)
    	{
    		WAIT(0);
    		PlayerSettings();
    		WarpToWar();
    		TextIntro();
    		TextReset();
    		PlayerDeathReset();
    		WarWave();
    		RemoveBoss();
    		RemoveA();
    		RemoveB();
    		RemoveC();
    		RemoveD();
    		RemoveE();
    		RemoveF();
    		RemoveG();
    		RemoveH();
    	}
    
    }

    Russian Gang-War :



    Here's my script example :
    (v 1.1)
    - added " set cam behind ped "

    Code:
    //Core
    #include <natives.h>
    #include <common.h>
    #include <strings.h>
    #include <types.h>
    #include <consts.h>
    
    //############### Define Ps3 GamePad ################################//
    #define SELECT  0xD
    #define START  0xC
    #define SQUARE  0xE
    #define TRIANGLE  0xF
    #define X  0x10
    #define CIRCLE  0x11
    #define DPAD_UP  0x8
    #define DPAD_DOWN  0x9
    #define DPAD_LEFT  0xA
    #define DPAD_RIGHT  0xB
    #define L2  0x5
    #define R2  0x7
    #define L1  0x4
    #define R1  0x6
    #define STICK_L  0x12
    #define STICK_R  0x13  
    //############### Define Ps3 GamePad ################################//
    
    // Enemy Group coordinates
    float EGx,EGy,EGz;
    
    // Enemy Peds handles
    Ped zped;
    Ped zpeda;
    Ped zpedb;
    Ped zpedc;
    Ped zpedd;
    Ped zpede;
    Ped zpedf;
    Ped zpedg;
    Ped zpedh;
    
    // Enemy Peds Blip handles
    Blip bzPed;
    Blip bzPeda;
    Blip bzPedb;
    Blip bzPedc;
    Blip bzPedd;
    Blip bzPede;
    Blip bzPedf;
    Blip bzPedg;
    Blip bzPedh;
    
    // Player Warped 
    boolean pWarpInt = 0;
    
    // Intro & Reset Text Displayed
    boolean iTextInt = 0;
    boolean rTextInt = 0;
    
    // Enemy Peds Spawned
    boolean zPedInt = 0;
    boolean zPedaInt = 0;
    boolean zPedbInt = 0;
    boolean zPedcInt = 0;
    boolean zPeddInt = 0;
    boolean zPedeInt = 0;
    boolean zPedfInt = 0;
    boolean zPedgInt = 0;
    boolean zPedhInt = 0;
    
    // War Waves Current stage
    boolean zWarInt = 15;
    
    // Display Text Shortcut
    void Print(char *string)
    {
    	PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
    }
    
    //Various Enemy peds Settings Shortcut
    void EnemySettings(uint ptype, uint pblip)
    {
    	SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
    	SET_CHAR_RELATIONSHIP(ptype, 5, 0);
    	SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
    	SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
    	SET_CHAR_AS_ENEMY(ptype, TRUE);
    	SET_CHAR_ACCURACY(ptype, 40); //   
    	SET_SENSE_RANGE(ptype, 80.0);
    	SET_CHAR_KEEP_TASK(ptype, TRUE);
    	TASK_COMBAT(ptype, GetPlayerPed());
    	SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
    	SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
    	SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
    	SET_CHAR_WILL_USE_COVER(ptype, TRUE);
    	SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
    	SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
    	SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
    	SET_BLIP_AS_FRIENDLY(pblip, FALSE);	
    }
    
    // Remove Enemy Shortcut
    void ClearEnemy(uint ptype, uint pblip)
    {
    	EXPLODE_CHAR_HEAD(ptype);
    	TASK_DIE(ptype);
    	REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
    	REMOVE_BLIP(pblip);
    }
    
    
    // Set & Spawn Enemy Boss At Requested Coordinates 
    void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
    {
    	REQUEST_MODEL(modelBoss);
    	while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
        
    	CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
    	
    	ADD_ARMOUR_TO_CHAR(zped, 5000); 
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
    	UpdateWeaponOfPed(zped, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zped, &bzPed);
    	GIVE_PED_FAKE_NETWORK_NAME(zped, "RU2 Boss", 255, 140, 0, 255); 
    	EnemySettings(zped, bzPed);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
    }
    
    // Set & Spawn Enemy(A) Near Boss
    void SpawnA(uint modelza, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelza);
    	while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpeda, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
    	GIVE_PED_FAKE_NETWORK_NAME(zpeda, "RU2", 255, 140, 0, 255); 
    	EnemySettings(zpeda, bzPeda);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
    }
    
    // Set & Spawn Enemy(B) Near Boss 
    void SpawnB(uint modelzb, uint weapon, float offset_y)
    {
    	REQUEST_MODEL(modelzb);
    	while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
    	
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedb, weapon);
    	SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
    	ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedb, "RU2", 255, 140, 0, 255); 
    	EnemySettings(zpedb, bzPedb);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
    }
    
    // Set & spawn Enemy(C) Near Boss 
    void SpawnC(uint modelzc, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzc);
    	while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedc, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedc, "RU2", 255, 140, 0, 255);
    	EnemySettings(zpedc, bzPedc);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
    }
    
    // Set & Spawn Enemy(D) Near Boss
    void SpawnD(uint modelzd, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzd);
    	while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedd, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedd, "RU2", 255, 140, 0, 255);
    	EnemySettings(zpedd, bzPedd);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
    }
    
    // Set & Spawn Enemy(E) Near Boss
    void SpawnE(uint modelze, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelze);
    	while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpede, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpede, &bzPede);
    	GIVE_PED_FAKE_NETWORK_NAME(zpede, "RU2", 255, 140, 0, 255);
    	EnemySettings(zpede, bzPede);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
    }
    
    // Set & Spawn Enemy(F) Near Boss
    void SpawnF(uint modelzf, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzf);
    	while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedf, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedf, "RU2", 255, 140, 0, 255);
    	EnemySettings(zpedf, bzPedf);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
    }
    
    // Set & Spawn Enemy(G) Near Boss
    void SpawnG(uint modelzg, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzg);
    	while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedg, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedg, "RU2", 255, 140, 0, 255);
    	EnemySettings(zpedg, bzPedg);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
    }
    
    // Set & Spawn enemy(H) Near Boss
    void SpawnH(uint modelzh, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzh);
    	while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedh, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedh, "RU2", 255, 140, 0, 255);
    	EnemySettings(zpedh, bzPedh);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
    }
    
    // Set Various Player/World Settings
    void PlayerSettings(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()))
    	{
    		SET_MAX_WANTED_LEVEL(0);
    		SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
    		SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
    		OVERRIDE_NEXT_RESTART(974.6638, -331.6276, 19.2403, 109.9269);  
    	}
    }
    
    // Teleport player near war zone	
    void WarpToWar(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
    	{
    	     while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_OUT(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
    
    		float x = 974.6638, y = -331.6276, z = 19.2403;  
    		
            SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
            LOAD_SCENE(x, y, z);
            WAIT(500);
    		SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
            SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
    		SET_CHAR_HEADING(GetPlayerPed(), 109.9269);
    		SET_CAM_BEHIND_PED(GetPlayerPed()); 
    		while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_IN(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
    			pWarpInt = 1;
    			iTextInt = 1;
            }
    
    	}
    }
    
    // Display Intro Text Once PLayer Teleported
    void TextIntro(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
    	{
    		Print("GANG WAR");
    		WAIT(4000);
    		Print("Kill All Gang Members And Boss To Get Into Next Wave");
    		WAIT(2000);
    		zWarInt = 0;
    		iTextInt = 0;
    	}
    }
    
    // Display Gang War Reseted Text If Player Die
    void TextReset(void)
    {
    	if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
    	{
    		WAIT(3000);
    		Print("You Died Gang War Reseted");
    		WAIT(4000);
    		Print("Get Back Into War Zone");
    		zWarInt = 0;
    		rTextInt = 0;
    	
    	}
    }
    
    // Manage Death/Reset 
    void PlayerDeathReset(void)
    {
    	if(IS_CHAR_DEAD(GetPlayerPed()))
    	{
    		zWarInt = 15;
    		rTextInt = 1;
    	}
    }
    
    // Spawn Enemy Gang Shortcut
    void SpawnGang(void)
    {
    	SpawnA(MODEL_M_M_GRU2_HI_02, WEAPON_PISTOL, 1); 
    	zPedaInt = 1;
    	SpawnB(MODEL_M_M_GRU2_LO_02, WEAPON_SHOTGUN, 1); 
    	zPedbInt = 1;
    	SpawnC(MODEL_M_Y_GRU2_LO_01, WEAPON_MICRO_UZI, 2); 
    	zPedcInt = 1;
    	SpawnD(MODEL_M_Y_GRU2_LO_01, WEAPON_SHOTGUN, 2); 
    	zPeddInt = 1;
    	SpawnE(MODEL_M_M_GRU2_HI_02, WEAPON_PISTOL, -1); 
    	zPedeInt = 1;
    	SpawnF(MODEL_M_Y_GRU2_LO_01, WEAPON_SHOTGUN, -1); 
    	zPedfInt = 1;
    	SpawnG(MODEL_M_M_GRU2_LO_02, WEAPON_MICRO_UZI, -2); 
    	zPedgInt = 1;
    	SpawnH(MODEL_M_Y_GRU2_LO_01, WEAPON_SHOTGUN, -2); 
    	zPedhInt = 1;
    }
      
    
    // Enemy Boss Spawning Logic & War Waves & Texts Display
    void WarWave(void)
    {
    	if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
    	{
    		if(zWarInt == 0)
    		{
    			Print("Gang War 1st Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 951.8498, -311.5872, 19.2803, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 1;
    			}
    		}
    		else if(zWarInt == 1)
    		{
    			Print("You Survived 1st Wave");
    			WAIT(4000);
    			Print("Gang War 2nd Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 982.3896, -320.7414, 22.8408, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 2;
    			}
    		}
    		else if(zWarInt == 2)
    		{
    			Print("You Survived 2nd Wave");
    			WAIT(4000);		
    			Print("Gang War 3rd Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 959.0059, -293.2604, 25.6316, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 3;
    			}
    		}
    		else if(zWarInt == 3)
    		{
    			Print("You Survived 3rd Wave");
    			WAIT(4000);		
    			Print("Gang War 4th Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 991.2575, -282.5342, 21.5821, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 4;
    			}
    		}
    		else if(zWarInt == 4)
    		{
    			Print("You Survived 4th Wave");
    			WAIT(4000);		
    			Print("Gang War 5th Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 1015.5672, -318.7956, 24.8602, WEAPON_DEAGLE); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 5;
    			}
    		}
    		else if(zWarInt == 5)
    		{
    			Print("You Survived 5th Wave");
    			WAIT(4000);		
    			Print("Gang War 6th Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 1023.1271, -280.4496, 21.7737, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 6;
    			}
    		}
    		else if(zWarInt == 6)
    		{
    			Print("You Survived 6th Wave");
    			WAIT(4000);		
    			Print("Gang War 7th Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 967.4060, -238.0682, 22.8094, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 7;
    			}
    		}
    		else if(zWarInt == 7)
    		{
    			Print("You Survived 7th Wave");
    			WAIT(4000);		
    			Print("Gang War 8th Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 962.7328, -247.9613, 26.4232, WEAPON_MP5);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 8;
    			}
    		}
    		else if(zWarInt == 8)
    		{
    			Print("You Survived 8th Wave");
    			WAIT(4000);		
    			Print("Gang War 9th Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 971.7936, -273.4756, 21.5722, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 9;
    			}
    		}
    		else if(zWarInt == 9)
    		{
    			Print("You Survived 9th Wave");
    			WAIT(4000);		
    			Print("Gang War 10th Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 966.4038, -288.1553, 34.0763, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 10;
    			}
    		}
    		else if(zWarInt == 10)
    		{
    			Print("You Survived 10th Wave");
    			WAIT(4000);		
    			Print("Gang War 11th Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 950.1610, -251.1435, 26.4232, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 11;
    			}
    		}
    		else if(zWarInt == 11)
    		{
    			Print("You Survived 11th Wave");
    			WAIT(4000);		
    			Print("Gang War 12th Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 949.3851, -288.1855, 34.1143, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 12;
    			}
    		}
    		else if(zWarInt == 12)
    		{
    			Print("You Survived 12th Wave");
    			WAIT(4000);		
    			Print("Gang War Final Wave");
    			SpawnBoss(MODEL_M_M_GRU2_HI_01, 939.7153, -280.1792, 27.4799, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 13;
    			}
    		}
    		else if(zWarInt == 13) 
    		{
    			Print("You Survived The Final Wave");
    			WAIT(4000);
    			Print("The Gang War Is Over");
    			zWarInt = 14;
    		}
    		else if(zWarInt == 14) 
    		{
    			WAIT(4000);
    			CANCEL_OVERRIDE_RESTART();
    			TERMINATE_THIS_SCRIPT();
    		}
    	}
    }
    
    // Remove Enemy Boss Logic
    void RemoveBoss(void)
    {		
    	if (DOES_CHAR_EXIST(zped))
    	{
    		SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
    		if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zped, bzPed);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
    			zPedInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(A) Logic
    void RemoveA(void)
    {		
    	if(DOES_CHAR_EXIST(zpeda)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
    		if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpeda, bzPeda);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
    			zPedaInt = 0; 				
    		}
    	}
    }
    
    // Remove Enemy(B) Logic		
    void RemoveB(void)
    {		
    	if(DOES_CHAR_EXIST(zpedb)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
    		if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedb, bzPedb);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
    			zPedbInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(C) Logic
    void RemoveC(void)
    {		
    	if(DOES_CHAR_EXIST(zpedc)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
    		if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedc, bzPedc);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
    			zPedcInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(D) Logic
    void RemoveD(void)
    {		
    	if(DOES_CHAR_EXIST(zpedd)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
    		if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedd, bzPedd);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
    			zPeddInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(E) Logic
    void RemoveE(void)
    {		
    	if(DOES_CHAR_EXIST(zpede)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
    		if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpede, bzPede);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
    			zPedeInt = 0;
    		}
    	}
    }
    
    // Remove enemy(F) Logic		
    void RemoveF(void)
    {		
    	if(DOES_CHAR_EXIST(zpedf)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
    		if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedf, bzPedf);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
    			zPedfInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(G) Logic
    void RemoveG(void)
    {		
    	if(DOES_CHAR_EXIST(zpedg)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
    		if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedg, bzPedg);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
    			zPedgInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(H) Logic
    void RemoveH(void)
    {		
    	if(DOES_CHAR_EXIST(zpedh)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
    		if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedh, bzPedh);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
    			zPedhInt = 0;
    		}
    	}
    }
    
    void main(void)
    {
    
    	while (TRUE)
    	{
    		WAIT(0);
    		PlayerSettings();
    		WarpToWar();
    		TextIntro();
    		TextReset();
    		PlayerDeathReset();
    		WarWave();
    		RemoveBoss();
    		RemoveA();
    		RemoveB();
    		RemoveC();
    		RemoveD();
    		RemoveE();
    		RemoveF();
    		RemoveG();
    		RemoveH();
    	}
    
    }

    Russian Mob Gang-War :



    Here's my script example :
    (v 1.2)
    - fixed wave 11th ( enemy spawn spot )
    - added " set cam behind ped

    Code:
    //Core
    #include <natives.h>
    #include <common.h>
    #include <strings.h>
    #include <types.h>
    #include <consts.h>
    
    //############### Define Ps3 GamePad ################################//
    #define SELECT  0xD
    #define START  0xC
    #define SQUARE  0xE
    #define TRIANGLE  0xF
    #define X  0x10
    #define CIRCLE  0x11
    #define DPAD_UP  0x8
    #define DPAD_DOWN  0x9
    #define DPAD_LEFT  0xA
    #define DPAD_RIGHT  0xB
    #define L2  0x5
    #define R2  0x7
    #define L1  0x4
    #define R1  0x6
    #define STICK_L  0x12
    #define STICK_R  0x13  
    //############### Define Ps3 GamePad ################################//
    
    // Enemy Group coordinates
    float EGx,EGy,EGz;
    
    // Enemy Peds handles
    Ped zped;
    Ped zpeda;
    Ped zpedb;
    Ped zpedc;
    Ped zpedd;
    Ped zpede;
    Ped zpedf;
    Ped zpedg;
    Ped zpedh;
    
    // Enemy Peds Blip handles
    Blip bzPed;
    Blip bzPeda;
    Blip bzPedb;
    Blip bzPedc;
    Blip bzPedd;
    Blip bzPede;
    Blip bzPedf;
    Blip bzPedg;
    Blip bzPedh;
    
    // Player Warped 
    boolean pWarpInt = 0;
    
    // Intro & Reset Text Displayed
    boolean iTextInt = 0;
    boolean rTextInt = 0;
    
    // Enemy Peds Spawned
    boolean zPedInt = 0;
    boolean zPedaInt = 0;
    boolean zPedbInt = 0;
    boolean zPedcInt = 0;
    boolean zPeddInt = 0;
    boolean zPedeInt = 0;
    boolean zPedfInt = 0;
    boolean zPedgInt = 0;
    boolean zPedhInt = 0;
    
    // War Waves Current stage
    boolean zWarInt = 15;
    
    // Display Text Shortcut
    void Print(char *string)
    {
    	PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
    }
    
    //Various Enemy peds Settings Shortcut
    void EnemySettings(uint ptype, uint pblip)
    {
    	SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
    	SET_CHAR_RELATIONSHIP(ptype, 5, 0);
    	SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
    	SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
    	SET_CHAR_AS_ENEMY(ptype, TRUE);
    	SET_CHAR_ACCURACY(ptype, 40);    
    	SET_SENSE_RANGE(ptype, 80.0);
    	SET_CHAR_KEEP_TASK(ptype, TRUE);
    	TASK_COMBAT(ptype, GetPlayerPed());
    	SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
    	SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
    	SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
    	SET_CHAR_WILL_USE_COVER(ptype, TRUE);
    	SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
    	SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
    	SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
    	SET_BLIP_AS_FRIENDLY(pblip, FALSE);	
    }
    
    // Remove Enemy Shortcut
    void ClearEnemy(uint ptype, uint pblip)
    {
    	EXPLODE_CHAR_HEAD(ptype);
    	TASK_DIE(ptype);
    	REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
    	REMOVE_BLIP(pblip);
    }
    
    
    // Set & Spawn Enemy Boss At Requested Coordinates 
    void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
    {
    	REQUEST_MODEL(modelBoss);
    	while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
        
    	CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
    	
    	ADD_ARMOUR_TO_CHAR(zped, 5000); 
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
    	UpdateWeaponOfPed(zped, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zped, &bzPed);
    	GIVE_PED_FAKE_NETWORK_NAME(zped, "MOB Boss", 255, 140, 0, 255); 
    	EnemySettings(zped, bzPed);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
    }
    
    // Set & Spawn Enemy(A) Near Boss
    void SpawnA(uint modelza, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelza);
    	while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpeda, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
    	GIVE_PED_FAKE_NETWORK_NAME(zpeda, "MOB", 255, 140, 0, 255); 
    	EnemySettings(zpeda, bzPeda);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
    }
    
    // Set & Spawn Enemy(B) Near Boss 
    void SpawnB(uint modelzb, uint weapon, float offset_y)
    {
    	REQUEST_MODEL(modelzb);
    	while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
    	
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedb, weapon);
    	SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
    	ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedb, "MOB", 255, 140, 0, 255); 
    	EnemySettings(zpedb, bzPedb);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
    }
    
    // Set & spawn Enemy(C) Near Boss 
    void SpawnC(uint modelzc, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzc);
    	while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedc, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedc, "MOB", 255, 140, 0, 255);
    	EnemySettings(zpedc, bzPedc);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
    }
    
    // Set & Spawn Enemy(D) Near Boss
    void SpawnD(uint modelzd, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzd);
    	while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedd, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedd, "MOB", 255, 140, 0, 255);
    	EnemySettings(zpedd, bzPedd);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
    }
    
    // Set & Spawn Enemy(E) Near Boss
    void SpawnE(uint modelze, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelze);
    	while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpede, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpede, &bzPede);
    	GIVE_PED_FAKE_NETWORK_NAME(zpede, "MOB", 255, 140, 0, 255);
    	EnemySettings(zpede, bzPede);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
    }
    
    // Set & Spawn Enemy(F) Near Boss
    void SpawnF(uint modelzf, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzf);
    	while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedf, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedf, "MOB", 255, 140, 0, 255);
    	EnemySettings(zpedf, bzPedf);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
    }
    
    // Set & Spawn Enemy(G) Near Boss
    void SpawnG(uint modelzg, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzg);
    	while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedg, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedg, "MOB", 255, 140, 0, 255);
    	EnemySettings(zpedg, bzPedg);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
    }
    
    // Set & Spawn enemy(H) Near Boss
    void SpawnH(uint modelzh, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzh);
    	while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedh, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedh, "MOB", 255, 140, 0, 255);
    	EnemySettings(zpedh, bzPedh);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
    }
    
    // Set Various Player/World Settings
    void PlayerSettings(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()))
    	{
    		SET_MAX_WANTED_LEVEL(0);
    		SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
    		SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
    		OVERRIDE_NEXT_RESTART(941.8973, -616.1635, 14.2293, 273.2119);  
    	}
    }
    
    // Teleport player near war zone	
    void WarpToWar(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
    	{
    	     while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_OUT(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
    
    		float x = 941.8973, y = -616.1635, z = 14.2293;  
    		
            SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
            LOAD_SCENE(x, y, z);
            WAIT(500);
    		SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
            SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
    		SET_CHAR_HEADING(GetPlayerPed(), 273.2119); 
    		SET_CAM_BEHIND_PED(GetPlayerPed());
    		while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_IN(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
    			pWarpInt = 1;
    			iTextInt = 1;
            }
    
    	}
    }
    
    // Display Intro Text Once PLayer Teleported
    void TextIntro(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
    	{
    		Print("GANG WAR");
    		WAIT(4000);
    		Print("Kill All Gang Members And Boss To Get Into Next Wave");
    		WAIT(2000);
    		zWarInt = 0;
    		iTextInt = 0;
    	}
    }
    
    // Display Gang War Reseted Text If Player Die
    void TextReset(void)
    {
    	if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
    	{
    		WAIT(3000);
    		Print("You Died Gang War Reseted");
    		WAIT(4000);
    		Print("Get Back Into War Zone");
    		zWarInt = 0;
    		rTextInt = 0;
    	
    	}
    }
    
    // Manage Death/Reset 
    void PlayerDeathReset(void)
    {
    	if(IS_CHAR_DEAD(GetPlayerPed()))
    	{
    		zWarInt = 15;
    		rTextInt = 1;
    	}
    }
    
    // Spawn Enemy Gang Shortcut
    void SpawnGang(void)
    {
    	SpawnA(MODEL_M_O_GRUS_HI_01, WEAPON_PISTOL, 1); 
    	zPedaInt = 1;
    	SpawnB(MODEL_M_Y_GRUS_LO_01, WEAPON_SHOTGUN, 1); 
    	zPedbInt = 1;
    	SpawnC(MODEL_M_Y_GRUS_LO_02, WEAPON_MICRO_UZI, 2); 
    	zPedcInt = 1;
    	SpawnD(MODEL_M_Y_GRUS_HI_02, WEAPON_SHOTGUN, 2); 
    	zPeddInt = 1;
    	SpawnE(MODEL_M_O_GRUS_HI_01, WEAPON_PISTOL, -1); 
    	zPedeInt = 1;
    	SpawnF(MODEL_M_Y_GRUS_LO_01, WEAPON_SHOTGUN, -1); 
    	zPedfInt = 1;
    	SpawnG(MODEL_M_Y_GRUS_LO_02, WEAPON_MICRO_UZI, -2); 
    	zPedgInt = 1;
    	SpawnH(MODEL_M_Y_GRUS_HI_02, WEAPON_SHOTGUN, -2); 
    	zPedhInt = 1;
    }
      
    // Enemy Boss Spawning Logic & War Waves & Texts Display
    void WarWave(void)
    {
    	if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
    	{
    		if(zWarInt == 0)
    		{
    			Print("Gang War 1st Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 981.0219, -597.9029, 14.2244, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 1;
    			}
    		}
    		else if(zWarInt == 1)
    		{
    			Print("You Survived 1st Wave");
    			WAIT(4000);
    			Print("Gang War 2nd Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 999.3539, -623.5986, 14.2242, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 2;
    			}
    		}
    		else if(zWarInt == 2)
    		{
    			Print("You Survived 2nd Wave");
    			WAIT(4000);		
    			Print("Gang War 3rd Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 989.0475, -644.8644, 14.2239, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 3;
    			}
    		}
    		else if(zWarInt == 3)
    		{
    			Print("You Survived 3rd Wave");
    			WAIT(4000);		
    			Print("Gang War 4th Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1012.9600, -642.2748, 14.2238, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 4;
    			}
    		}
    		else if(zWarInt == 4)
    		{
    			Print("You Survived 4th Wave");
    			WAIT(4000);		
    			Print("Gang War 5th Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1001.9397, -650.9165, 18.7778, WEAPON_DEAGLE); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 5;
    			}
    		}
    		else if(zWarInt == 5)
    		{
    			Print("You Survived 5th Wave");
    			WAIT(4000);		
    			Print("Gang War 6th Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1022.0897, -663.1685, 14.2246, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 6;
    			}
    		}
    		else if(zWarInt == 6)
    		{
    			Print("You Survived 6th Wave");
    			WAIT(4000);		
    			Print("Gang War 7th Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1032.5020, -688.4957, 14.2246, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 7;
    			}
    		}
    		else if(zWarInt == 7)
    		{
    			Print("You Survived 7th Wave");
    			WAIT(4000);		
    			Print("Gang War 8th Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1062.9495, -673.7162, 13.4928, WEAPON_MP5);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 8;
    			}
    		}
    		else if(zWarInt == 8)
    		{
    			Print("You Survived 8th Wave");
    			WAIT(4000);		
    			Print("Gang War 9th Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1073.7277, -641.0123, 13.4922, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 9;
    			}
    		}
    		else if(zWarInt == 9)
    		{
    			Print("You Survived 9th Wave");
    			WAIT(4000);		
    			Print("Gang War 10th Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1063.6169, -605.7117, 13.4923, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 10;
    			}
    		}
    		else if(zWarInt == 10)
    		{
    			Print("You Survived 10th Wave");
    			WAIT(4000);		
    			Print("Gang War 11th Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1064.0461, -694.4926, 13.4930, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 11;
    			}
    		}
    		else if(zWarInt == 11)
    		{
    			Print("You Survived 11th Wave");
    			WAIT(4000);		
    			Print("Gang War 12th Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1069.5344, -673.1451, 13.4928, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 12;
    			}
    		}
    		else if(zWarInt == 12)
    		{
    			Print("You Survived 12th Wave");
    			WAIT(4000);		
    			Print("Gang War Final Wave");
    			SpawnBoss(MODEL_M_O_MPMOBBOSS, 1017.5516, -619.1068, 14.2253, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 13;
    			}
    		}
    		else if(zWarInt == 13) 
    		{
    			Print("You Survived The Final Wave");
    			WAIT(4000);
    			Print("The Gang War Is Over");
    			zWarInt = 14;
    		}
    		else if(zWarInt == 14) 
    		{
    			WAIT(4000);
    			CANCEL_OVERRIDE_RESTART();
    			TERMINATE_THIS_SCRIPT();
    		}
    	}
    }
    
    // Remove Enemy Boss Logic
    void RemoveBoss(void)
    {		
    	if (DOES_CHAR_EXIST(zped))
    	{
    		SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
    		if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zped, bzPed);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
    			zPedInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(A) Logic
    void RemoveA(void)
    {		
    	if(DOES_CHAR_EXIST(zpeda)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
    		if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpeda, bzPeda);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
    			zPedaInt = 0; 				
    		}
    	}
    }
    
    // Remove Enemy(B) Logic		
    void RemoveB(void)
    {		
    	if(DOES_CHAR_EXIST(zpedb)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
    		if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedb, bzPedb);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
    			zPedbInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(C) Logic
    void RemoveC(void)
    {		
    	if(DOES_CHAR_EXIST(zpedc)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
    		if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedc, bzPedc);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
    			zPedcInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(D) Logic
    void RemoveD(void)
    {		
    	if(DOES_CHAR_EXIST(zpedd)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
    		if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedd, bzPedd);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
    			zPeddInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(E) Logic
    void RemoveE(void)
    {		
    	if(DOES_CHAR_EXIST(zpede)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
    		if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpede, bzPede);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
    			zPedeInt = 0;
    		}
    	}
    }
    
    // Remove enemy(F) Logic		
    void RemoveF(void)
    {		
    	if(DOES_CHAR_EXIST(zpedf)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
    		if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedf, bzPedf);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
    			zPedfInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(G) Logic
    void RemoveG(void)
    {		
    	if(DOES_CHAR_EXIST(zpedg)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
    		if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedg, bzPedg);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
    			zPedgInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(H) Logic
    void RemoveH(void)
    {		
    	if(DOES_CHAR_EXIST(zpedh)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
    		if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedh, bzPedh);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
    			zPedhInt = 0;
    		}
    	}
    }
    
    void main(void)
    {
    
    	while (TRUE)
    	{
    		WAIT(0);
    		PlayerSettings();
    		WarpToWar();
    		TextIntro();
    		TextReset();
    		PlayerDeathReset();
    		WarWave();
    		RemoveBoss();
    		RemoveA();
    		RemoveB();
    		RemoveC();
    		RemoveD();
    		RemoveE();
    		RemoveF();
    		RemoveG();
    		RemoveH();
    	}
    
    }
    Afro-American Gang-War :



    Here's my script example :
    (v 1.1)
    -added " set cam behind ped "

    Code:
    //Core
    #include <natives.h>
    #include <common.h>
    #include <strings.h>
    #include <types.h>
    #include <consts.h>
    
    //############### Define Ps3 GamePad ################################//
    #define SELECT  0xD
    #define START  0xC
    #define SQUARE  0xE
    #define TRIANGLE  0xF
    #define X  0x10
    #define CIRCLE  0x11
    #define DPAD_UP  0x8
    #define DPAD_DOWN  0x9
    #define DPAD_LEFT  0xA
    #define DPAD_RIGHT  0xB
    #define L2  0x5
    #define R2  0x7
    #define L1  0x4
    #define R1  0x6
    #define STICK_L  0x12
    #define STICK_R  0x13  
    //############### Define Ps3 GamePad ################################//
    
    // Enemy Group coordinates
    float EGx,EGy,EGz;
    
    // Enemy Peds handles
    Ped zped;
    Ped zpeda;
    Ped zpedb;
    Ped zpedc;
    Ped zpedd;
    Ped zpede;
    Ped zpedf;
    Ped zpedg;
    Ped zpedh;
    
    // Enemy Peds Blip handles
    Blip bzPed;
    Blip bzPeda;
    Blip bzPedb;
    Blip bzPedc;
    Blip bzPedd;
    Blip bzPede;
    Blip bzPedf;
    Blip bzPedg;
    Blip bzPedh;
    
    // Player Warped 
    boolean pWarpInt = 0;
    
    // Intro & Reset Text Displayed
    boolean iTextInt = 0;
    boolean rTextInt = 0;
    
    // Enemy Peds Spawned
    boolean zPedInt = 0;
    boolean zPedaInt = 0;
    boolean zPedbInt = 0;
    boolean zPedcInt = 0;
    boolean zPeddInt = 0;
    boolean zPedeInt = 0;
    boolean zPedfInt = 0;
    boolean zPedgInt = 0;
    boolean zPedhInt = 0;
    
    // War Waves Current stage
    boolean zWarInt = 15;
    
    // Display Text Shortcut
    void Print(char *string)
    {
    	PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
    }
    
    //Various Enemy peds Settings Shortcut
    void EnemySettings(uint ptype, uint pblip)
    {
    	SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
    	SET_CHAR_RELATIONSHIP(ptype, 5, 0);
    	SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
    	SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
    	SET_CHAR_AS_ENEMY(ptype, TRUE);
    	SET_CHAR_ACCURACY(ptype, 40);    
    	SET_SENSE_RANGE(ptype, 80.0);
    	SET_CHAR_KEEP_TASK(ptype, TRUE);
    	TASK_COMBAT(ptype, GetPlayerPed());
    	SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
    	SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
    	SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
    	SET_CHAR_WILL_USE_COVER(ptype, TRUE);
    	SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
    	SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
    	SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
    	SET_BLIP_AS_FRIENDLY(pblip, FALSE);	
    }
    
    // Remove Enemy Shortcut
    void ClearEnemy(uint ptype, uint pblip)
    {
    	EXPLODE_CHAR_HEAD(ptype);
    	TASK_DIE(ptype);
    	REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
    	REMOVE_BLIP(pblip);
    }
    
    
    // Set & Spawn Enemy Boss At Requested Coordinates 
    void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
    {
    	REQUEST_MODEL(modelBoss);
    	while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
        
    	CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
    	
    	ADD_ARMOUR_TO_CHAR(zped, 5000); 
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
    	UpdateWeaponOfPed(zped, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zped, &bzPed);
    	GIVE_PED_FAKE_NETWORK_NAME(zped, "AFR Boss", 255, 140, 0, 255); 
    	EnemySettings(zped, bzPed);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
    }
    
    // Set & Spawn Enemy(A) Near Boss
    void SpawnA(uint modelza, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelza);
    	while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpeda, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
    	GIVE_PED_FAKE_NETWORK_NAME(zpeda, "AFR", 255, 140, 0, 255); 
    	EnemySettings(zpeda, bzPeda);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
    }
    
    // Set & Spawn Enemy(B) Near Boss 
    void SpawnB(uint modelzb, uint weapon, float offset_y)
    {
    	REQUEST_MODEL(modelzb);
    	while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
    	
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedb, weapon);
    	SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
    	ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedb, "AFR", 255, 140, 0, 255); 
    	EnemySettings(zpedb, bzPedb);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
    }
    
    // Set & spawn Enemy(C) Near Boss 
    void SpawnC(uint modelzc, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzc);
    	while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedc, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedc, "AFR", 255, 140, 0, 255);
    	EnemySettings(zpedc, bzPedc);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
    }
    
    // Set & Spawn Enemy(D) Near Boss
    void SpawnD(uint modelzd, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzd);
    	while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedd, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedd, "AFR", 255, 140, 0, 255);
    	EnemySettings(zpedd, bzPedd);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
    }
    
    // Set & Spawn Enemy(E) Near Boss
    void SpawnE(uint modelze, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelze);
    	while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpede, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpede, &bzPede);
    	GIVE_PED_FAKE_NETWORK_NAME(zpede, "AFR", 255, 140, 0, 255);
    	EnemySettings(zpede, bzPede);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
    }
    
    // Set & Spawn Enemy(F) Near Boss
    void SpawnF(uint modelzf, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzf);
    	while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedf, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedf, "AFR", 255, 140, 0, 255);
    	EnemySettings(zpedf, bzPedf);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
    }
    
    // Set & Spawn Enemy(G) Near Boss
    void SpawnG(uint modelzg, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzg);
    	while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedg, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedg, "AFR", 255, 140, 0, 255);
    	EnemySettings(zpedg, bzPedg);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
    }
    
    // Set & Spawn enemy(H) Near Boss
    void SpawnH(uint modelzh, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzh);
    	while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedh, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedh, "AFR", 255, 140, 0, 255);
    	EnemySettings(zpedh, bzPedh);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
    }
    
    // Set Various Player/World Settings
    void PlayerSettings(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()))
    	{
    		SET_MAX_WANTED_LEVEL(0);
    		SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
    		SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
    		OVERRIDE_NEXT_RESTART(1278.0542, -319.8939, 18.8496, 176.1501);  
    	}
    }
    
    // Teleport player near war zone	
    void WarpToWar(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
    	{
    	     while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_OUT(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
    
    		float x = 1278.0542, y = -319.8939, z = 18.8496;  
    		
            SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
            LOAD_SCENE(x, y, z);
            WAIT(500);
    		SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
            SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
    		SET_CHAR_HEADING(GetPlayerPed(), 176.1501);
    		SET_CAM_BEHIND_PED(GetPlayerPed()); 
    		while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_IN(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
    			pWarpInt = 1;
    			iTextInt = 1;
            }
    
    	}
    }
    
    // Display Intro Text Once PLayer Teleported
    void TextIntro(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
    	{
    		Print("GANG WAR");
    		WAIT(4000);
    		Print("Kill All Gang Members And Boss To Get Into Next Wave");
    		WAIT(2000);
    		zWarInt = 0;
    		iTextInt = 0;
    	}
    }
    
    // Display Gang War Reseted Text If Player Die
    void TextReset(void)
    {
    	if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
    	{
    		WAIT(3000);
    		Print("You Died Gang War Reseted");
    		WAIT(4000);
    		Print("Get Back Into War Zone");
    		zWarInt = 0;
    		rTextInt = 0;
    	
    	}
    }
    
    // Manage Death/Reset 
    void PlayerDeathReset(void)
    {
    	if(IS_CHAR_DEAD(GetPlayerPed()))
    	{
    		zWarInt = 15;
    		rTextInt = 1;
    	}
    }
    
    // Spawn Enemy Gang Shortcut
    void SpawnGang(void)
    {
    	SpawnA(MODEL_M_Y_GAFR_LO_01, WEAPON_PISTOL, 1); 
    	zPedaInt = 1;
    	SpawnB(MODEL_M_Y_GAFR_LO_02, WEAPON_SHOTGUN, 1); 
    	zPedbInt = 1;
    	SpawnC(MODEL_M_Y_GAFR_HI_01, WEAPON_MICRO_UZI, 2); 
    	zPedcInt = 1;
    	SpawnD(MODEL_M_Y_GAFR_LO_01, WEAPON_SHOTGUN, 2); 
    	zPeddInt = 1;
    	SpawnE(MODEL_M_Y_GAFR_LO_02, WEAPON_PISTOL, -1); 
    	zPedeInt = 1;
    	SpawnF(MODEL_M_Y_GAFR_HI_01, WEAPON_SHOTGUN, -1); 
    	zPedfInt = 1;
    	SpawnG(MODEL_M_Y_GAFR_LO_01, WEAPON_MICRO_UZI, -2); 
    	zPedgInt = 1;
    	SpawnH(MODEL_M_Y_GAFR_LO_02, WEAPON_SHOTGUN, -2); 
    	zPedhInt = 1;
    }
     
    // Enemy Boss Spawning Logic & War Waves & Texts Display
    void WarWave(void)
    {
    	if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
    	{
    		if(zWarInt == 0)
    		{
    			Print("Gang War 1st Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1268.6353, -361.6036, 19.1160, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 1;
    			}
    		}
    		else if(zWarInt == 1)
    		{
    			Print("You Survived 1st Wave");
    			WAIT(4000);
    			Print("Gang War 2nd Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1303.5857, -346.9720, 18.7132, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 2;
    			}
    		}
    		else if(zWarInt == 2)
    		{
    			Print("You Survived 2nd Wave");
    			WAIT(4000);		
    			Print("Gang War 3rd Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1260.6670, -330.3216, 25.2667, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 3;
    			}
    		}
    		else if(zWarInt == 3)
    		{
    			Print("You Survived 3rd Wave");
    			WAIT(4000);		
    			Print("Gang War 4th Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1248.4714, -320.8361, 21.5503, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 4;
    			}
    		}
    		else if(zWarInt == 4)
    		{
    			Print("You Survived 4th Wave");
    			WAIT(4000);		
    			Print("Gang War 5th Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1239.9952, -311.5716, 22.0091, WEAPON_DEAGLE); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 5;
    			}
    		}
    		else if(zWarInt == 5)
    		{
    			Print("You Survived 5th Wave");
    			WAIT(4000);		
    			Print("Gang War 6th Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1269.9744, -286.2427, 23.4582, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 6;
    			}
    		}
    		else if(zWarInt == 6)
    		{
    			Print("You Survived 6th Wave");
    			WAIT(4000);		
    			Print("Gang War 7th Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1227.2302, -280.9445, 25.8325, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 7;
    			}
    		}
    		else if(zWarInt == 7)
    		{
    			Print("You Survived 7th Wave");
    			WAIT(4000);		
    			Print("Gang War 8th Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1259.2570, -266.7352, 25.8219, WEAPON_MP5);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 8;
    			}
    		}
    		else if(zWarInt == 8)
    		{
    			Print("You Survived 8th Wave");
    			WAIT(4000);		
    			Print("Gang War 9th Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1291.8781, -333.3494, 22.5560, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 9;
    			}
    		}
    		else if(zWarInt == 9)
    		{
    			Print("You Survived 9th Wave");
    			WAIT(4000);		
    			Print("Gang War 10th Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1297.9692, -279.6353, 23.1819, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 10;
    			}
    		}
    		else if(zWarInt == 10)
    		{
    			Print("You Survived 10th Wave");
    			WAIT(4000);		
    			Print("Gang War 11th Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1312.8538, -250.9349, 23.2322, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 11;
    			}
    		}
    		else if(zWarInt == 11)
    		{
    			Print("You Survived 11th Wave");
    			WAIT(4000);		
    			Print("Gang War 12th Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1355.6426, -268.5583, 23.3911, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 12;
    			}
    		}
    		else if(zWarInt == 12)
    		{
    			Print("You Survived 12th Wave");
    			WAIT(4000);		
    			Print("Gang War Final Wave");
    			SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1346.7089, -288.4955, 23.1973, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 13;
    			}
    		}
    		else if(zWarInt == 13) 
    		{
    			Print("You Survived The Final Wave");
    			WAIT(4000);
    			Print("The Gang War Is Over");
    			zWarInt = 14;
    		}
    		else if(zWarInt == 14) 
    		{
    			WAIT(4000);
    			CANCEL_OVERRIDE_RESTART();
    			TERMINATE_THIS_SCRIPT();
    		}
    	}
    }
    
    // Remove Enemy Boss Logic
    void RemoveBoss(void)
    {		
    	if (DOES_CHAR_EXIST(zped))
    	{
    		SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
    		if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zped, bzPed);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
    			zPedInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(A) Logic
    void RemoveA(void)
    {		
    	if(DOES_CHAR_EXIST(zpeda)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
    		if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpeda, bzPeda);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
    			zPedaInt = 0; 				
    		}
    	}
    }
    
    // Remove Enemy(B) Logic		
    void RemoveB(void)
    {		
    	if(DOES_CHAR_EXIST(zpedb)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
    		if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedb, bzPedb);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
    			zPedbInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(C) Logic
    void RemoveC(void)
    {		
    	if(DOES_CHAR_EXIST(zpedc)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
    		if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedc, bzPedc);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
    			zPedcInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(D) Logic
    void RemoveD(void)
    {		
    	if(DOES_CHAR_EXIST(zpedd)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
    		if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedd, bzPedd);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
    			zPeddInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(E) Logic
    void RemoveE(void)
    {		
    	if(DOES_CHAR_EXIST(zpede)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
    		if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpede, bzPede);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
    			zPedeInt = 0;
    		}
    	}
    }
    
    // Remove enemy(F) Logic		
    void RemoveF(void)
    {		
    	if(DOES_CHAR_EXIST(zpedf)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
    		if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedf, bzPedf);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
    			zPedfInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(G) Logic
    void RemoveG(void)
    {		
    	if(DOES_CHAR_EXIST(zpedg)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
    		if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedg, bzPedg);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
    			zPedgInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(H) Logic
    void RemoveH(void)
    {		
    	if(DOES_CHAR_EXIST(zpedh)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
    		if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedh, bzPedh);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
    			zPedhInt = 0;
    		}
    	}
    }
    
    void main(void)
    {
    
    	while (TRUE)
    	{
    		WAIT(0);
    		PlayerSettings();
    		WarpToWar();
    		TextIntro();
    		TextReset();
    		PlayerDeathReset();
    		WarWave();
    		RemoveBoss();
    		RemoveA();
    		RemoveB();
    		RemoveC();
    		RemoveD();
    		RemoveE();
    		RemoveF();
    		RemoveG();
    		RemoveH();
    	}
    
    }

    Irish Gang-War :



    Here's my script example :
    (v 1.1)
    - added " set cam behind ped "

    Code:
    //Core
    #include <natives.h>
    #include <common.h>
    #include <strings.h>
    #include <types.h>
    #include <consts.h>
    
    //############### Define Ps3 GamePad ################################//
    #define SELECT  0xD
    #define START  0xC
    #define SQUARE  0xE
    #define TRIANGLE  0xF
    #define X  0x10
    #define CIRCLE  0x11
    #define DPAD_UP  0x8
    #define DPAD_DOWN  0x9
    #define DPAD_LEFT  0xA
    #define DPAD_RIGHT  0xB
    #define L2  0x5
    #define R2  0x7
    #define L1  0x4
    #define R1  0x6
    #define STICK_L  0x12
    #define STICK_R  0x13  
    //############### Define Ps3 GamePad ################################//
    
    // Enemy Group coordinates
    float EGx,EGy,EGz;
    
    // Enemy Peds handles
    Ped zped;
    Ped zpeda;
    Ped zpedb;
    Ped zpedc;
    Ped zpedd;
    Ped zpede;
    Ped zpedf;
    Ped zpedg;
    Ped zpedh;
    
    // Enemy Peds Blip handles
    Blip bzPed;
    Blip bzPeda;
    Blip bzPedb;
    Blip bzPedc;
    Blip bzPedd;
    Blip bzPede;
    Blip bzPedf;
    Blip bzPedg;
    Blip bzPedh;
    
    // Player Warped 
    boolean pWarpInt = 0;
    
    // Intro & Reset Text Displayed
    boolean iTextInt = 0;
    boolean rTextInt = 0;
    
    // Enemy Peds Spawned
    boolean zPedInt = 0;
    boolean zPedaInt = 0;
    boolean zPedbInt = 0;
    boolean zPedcInt = 0;
    boolean zPeddInt = 0;
    boolean zPedeInt = 0;
    boolean zPedfInt = 0;
    boolean zPedgInt = 0;
    boolean zPedhInt = 0;
    
    // War Waves Current stage
    boolean zWarInt = 15;
    
    // Display Text Shortcut
    void Print(char *string)
    {
    	PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
    }
    
    //Various Enemy peds Settings Shortcut
    void EnemySettings(uint ptype, uint pblip)
    {
    	SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
    	SET_CHAR_RELATIONSHIP(ptype, 5, 0);
    	SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
    	SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
    	SET_CHAR_AS_ENEMY(ptype, TRUE);
    	SET_CHAR_ACCURACY(ptype, 40);    
    	SET_SENSE_RANGE(ptype, 80.0);
    	SET_CHAR_KEEP_TASK(ptype, TRUE);
    	TASK_COMBAT(ptype, GetPlayerPed());
    	SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
    	SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
    	SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
    	SET_CHAR_WILL_USE_COVER(ptype, TRUE);
    	SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
    	SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
    	SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
    	SET_BLIP_AS_FRIENDLY(pblip, FALSE);	
    }
    
    // Remove Enemy Shortcut
    void ClearEnemy(uint ptype, uint pblip)
    {
    	EXPLODE_CHAR_HEAD(ptype);
    	TASK_DIE(ptype);
    	REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
    	REMOVE_BLIP(pblip);
    }
    
    
    // Set & Spawn Enemy Boss At Requested Coordinates 
    void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
    {
    	REQUEST_MODEL(modelBoss);
    	while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
        
    	CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
    	
    	ADD_ARMOUR_TO_CHAR(zped, 5000); 
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
    	UpdateWeaponOfPed(zped, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zped, &bzPed);
    	GIVE_PED_FAKE_NETWORK_NAME(zped, "IRI Boss", 255, 140, 0, 255); 
    	EnemySettings(zped, bzPed);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
    }
    
    // Set & Spawn Enemy(A) Near Boss
    void SpawnA(uint modelza, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelza);
    	while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpeda, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
    	GIVE_PED_FAKE_NETWORK_NAME(zpeda, "IRI", 255, 140, 0, 255); 
    	EnemySettings(zpeda, bzPeda);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
    }
    
    // Set & Spawn Enemy(B) Near Boss 
    void SpawnB(uint modelzb, uint weapon, float offset_y)
    {
    	REQUEST_MODEL(modelzb);
    	while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
    	
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedb, weapon);
    	SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
    	ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedb, "IRI", 255, 140, 0, 255); 
    	EnemySettings(zpedb, bzPedb);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
    }
    
    // Set & spawn Enemy(C) Near Boss 
    void SpawnC(uint modelzc, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzc);
    	while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedc, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedc, "IRI", 255, 140, 0, 255);
    	EnemySettings(zpedc, bzPedc);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
    }
    
    // Set & Spawn Enemy(D) Near Boss
    void SpawnD(uint modelzd, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzd);
    	while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedd, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedd, "IRI", 255, 140, 0, 255);
    	EnemySettings(zpedd, bzPedd);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
    }
    
    // Set & Spawn Enemy(E) Near Boss
    void SpawnE(uint modelze, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelze);
    	while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpede, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpede, &bzPede);
    	GIVE_PED_FAKE_NETWORK_NAME(zpede, "IRI", 255, 140, 0, 255);
    	EnemySettings(zpede, bzPede);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
    }
    
    // Set & Spawn Enemy(F) Near Boss
    void SpawnF(uint modelzf, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzf);
    	while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedf, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedf, "IRI", 255, 140, 0, 255);
    	EnemySettings(zpedf, bzPedf);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
    }
    
    // Set & Spawn Enemy(G) Near Boss
    void SpawnG(uint modelzg, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzg);
    	while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedg, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedg, "IRI", 255, 140, 0, 255);
    	EnemySettings(zpedg, bzPedg);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
    }
    
    // Set & Spawn enemy(H) Near Boss
    void SpawnH(uint modelzh, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzh);
    	while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedh, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedh, "IRI", 255, 140, 0, 255);
    	EnemySettings(zpedh, bzPedh);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
    }
    
    // Set Various Player/World Settings
    void PlayerSettings(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()))
    	{
    		SET_MAX_WANTED_LEVEL(0);
    		SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
    		SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
    		OVERRIDE_NEXT_RESTART(1202.8007, 733.0580, 36.2863, 77.4485);  
    	}
    }
    
    // Teleport player near war zone	
    void WarpToWar(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
    	{
    	     while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_OUT(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
    
    		float x = 1202.8007, y = 733.0580, z = 36.2863;  
    		
            SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
            LOAD_SCENE(x, y, z);
            WAIT(500);
    		SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
            SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
    		SET_CHAR_HEADING(GetPlayerPed(), 77.4485); 
    		SET_CAM_BEHIND_PED(GetPlayerPed());
    		while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_IN(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
    			pWarpInt = 1;
    			iTextInt = 1;
            }
    
    	}
    }
    
    // Display Intro Text Once PLayer Teleported
    void TextIntro(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
    	{
    		Print("GANG WAR");
    		WAIT(4000);
    		Print("Kill All Gang Members And Boss To Get Into Next Wave");
    		WAIT(2000);
    		zWarInt = 0;
    		iTextInt = 0;
    	}
    }
    
    // Display Gang War Reseted Text If Player Die
    void TextReset(void)
    {
    	if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
    	{
    		WAIT(3000);
    		Print("You Died Gang War Reseted");
    		WAIT(4000);
    		Print("Get Back Into War Zone");
    		zWarInt = 0;
    		rTextInt = 0;
    	
    	}
    }
    
    // Manage Death/Reset 
    void PlayerDeathReset(void)
    {
    	if(IS_CHAR_DEAD(GetPlayerPed()))
    	{
    		zWarInt = 15;
    		rTextInt = 1;
    	}
    }
    
    // Spawn Enemy Gang Shortcut
    void SpawnGang(void)
    {
    	SpawnA(MODEL_M_Y_GIRI_LO_01 , WEAPON_PISTOL, 1); 
    	zPedaInt = 1;
    	SpawnB(MODEL_M_Y_GIRI_LO_02, WEAPON_SHOTGUN, 1); 
    	zPedbInt = 1;
    	SpawnC(MODEL_M_Y_GIRI_LO_01 , WEAPON_MICRO_UZI, 2); 
    	zPedcInt = 1;
    	SpawnD(MODEL_M_Y_GIRI_LO_02, WEAPON_SHOTGUN, 2); 
    	zPeddInt = 1;
    	SpawnE(MODEL_M_Y_GIRI_LO_01 , WEAPON_PISTOL, -1); 
    	zPedeInt = 1;
    	SpawnF(MODEL_M_Y_GIRI_LO_02, WEAPON_SHOTGUN, -1); 
    	zPedfInt = 1;
    	SpawnG(MODEL_M_Y_GIRI_LO_01 , WEAPON_MICRO_UZI, -2); 
    	zPedgInt = 1;
    	SpawnH(MODEL_M_Y_GIRI_LO_02, WEAPON_SHOTGUN, -2); 
    	zPedhInt = 1;
    }
      
    // Enemy Boss Spawning Logic & War Waves & Texts Display
    void WarWave(void)
    {
    	if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
    	{
    		if(zWarInt == 0)
    		{
    			Print("Gang War 1st Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1162.8527, 735.9461, 35.4042, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 1;
    			}
    		}
    		else if(zWarInt == 1)
    		{
    			Print("You Survived 1st Wave");
    			WAIT(4000);
    			Print("Gang War 2nd Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1144.3295, 753.9232, 35.1854, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 2;
    			}
    		}
    		else if(zWarInt == 2)
    		{
    			Print("You Survived 2nd Wave");
    			WAIT(4000);		
    			Print("Gang War 3rd Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1133.4117, 726.7820, 35.3760, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 3;
    			}
    		}
    		else if(zWarInt == 3)
    		{
    			Print("You Survived 3rd Wave");
    			WAIT(4000);		
    			Print("Gang War 4th Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1119.2885, 734.7713, 34.9804, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 4;
    			}
    		}
    		else if(zWarInt == 4)
    		{
    			Print("You Survived 4th Wave");
    			WAIT(4000);		
    			Print("Gang War 5th Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1144.0258, 712.7090, 36.4954, WEAPON_DEAGLE); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 5;
    			}
    		}
    		else if(zWarInt == 5)
    		{
    			Print("You Survived 5th Wave");
    			WAIT(4000);		
    			Print("Gang War 6th Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1119.5525, 714.0245, 35.8228, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 6;
    			}
    		}
    		else if(zWarInt == 6)
    		{
    			Print("You Survived 6th Wave");
    			WAIT(4000);		
    			Print("Gang War 7th Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1135.6086, 754.1855, 34.7872, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 7;
    			}
    		}
    		else if(zWarInt == 7)
    		{
    			Print("You Survived 7th Wave");
    			WAIT(4000);		
    			Print("Gang War 8th Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1071.7274, 743.1567, 33.9569, WEAPON_MP5);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 8;
    			}
    		}
    		else if(zWarInt == 8)
    		{
    			Print("You Survived 8th Wave");
    			WAIT(4000);		
    			Print("Gang War 9th Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1039.4810, 745.3546, 31.9033, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 9;
    			}
    		}
    		else if(zWarInt == 9)
    		{
    			Print("You Survived 9th Wave");
    			WAIT(4000);		
    			Print("Gang War 10th Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1011.3513, 744.9771, 35.4511, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 10;
    			}
    		}
    		else if(zWarInt == 10)
    		{
    			Print("You Survived 10th Wave");
    			WAIT(4000);		
    			Print("Gang War 11th Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1007.0865, 744.4248, 30.7183, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 11;
    			}
    		}
    		else if(zWarInt == 11)
    		{
    			Print("You Survived 11th Wave");
    			WAIT(4000);		
    			Print("Gang War 12th Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 980.9754, 739.2982, 35.4511, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 12;
    			}
    		}
    		else if(zWarInt == 12)
    		{
    			Print("You Survived 12th Wave");
    			WAIT(4000);		
    			Print("Gang War Final Wave");
    			SpawnBoss(MODEL_M_Y_GIRI_LO_03, 980.9993, 739.1968, 40.1745, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 13;
    			}
    		}
    		else if(zWarInt == 13) 
    		{
    			Print("You Survived The Final Wave");
    			WAIT(4000);
    			Print("The Gang War Is Over");
    			zWarInt = 14;
    		}
    		else if(zWarInt == 14) 
    		{
    			WAIT(4000);
    			CANCEL_OVERRIDE_RESTART();
    			TERMINATE_THIS_SCRIPT();
    		}
    	}
    }
    
    // Remove Enemy Boss Logic
    void RemoveBoss(void)
    {		
    	if (DOES_CHAR_EXIST(zped))
    	{
    		SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
    		if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zped, bzPed);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
    			zPedInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(A) Logic
    void RemoveA(void)
    {		
    	if(DOES_CHAR_EXIST(zpeda)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
    		if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpeda, bzPeda);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
    			zPedaInt = 0; 				
    		}
    	}
    }
    
    // Remove Enemy(B) Logic		
    void RemoveB(void)
    {		
    	if(DOES_CHAR_EXIST(zpedb)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
    		if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedb, bzPedb);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
    			zPedbInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(C) Logic
    void RemoveC(void)
    {		
    	if(DOES_CHAR_EXIST(zpedc)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
    		if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedc, bzPedc);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
    			zPedcInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(D) Logic
    void RemoveD(void)
    {		
    	if(DOES_CHAR_EXIST(zpedd)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
    		if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedd, bzPedd);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
    			zPeddInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(E) Logic
    void RemoveE(void)
    {		
    	if(DOES_CHAR_EXIST(zpede)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
    		if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpede, bzPede);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
    			zPedeInt = 0;
    		}
    	}
    }
    
    // Remove enemy(F) Logic		
    void RemoveF(void)
    {		
    	if(DOES_CHAR_EXIST(zpedf)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
    		if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedf, bzPedf);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
    			zPedfInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(G) Logic
    void RemoveG(void)
    {		
    	if(DOES_CHAR_EXIST(zpedg)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
    		if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedg, bzPedg);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
    			zPedgInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(H) Logic
    void RemoveH(void)
    {		
    	if(DOES_CHAR_EXIST(zpedh)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
    		if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedh, bzPedh);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
    			zPedhInt = 0;
    		}
    	}
    }
    
    void main(void)
    {
    
    	while (TRUE)
    	{
    		WAIT(0);
    		PlayerSettings();
    		WarpToWar();
    		TextIntro();
    		TextReset();
    		PlayerDeathReset();
    		WarWave();
    		RemoveBoss();
    		RemoveA();
    		RemoveB();
    		RemoveC();
    		RemoveD();
    		RemoveE();
    		RemoveF();
    		RemoveG();
    		RemoveH();
    	}
    
    }
    Albanian Gang-War :



    Here's my script example :
    (v 1.0)

    Code:
    //Core
    #include <natives.h>
    #include <common.h>
    #include <strings.h>
    #include <types.h>
    #include <consts.h>
    
    //############### Define Ps3 GamePad ################################//
    #define SELECT  0xD
    #define START  0xC
    #define SQUARE  0xE
    #define TRIANGLE  0xF
    #define X  0x10
    #define CIRCLE  0x11
    #define DPAD_UP  0x8
    #define DPAD_DOWN  0x9
    #define DPAD_LEFT  0xA
    #define DPAD_RIGHT  0xB
    #define L2  0x5
    #define R2  0x7
    #define L1  0x4
    #define R1  0x6
    #define STICK_L  0x12
    #define STICK_R  0x13  
    //############### Define Ps3 GamePad ################################//
    
    // Enemy Group coordinates
    float EGx,EGy,EGz;
    
    // Enemy Peds handles
    Ped zped;
    Ped zpeda;
    Ped zpedb;
    Ped zpedc;
    Ped zpedd;
    Ped zpede;
    Ped zpedf;
    Ped zpedg;
    Ped zpedh;
    
    // Enemy Peds Blip handles
    Blip bzPed;
    Blip bzPeda;
    Blip bzPedb;
    Blip bzPedc;
    Blip bzPedd;
    Blip bzPede;
    Blip bzPedf;
    Blip bzPedg;
    Blip bzPedh;
    
    // Player Warped 
    boolean pWarpInt = 0;
    
    // Intro & Reset Text Displayed
    boolean iTextInt = 0;
    boolean rTextInt = 0;
    
    // Enemy Peds Spawned
    boolean zPedInt = 0;
    boolean zPedaInt = 0;
    boolean zPedbInt = 0;
    boolean zPedcInt = 0;
    boolean zPeddInt = 0;
    boolean zPedeInt = 0;
    boolean zPedfInt = 0;
    boolean zPedgInt = 0;
    boolean zPedhInt = 0;
    
    // War Waves Current stage
    boolean zWarInt = 15;
    
    // Display Text Shortcut
    void Print(char *string)
    {
    	PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
    }
    
    //Various Enemy peds Settings Shortcut
    void EnemySettings(uint ptype, uint pblip)
    {
    	SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
    	SET_CHAR_RELATIONSHIP(ptype, 5, 0);
    	SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
    	SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
    	SET_CHAR_AS_ENEMY(ptype, TRUE);
    	SET_CHAR_ACCURACY(ptype, 40);    
    	SET_SENSE_RANGE(ptype, 80.0);
    	SET_CHAR_KEEP_TASK(ptype, TRUE);
    	TASK_COMBAT(ptype, GetPlayerPed());
    	SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
    	SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
    	SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
    	SET_CHAR_WILL_USE_COVER(ptype, TRUE);
    	SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
    	SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
    	SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
    	SET_BLIP_AS_FRIENDLY(pblip, FALSE);	
    }
    
    // Remove Enemy Shortcut
    void ClearEnemy(uint ptype, uint pblip)
    {
    	EXPLODE_CHAR_HEAD(ptype);
    	TASK_DIE(ptype);
    	REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
    	REMOVE_BLIP(pblip);
    }
    
    
    // Set & Spawn Enemy Boss At Requested Coordinates 
    void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
    {
    	REQUEST_MODEL(modelBoss);
    	while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
        
    	CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
    	
    	ADD_ARMOUR_TO_CHAR(zped, 5000); 
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
    	UpdateWeaponOfPed(zped, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zped, &bzPed);
    	GIVE_PED_FAKE_NETWORK_NAME(zped, "ALB Boss", 255, 140, 0, 255); 
    	EnemySettings(zped, bzPed);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
    }
    
    // Set & Spawn Enemy(A) Near Boss
    void SpawnA(uint modelza, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelza);
    	while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpeda, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
    	GIVE_PED_FAKE_NETWORK_NAME(zpeda, "ALB", 255, 140, 0, 255); 
    	EnemySettings(zpeda, bzPeda);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
    }
    
    // Set & Spawn Enemy(B) Near Boss 
    void SpawnB(uint modelzb, uint weapon, float offset_y)
    {
    	REQUEST_MODEL(modelzb);
    	while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
    	
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedb, weapon);
    	SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
    	ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedb, "ALB", 255, 140, 0, 255); 
    	EnemySettings(zpedb, bzPedb);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
    }
    
    // Set & spawn Enemy(C) Near Boss 
    void SpawnC(uint modelzc, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzc);
    	while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedc, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedc, "ALB", 255, 140, 0, 255);
    	EnemySettings(zpedc, bzPedc);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
    }
    
    // Set & Spawn Enemy(D) Near Boss
    void SpawnD(uint modelzd, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzd);
    	while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedd, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedd, "ALB", 255, 140, 0, 255);
    	EnemySettings(zpedd, bzPedd);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
    }
    
    // Set & Spawn Enemy(E) Near Boss
    void SpawnE(uint modelze, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelze);
    	while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpede, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpede, &bzPede);
    	GIVE_PED_FAKE_NETWORK_NAME(zpede, "ALB", 255, 140, 0, 255);
    	EnemySettings(zpede, bzPede);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
    }
    
    // Set & Spawn Enemy(F) Near Boss
    void SpawnF(uint modelzf, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzf);
    	while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedf, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedf, "ALB", 255, 140, 0, 255);
    	EnemySettings(zpedf, bzPedf);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
    }
    
    // Set & Spawn Enemy(G) Near Boss
    void SpawnG(uint modelzg, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzg);
    	while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedg, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedg, "ALB", 255, 140, 0, 255);
    	EnemySettings(zpedg, bzPedg);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
    }
    
    // Set & Spawn enemy(H) Near Boss
    void SpawnH(uint modelzh, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzh);
    	while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedh, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedh, "ALB", 255, 140, 0, 255);
    	EnemySettings(zpedh, bzPedh);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
    }
    
    // Set Various Player/World Settings
    void PlayerSettings(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()))
    	{
    		SET_MAX_WANTED_LEVEL(0);
    		SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
    		SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
    		OVERRIDE_NEXT_RESTART(1319.3314, 1686.1885, 16.7973, 0.1349);  
    	}
    }
    
    // Teleport player near war zone	
    void WarpToWar(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
    	{
    	     while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_OUT(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
    
    		float x = 1319.3514, y = 1686.1885, z = 16.7973;  
    		
            SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
            LOAD_SCENE(x, y, z);
            WAIT(500);
    		SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
            SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
    		SET_CHAR_HEADING(GetPlayerPed(), 0.1349); 
    		SET_CAM_BEHIND_PED(GetPlayerPed());
    		while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_IN(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
    			pWarpInt = 1;
    			iTextInt = 1;
            }
    
    	}
    }
    
    // Display Intro Text Once PLayer Teleported
    void TextIntro(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
    	{
    		Print("GANG WAR");
    		WAIT(4000);
    		Print("Kill All Gang Members And Boss To Get Into Next Wave");
    		WAIT(2000);
    		zWarInt = 0;
    		iTextInt = 0;
    	}
    }
    
    // Display Gang War Reseted Text If Player Die
    void TextReset(void)
    {
    	if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
    	{
    		WAIT(3000);
    		Print("You Died Gang War Reseted");
    		WAIT(4000);
    		Print("Get Back Into War Zone");
    		zWarInt = 0;
    		rTextInt = 0;
    	
    	}
    }
    
    // Manage Death/Reset 
    void PlayerDeathReset(void)
    {
    	if(IS_CHAR_DEAD(GetPlayerPed()))
    	{
    		zWarInt = 15;
    		rTextInt = 1;
    	}
    }
    
    // Spawn Enemy Gang Shortcut
    void SpawnGang(void)
    {
    	SpawnA(MODEL_M_Y_GALB_LO_01, WEAPON_PISTOL, 1); 
    	zPedaInt = 1;
    	SpawnB(MODEL_M_Y_GALB_LO_02, WEAPON_SHOTGUN, 1); 
    	zPedbInt = 1;
    	SpawnC(MODEL_M_Y_GALB_LO_03, WEAPON_MICRO_UZI, 2); 
    	zPedcInt = 1;
    	SpawnD(MODEL_M_Y_GALB_LO_01, WEAPON_SHOTGUN, 2); 
    	zPeddInt = 1;
    	SpawnE(MODEL_M_Y_GALB_LO_02, WEAPON_PISTOL, -1); 
    	zPedeInt = 1;
    	SpawnF(MODEL_M_Y_GALB_LO_03, WEAPON_SHOTGUN, -1); 
    	zPedfInt = 1;
    	SpawnG(MODEL_M_Y_GALB_LO_01, WEAPON_MICRO_UZI, -2); 
    	zPedgInt = 1;
    	SpawnH(MODEL_M_Y_GALB_LO_02, WEAPON_SHOTGUN, -2); 
    	zPedhInt = 1;
    }
       
    // Enemy Boss Spawning Logic & War Waves & Texts Display
    void WarWave(void)
    {
    	if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
    	{
    		if(zWarInt == 0)
    		{
    			Print("Gang War 1st Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1287.5402, 1722.2091, 16.3997, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 1;
    			}
    		}
    		else if(zWarInt == 1)
    		{
    			Print("You Survived 1st Wave");
    			WAIT(4000);
    			Print("Gang War 2nd Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1345.1384, 1682.8303, 16.7339, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 2;
    			}
    		}
    		else if(zWarInt == 2)
    		{
    			Print("You Survived 2nd Wave");
    			WAIT(4000);		
    			Print("Gang War 3rd Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1333.4918, 1673.5127, 21.5093, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 3;
    			}
    		}
    		else if(zWarInt == 3)
    		{
    			Print("You Survived 3rd Wave");
    			WAIT(4000);		
    			Print("Gang War 4th Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1405.0347, 1732.4686, 17.0365, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 4;
    			}
    		}
    		else if(zWarInt == 4)
    		{
    			Print("You Survived 4th Wave");
    			WAIT(4000);		
    			Print("Gang War 5th Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1319.5614, 1687.0641, 16.8922, WEAPON_DEAGLE); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 5;
    			}
    		}
    		else if(zWarInt == 5)
    		{
    			Print("You Survived 5th Wave");
    			WAIT(4000);		
    			Print("Gang War 6th Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1337.8202, 1737.7586, 15.3060, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 6;
    			}
    		}
    		else if(zWarInt == 6)
    		{
    			Print("You Survived 6th Wave");
    			WAIT(4000);		
    			Print("Gang War 7th Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1315.7974, 1735.7902, 15.3485, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 7;
    			}
    		}
    		else if(zWarInt == 7)
    		{
    			Print("You Survived 7th Wave");
    			WAIT(4000);		
    			Print("Gang War 8th Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1315.5637, 1749.0973, 11.0581, WEAPON_MP5);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 8;
    			}
    		}
    		else if(zWarInt == 8)
    		{
    			Print("You Survived 8th Wave");
    			WAIT(4000);		
    			Print("Gang War 9th Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1323.3473, 1761.8531, 8.9770, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 9;
    			}
    		}
    		else if(zWarInt == 9)
    		{
    			Print("You Survived 9th Wave");
    			WAIT(4000);		
    			Print("Gang War 10th Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1322.0519, 1778.1355, 8.8304, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 10;
    			}
    		}
    		else if(zWarInt == 10)
    		{
    			Print("You Survived 10th Wave");
    			WAIT(4000);		
    			Print("Gang War 11th Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1344.1628, 1754.9323, 17.0608, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 11;
    			}
    		}
    		else if(zWarInt == 11)
    		{
    			Print("You Survived 11th Wave");
    			WAIT(4000);		
    			Print("Gang War 12th Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1314.6516, 1747.7993, 11.0581, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 12;
    			}
    		}
    		else if(zWarInt == 12)
    		{
    			Print("You Survived 12th Wave");
    			WAIT(4000);		
    			Print("Gang War Final Wave");
    			SpawnBoss(MODEL_M_Y_GALB_LO_04, 1316.7258, 1735.8513, 15.2958, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 13;
    			}
    		}
    		else if(zWarInt == 13) 
    		{
    			Print("You Survived The Final Wave");
    			WAIT(4000);
    			Print("The Gang War Is Over");
    			zWarInt = 14;
    		}
    		else if(zWarInt == 14) 
    		{
    			WAIT(4000);
    			CANCEL_OVERRIDE_RESTART();
    			TERMINATE_THIS_SCRIPT();
    		}
    	}
    }
    
    // Remove Enemy Boss Logic
    void RemoveBoss(void)
    {		
    	if (DOES_CHAR_EXIST(zped))
    	{
    		SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
    		if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zped, bzPed);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
    			zPedInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(A) Logic
    void RemoveA(void)
    {		
    	if(DOES_CHAR_EXIST(zpeda)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
    		if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpeda, bzPeda);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
    			zPedaInt = 0; 				
    		}
    	}
    }
    
    // Remove Enemy(B) Logic		
    void RemoveB(void)
    {		
    	if(DOES_CHAR_EXIST(zpedb)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
    		if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedb, bzPedb);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
    			zPedbInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(C) Logic
    void RemoveC(void)
    {		
    	if(DOES_CHAR_EXIST(zpedc)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
    		if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedc, bzPedc);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
    			zPedcInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(D) Logic
    void RemoveD(void)
    {		
    	if(DOES_CHAR_EXIST(zpedd)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
    		if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedd, bzPedd);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
    			zPeddInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(E) Logic
    void RemoveE(void)
    {		
    	if(DOES_CHAR_EXIST(zpede)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
    		if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpede, bzPede);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
    			zPedeInt = 0;
    		}
    	}
    }
    
    // Remove enemy(F) Logic		
    void RemoveF(void)
    {		
    	if(DOES_CHAR_EXIST(zpedf)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
    		if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedf, bzPedf);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
    			zPedfInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(G) Logic
    void RemoveG(void)
    {		
    	if(DOES_CHAR_EXIST(zpedg)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
    		if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedg, bzPedg);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
    			zPedgInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(H) Logic
    void RemoveH(void)
    {		
    	if(DOES_CHAR_EXIST(zpedh)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
    		if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedh, bzPedh);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
    			zPedhInt = 0;
    		}
    	}
    }
    
    void main(void)
    {
    
    	while (TRUE)
    	{
    		WAIT(0);
    		PlayerSettings();
    		WarpToWar();
    		TextIntro();
    		TextReset();
    		PlayerDeathReset();
    		WarWave();
    		RemoveBoss();
    		RemoveA();
    		RemoveB();
    		RemoveC();
    		RemoveD();
    		RemoveE();
    		RemoveF();
    		RemoveG();
    		RemoveH();
    	}
    
    }
    NOTES:
    - thoses scripts are meant to be use with modmanager.
    - activate only one war at time.


    Gang-wars info's :
    - thoses are survival gang-wars .
    - each war have a total of 13 waves and 9 gang members will spawn for each wave.
    - kill all of them for next wave to start. ( similar to GTA SA gang-wars )
    - if you die , war waves will be reseted.


    so , this will be the base of this ongoing project of mine ... i plan on making it better and i shall post more script examples featuring other gangs and war locations .

    again , i wont post any " ready-to-use " file , but my script examples are for anyone to use or modify .

    some credits goes to :

    - JDMAlex ( for some shortcut structure and ped spawning base source )
    - Three-Socks ( for his teleport structure , XYZ display and his amazing modmanager )

    ... enjoy the gang-war !!

    Ped Wars :

    this section will be for created wars using ped models that are not Official Gangs in the game ... basicly various ped models will be used to create a theme gang .
    i will also use thoses script examples to test or preview new features that may be added later in Gang-War .


    Sex Workers Ped-War :

    this war is a request from nativesith & tthousand , it also include a preview of ENEMY DRIVE-BY CAR feature ( in wave 1 of war ) that im still working on ...



    Here's my script example :
    (v 1.0)
    Code:
    //Core
    #include <natives.h>
    #include <common.h>
    #include <strings.h>
    #include <types.h>
    #include <consts.h>
    
    //############### Define Ps3 GamePad ################################//
    #define SELECT  0xD
    #define START  0xC
    #define SQUARE  0xE
    #define TRIANGLE  0xF
    #define X  0x10
    #define CIRCLE  0x11
    #define DPAD_UP  0x8
    #define DPAD_DOWN  0x9
    #define DPAD_LEFT  0xA
    #define DPAD_RIGHT  0xB
    #define L2  0x5
    #define R2  0x7
    #define L1  0x4
    #define R1  0x6
    #define STICK_L  0x12
    #define STICK_R  0x13  
    //############### Define Ps3 GamePad ################################//
    
    // Enemy Group coordinates
    float EGx, EGy, EGz;
    float DBx, DBy, DBz;
    
    // Enemy Peds handles
    Ped zped;
    Ped zpeda;
    Ped zpedb;
    Ped zpedc;
    Ped zpedd;
    Ped zpede;
    Ped zpedf;
    Ped zpedg;
    Ped zpedh;
    Ped zpedi;
    Ped zpedj;
    
    // Drive-By Vehicle handle
    Vehicle gcar;
    
    // Enemy Peds Blip handles
    Blip bzPed;
    Blip bzPeda;
    Blip bzPedb;
    Blip bzPedc;
    Blip bzPedd;
    Blip bzPede;
    Blip bzPedf;
    Blip bzPedg;
    Blip bzPedh;
    Blip bgcar;
    
    // Player Warped 
    boolean pWarpInt = 0;
    
    // Intro & Reset Text Displayed
    boolean iTextInt = 0;
    boolean rTextInt = 0;
    
    // Enemy Peds Spawned
    boolean zPedInt = 0;
    boolean zPedaInt = 0;
    boolean zPedbInt = 0;
    boolean zPedcInt = 0;
    boolean zPeddInt = 0;
    boolean zPedeInt = 0;
    boolean zPedfInt = 0;
    boolean zPedgInt = 0;
    boolean zPedhInt = 0;
    boolean zPediInt = 0;
    boolean zPedjInt = 0;
    
    // DriveBy Car Spawned
    boolean gcarInt = 0;
    
    // War Waves Current stage
    boolean zWarInt = 15;
    
    // Display Text Shortcut
    void Print(char *string)
    {
    	PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
    }
    
    //Various Enemy peds Settings Shortcut
    void EnemySettings(uint ptype, uint pblip)
    {
    	SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
    	SET_CHAR_RELATIONSHIP(ptype, 5, 0);
    	SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
    	SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
    	SET_CHAR_AS_ENEMY(ptype, TRUE);
    	SET_CHAR_ACCURACY(ptype, 40);    
    	SET_SENSE_RANGE(ptype, 80.0);
    	SET_CHAR_KEEP_TASK(ptype, TRUE);
    	TASK_COMBAT(ptype, GetPlayerPed());
    	SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
    	SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
    	SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
    	SET_CHAR_WILL_USE_COVER(ptype, TRUE);
    	SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
    	SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
    	SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
    	SET_BLIP_AS_FRIENDLY(pblip, FALSE);	
    }
    
    // DriveBy Enemy Settings
    void DriveBySettings(uint ptype)
    {
    	SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
    	SET_CHAR_RELATIONSHIP(ptype, 5, 0);
    	SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
    	SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
    	SET_CHAR_AS_ENEMY(ptype, TRUE);
    	SET_CHAR_ACCURACY(ptype, 40);    
    	SET_SENSE_RANGE(ptype, 150.0);
    	SET_CHAR_KEEP_TASK(ptype, TRUE);
    	TASK_COMBAT(ptype, GetPlayerPed());
    	SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
    	SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
    	SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
    	SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
    	SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
    	}
    	
    
    // Remove Enemy Shortcut
    void ClearEnemy(uint ptype, uint pblip)
    {
    	EXPLODE_CHAR_HEAD(ptype);
    	TASK_DIE(ptype);
    	REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
    	REMOVE_BLIP(pblip);
    }
    
    
    // Set & Spawn Enemy Boss At Requested Coordinates 
    void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
    {
    	REQUEST_MODEL(modelBoss);
    	while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
        
    	CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
    	
    	ADD_ARMOUR_TO_CHAR(zped, 5000); 
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
    	UpdateWeaponOfPed(zped, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zped, &bzPed);
    	GIVE_PED_FAKE_NETWORK_NAME(zped, "Pimp Boss", 134, 68, 110, 255); 
    	EnemySettings(zped, bzPed);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
    }
    
    // Set & Spawn Enemy(A) Near Boss
    void SpawnA(uint modelza, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelza);
    	while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpeda, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
    	GIVE_PED_FAKE_NETWORK_NAME(zpeda, "XXX", 134, 68, 110, 255); 
    	EnemySettings(zpeda, bzPeda);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
    }
    
    // Set & Spawn Enemy(B) Near Boss 
    void SpawnB(uint modelzb, uint weapon, float offset_y)
    {
    	REQUEST_MODEL(modelzb);
    	while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
    	
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedb, weapon);
    	SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
    	ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedb, "XXX", 134, 68, 110, 255); 
    	EnemySettings(zpedb, bzPedb);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
    }
    
    // Set & spawn Enemy(C) Near Boss 
    void SpawnC(uint modelzc, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzc);
    	while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedc, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedc, "XXX", 134, 68, 110, 255);
    	EnemySettings(zpedc, bzPedc);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
    }
    
    // Set & Spawn Enemy(D) Near Boss
    void SpawnD(uint modelzd, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzd);
    	while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
    	UpdateWeaponOfPed(zpedd, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedd, "XXX", 134, 68, 110, 255);
    	EnemySettings(zpedd, bzPedd);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
    }
    
    // Set & Spawn Enemy(E) Near Boss
    void SpawnE(uint modelze, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelze);
    	while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpede, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpede, &bzPede);
    	GIVE_PED_FAKE_NETWORK_NAME(zpede, "XXX", 134, 68, 110, 255);
    	EnemySettings(zpede, bzPede);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
    }
    
    // Set & Spawn Enemy(F) Near Boss
    void SpawnF(uint modelzf, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzf);
    	while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedf, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedf, "XXX", 134, 68, 110, 255);
    	EnemySettings(zpedf, bzPedf);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
    }
    
    // Set & Spawn Enemy(G) Near Boss
    void SpawnG(uint modelzg, uint weapon ,float offset_x)
    {
    	REQUEST_MODEL(modelzg);
    	while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x,  0, 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedg, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedg, "XXX", 134, 68, 110, 255);
    	EnemySettings(zpedg, bzPedg);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
    }
    
    // Set & Spawn enemy(H) Near Boss
    void SpawnH(uint modelzh, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzh);
    	while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
    
    	GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz); 
    	CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
    	UpdateWeaponOfPed(zpedh, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE); 
    	ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
    	GIVE_PED_FAKE_NETWORK_NAME(zpedh, "XXX", 134, 68, 110, 255);
    	EnemySettings(zpedh, bzPedh);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
    }
    
    // Set & Spawn enemy(I) Near DriveBy Car
    void SpawnI(uint modelzi, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzi);
    	while (!HAS_MODEL_LOADED(modelzi)) WAIT(0);
    
    	GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(gcar, 0, offset_y , 0, &DBx, &DBy, &DBz); 
    	CREATE_CHAR(16, modelzi, DBx,DBy,DBz, &zpedi, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedi, EGx, EGy, EGz, 150.0);
    	UpdateWeaponOfPed(zpedi, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE); 
    	GIVE_PED_FAKE_NETWORK_NAME(zpedi, "XXX", 134, 68, 110, 255);
    	DriveBySettings(zpedi);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
    }
    
    // Set & Spawn enemy(J) Near DriveBy Car
    void SpawnJ(uint modelzj, uint weapon ,float offset_y)
    {
    	REQUEST_MODEL(modelzj);
    	while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
    
    	GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(gcar, 0, offset_y , 0, &DBx, &DBy, &DBz); 
    	CREATE_CHAR(16, modelzj, DBx,DBy,DBz, &zpedj, true);
    	
    	SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
    	UpdateWeaponOfPed(zpedj, weapon); 
    	SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE); 
    	GIVE_PED_FAKE_NETWORK_NAME(zpedj, "XXX", 134, 68, 110, 255);
    	DriveBySettings(zpedj);	
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelzj);
    }
    
    // Spawn Drive-By Vehicle
    void SpawnDriveByVehicle(uint modelgcar, float Vx, float Vy, float Vz)
    {
    	REQUEST_MODEL(modelgcar);
    	while (!HAS_MODEL_LOADED(modelgcar)) WAIT(0); 
    
    	CREATE_CAR(modelgcar, Vx, Vy, Vz, &gcar, true);
    	ADD_BLIP_FOR_CAR(gcar, &bgcar);
    	SET_BLIP_AS_FRIENDLY(bgcar, FALSE);
    	MARK_MODEL_AS_NO_LONGER_NEEDED(modelgcar);
    	return gcar;
    }
    
    // Set Various Player/World Settings
    void PlayerSettings(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()))
    	{
    		SET_MAX_WANTED_LEVEL(0);
    		SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
    		SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
    		OVERRIDE_NEXT_RESTART(1216.2084, 1655.5798, 16.6523, 49.2072);  
    	}
    }
    
    // Teleport player near war zone	
    void WarpToWar(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
    	{
    	     while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_OUT(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
    
    		float x = 1216.2084, y = 1655.5798, z = 16.6523;  
    		
            SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
            LOAD_SCENE(x, y, z);
            WAIT(500);
    		SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
            SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
    		SET_CHAR_HEADING(GetPlayerPed(), 49.2072);
    		SET_CAM_BEHIND_PED(GetPlayerPed());
    		while (IS_SCREEN_FADING())
            {
    			WAIT(0);
            }
            DO_SCREEN_FADE_IN(500);
            while (IS_SCREEN_FADING())
            {
    			WAIT(0);
    			pWarpInt = 1;
    			iTextInt = 1;
            }
    
    	}
    }
    
    // Display Intro Text Once PLayer Teleported
    void TextIntro(void)
    {
    	if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
    	{
    		Print("GANG WAR");
    		WAIT(4000);
    		Print("Kill All Gang Members And Boss To Get Into Next Wave");
    		WAIT(2000);
    		zWarInt = 0;
    		iTextInt = 0;
    	}
    }
    
    // Display Gang War Reseted Text If Player Die
    void TextReset(void)
    {
    	if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
    	{
    		WAIT(3000);
    		Print("You Died Gang War Reseted");
    		WAIT(4000);
    		Print("Get Back Into War Zone");
    		zWarInt = 0;
    		rTextInt = 0;
    	
    	}
    }
    
    // Manage Death/Reset 
    void PlayerDeathReset(void)
    {
    	if(IS_CHAR_DEAD(GetPlayerPed()))
    	{
    		zWarInt = 15;
    		rTextInt = 1;
    	}
    }
    
    // Spawn Enemy Gang Shortcut
    void SpawnGang(void)
    {
    	SpawnA(MODEL_F_Y_HOOKER_01, WEAPON_PISTOL, 1); 
    	zPedaInt = 1;
    	SpawnB(MODEL_F_Y_HOOKER_03, WEAPON_SHOTGUN, 1); 
    	zPedbInt = 1;
    	SpawnC(MODEL_F_Y_STRIPPERC01, WEAPON_MICRO_UZI, 2); 
    	zPedcInt = 1;
    	SpawnD(MODEL_F_Y_STRIPPERC02, WEAPON_SHOTGUN, 2); 
    	zPeddInt = 1;
    	SpawnE(MODEL_F_Y_HOOKER_01, WEAPON_PISTOL, -1); 
    	zPedeInt = 1;
    	SpawnF(MODEL_F_Y_HOOKER_03, WEAPON_SHOTGUN, -1); 
    	zPedfInt = 1;
    	SpawnG(MODEL_F_Y_STRIPPERC01, WEAPON_MICRO_UZI, -2); 
    	zPedgInt = 1;
    	SpawnH(MODEL_F_Y_STRIPPERC02, WEAPON_SHOTGUN, -2); 
    	zPedhInt = 1;
    }
    
    void SpawnDriveByGang(void)
    {
    	SpawnI(MODEL_F_Y_STRIPPERC01, WEAPON_MICRO_UZI, -3); 
    	zPediInt = 1;
    	SpawnJ(MODEL_F_Y_HOOKER_01, WEAPON_PISTOL, 3); 
    	zPedjInt = 1;
    }
     
    // Enemy Boss Spawning Logic & War Waves & Texts Display
    void WarWave(void)
    {
    	if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0 && zPediInt == 0 && zPedjInt == 0)
    	{
    		if(zWarInt == 0)
    		{
    			Print("Gang War 1st Wave");
    			SpawnBoss(MODEL_M_Y_SHADY_02, 1191.2720, 1719.3501, 16.6661, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				SpawnDriveByVehicle(MODEL_VOODOO, 1164.0028, 1656.9203, 16.6896);
    				zPedInt = 1;
    				zWarInt = 1;
    				gcarInt = 1;
    				if(DOES_VEHICLE_EXIST(gcar))
    				{
    					SpawnDriveByGang();
    					WAIT(1000);
    					WARP_CHAR_INTO_CAR(zpedi, gcar);
    					WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedj, gcar, 0);
    				}
    			}
    		}
    		else if(zWarInt == 1)
    		{
    			Print("You Survived 1st Wave");
    			WAIT(4000);
    			Print("Gang War 2nd Wave");
    			SpawnBoss(MODEL_M_Y_RUNNER, 1234.8771, 1732.5248, 10.5925, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 2;
    				if(DOES_VEHICLE_EXIST(gcar))
    				{
    					gcarInt = 2;
    				}
    			}
    		}
    		else if(zWarInt == 2)
    		{
    			Print("You Survived 2nd Wave");
    			WAIT(4000);		
    			Print("Gang War 3rd Wave");
    			SpawnBoss(MODEL_M_Y_SHADY_02, 1176.8352, 1709.3694, 16.6644, WEAPON_MICRO_UZI); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 3;
    			}
    		}
    		else if(zWarInt == 3)
    		{
    			Print("You Survived 3rd Wave");
    			WAIT(4000);		
    			Print("Gang War 4th Wave");
    			SpawnBoss(MODEL_M_Y_RUNNER, 1243.3951, 1692.8568, 21.1842, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 4;
    			}
    		}
    		else if(zWarInt == 4)
    		{
    			Print("You Survived 4th Wave");
    			WAIT(4000);		
    			Print("Gang War 5th Wave");
    			SpawnBoss(MODEL_M_Y_SHADY_02, 1195.5837, 1701.2125, 24.7544, WEAPON_DEAGLE); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 5;
    			}
    		}
    		else if(zWarInt == 5)
    		{
    			Print("You Survived 5th Wave");
    			WAIT(4000);		
    			Print("Gang War 6th Wave");
    			SpawnBoss(MODEL_M_Y_RUNNER, 1159.5916, 1659.1923, 16.7126, WEAPON_DEAGLE);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 6;
    			}
    		}
    		else if(zWarInt == 6)
    		{
    			Print("You Survived 6th Wave");
    			WAIT(4000);		
    			Print("Gang War 7th Wave");
    			SpawnBoss(MODEL_M_Y_SHADY_02, 1146.6758, 1680.3854, 16.7186, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 7;
    			}
    		}
    		else if(zWarInt == 7)
    		{
    			Print("You Survived 7th Wave");
    			WAIT(4000);		
    			Print("Gang War 8th Wave");
    			SpawnBoss(MODEL_M_Y_RUNNER, 1206.7998, 1706.5809, 16.6663, WEAPON_MP5);  
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 8;
    			}
    		}
    		else if(zWarInt == 8)
    		{
    			Print("You Survived 8th Wave");
    			WAIT(4000);		
    			Print("Gang War 9th Wave");
    			SpawnBoss(MODEL_M_Y_SHADY_02, 1137.3760, 1693.1223, 10.4193, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 9;
    			}
    		}
    		else if(zWarInt == 9)
    		{
    			Print("You Survived 9th Wave");
    			WAIT(4000);		
    			Print("Gang War 10th Wave");
    			SpawnBoss(MODEL_M_Y_RUNNER, 1192.1111, 1715.4387, 16.6658, WEAPON_MP5); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 10;
    			}
    		}
    		else if(zWarInt == 10)
    		{
    			Print("You Survived 10th Wave");
    			WAIT(4000);		
    			Print("Gang War 11th Wave");
    			SpawnBoss(MODEL_M_Y_SHADY_02, 1195.3711, 1680.9868, 16.7241, WEAPON_AK47); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 11;
    			}
    		}
    		else if(zWarInt == 11)
    		{
    			Print("You Survived 11th Wave");
    			WAIT(4000);		
    			Print("Gang War 12th Wave");
    			SpawnBoss(MODEL_M_Y_RUNNER, 1195.8854, 1644.5896, 16.6734, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 12;
    			}
    		}
    		else if(zWarInt == 12)
    		{
    			Print("You Survived 12th Wave");
    			WAIT(4000);		
    			Print("Gang War Final Wave");
    			SpawnBoss(MODEL_M_Y_SHADY_02, 1149.7596, 1615.2897, 16.5732, WEAPON_M4); 
    			if(DOES_CHAR_EXIST(zped))
    			{
    				SpawnGang();
    				zPedInt = 1;
    				zWarInt = 13;
    			}
    		}
    		else if(zWarInt == 13) 
    		{
    			Print("You Survived The Final Wave");
    			WAIT(4000);
    			Print("The Gang War Is Over");
    			zWarInt = 14;
    		}
    		else if(zWarInt == 14) 
    		{
    			WAIT(4000);
    			CANCEL_OVERRIDE_RESTART();
    			TERMINATE_THIS_SCRIPT();
    		}
    	}
    }
    
    // Remove Enemy Boss Logic
    void RemoveBoss(void)
    {		
    	if (DOES_CHAR_EXIST(zped))
    	{
    		SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
    		if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zped, bzPed);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
    			zPedInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(A) Logic
    void RemoveA(void)
    {		
    	if(DOES_CHAR_EXIST(zpeda)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
    		if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpeda, bzPeda);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
    			zPedaInt = 0; 				
    		}
    	}
    }
    
    // Remove Enemy(B) Logic		
    void RemoveB(void)
    {		
    	if(DOES_CHAR_EXIST(zpedb)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
    		if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedb, bzPedb);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
    			zPedbInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(C) Logic
    void RemoveC(void)
    {		
    	if(DOES_CHAR_EXIST(zpedc)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
    		if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedc, bzPedc);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
    			zPedcInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(D) Logic
    void RemoveD(void)
    {		
    	if(DOES_CHAR_EXIST(zpedd)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
    		if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedd, bzPedd);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
    			zPeddInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(E) Logic
    void RemoveE(void)
    {		
    	if(DOES_CHAR_EXIST(zpede)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
    		if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpede, bzPede);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
    			zPedeInt = 0;
    		}
    	}
    }
    
    // Remove enemy(F) Logic		
    void RemoveF(void)
    {		
    	if(DOES_CHAR_EXIST(zpedf)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
    		if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedf, bzPedf);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
    			zPedfInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(G) Logic
    void RemoveG(void)
    {		
    	if(DOES_CHAR_EXIST(zpedg)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
    		if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedg, bzPedg);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
    			zPedgInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(H) Logic
    void RemoveH(void)
    {		
    	if(DOES_CHAR_EXIST(zpedh)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
    		if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			ClearEnemy(zpedh, bzPedh);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
    			zPedhInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(I) Logic
    void RemoveI(void)
    {		
    	if(DOES_CHAR_EXIST(zpedi)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedi, FALSE);
    		if(IS_CHAR_DEAD(zpedi) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			EXPLODE_CHAR_HEAD(zpedi);
    			TASK_DIE(zpedi);
    			REMOVE_FAKE_NETWORK_NAME_FROM_PED(zpedi);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedi);
    			zPediInt = 0;
    		}
    	}
    }
    
    // Remove Enemy(J) Logic
    void RemoveJ(void)
    {		
    	if(DOES_CHAR_EXIST(zpedj)) 
    	{
    		SET_CHAR_WANTED_BY_POLICE(zpedj, FALSE);
    		if(IS_CHAR_DEAD(zpedj) || IS_CHAR_DEAD(GetPlayerPed()))
    		{
    			EXPLODE_CHAR_HEAD(zpedj);
    			TASK_DIE(zpedj);
    			REMOVE_FAKE_NETWORK_NAME_FROM_PED(zpedj);
    			MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedj);
    			zPedjInt = 0;
    		}
    	}
    }
    
    // Explode & Remove Enemy Car After Wave
    void RemoveCar(void)
    {		
    	if(DOES_VEHICLE_EXIST(gcar))
    	{
    		if(IS_CAR_DEAD(gcar) || IS_CHAR_DEAD(GetPlayerPed()) || gcarInt == 2)
    		{
    			EXPLODE_CAR(gcar, 1, 0);
    			REMOVE_BLIP(bgcar);
    			MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
    			gcarInt = 0;
    		}
    	}
    }
    
    void main(void)
    {
    
    	while (TRUE)
    	{
    		WAIT(0);
    		PlayerSettings();
    		WarpToWar();
    		TextIntro();
    		TextReset();
    		PlayerDeathReset();
    		WarWave();
    		RemoveBoss();
    		RemoveA();
    		RemoveB();
    		RemoveC();
    		RemoveD();
    		RemoveE();
    		RemoveF();
    		RemoveG();
    		RemoveH();
    		RemoveI();
    		RemoveJ();
    		RemoveCar();
    	}
    
    }

    LIKE/VOTE for this Entry in this month's Contest!
    This article was originally published in forum thread: GANG-WAR minigame ( script examples ) started by HuN View original post
    Comments 25 Comments
    1. nativesith's Avatar
      nativesith -
      There is soo much GTA ISH goin on lately , and this is one of the greats.
      Hun's Gang Wars!
    1. tthousand's Avatar
      tthousand -
      Gang-Wars is looking great HuN. Thanks for the great invention!
    1. HuN's Avatar
      HuN -
      thanks ...

      more wars coming soon .
    1. nativesith's Avatar
      nativesith -
      1st release is pretty fun with the Bosses that can take a lickin' but keep on tickin' lol!
      Rpg fun OMG!
    1. tthousand's Avatar
      tthousand -
      Afro-American & Irish Gang-Wars have been added!
    1. nativesith's Avatar
      nativesith -
      That is cool, can we have a stripper gang?
      Now that is a gang war I would love to see.
    1. tthousand's Avatar
      tthousand -
      Quote Originally Posted by nativesith View Post
      That is cool, can we have a stripper gang?
      Now that is a gang war I would love to see.
      I second this idea
    1. HuN's Avatar
      HuN -
      IT SHALL BE DONE !!!! the location will be bohan strip-club parking lot ...

      shall i add hookers to the gang ?
      should a pimp be the war boss ?

      i will do it this weekend ... i cant resist a request from nativesith & tthousand.
    1. josephrosello's Avatar
      josephrosello -
      how do i play this mod?????
    1. nativesith's Avatar
      nativesith -
      Dude ya totally read my mind on hookers,pimps and the local. Sounds awesome son! Can not wait for it.
    1. josephrosello's Avatar
      josephrosello -
      SOMEONE CAN TELL ME A TUTORIAL HOW TO PLAY THIS GAME??? GANG_WAR??
    1. BahumatLord's Avatar
      BahumatLord -
      Quote Originally Posted by josephrosello View Post
      SOMEONE CAN TELL ME A TUTORIAL HOW TO PLAY THIS GAME??? GANG_WAR??
      INSTALL THE MOD MANAGER THEN ADD THE SCRIPTS!! LINKS TO THE MOD MANAGER ARE UP TOP!!
    1. HuN's Avatar
      HuN -
      more wars added ...

      - added " Albanian Gang War "
      - added " Sex Workers Ped war "

      in ped war , dont miss a preview of future add-on to the gang-wars , ENEMY DRIVE-BY CAR ! in wave 1 .
    1. josephrosello's Avatar
      josephrosello -
      Quote Originally Posted by BahumatLord View Post
      INSTALL THE MOD MANAGER THEN ADD THE SCRIPTS!! LINKS TO THE MOD MANAGER ARE UP TOP!!
      i already did it, i install the mod manager, but i dont see no downloads for any scripts!!!!only scripts examples??????HOW I INSTALL A SCRIPTS EXAMPLE TO MY MOD MANAGER??????
    1. HuN's Avatar
      HuN -
      Quote Originally Posted by josephrosello View Post
      i already did it, i install the mod manager, but i dont see no downloads for any scripts!!!!only scripts examples??????HOW I INSTALL A SCRIPTS EXAMPLE TO MY MOD MANAGER??????
      you need to create the files yourself ... here's the links you need :

      http://psx-scene.com/forums/f276/%5B...v1-2-a-101890/

      http://psx-scene.com/forums/f276/%5B...cripts-102230/
    1. nativesith's Avatar
      nativesith -
      Love the update, the strip bar seems to be a really good setting. My fav of all yo WarZ!
    1. josephrosello's Avatar
      josephrosello -
      WOW THIS IS NOT EAZY!!!!CAN SOMEONE POST THE SCRIPTS ALLREADY CREATED???? PLEACE SOMEONE POST THE FINAL SCRIPTS!!!!OR ANY EAZYER TUTORIAL????I REALLY WANT TO PLAY THIS MOD!!!
    1. josephrosello's Avatar
      josephrosello -
      PLEASE I NEED HELP!!!THIS IS NOT EAZY !!!CAN SOMEONE JUST POST THE SCRIPTS ALREADY CREATED????I REALLY WANT TO PLAY THIS MOD!!! BUT I CANT NOT CREATE THE FILES MYSELF!!!IS TO HARD FOR ME!!!PLEASE HELP!!!!!
    1. HuN's Avatar
      HuN -
      Quote Originally Posted by nativesith View Post
      Love the update, the strip bar seems to be a really good setting. My fav of all yo WarZ!
      i just edited this script , with improved GANG DRIVE-BY CAR !! , give it a try ... trying to evade the car is fun as hell ! i shall update all scripts examples this weekend .

      also iv used the mighty power of the holy rainbow to give all gangs individual colors ( blips & fake network name )
    1. josephrosello's Avatar
      josephrosello -
      Quote Originally Posted by josephrosello View Post
      PLEASE I NEED HELP!!!THIS IS NOT EAZY !!!CAN SOMEONE JUST POST THE SCRIPTS ALREADY CREATED????I REALLY WANT TO PLAY THIS MOD!!! BUT I CANT NOT CREATE THE FILES MYSELF!!!IS TO HARD FOR ME!!!PLEASE HELP!!!!!
      PLEASE SOMEONE!!!!!!