Changelog:
1.1 ( gang-wars) - fixed " boss heath " 1.2 ( gang-wars) - added " cancel override restart - added " set char heading " 1.3 ( gang-wars ) - added " set cam behind ped " - added " set police ignore player" - fixed " RUSSIAN MOB WAR " script , ( wave 11th spawns ) * 1.1 ( ped-wars ) - added " task car mission ped target " - added " set car heading " 2.0 ( gang-wars) - gangs now have individual colors ( blips & fake network name ) - new feature : Gangs Driveby Cars & Bikes - new feature :Gang Roof Snipers - new feature : Quit Gang-war button press activator ( hold DPAD UP and press TRIANGLE ) note: 2.0 is still not perfect , i already noticed a few bugs that will need to be fixed ... and i plan more things to improve it , so this is not final version yet . * tested in ped-wars , would have been version 1.4 ... but i made v 2.0 instead . ....
i made a gang-war survival minigame ... ( sorry for the bad video quallity , my capture card is quite old )
Latest Gang-War Video :
GANG-WARS Example Scripts:
Click to View!
Angels of Death Gang-War :
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_CYAN);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
}
// 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", 74, 148, 160, 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", 74, 148, 160, 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", 74, 148, 160, 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", 74, 148, 160, 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", 74, 148, 160, 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", 74, 148, 160, 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", 74, 148, 160, 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", 74, 148, 160, 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", 74, 148, 160, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "AoD", 74, 148, 160, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "AoD", 74, 148, 160, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_CYAN);
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(824.9642, 951.3129, 1.4325, 255.7890);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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_DEAGLE, 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_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GBIK_HI_01, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_M_GBIK_LO_03, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GBIK_HI_02, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_M_GBIK_LO_03, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
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();
SpawnDriveByVehicle(MODEL_HELLFURY, 942.7654, 1008.7793, 11.0296);
SET_CAR_HEADING(gcar, 101.1750);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GBIK02_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
zPediInt = 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;
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_GBIK02_LO_02, 892.3710, 942.8923, 8.7248, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GBIK02_LO_02, 932.0607, 935.9136, 21.0972, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 82.0825);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_HELLFURY, 942.7654, 1008.7793, 11.0296);
SET_CAR_HEADING(gcar, 101.1750);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GBIK02_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_Y_GBIK02_LO_02, 969.7331, 978.6177, 21.3347, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 74.1058);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_HELLFURY, 942.7654, 1008.7793, 11.0296);
SET_CAR_HEADING(gcar, 101.1750);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GBIK02_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_Y_GBIK02_LO_02, 926.6002, 950.7131, 19.4465, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 159.4782);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
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();
SpawnJ(MODEL_M_Y_GBIK02_LO_02, 931.3279, 946.9364, 22.5305, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 101.6459);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
Jamaican Gang-War :
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_DARK_GREEN);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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", 64, 94, 75, 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", 64, 94, 75, 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", 64, 94, 75, 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", 64, 94, 75, 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", 64, 94, 75, 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", 64, 94, 75, 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", 64, 94, 75, 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", 64, 94, 75, 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", 64, 94, 75, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "JAM", 64, 94, 75, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "JAM", 64, 94, 75, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_DARK_GREEN);
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(1422.6055, 9.9713, 25.1744, 22.6748);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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_DEAGLE, 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_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_M_GJAM_HI_01, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GJAM_LO_01, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_M_GJAM_HI_02, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GJAM_LO_02, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
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();
SpawnDriveByVehicle(MODEL_HUNTLEY, 1501.4685, 99.8167, 23.7370);
SET_CAR_HEADING(gcar, 95.0633);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_M_GJAM_HI_03, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 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;
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_M_GJAM_HI_03, 1344.1869, 53.4597, 32.1652, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_M_GJAM_HI_03, 1341.5259, 11.2968, 45.0603, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 312.2866);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_HUNTLEY, 1501.4685, 99.8167, 23.7370);
SET_CAR_HEADING(gcar, 95.0633);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_M_GJAM_HI_03, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_M_GJAM_HI_03, 1395.1660, 83.6817, 37.3326, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 57.8177);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_HUNTLEY, 1501.4685, 99.8167, 23.7370);
SET_CAR_HEADING(gcar, 95.0633);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_M_GJAM_HI_03, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_M_GJAM_HI_03, 1473.6980, 86.5310, 41.2500, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 145.3709);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
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();
SpawnJ(MODEL_M_M_GJAM_HI_03, 1525.6323, 42.3068, 32.0862, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 91.0204);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
Russian Gang-War :
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_RED);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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, "RUS Boss", 153, 69, 69, 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, "RUS", 153, 69, 69, 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, "RUS", 153, 69, 69, 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, "RUS", 153, 69, 69, 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, "RUS", 153, 69, 69, 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, "RUS", 153, 69, 69, 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, "RUS", 153, 69, 69, 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, "RUS", 153, 69, 69, 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, "RUS", 153, 69, 69, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "RUS", 153, 69, 69, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "RUS", 153, 69, 69, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_RED);
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(974.6638, -331.6276, 19.2403, 109.9269);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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_DEAGLE, 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_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_M_GRU2_HI_02, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GRU2_LO_01, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_M_GRU2_LO_02, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GRU2_LO_01, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
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();
SpawnDriveByVehicle(MODEL_INGOT, 960.3611, -194.7447, 22.5801);
SET_CAR_HEADING(gcar, 214.1183);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_M_GRU2_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 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;
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_M_GRU2_HI_01, 959.0059, -293.2604, 25.6316, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_M_GRU2_LO_02, 1015.9448, -299.0381, 33.7108, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 90.0000);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_INGOT, 960.3611, -194.7447, 22.5801);
SET_CAR_HEADING(gcar, 214.5801);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_M_GRU2_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_M_GRU2_LO_02, 943.1155, -242.4977, 35.4795, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 260.0436);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_INGOT, 960.3611, -194.7447, 22.5801);
SET_CAR_HEADING(gcar, 214.1183);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_M_GRU2_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_M_GRU2_LO_02, 971.0086, -233.2715, 32.2220, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 176.8267);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
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();
SpawnJ(MODEL_M_M_GRU2_LO_02, 944.6335, -248.1393, 35.4794, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 204.9351);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_DARK_RED);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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", 109, 41, 41, 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", 109, 41, 41, 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", 109, 41, 41, 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", 109, 41, 41, 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", 109, 41, 41, 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", 109, 41, 41, 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", 109, 41, 41, 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", 109, 41, 41, 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", 109, 41, 41, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "MOB", 109, 41, 41, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "MOB", 109, 41, 41, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_DARK_RED);
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(941.8973, -616.1635, 14.2293, 273.2119);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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_DEAGLE, 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_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_O_GRUS_HI_01, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GRUS_LO_01, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GRUS_LO_02, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GRUS_HI_02, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
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();
SpawnDriveByVehicle(MODEL_SCHAFTER, 976.5693, -532.2193, 15.0742);
SET_CAR_HEADING(gcar, 266.5609);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GRUS_HI_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 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;
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_O_MPMOBBOSS, 989.0475, -644.8644, 14.2239, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GRUS_HI_02, 979.9838, -654.9815, 40.5278, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 324.3077);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_SCHAFTER, 976.5693, -532.2193, 15.0742);
SET_CAR_HEADING(gcar, 266.5609);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GRUS_HI_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_Y_GRUS_HI_02, 1037.7670, -632.5914, 25.7242, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 162.8557);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_SCHAFTER, 976.5693, -532.2193, 15.0742);
SET_CAR_HEADING(gcar, 266.5609);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GRUS_HI_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1069.5344, -673.1451, 13.4928, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GRUS_HI_02, 1045.8484, -687.5040, 24.4305, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 343.3621);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1033.0006, -655.9915, 14.2246, 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();
SpawnJ(MODEL_M_Y_GRUS_HI_02, 1026.4851, -614.3950, 22.1276, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 49.2072);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
Afro-American Gang-War :
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_PURPLE);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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, 1000);
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", 114, 79, 119, 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", 114, 79, 119, 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", 114, 79, 119, 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", 114, 79, 119, 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", 114, 79, 119, 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", 114, 79, 119, 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", 114, 79, 119, 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", 114, 79, 119, 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", 114, 79, 119, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "AFR", 114, 79, 119, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "AFR", 114, 79, 119, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_PURPLE);
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(1278.0542, -319.8939, 18.8496, 176.1501);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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_DEAGLE, 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_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GAFR_LO_02, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GAFR_HI_01, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GAFR_LO_01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GAFR_LO_02, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
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();
SpawnDriveByVehicle(MODEL_PATRIOT, 1335.3983, -369.2523, 18.8581);
SET_CAR_HEADING(gcar, 76.7699);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GAFR_HI_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 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;
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_GAFR_HI_02, 1260.6670, -330.3216, 25.2667, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GAFR_HI_01, 1312.0922, -370.6886, 29.9543, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 53.0279);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_PATRIOT, 1335.3983, -369.2523, 18.8581);
SET_CAR_HEADING(gcar, 76.7699);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GAFR_HI_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_Y_GAFR_HI_01, 1256.1377, -269.6283, 29.7378, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 219.9516);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_PATRIOT, 1335.3983, -369.2523, 18.8581);
SET_CAR_HEADING(gcar, 76.7699);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GAFR_HI_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_Y_GAFR_HI_01, 1323.5205, -203.7108, 41.6164, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 182.4859);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
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();
SpawnJ(MODEL_M_Y_GAFR_HI_01, 1401.8480, -260.2943, 28.5152, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 89.6145);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
Irish Gang-War :
http://<a href="http://www.youtube.c...ykArXSSmVY</a>
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_GREEN);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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", 87, 124, 88, 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", 87, 124, 88, 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", 87, 124, 88, 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", 87, 124, 88, 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", 87, 124, 88, 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", 87, 124, 88, 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", 87, 124, 88, 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", 87, 124, 88, 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", 87, 124, 88, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "IRI", 87, 124, 88, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "IRI", 87, 124, 88, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_GREEN);
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(1202.8007, 733.0580, 36.2863, 77.4485);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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_DEAGLE, 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_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GIRI_LO_01 , WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GIRI_LO_02, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GIRI_LO_01 , WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GIRI_LO_02, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
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();
SpawnDriveByVehicle(MODEL_ORACLE, 1097.8055, 658.6799, 38.7481);
SET_CAR_HEADING(gcar, 269.2276);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GIRI_LO_03, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 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;
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_GIRI_LO_03, 1133.4117, 726.7820, 35.3760, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GIRI_LO_03, 1136.8002, 730.6113, 44.4304, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 277.1577);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_ORACLE, 1097.8055, 658.6799, 38.7481);
SET_CAR_HEADING(gcar, 269.2276);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GIRI_LO_03, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_Y_GIRI_LO_03, 1098.7755, 750.3538, 48.8261, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 151.5691);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_ORACLE, 1097.8055, 658.6799, 38.7481);
SET_CAR_HEADING(gcar, 269.2276);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GIRI_LO_03, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_Y_GIRI_LO_03, 1005.7311, 775.8294, 38.2478, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 170.3186);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
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();
SpawnJ(MODEL_M_Y_GIRI_LO_03, 993.6802, 783.1508, 41.6780, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 174.2991);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_ORANGE);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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", 188, 130, 74, 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", 188, 130, 74, 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", 188, 130, 74, 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", 188, 130, 74, 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", 188, 130, 74, 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", 188, 130, 74, 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", 188, 130, 74, 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", 188, 130, 74, 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", 188, 130, 74, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "ALB", 188, 130, 74, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "ALB", 188, 130, 74, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_ORANGE);
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(1319.3514, 1686.1885, 16.7973, 0.1349);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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_DEAGLE, 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_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GALB_LO_02, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GALB_LO_03, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GALB_LO_01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GALB_LO_02, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
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();
SpawnDriveByVehicle(MODEL_HAKUMAI, 1286.4470, 1650.2290, 16.7118);
SET_CAR_HEADING(gcar, 12.5392);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GALB_LO_03, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 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;
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_GALB_LO_04, 1333.4918, 1673.5127, 21.5093, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GALB_LO_03, 1363.5920, 1735.6097, 34.7761, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 49.2072);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_HAKUMAI, 1286.4470, 1650.2290, 16.7118);
SET_CAR_HEADING(gcar, 12.5392);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GALB_LO_03, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_Y_GALB_LO_03, 1306.4326, 1739.4669, 24.3070, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 253.7593);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
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();
SpawnDriveByVehicle(MODEL_HAKUMAI, 1286.4470, 1650.2290, 16.7118);
SET_CAR_HEADING(gcar, 12.5392);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GALB_LO_03, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
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;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
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();
SpawnJ(MODEL_M_Y_GALB_LO_03, 1306.3634, 1765.0858, 23.0356, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 248.8135);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
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();
SpawnJ(MODEL_M_Y_GALB_LO_03, 1327.0592, 1757.9503, 21.2500, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 50.4521);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
Italian Mafia Gang-War :
video not done yet !
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_GREY);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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, "MAF Boss", 100, 100, 100, 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, "MAF", 100, 100, 100, 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, "MAF", 100, 100, 100, 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, "MAF", 100, 100, 100, 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, "MAF", 100, 100, 100, 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, "MAF", 100, 100, 100, 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, "MAF", 100, 100, 100, 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, "MAF", 100, 100, 100, 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, "MAF", 100, 100, 100, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "MAF", 100, 100, 100, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "MAF", 100, 100, 100, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_GREY);
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(-196.4170, -226.4814, 14.5219, 179.9301);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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 = -196.4170, y = -226.4814, z = 14.5219;
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(), 179.9301);
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_GMAF_HI_01, WEAPON_DEAGLE, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GMAF_HI_02, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GMAF_LO_01, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GMAF_HI_01, WEAPON_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GMAF_HI_02, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GMAF_LO_01, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GMAF_HI_01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GMAF_HI_02, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_GMAF_LO_02, -228.0031, -265.3816, 14.5453, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_PMP600, -91.6350, -249.6624, 13.6839);
SET_CAR_HEADING(gcar, 3.6159);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GMAF_LO_01, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_GMAF_LO_02, -173.6978, -270.5505, 12.0329, 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_GMAF_LO_02, -180.9148, -295.4064, 14.7673, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GMAF_LO_01, -187.1973, -258.6208, 27.3271, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 162.6665);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_GMAF_LO_02, -214.6406, -295.4463, 14.7421, 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_GMAF_LO_02, -140.0193, -285.1972, 14.3480, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_PMP600, -91.6350, -249.6624, 13.6839);
SET_CAR_HEADING(gcar, 3.6159);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GMAF_LO_01, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_GMAF_LO_02, -145.6085, -263.4328, 12.6846, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_GMAF_LO_02, -142.2580, -260.8595, 16.1423, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GMAF_LO_01, -120.7958, -275.6404, 34.8907, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 135.8243);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_GMAF_LO_02, -115.4875, -240.4122, 12.8026, 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_GMAF_LO_02, -142.2888, -244.9059, 16.1309, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_PMP600, -91.6350, -249.6624, 13.6839);
SET_CAR_HEADING(gcar, 3.6159);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GMAF_LO_01, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_GMAF_LO_02, -169.4761, -205.2580, 13.5584, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_GMAF_LO_02, -188.6862, -250.2943, 14.6060, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GMAF_LO_01, -206.6738, -259.6936, 28.7782, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 279.1612);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_GMAF_LO_02, -228.3384, -265.7528, 14.5328, 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_GMAF_LO_02, -273.5696, -281.9134, 14.3553, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GMAF_LO_01, -253.1047, -261.0279, 32.2086, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 143.9122);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
Puerto Rican Gang-War :
video not done yet !
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_YELLOW);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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, "LAT Boss", 206, 169, 13, 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, "LAT", 206, 169, 13, 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, "LAT", 206, 169, 13, 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, "LAT", 206, 169, 13, 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, "LAT", 206, 169, 13, 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, "LAT", 206, 169, 13, 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, "LAT", 206, 169, 13, 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, "LAT", 206, 169, 13, 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, "LAT", 206, 169, 13, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "LAT", 206, 169, 13, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "LAT", 206, 169, 13, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_YELLOW);
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(-204.2949, 1187.1337, 14.6438, 8.6554);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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 = -204.2949, y = 1187.1337, z = 14.6438;
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(), 8.6554);
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_GLAT_LO_01, WEAPON_DEAGLE, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GLAT_LO_02, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GLAT_HI_01, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GLAT_LO_01, WEAPON_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GLAT_LO_02, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GLAT_HI_01, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GLAT_LO_01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GLAT_LO_02, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_GLAT_HI_02, -167.4088, 1208.9833, 16.0481, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_CAVALCADE, -136.4737, 1306.6499, 20.4425);
SET_CAR_HEADING(gcar, 90.7651);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GLAT_HI_01, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_GLAT_HI_02, -209.2922, 1228.9291, 19.0955, 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_GLAT_HI_02, -250.4277, 1231.6497, 23.2169, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GLAT_HI_01, -276.6281, 1242.8218, 35.6475, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 242.2550);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_GLAT_HI_02, -205.6116, 1247.5447, 22.3436, 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_GLAT_HI_02, -223.1780, 1254.3579, 23.0488, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_CAVALCADE, -136.4737, 1306.6499, 20.4425);
SET_CAR_HEADING(gcar, 90.7651);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GLAT_HI_01, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_GLAT_HI_02, -219.5123, 1300.2478, 23.9158, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_GLAT_HI_02, -189.2660, 1300.0156, 21.2702, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GLAT_HI_01, -210.7960, 1296.9860, 35.0550, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 56.2685);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_GLAT_HI_02, -161.0456, 1307.7704, 20.4302, 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_GLAT_HI_02, -184.7839, 1331.7375, 20.3877, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_CAVALCADE, -136.4737, 1306.6499, 20.4425);
SET_CAR_HEADING(gcar, 90.7651);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GLAT_HI_01, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_GLAT_HI_02, -159.6056, 1358.9640, 20.4341, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_GLAT_HI_02, -195.8550, 1379.5536, 20.3062, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GLAT_HI_01, -172.5602, 1353.7563, 38.7625, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 136.8352);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_GLAT_HI_02, -225.2701, 1382.6792, 22.2619, 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_GLAT_HI_02, -218.1646, 1409.8881, 20.4346, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GLAT_HI_01, -201.6638, 1384.2817, 34.1713, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 86.6341);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
video not done yet !
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_TURQUOISE);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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, "KOR Boss", 234, 184, 125, 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, "KOR", 234, 184, 125, 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, "KOR", 234, 184, 125, 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, "KOR", 234, 184, 125, 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, "KOR", 234, 184, 125, 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, "KOR", 234, 184, 125, 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, "KOR", 234, 184, 125, 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, "KOR", 234, 184, 125, 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, "KOR", 234, 184, 125, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "KOR", 234, 184, 125, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "KOR", 234, 184, 125, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_TURQUOISE);
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(-1130.6436, 986.9670, 16.7017, 353.6317);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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 = -1130.6436, y = 986.9670, z = 16.7017;
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(), 353.6317);
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_GKOR_LO_01, WEAPON_DEAGLE, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GKOR_LO_02, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GKOR_LO_01, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GKOR_LO_02, WEAPON_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GKOR_LO_01, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GKOR_LO_02, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GKOR_LO_01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GKOR_LO_02, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_GKOR_LO_01, -1168.5686, 1013.0519, 13.6059, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_SULTAN, -1145.2059, 1125.7025, 13.6034);
SET_CAR_HEADING(gcar, 168.8917);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GKOR_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_GKOR_LO_01, -1164.4380, 989.6260, 13.5254, 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_GKOR_LO_01, -1182.2905, 1025.6383, 19.1084, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GKOR_LO_02, -1154.7179, 992.9766, 39.5484, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 79.5508);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_GKOR_LO_01, -1211.5376, 1036.2821, 19.5786, 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_GKOR_LO_01, -1224.4041, 1057.8567, 19.7092, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_SULTAN, -1145.2059, 1125.7025, 13.6034);
SET_CAR_HEADING(gcar, 168.8917);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GKOR_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_GKOR_LO_01, -1266.7412, 1083.0253, 19.4137, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_GKOR_LO_01, -1203.8329, 1079.8325, 17.7863, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GKOR_LO_02, -1181.0083, 1066.9324, 29.5523, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 75.5513);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_GKOR_LO_01, -1186.7578, 1074.3739, 13.7103, 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_GKOR_LO_01, -1216.2665, 1102.3287, 17.1418, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_SULTAN, -1145.2059, 1125.7025, 13.6034);
SET_CAR_HEADING(gcar, 168.8917);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GKOR_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_GKOR_LO_01, -1160.8757, 1098.7751, 13.6070, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_GKOR_LO_01, -1135.0066, 1145.6488, 13.5734, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GKOR_LO_02, -1140.6083, 1101.3822, 35.3960, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 70.8426);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_GKOR_LO_01, -1111.2593, 1131.4277, 13.9192, 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_GKOR_LO_01, -1088.1215, 1095.6677, 13.6481, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GKOR_LO_02, -1072.4412, 1125.8513, 23.5356, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 141.9848);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
Triad Gang-War :
video not done yet !
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_DARK_TURQUOISE);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// 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, "TRI Boss", 152, 111, 158, 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, "TRI", 152, 111, 158, 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, "TRI", 152, 111, 158, 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, "TRI", 152, 111, 158, 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, "TRI", 152, 111, 158, 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, "TRI", 152, 111, 158, 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, "TRI", 152, 111, 158, 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, "TRI", 152, 111, 158, 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, "TRI", 152, 111, 158, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "TRI", 152, 111, 158, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "TRI", 152, 111, 158, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_DARK_TURQUOISE);
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(-14.1991, -381.1880, 14.7695, 284.7542);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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 = -14.1991, y = -381.1880, z = 14.7695;
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(), 284.7542);
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_GTRI_HI_02, WEAPON_DEAGLE, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GTRI_LO_01, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GTRI_LO_02, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_M_GTRI_HI_02, WEAPON_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GTRI_LO_01, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GTRI_LO_02, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_M_GTRI_HI_02, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GTRI_LO_01, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_M_GTRI_HI_01, 20.8612, -368.6300, 14.7446, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_INTRUDER, 92.8625, -323.6015, 14.6169);
SET_CAR_HEADING(gcar, 6.2449);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GTRI_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_M_GTRI_HI_01, 24.3013, -319.6076, 14.7673, 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_M_GTRI_HI_01, 48.1981, -354.4188, 14.7673, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GTRI_LO_02, 68.8937, -339.4894, 30.0725, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 90.0000);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_M_GTRI_HI_01, 96.5028, -370.6624, 14.7660, 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_GTRI_HI_01, 73.5613, -399.3872, 14.7673, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_INTRUDER, 92.8625, -323.6015, 14.6169);
SET_CAR_HEADING(gcar, 6.2449);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GTRI_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_M_GTRI_HI_01, 18.4528, -398.7530, 14.7556, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_M_GTRI_HI_01, 6.3887, -447.7805, 14.7601, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GTRI_LO_02, 20.7547, -462.1057, 24.7481, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 37.5988);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_M_GTRI_HI_01, 37.1452, -484.7861, 14.7674, 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_GTRI_HI_01, 64.2639, -450.9420, 14.7602, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_INTRUDER, 92.8625, -323.6015, 14.6169);
SET_CAR_HEADING(gcar, 6.2449);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GTRI_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_M_GTRI_HI_01, 73.4662, -451.2454, 20.7033, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_M_GTRI_HI_01, 95.2206, -451.6397, 25.8184, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GTRI_LO_02, 43.3620, -462.9592, 25.9092, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 225.5957);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_M_GTRI_HI_01, 64.3725, -472.3295, 14.7700, 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_GTRI_HI_01, 71.2864, -484.6293, 14.7759, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GTRI_LO_02, 45.6491, -505.5970, 32.1458, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 317.2320);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
video not done yet !
Here's my script example :
(v 2.0)
//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 bzPedi;
Blip bzPedj;
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;
// Quit Gang-War Minigame
boolean qWarInt = 0;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//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, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_WHITE);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
}
// 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, "LOS Boss", 225, 225, 225, 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, "LOS", 225, 225, 225, 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, "LOS", 225, 225, 225, 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, "LOS", 225, 225, 225, 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, "LOS", 225, 225, 225, 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, "LOS", 225, 225, 225, 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, "LOS", 225, 225, 225, 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, "LOS", 225, 225, 225, 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, "LOS", 225, 225, 225, 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, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "LOS", 225, 225, 225, 255);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
FORCE_PED_PINNED_DOWN(zpedj, TRUE, 90000000);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "LOS", 225, 225, 225, 255);
EnemySettings(zpedj, bzPedj);
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);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_WHITE);
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(-1605.2974, 243.9043, 13.8176, 52.7962);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 80.0, 2, 0, 10);
}
}
}
// 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 = -1605.2974, y = 243.9043, z = 13.8176;
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(), 52.7962);
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_LO_01, WEAPON_DEAGLE, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GBIK_LO_02, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GBIK_LO_01, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GBIK_LO_02, WEAPON_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GBIK_LO_01, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GBIK_LO_02, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GBIK_LO_01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GBIK_LO_02, WEAPON_PISTOL, -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 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
Print("Gang War 1st Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -1639.2157, 284.6691, 19.8029, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_ZOMBIEB, -1719.7590, 363.4462, 25.3806);
SET_CAR_HEADING(gcar, 322.4200);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GBIK_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
zPediInt = 1;
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -1648.3536, 286.0090, 22.7670, 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_IG_JOHNNYBIKER, -1644.4135, 304.6788, 25.1748, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GBIK_LO_02, -1639.5162, 304.0601, 37.1143, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 145.9641);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -1651.9269, 328.3515, 25.3159, 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_IG_JOHNNYBIKER, -1668.1222, 322.5570, 24.9157, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_ZOMBIEB, -1719.7590, 363.4462, 25.3806);
SET_CAR_HEADING(gcar, 322.4200);
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GBIK_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
zPediInt = 1;
}
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -1677.3369, 296.2142, 23.0004, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -1721.0629, 305.3266, 24.8825, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GBIK_LO_02, -1740.5997, 311.0194, 42.4113, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 242.2626);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -1678.8971, 274.8879, 20.3949, 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_IG_JOHNNYBIKER, -1737.3300, 273.7836, 23.6099, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_ZOMBIEB, -1719.7590, 363.4462, 25.3806);
SET_CAR_HEADING(gcar, 322.4200);
zPedInt = 1;
zWarInt = 9;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_GBIK_LO_02, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
zPediInt = 1;
}
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -1791.9678, 263.0694, 22.5049, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -1790.0762, 312.4349, 25.4490, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GBIK_LO_02, -1811.7604, 319.5791, 39.4015, WEAPON_SNIPERRIFLE);
SET_CHAR_HEADING(zpedj, 232.0374);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -1757.0382, 340.8335, 25.4492, 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_IG_JOHNNYBIKER, -1714.7773, 362.5730, 25.4490, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_GBIK_LO_02, -1721.1418, 357.1510, 42.4112, WEAPON_M40A1);
SET_CHAR_HEADING(zpedj, 70.8866);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
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()) || qWarInt == 1)
{
ClearEnemy(zpedi, bzPedi);
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()) || qWarInt == 1)
{
ClearEnemy(zpedj, bzPedj);
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 || qWarInt == 1)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
qWarInt = 1;
Print("The Gang War Is Over");
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
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();
QuitGangWar();
}
}
- thoses scripts are meant to be use with modmanager.
- activate only one war at time.
GANG-WARS Info:
- 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.
- Quit Gang-war button press activator ( hold DPAD UP and press TRIANGLE )
so , this will be the base of this ongoing project of mine ...
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 !!
GTA IV Ped-Wars Minigame :
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 .
PED-WARS Example Scripts:
Click to View!
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.1)
- added "task car mission ped target "
- added " set car heading "
note : this greatly improve ENEMY DRIVE-BY CAR , only fine tweaking left to be done before adding it to all gang-wars .
//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);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_WHITE);
}
// 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", 225, 225, 225, 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", 225, 225, 225, 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", 225, 225, 225, 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", 225, 225, 225, 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", 225, 225, 225, 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", 225, 225, 225, 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", 225, 225, 225, 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", 225, 225, 225, 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", 225, 225, 225, 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", 225, 225, 225, 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", 225, 225, 225, 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);
SET_CAR_HEADING(gcar, 227.2076);
ADD_BLIP_FOR_CAR(gcar, &bgcar);
SET_BLIP_AS_FRIENDLY(bgcar, FALSE);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_WHITE);
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);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 99.0, 2, 0, 10);
}
}
}
// 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();
}
}








Recent Threads
Recent Comments
vBulletin Message