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

    rpgamer

    Gamer for life

    Thread Starter: rpgamer

    Hi everyone,
    My name is John I am a recently disabled man of 50. But this does not get me down, because I love games of all kinds. And I think

    Last Post By: rpgamer Today, 01:26 AM Go to last post
    archicharmer

    Mounting HDD and Console ID obtaining

    Thread Starter: archicharmer

    I'm calling to man, who was in time to install this!

    Please, look at this. I want someone to mount HDD. And then we possible can obtain

    Last Post By: archicharmer Yesterday, 10:37 PM Go to last post
    jadenx2

    WTB: PS3 (slim pref.) w/ at least 200gb~ on 3.55 or higher CFW

    Thread Starter: jadenx2

    hello everyone,

    i'm looking to buy a PS3 (preferably a slim) w/ at least 200gb (the more the better) on 3.55 CFW or higher (preferably the

    Last Post By: pinkfloydviste Yesterday, 11:18 PM Go to last post
    rebelbda

    Socom lobby freezing

    Thread Starter: rebelbda

    Yea I know the game is old and all.. But come on its getting silly now... Whoever has the files should just post em so that way no one can play or knock

    Last Post By: rebelbda Yesterday, 08:51 PM Go to last post
    Jflanden

    Few Questions.

    Thread Starter: Jflanden

    Can I share a FAT32 external hard drive with back-up games with my PS3 Xbox and Wii without it messing up anything or should my hard drive be dedicated

    Last Post By: mschumacher69 Today, 01:33 AM Go to last post
    Abed212

    Install dlc pack and ftp server please help

    Thread Starter: Abed212

    I hope someone can help me !!
    I heave a ps3 with rogero 4.40 and i want to instal map pack to tom raider 2013 but i dont know how and should i

    Last Post By: Abed212 Yesterday, 08:32 PM Go to last post
  • Recent Comments

    Staylecrate

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

    No one said anything remotely close to that "Mister Super Saiyan Goku". You took you rant from one... Go to last post

    Staylecrate Today 12:40 AM
    Staylecrate

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

    I was really expecting the xbox to pull something out of it's a** and kick $ony out of the water... Go to last post

    Staylecrate Today 12:26 AM
    fromzero

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

    You must be smoking crack. 360 had this gen over ps3 big time. Last gen ps2 had more sales but ps2... Go to last post

    fromzero Today 12:07 AM
    _zaphod_

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

    the xbox360 used game transfer rule is pretty much "no givebacks." it's intended to stop you from... Go to last post

    _zaphod_ Today 12:07 AM
    Staylecrate

    Bruteforce Edat 1.2.1 Released By Aldo

    Great Prog!
    I really want to thank you for releasing that multiMAN Last Game App. I was working on... Go to last post

    Staylecrate Today 12:05 AM
    COOLak

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

    Don't say things you don't know, please.
    Blu-ray Disc - Wikipedia, the free encyclopedia - there... Go to last post

    COOLak Yesterday 11:37 PM
    Ziken

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

    "Xbox One surprisingly will force users to connect to the internet at least once every 24 hours,... Go to last post

    Ziken Yesterday 09:24 PM
    alzaabi

    Cobra ODE Hardware To Be Released Soon

    my question is ... How to play games from the internal HDD ?
    from the game manager or Cobra Ode... Go to last post

    alzaabi Yesterday 07:43 PM
    Princescyther

    TUTORIAL: How to resign trophies to new profile(

    My console was banned but not my account. Is there anyway to get the trophies off of that account... Go to last post

    Princescyther Yesterday 06:46 PM
    free47

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

    im in rogero 4 41. Control fan init, but when i exit the software with triangle ps3 crash and when... Go to last post

    free47 Yesterday 05:55 PM