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!!!!!!
  • Daily Digest


    Want to receive the latest PSX info in your email?

    Sign up for our Daily Digest!



    Want to learn more about the team keeping you up to date with the latest scene news?

    Read about them now!

    Check out our Developer bios, too!

  • Recent Threads

    Jflanden

    Compatible Hard Drive

    Thread Starter: Jflanden

    As long as a Hard Drive can format to FAT32, it would be compatible correct?

    I am looking to buy Canvio 3TB External Desk Top but am scared

    Last Post By: Jflanden Today, 03:55 AM Go to last post
    qwillis

    4.45 OFW

    Thread Starter: qwillis

    Just a heads up to anyone who see this, 4.45 OFW was just released and there are a bunch of reports of consoles getting bricked.
    So even if you're

    Last Post By: vronz Today, 03:23 AM Go to last post
    archicharmer

    Game Save Console ID dependence

    Thread Starter: archicharmer

    Next i want to try is Game Save Console ID in whatever dependence. Here i am guessing to a long-numbered Console ID.

    I need that someone

    Last Post By: archicharmer Yesterday, 10:27 PM Go to last post
    Munkee915

    Missing HDD space

    Thread Starter: Munkee915

    I have a PS3 slim w/ a 640gb HDD installed and Rogero 4.41 cfw. I have recently started hitting the limit on HDD space. The XMB shows I have 65gb/596gb

    Last Post By: BahumatLord Yesterday, 10:23 PM Go to last post
    Blyze

    Best uLaunch Version to Use

    Thread Starter: Blyze

    Just wondering which version of uLaunch should I use to install Free McBoot? I've already used the version in the Noobie Package, but all I get is a black

    Last Post By: Blyze Yesterday, 02:30 PM Go to last post
    ConorrChapple

    Anyone wanna play The Last Of Us online?

    Thread Starter: ConorrChapple

    If so add: ConorChapplee

    Last Post By: ConorrChapple Yesterday, 01:33 PM Go to last post
  • Recent Comments

    Tranced

    PS3 Official Firmware 4.45 Released Then Pulled - Reports Suggest A Brick Fest!

    ...improved system stability are on the way and a big fat brick :lol:

    Jokes aside though, I hope... Go to last post

    Tranced Today 05:14 AM
    kouchan

    Fan Control Utility v1.7 Relased CFW 4.41 Supported!!

    Hello!
    Rogero CEX4.41 v1.00
    multiMAN ver 04.40.00 BASE (20130602)

    PS3 will kill it and press... Go to last post

    kouchan Today 04:49 AM
    Shrek

    PS3 Official Firmware 4.45 Released Then Pulled - Reports Suggest A Brick Fest!

    gotta love sony, the fools that keep on giving. Go to last post

    Shrek Today 04:48 AM
    Staylecrate

    PS3 Official Firmware 4.45 Released Then Pulled - Reports Suggest A Brick Fest!

    Just think of all the poor kids having to leave their homes and wander the streets looking for... Go to last post

    Staylecrate Today 04:37 AM
    Staylecrate

    PlayStation 4 vs Xbox One (E3) - Who won? You decide

    I see where you are coming from on that, but it's getting harder and harder to crack some of the... Go to last post

    Staylecrate Today 04:17 AM
    y0urh34d

    PS3 Official Firmware 4.45 Released Then Pulled - Reports Suggest A Brick Fest!

    Yet people say only cfw bricks consoles. **** cfw is better tested than ofw. Also just imagine if... Go to last post

    y0urh34d Today 04:10 AM
    semicresco

    PUAD GUI v1.5 by Nathan_r32_69 - PUP Unpacker & Decryter

    Nathan_r32_69 hey i need to talk with you but i cant send you a pm ;) idk why.. Go to last post

    semicresco Today 02:53 AM
    seifer69er

    MHP3rd HD (PSP Remaster) English Translation Patch Released by Team Maverick One

    Great work :D,

    Been smashing MH3U instead ;) Go to last post

    seifer69er Today 01:58 AM
    amp2006

    Rogero CEX-4.41 v1.00 Released

    here is all you need to know about Cinavia Patch .
    Cinavia: What Is It And Why You Should Care Go to last post

    amp2006 Today 01:20 AM
    opium2k

    Cobra ODE Hardware To Be Released Soon

    To the people responding to my comment about how ugly it is:
    1. Nowhere did I state that... Go to last post

    opium2k Today 01:13 AM