Gang-War minigame
i made a gang-war survival minigame ... ( sorry for the bad video quallity , my capture card is quite old )
GTA IV Gang-War minigame
i made a gang-war survival minigame ... ( sorry for the bad video quallity , my capture card is quite old )
Angels of Death Gang-War :
Here's my script example :
(v 1.3)
- fixed boss health bug
- added " cancel override restart "
- added " set police ignore player "
- added " set cam behind ped "
//Core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx,EGy,EGz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 80.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
REMOVE_BLIP(pblip);
}
// Set & Spawn Enemy Boss At Requested Coordinates
void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
{
REQUEST_MODEL(modelBoss);
while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
ADD_ARMOUR_TO_CHAR(zped, 5000); //
SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 10.0);
UpdateWeaponOfPed(zped, weapon);
SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zped, &bzPed);
GIVE_PED_FAKE_NETWORK_NAME(zped, "AoD Boss", 255, 140, 0, 255);
EnemySettings(zped, bzPed);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
}
// Set & Spawn Enemy(A) Near Boss
void SpawnA(uint modelza, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelza);
while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 20.0);
UpdateWeaponOfPed(zpeda, weapon);
SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
GIVE_PED_FAKE_NETWORK_NAME(zpeda, "AoD", 255, 140, 0, 255);
EnemySettings(zpeda, bzPeda);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
}
// Set & Spawn Enemy(B) Near Boss
void SpawnB(uint modelzb, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzb);
while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 20.0);
UpdateWeaponOfPed(zpedb, weapon);
SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
GIVE_PED_FAKE_NETWORK_NAME(zpedb, "AoD", 255, 140, 0, 255);
EnemySettings(zpedb, bzPedb);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
}
// Set & spawn Enemy(C) Near Boss
void SpawnC(uint modelzc, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzc);
while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 20.0);
UpdateWeaponOfPed(zpedc, weapon);
SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
GIVE_PED_FAKE_NETWORK_NAME(zpedc, "AoD", 255, 140, 0, 255);
EnemySettings(zpedc, bzPedc);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
}
// Set & Spawn Enemy(D) Near Boss
void SpawnD(uint modelzd, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzd);
while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 20.0);
UpdateWeaponOfPed(zpedd, weapon);
SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
GIVE_PED_FAKE_NETWORK_NAME(zpedd, "AoD", 255, 140, 0, 255);
EnemySettings(zpedd, bzPedd);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
}
// Set & Spawn Enemy(E) Near Boss
void SpawnE(uint modelze, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelze);
while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpede, weapon);
SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpede, &bzPede);
GIVE_PED_FAKE_NETWORK_NAME(zpede, "AoD", 255, 140, 0, 255);
EnemySettings(zpede, bzPede);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
}
// Set & Spawn Enemy(F) Near Boss
void SpawnF(uint modelzf, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzf);
while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedf, weapon);
SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
GIVE_PED_FAKE_NETWORK_NAME(zpedf, "AoD", 255, 140, 0, 255);
EnemySettings(zpedf, bzPedf);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
}
// Set & Spawn Enemy(G) Near Boss
void SpawnG(uint modelzg, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzg);
while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedg, weapon);
SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
GIVE_PED_FAKE_NETWORK_NAME(zpedg, "AoD", 255, 140, 0, 255);
EnemySettings(zpedg, bzPedg);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
}
// Set & Spawn enemy(H) Near Boss
void SpawnH(uint modelzh, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzh);
while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedh, weapon);
SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
GIVE_PED_FAKE_NETWORK_NAME(zpedh, "AoD", 255, 140, 0, 255);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(824.9642, 951.3129, 1.4325, 255.7890);
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = 824.9642, y = 951.3129, z = 1.4325;
SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
LOAD_SCENE(x, y, z);
WAIT(500);
SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
SET_CHAR_HEADING(GetPlayerPed(), 255.7890);
SET_CAM_BEHIND_PED(GetPlayerPed());
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_IN(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
pWarpInt = 1;
iTextInt = 1;
}
}
}
// Display Intro Text Once PLayer Teleported
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("GANG WAR");
WAIT(4000);
Print("Kill All Gang Members And Boss To Get Into Next Wave");
WAIT(2000);
zWarInt = 0;
iTextInt = 0;
}
}
// Display Gang War Reseted Text If Player Die
void TextReset(void)
{
if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
{
WAIT(3000);
Print("You Died Gang War Reseted");
WAIT(4000);
Print("Get Back Into War Zone");
zWarInt = 0;
rTextInt = 0;
}
}
// Manage Death/Reset
void PlayerDeathReset(void)
{
if(IS_CHAR_DEAD(GetPlayerPed()))
{
zWarInt = 15;
rTextInt = 1;
}
}
// Spawn Enemy Gang Shortcut
void SpawnGang(void)
{
SpawnA(MODEL_M_Y_GBIK_HI_01, WEAPON_PISTOL, 1);
zPedaInt = 1;
SpawnB(MODEL_M_M_GBIK_LO_03, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GBIK_HI_02, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_M_GBIK_LO_03, WEAPON_SHOTGUN, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GBIK_HI_01, WEAPON_PISTOL, -1);
zPedeInt = 1;
SpawnF(MODEL_M_M_GBIK_LO_03, WEAPON_SHOTGUN, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GBIK_HI_02, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_M_GBIK_LO_03, WEAPON_SHOTGUN, -2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
{
if(zWarInt == 0)
{
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 869.7471, 938.1767, 6.6970, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 1;
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 880.0684, 927.7195, 11.9120, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 892.3710, 942.8923, 8.7248, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 3;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 881.3718, 948.4085, 7.8328, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Gang War 5th Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 906.8463, 964.9186, 8.2431, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 933.8802, 963.6290, 19.4431, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 943.3989, 982.6749, 17.6959, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 7;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 943.0972, 948.1227, 21.1600, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Gang War 9th Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 888.9360, 917.5287, 16.9200, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 940.6735, 918.8997, 22.4565, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 915.6450, 921.5864, 20.0843, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 11;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 877.3582, 941.1133, 7.4764, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Gang War Final Wave");
SpawnBoss(MODEL_M_Y_GBIK02_LO_02, 904.4918, 945.0982, 8.2989, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 13;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped))
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda))
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb))
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc))
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd))
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede))
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf))
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg))
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh))
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
}
}
Jamaican Gang-War :
Here's my script example :
(v 1.2)
- added " set police ignore player "
- added " set cam behind ped "
//Core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx,EGy,EGz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 80.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
REMOVE_BLIP(pblip);
}
// Set & Spawn Enemy Boss At Requested Coordinates
void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
{
REQUEST_MODEL(modelBoss);
while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
ADD_ARMOUR_TO_CHAR(zped, 5000);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
UpdateWeaponOfPed(zped, weapon);
SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zped, &bzPed);
GIVE_PED_FAKE_NETWORK_NAME(zped, "JAM Boss", 255, 140, 0, 255);
EnemySettings(zped, bzPed);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
}
// Set & Spawn Enemy(A) Near Boss
void SpawnA(uint modelza, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelza);
while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpeda, weapon);
SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
GIVE_PED_FAKE_NETWORK_NAME(zpeda, "JAM", 255, 140, 0, 255);
EnemySettings(zpeda, bzPeda);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
}
// Set & Spawn Enemy(B) Near Boss
void SpawnB(uint modelzb, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzb);
while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedb, weapon);
SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
GIVE_PED_FAKE_NETWORK_NAME(zpedb, "JAM", 255, 140, 0, 255);
EnemySettings(zpedb, bzPedb);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
}
// Set & spawn Enemy(C) Near Boss
void SpawnC(uint modelzc, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzc);
while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedc, weapon);
SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
GIVE_PED_FAKE_NETWORK_NAME(zpedc, "JAM", 255, 140, 0, 255);
EnemySettings(zpedc, bzPedc);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
}
// Set & Spawn Enemy(D) Near Boss
void SpawnD(uint modelzd, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzd);
while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedd, weapon);
SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
GIVE_PED_FAKE_NETWORK_NAME(zpedd, "JAM", 255, 140, 0, 255);
EnemySettings(zpedd, bzPedd);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
}
// Set & Spawn Enemy(E) Near Boss
void SpawnE(uint modelze, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelze);
while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpede, weapon);
SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpede, &bzPede);
GIVE_PED_FAKE_NETWORK_NAME(zpede, "JAM", 255, 140, 0, 255);
EnemySettings(zpede, bzPede);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
}
// Set & Spawn Enemy(F) Near Boss
void SpawnF(uint modelzf, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzf);
while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedf, weapon);
SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
GIVE_PED_FAKE_NETWORK_NAME(zpedf, "JAM", 255, 140, 0, 255);
EnemySettings(zpedf, bzPedf);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
}
// Set & Spawn Enemy(G) Near Boss
void SpawnG(uint modelzg, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzg);
while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedg, weapon);
SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
GIVE_PED_FAKE_NETWORK_NAME(zpedg, "JAM", 255, 140, 0, 255);
EnemySettings(zpedg, bzPedg);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
}
// Set & Spawn enemy(H) Near Boss
void SpawnH(uint modelzh, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzh);
while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedh, weapon);
SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
GIVE_PED_FAKE_NETWORK_NAME(zpedh, "JAM", 255, 140, 0, 255);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(1422.6055, 9.9713, 25.1744, 22.6748);
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = 1422.6055, y = 9.9713, z = 25.1744;
SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
LOAD_SCENE(x, y, z);
WAIT(500);
SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
SET_CHAR_HEADING(GetPlayerPed(), 22.6748);
SET_CAM_BEHIND_PED(GetPlayerPed());
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_IN(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
pWarpInt = 1;
iTextInt = 1;
}
}
}
// Display Intro Text Once PLayer Teleported
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("GANG WAR");
WAIT(4000);
Print("Kill All Gang Members And Boss To Get Into Next Wave");
WAIT(2000);
zWarInt = 0;
iTextInt = 0;
}
}
// Display Gang War Reseted Text If Player Die
void TextReset(void)
{
if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
{
WAIT(3000);
Print("You Died Gang War Reseted");
WAIT(4000);
Print("Get Back Into War Zone");
zWarInt = 0;
rTextInt = 0;
}
}
// Manage Death/Reset
void PlayerDeathReset(void)
{
if(IS_CHAR_DEAD(GetPlayerPed()))
{
zWarInt = 15;
rTextInt = 1;
}
}
// Spawn Enemy Gang Shortcut
void SpawnGang(void)
{
SpawnA(MODEL_M_M_GJAM_HI_01, WEAPON_PISTOL, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GJAM_LO_01, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_M_GJAM_HI_02, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GJAM_LO_02, WEAPON_SHOTGUN, 2);
zPeddInt = 1;
SpawnE(MODEL_M_M_GJAM_HI_01, WEAPON_PISTOL, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GJAM_LO_01, WEAPON_SHOTGUN, -1);
zPedfInt = 1;
SpawnG(MODEL_M_M_GJAM_HI_02, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_M_GJAM_HI_01, WEAPON_SHOTGUN, -2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
{
if(zWarInt == 0)
{
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1385.9141, 26.2958, 29.4831, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 1;
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1361.7430, 16.1924, 32.0250, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1344.1869, 53.4597, 32.1652, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 3;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1386.2336, 62.5527, 25.9109, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Gang War 5th Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1400.0679, 86.9136, 25.9109, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1370.5553, 64.8754, 31.6330, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1372.2246, 98.0066, 31.1385, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 7;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1413.0474, 83.6826, 25.7152, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Gang War 9th Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1443.1223, 53.2962, 37.2806, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1452.4160, 55.5246, 38.6006, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1459.2733, 99.7263, 24.7473, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 11;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1479.2775, 58.7730, 24.9513, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Gang War Final Wave");
SpawnBoss(MODEL_M_M_GJAM_HI_03, 1463.9869, 34.9254, 37.0028, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 13;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped))
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda))
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb))
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc))
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd))
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede))
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf))
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg))
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh))
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
}
}
Russian Gang-War :
Here's my script example :
(v 1.1)
- added " set cam behind ped "
//Core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx,EGy,EGz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40); //
SET_SENSE_RANGE(ptype, 80.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
REMOVE_BLIP(pblip);
}
// Set & Spawn Enemy Boss At Requested Coordinates
void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
{
REQUEST_MODEL(modelBoss);
while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
ADD_ARMOUR_TO_CHAR(zped, 5000);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
UpdateWeaponOfPed(zped, weapon);
SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zped, &bzPed);
GIVE_PED_FAKE_NETWORK_NAME(zped, "RU2 Boss", 255, 140, 0, 255);
EnemySettings(zped, bzPed);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
}
// Set & Spawn Enemy(A) Near Boss
void SpawnA(uint modelza, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelza);
while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpeda, weapon);
SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
GIVE_PED_FAKE_NETWORK_NAME(zpeda, "RU2", 255, 140, 0, 255);
EnemySettings(zpeda, bzPeda);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
}
// Set & Spawn Enemy(B) Near Boss
void SpawnB(uint modelzb, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzb);
while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedb, weapon);
SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
GIVE_PED_FAKE_NETWORK_NAME(zpedb, "RU2", 255, 140, 0, 255);
EnemySettings(zpedb, bzPedb);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
}
// Set & spawn Enemy(C) Near Boss
void SpawnC(uint modelzc, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzc);
while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedc, weapon);
SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
GIVE_PED_FAKE_NETWORK_NAME(zpedc, "RU2", 255, 140, 0, 255);
EnemySettings(zpedc, bzPedc);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
}
// Set & Spawn Enemy(D) Near Boss
void SpawnD(uint modelzd, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzd);
while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedd, weapon);
SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
GIVE_PED_FAKE_NETWORK_NAME(zpedd, "RU2", 255, 140, 0, 255);
EnemySettings(zpedd, bzPedd);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
}
// Set & Spawn Enemy(E) Near Boss
void SpawnE(uint modelze, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelze);
while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpede, weapon);
SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpede, &bzPede);
GIVE_PED_FAKE_NETWORK_NAME(zpede, "RU2", 255, 140, 0, 255);
EnemySettings(zpede, bzPede);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
}
// Set & Spawn Enemy(F) Near Boss
void SpawnF(uint modelzf, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzf);
while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedf, weapon);
SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
GIVE_PED_FAKE_NETWORK_NAME(zpedf, "RU2", 255, 140, 0, 255);
EnemySettings(zpedf, bzPedf);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
}
// Set & Spawn Enemy(G) Near Boss
void SpawnG(uint modelzg, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzg);
while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedg, weapon);
SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
GIVE_PED_FAKE_NETWORK_NAME(zpedg, "RU2", 255, 140, 0, 255);
EnemySettings(zpedg, bzPedg);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
}
// Set & Spawn enemy(H) Near Boss
void SpawnH(uint modelzh, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzh);
while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedh, weapon);
SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
GIVE_PED_FAKE_NETWORK_NAME(zpedh, "RU2", 255, 140, 0, 255);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(974.6638, -331.6276, 19.2403, 109.9269);
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = 974.6638, y = -331.6276, z = 19.2403;
SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
LOAD_SCENE(x, y, z);
WAIT(500);
SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
SET_CHAR_HEADING(GetPlayerPed(), 109.9269);
SET_CAM_BEHIND_PED(GetPlayerPed());
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_IN(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
pWarpInt = 1;
iTextInt = 1;
}
}
}
// Display Intro Text Once PLayer Teleported
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("GANG WAR");
WAIT(4000);
Print("Kill All Gang Members And Boss To Get Into Next Wave");
WAIT(2000);
zWarInt = 0;
iTextInt = 0;
}
}
// Display Gang War Reseted Text If Player Die
void TextReset(void)
{
if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
{
WAIT(3000);
Print("You Died Gang War Reseted");
WAIT(4000);
Print("Get Back Into War Zone");
zWarInt = 0;
rTextInt = 0;
}
}
// Manage Death/Reset
void PlayerDeathReset(void)
{
if(IS_CHAR_DEAD(GetPlayerPed()))
{
zWarInt = 15;
rTextInt = 1;
}
}
// Spawn Enemy Gang Shortcut
void SpawnGang(void)
{
SpawnA(MODEL_M_M_GRU2_HI_02, WEAPON_PISTOL, 1);
zPedaInt = 1;
SpawnB(MODEL_M_M_GRU2_LO_02, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GRU2_LO_01, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GRU2_LO_01, WEAPON_SHOTGUN, 2);
zPeddInt = 1;
SpawnE(MODEL_M_M_GRU2_HI_02, WEAPON_PISTOL, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GRU2_LO_01, WEAPON_SHOTGUN, -1);
zPedfInt = 1;
SpawnG(MODEL_M_M_GRU2_LO_02, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GRU2_LO_01, WEAPON_SHOTGUN, -2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
{
if(zWarInt == 0)
{
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 951.8498, -311.5872, 19.2803, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 1;
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 982.3896, -320.7414, 22.8408, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 959.0059, -293.2604, 25.6316, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 3;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 991.2575, -282.5342, 21.5821, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Gang War 5th Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 1015.5672, -318.7956, 24.8602, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 1023.1271, -280.4496, 21.7737, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 967.4060, -238.0682, 22.8094, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 7;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 962.7328, -247.9613, 26.4232, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Gang War 9th Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 971.7936, -273.4756, 21.5722, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 966.4038, -288.1553, 34.0763, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 950.1610, -251.1435, 26.4232, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 11;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 949.3851, -288.1855, 34.1143, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Gang War Final Wave");
SpawnBoss(MODEL_M_M_GRU2_HI_01, 939.7153, -280.1792, 27.4799, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 13;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped))
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda))
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb))
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc))
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd))
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede))
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf))
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg))
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh))
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
}
}
Russian Mob Gang-War :
Here's my script example :
(v 1.2)
- fixed wave 11th ( enemy spawn spot )
- added " set cam behind ped
//Core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx,EGy,EGz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 80.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
REMOVE_BLIP(pblip);
}
// Set & Spawn Enemy Boss At Requested Coordinates
void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
{
REQUEST_MODEL(modelBoss);
while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
ADD_ARMOUR_TO_CHAR(zped, 5000);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
UpdateWeaponOfPed(zped, weapon);
SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zped, &bzPed);
GIVE_PED_FAKE_NETWORK_NAME(zped, "MOB Boss", 255, 140, 0, 255);
EnemySettings(zped, bzPed);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
}
// Set & Spawn Enemy(A) Near Boss
void SpawnA(uint modelza, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelza);
while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpeda, weapon);
SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
GIVE_PED_FAKE_NETWORK_NAME(zpeda, "MOB", 255, 140, 0, 255);
EnemySettings(zpeda, bzPeda);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
}
// Set & Spawn Enemy(B) Near Boss
void SpawnB(uint modelzb, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzb);
while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedb, weapon);
SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
GIVE_PED_FAKE_NETWORK_NAME(zpedb, "MOB", 255, 140, 0, 255);
EnemySettings(zpedb, bzPedb);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
}
// Set & spawn Enemy(C) Near Boss
void SpawnC(uint modelzc, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzc);
while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedc, weapon);
SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
GIVE_PED_FAKE_NETWORK_NAME(zpedc, "MOB", 255, 140, 0, 255);
EnemySettings(zpedc, bzPedc);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
}
// Set & Spawn Enemy(D) Near Boss
void SpawnD(uint modelzd, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzd);
while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedd, weapon);
SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
GIVE_PED_FAKE_NETWORK_NAME(zpedd, "MOB", 255, 140, 0, 255);
EnemySettings(zpedd, bzPedd);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
}
// Set & Spawn Enemy(E) Near Boss
void SpawnE(uint modelze, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelze);
while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpede, weapon);
SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpede, &bzPede);
GIVE_PED_FAKE_NETWORK_NAME(zpede, "MOB", 255, 140, 0, 255);
EnemySettings(zpede, bzPede);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
}
// Set & Spawn Enemy(F) Near Boss
void SpawnF(uint modelzf, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzf);
while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedf, weapon);
SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
GIVE_PED_FAKE_NETWORK_NAME(zpedf, "MOB", 255, 140, 0, 255);
EnemySettings(zpedf, bzPedf);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
}
// Set & Spawn Enemy(G) Near Boss
void SpawnG(uint modelzg, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzg);
while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedg, weapon);
SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
GIVE_PED_FAKE_NETWORK_NAME(zpedg, "MOB", 255, 140, 0, 255);
EnemySettings(zpedg, bzPedg);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
}
// Set & Spawn enemy(H) Near Boss
void SpawnH(uint modelzh, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzh);
while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedh, weapon);
SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
GIVE_PED_FAKE_NETWORK_NAME(zpedh, "MOB", 255, 140, 0, 255);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(941.8973, -616.1635, 14.2293, 273.2119);
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = 941.8973, y = -616.1635, z = 14.2293;
SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
LOAD_SCENE(x, y, z);
WAIT(500);
SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
SET_CHAR_HEADING(GetPlayerPed(), 273.2119);
SET_CAM_BEHIND_PED(GetPlayerPed());
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_IN(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
pWarpInt = 1;
iTextInt = 1;
}
}
}
// Display Intro Text Once PLayer Teleported
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("GANG WAR");
WAIT(4000);
Print("Kill All Gang Members And Boss To Get Into Next Wave");
WAIT(2000);
zWarInt = 0;
iTextInt = 0;
}
}
// Display Gang War Reseted Text If Player Die
void TextReset(void)
{
if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
{
WAIT(3000);
Print("You Died Gang War Reseted");
WAIT(4000);
Print("Get Back Into War Zone");
zWarInt = 0;
rTextInt = 0;
}
}
// Manage Death/Reset
void PlayerDeathReset(void)
{
if(IS_CHAR_DEAD(GetPlayerPed()))
{
zWarInt = 15;
rTextInt = 1;
}
}
// Spawn Enemy Gang Shortcut
void SpawnGang(void)
{
SpawnA(MODEL_M_O_GRUS_HI_01, WEAPON_PISTOL, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GRUS_LO_01, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GRUS_LO_02, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GRUS_HI_02, WEAPON_SHOTGUN, 2);
zPeddInt = 1;
SpawnE(MODEL_M_O_GRUS_HI_01, WEAPON_PISTOL, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GRUS_LO_01, WEAPON_SHOTGUN, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GRUS_LO_02, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GRUS_HI_02, WEAPON_SHOTGUN, -2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
{
if(zWarInt == 0)
{
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 981.0219, -597.9029, 14.2244, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 1;
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 999.3539, -623.5986, 14.2242, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 989.0475, -644.8644, 14.2239, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 3;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1012.9600, -642.2748, 14.2238, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Gang War 5th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1001.9397, -650.9165, 18.7778, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1022.0897, -663.1685, 14.2246, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1032.5020, -688.4957, 14.2246, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 7;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1062.9495, -673.7162, 13.4928, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Gang War 9th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1073.7277, -641.0123, 13.4922, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1063.6169, -605.7117, 13.4923, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1064.0461, -694.4926, 13.4930, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 11;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1069.5344, -673.1451, 13.4928, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Gang War Final Wave");
SpawnBoss(MODEL_M_O_MPMOBBOSS, 1017.5516, -619.1068, 14.2253, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 13;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped))
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda))
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb))
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc))
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd))
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede))
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf))
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg))
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh))
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
}
}
Here's my script example :
(v 1.1)
-added " set cam behind ped "
//Core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx,EGy,EGz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 80.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
REMOVE_BLIP(pblip);
}
// Set & Spawn Enemy Boss At Requested Coordinates
void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
{
REQUEST_MODEL(modelBoss);
while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
ADD_ARMOUR_TO_CHAR(zped, 5000);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
UpdateWeaponOfPed(zped, weapon);
SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zped, &bzPed);
GIVE_PED_FAKE_NETWORK_NAME(zped, "AFR Boss", 255, 140, 0, 255);
EnemySettings(zped, bzPed);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
}
// Set & Spawn Enemy(A) Near Boss
void SpawnA(uint modelza, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelza);
while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpeda, weapon);
SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
GIVE_PED_FAKE_NETWORK_NAME(zpeda, "AFR", 255, 140, 0, 255);
EnemySettings(zpeda, bzPeda);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
}
// Set & Spawn Enemy(B) Near Boss
void SpawnB(uint modelzb, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzb);
while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedb, weapon);
SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
GIVE_PED_FAKE_NETWORK_NAME(zpedb, "AFR", 255, 140, 0, 255);
EnemySettings(zpedb, bzPedb);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
}
// Set & spawn Enemy(C) Near Boss
void SpawnC(uint modelzc, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzc);
while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedc, weapon);
SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
GIVE_PED_FAKE_NETWORK_NAME(zpedc, "AFR", 255, 140, 0, 255);
EnemySettings(zpedc, bzPedc);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
}
// Set & Spawn Enemy(D) Near Boss
void SpawnD(uint modelzd, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzd);
while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedd, weapon);
SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
GIVE_PED_FAKE_NETWORK_NAME(zpedd, "AFR", 255, 140, 0, 255);
EnemySettings(zpedd, bzPedd);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
}
// Set & Spawn Enemy(E) Near Boss
void SpawnE(uint modelze, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelze);
while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpede, weapon);
SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpede, &bzPede);
GIVE_PED_FAKE_NETWORK_NAME(zpede, "AFR", 255, 140, 0, 255);
EnemySettings(zpede, bzPede);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
}
// Set & Spawn Enemy(F) Near Boss
void SpawnF(uint modelzf, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzf);
while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedf, weapon);
SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
GIVE_PED_FAKE_NETWORK_NAME(zpedf, "AFR", 255, 140, 0, 255);
EnemySettings(zpedf, bzPedf);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
}
// Set & Spawn Enemy(G) Near Boss
void SpawnG(uint modelzg, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzg);
while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedg, weapon);
SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
GIVE_PED_FAKE_NETWORK_NAME(zpedg, "AFR", 255, 140, 0, 255);
EnemySettings(zpedg, bzPedg);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
}
// Set & Spawn enemy(H) Near Boss
void SpawnH(uint modelzh, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzh);
while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedh, weapon);
SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
GIVE_PED_FAKE_NETWORK_NAME(zpedh, "AFR", 255, 140, 0, 255);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(1278.0542, -319.8939, 18.8496, 176.1501);
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = 1278.0542, y = -319.8939, z = 18.8496;
SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
LOAD_SCENE(x, y, z);
WAIT(500);
SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
SET_CHAR_HEADING(GetPlayerPed(), 176.1501);
SET_CAM_BEHIND_PED(GetPlayerPed());
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_IN(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
pWarpInt = 1;
iTextInt = 1;
}
}
}
// Display Intro Text Once PLayer Teleported
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("GANG WAR");
WAIT(4000);
Print("Kill All Gang Members And Boss To Get Into Next Wave");
WAIT(2000);
zWarInt = 0;
iTextInt = 0;
}
}
// Display Gang War Reseted Text If Player Die
void TextReset(void)
{
if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
{
WAIT(3000);
Print("You Died Gang War Reseted");
WAIT(4000);
Print("Get Back Into War Zone");
zWarInt = 0;
rTextInt = 0;
}
}
// Manage Death/Reset
void PlayerDeathReset(void)
{
if(IS_CHAR_DEAD(GetPlayerPed()))
{
zWarInt = 15;
rTextInt = 1;
}
}
// Spawn Enemy Gang Shortcut
void SpawnGang(void)
{
SpawnA(MODEL_M_Y_GAFR_LO_01, WEAPON_PISTOL, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GAFR_LO_02, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GAFR_HI_01, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GAFR_LO_01, WEAPON_SHOTGUN, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GAFR_LO_02, WEAPON_PISTOL, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GAFR_HI_01, WEAPON_SHOTGUN, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GAFR_LO_01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GAFR_LO_02, WEAPON_SHOTGUN, -2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
{
if(zWarInt == 0)
{
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1268.6353, -361.6036, 19.1160, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 1;
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1303.5857, -346.9720, 18.7132, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1260.6670, -330.3216, 25.2667, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 3;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1248.4714, -320.8361, 21.5503, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Gang War 5th Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1239.9952, -311.5716, 22.0091, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1269.9744, -286.2427, 23.4582, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1227.2302, -280.9445, 25.8325, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 7;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1259.2570, -266.7352, 25.8219, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Gang War 9th Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1291.8781, -333.3494, 22.5560, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1297.9692, -279.6353, 23.1819, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1312.8538, -250.9349, 23.2322, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 11;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1355.6426, -268.5583, 23.3911, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Gang War Final Wave");
SpawnBoss(MODEL_M_Y_GAFR_HI_02, 1346.7089, -288.4955, 23.1973, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 13;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped))
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda))
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb))
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc))
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd))
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede))
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf))
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg))
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh))
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
}
}
Irish Gang-War :
Here's my script example :
(v 1.1)
- added " set cam behind ped "
//Core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx,EGy,EGz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 80.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
REMOVE_BLIP(pblip);
}
// Set & Spawn Enemy Boss At Requested Coordinates
void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
{
REQUEST_MODEL(modelBoss);
while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
ADD_ARMOUR_TO_CHAR(zped, 5000);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
UpdateWeaponOfPed(zped, weapon);
SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zped, &bzPed);
GIVE_PED_FAKE_NETWORK_NAME(zped, "IRI Boss", 255, 140, 0, 255);
EnemySettings(zped, bzPed);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
}
// Set & Spawn Enemy(A) Near Boss
void SpawnA(uint modelza, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelza);
while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpeda, weapon);
SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
GIVE_PED_FAKE_NETWORK_NAME(zpeda, "IRI", 255, 140, 0, 255);
EnemySettings(zpeda, bzPeda);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
}
// Set & Spawn Enemy(B) Near Boss
void SpawnB(uint modelzb, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzb);
while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedb, weapon);
SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
GIVE_PED_FAKE_NETWORK_NAME(zpedb, "IRI", 255, 140, 0, 255);
EnemySettings(zpedb, bzPedb);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
}
// Set & spawn Enemy(C) Near Boss
void SpawnC(uint modelzc, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzc);
while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedc, weapon);
SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
GIVE_PED_FAKE_NETWORK_NAME(zpedc, "IRI", 255, 140, 0, 255);
EnemySettings(zpedc, bzPedc);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
}
// Set & Spawn Enemy(D) Near Boss
void SpawnD(uint modelzd, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzd);
while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedd, weapon);
SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
GIVE_PED_FAKE_NETWORK_NAME(zpedd, "IRI", 255, 140, 0, 255);
EnemySettings(zpedd, bzPedd);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
}
// Set & Spawn Enemy(E) Near Boss
void SpawnE(uint modelze, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelze);
while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpede, weapon);
SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpede, &bzPede);
GIVE_PED_FAKE_NETWORK_NAME(zpede, "IRI", 255, 140, 0, 255);
EnemySettings(zpede, bzPede);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
}
// Set & Spawn Enemy(F) Near Boss
void SpawnF(uint modelzf, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzf);
while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedf, weapon);
SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
GIVE_PED_FAKE_NETWORK_NAME(zpedf, "IRI", 255, 140, 0, 255);
EnemySettings(zpedf, bzPedf);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
}
// Set & Spawn Enemy(G) Near Boss
void SpawnG(uint modelzg, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzg);
while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedg, weapon);
SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
GIVE_PED_FAKE_NETWORK_NAME(zpedg, "IRI", 255, 140, 0, 255);
EnemySettings(zpedg, bzPedg);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
}
// Set & Spawn enemy(H) Near Boss
void SpawnH(uint modelzh, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzh);
while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedh, weapon);
SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
GIVE_PED_FAKE_NETWORK_NAME(zpedh, "IRI", 255, 140, 0, 255);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(1202.8007, 733.0580, 36.2863, 77.4485);
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = 1202.8007, y = 733.0580, z = 36.2863;
SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
LOAD_SCENE(x, y, z);
WAIT(500);
SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
SET_CHAR_HEADING(GetPlayerPed(), 77.4485);
SET_CAM_BEHIND_PED(GetPlayerPed());
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_IN(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
pWarpInt = 1;
iTextInt = 1;
}
}
}
// Display Intro Text Once PLayer Teleported
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("GANG WAR");
WAIT(4000);
Print("Kill All Gang Members And Boss To Get Into Next Wave");
WAIT(2000);
zWarInt = 0;
iTextInt = 0;
}
}
// Display Gang War Reseted Text If Player Die
void TextReset(void)
{
if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
{
WAIT(3000);
Print("You Died Gang War Reseted");
WAIT(4000);
Print("Get Back Into War Zone");
zWarInt = 0;
rTextInt = 0;
}
}
// Manage Death/Reset
void PlayerDeathReset(void)
{
if(IS_CHAR_DEAD(GetPlayerPed()))
{
zWarInt = 15;
rTextInt = 1;
}
}
// Spawn Enemy Gang Shortcut
void SpawnGang(void)
{
SpawnA(MODEL_M_Y_GIRI_LO_01 , WEAPON_PISTOL, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GIRI_LO_02, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GIRI_LO_01 , WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GIRI_LO_02, WEAPON_SHOTGUN, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GIRI_LO_01 , WEAPON_PISTOL, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GIRI_LO_02, WEAPON_SHOTGUN, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GIRI_LO_01 , WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GIRI_LO_02, WEAPON_SHOTGUN, -2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
{
if(zWarInt == 0)
{
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1162.8527, 735.9461, 35.4042, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 1;
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1144.3295, 753.9232, 35.1854, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1133.4117, 726.7820, 35.3760, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 3;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1119.2885, 734.7713, 34.9804, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Gang War 5th Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1144.0258, 712.7090, 36.4954, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1119.5525, 714.0245, 35.8228, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1135.6086, 754.1855, 34.7872, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 7;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1071.7274, 743.1567, 33.9569, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Gang War 9th Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1039.4810, 745.3546, 31.9033, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1011.3513, 744.9771, 35.4511, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 1007.0865, 744.4248, 30.7183, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 11;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 980.9754, 739.2982, 35.4511, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Gang War Final Wave");
SpawnBoss(MODEL_M_Y_GIRI_LO_03, 980.9993, 739.1968, 40.1745, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 13;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped))
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda))
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb))
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc))
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd))
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede))
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf))
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg))
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh))
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
}
}
Here's my script example :
(v 1.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;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 80.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
REMOVE_BLIP(pblip);
}
// Set & Spawn Enemy Boss At Requested Coordinates
void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
{
REQUEST_MODEL(modelBoss);
while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
ADD_ARMOUR_TO_CHAR(zped, 5000);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
UpdateWeaponOfPed(zped, weapon);
SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zped, &bzPed);
GIVE_PED_FAKE_NETWORK_NAME(zped, "ALB Boss", 255, 140, 0, 255);
EnemySettings(zped, bzPed);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
}
// Set & Spawn Enemy(A) Near Boss
void SpawnA(uint modelza, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelza);
while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpeda, weapon);
SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
GIVE_PED_FAKE_NETWORK_NAME(zpeda, "ALB", 255, 140, 0, 255);
EnemySettings(zpeda, bzPeda);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
}
// Set & Spawn Enemy(B) Near Boss
void SpawnB(uint modelzb, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzb);
while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedb, weapon);
SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
GIVE_PED_FAKE_NETWORK_NAME(zpedb, "ALB", 255, 140, 0, 255);
EnemySettings(zpedb, bzPedb);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
}
// Set & spawn Enemy(C) Near Boss
void SpawnC(uint modelzc, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzc);
while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedc, weapon);
SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
GIVE_PED_FAKE_NETWORK_NAME(zpedc, "ALB", 255, 140, 0, 255);
EnemySettings(zpedc, bzPedc);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
}
// Set & Spawn Enemy(D) Near Boss
void SpawnD(uint modelzd, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzd);
while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedd, weapon);
SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
GIVE_PED_FAKE_NETWORK_NAME(zpedd, "ALB", 255, 140, 0, 255);
EnemySettings(zpedd, bzPedd);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
}
// Set & Spawn Enemy(E) Near Boss
void SpawnE(uint modelze, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelze);
while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpede, weapon);
SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpede, &bzPede);
GIVE_PED_FAKE_NETWORK_NAME(zpede, "ALB", 255, 140, 0, 255);
EnemySettings(zpede, bzPede);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
}
// Set & Spawn Enemy(F) Near Boss
void SpawnF(uint modelzf, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzf);
while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedf, weapon);
SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
GIVE_PED_FAKE_NETWORK_NAME(zpedf, "ALB", 255, 140, 0, 255);
EnemySettings(zpedf, bzPedf);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
}
// Set & Spawn Enemy(G) Near Boss
void SpawnG(uint modelzg, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzg);
while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedg, weapon);
SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
GIVE_PED_FAKE_NETWORK_NAME(zpedg, "ALB", 255, 140, 0, 255);
EnemySettings(zpedg, bzPedg);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
}
// Set & Spawn enemy(H) Near Boss
void SpawnH(uint modelzh, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzh);
while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedh, weapon);
SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
GIVE_PED_FAKE_NETWORK_NAME(zpedh, "ALB", 255, 140, 0, 255);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(1319.3314, 1686.1885, 16.7973, 0.1349);
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = 1319.3514, y = 1686.1885, z = 16.7973;
SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
LOAD_SCENE(x, y, z);
WAIT(500);
SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
SET_CHAR_HEADING(GetPlayerPed(), 0.1349);
SET_CAM_BEHIND_PED(GetPlayerPed());
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_IN(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
pWarpInt = 1;
iTextInt = 1;
}
}
}
// Display Intro Text Once PLayer Teleported
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("GANG WAR");
WAIT(4000);
Print("Kill All Gang Members And Boss To Get Into Next Wave");
WAIT(2000);
zWarInt = 0;
iTextInt = 0;
}
}
// Display Gang War Reseted Text If Player Die
void TextReset(void)
{
if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
{
WAIT(3000);
Print("You Died Gang War Reseted");
WAIT(4000);
Print("Get Back Into War Zone");
zWarInt = 0;
rTextInt = 0;
}
}
// Manage Death/Reset
void PlayerDeathReset(void)
{
if(IS_CHAR_DEAD(GetPlayerPed()))
{
zWarInt = 15;
rTextInt = 1;
}
}
// Spawn Enemy Gang Shortcut
void SpawnGang(void)
{
SpawnA(MODEL_M_Y_GALB_LO_01, WEAPON_PISTOL, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_GALB_LO_02, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_GALB_LO_03, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_GALB_LO_01, WEAPON_SHOTGUN, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_GALB_LO_02, WEAPON_PISTOL, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_GALB_LO_03, WEAPON_SHOTGUN, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_GALB_LO_01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_GALB_LO_02, WEAPON_SHOTGUN, -2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0)
{
if(zWarInt == 0)
{
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1287.5402, 1722.2091, 16.3997, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 1;
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1345.1384, 1682.8303, 16.7339, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1333.4918, 1673.5127, 21.5093, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 3;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1405.0347, 1732.4686, 17.0365, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Gang War 5th Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1319.5614, 1687.0641, 16.8922, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1337.8202, 1737.7586, 15.3060, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1315.7974, 1735.7902, 15.3485, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 7;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1315.5637, 1749.0973, 11.0581, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Gang War 9th Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1323.3473, 1761.8531, 8.9770, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1322.0519, 1778.1355, 8.8304, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1344.1628, 1754.9323, 17.0608, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 11;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1314.6516, 1747.7993, 11.0581, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Gang War Final Wave");
SpawnBoss(MODEL_M_Y_GALB_LO_04, 1316.7258, 1735.8513, 15.2958, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 13;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped))
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda))
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb))
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc))
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd))
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede))
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf))
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg))
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh))
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
}
}
- thoses scripts are meant to be use with modmanager.
- activate only one war at time.
Gang-wars info's :
- thoses are survival gang-wars .
- each war have a total of 13 waves and 9 gang members will spawn for each wave.
- kill all of them for next wave to start. ( similar to GTA SA gang-wars )
- if you die , war waves will be reseted.
so , this will be the base of this ongoing project of mine ... i plan on making it better and i shall post more script examples featuring other gangs and war locations .
again , i wont post any " ready-to-use " file , but my script examples are for anyone to use or modify .
some credits goes to :
- JDMAlex ( for some shortcut structure and ped spawning base source )
- Three-Socks ( for his teleport structure , XYZ display and his amazing modmanager )
... enjoy the gang-war !!
Ped Wars :
this section will be for created wars using ped models that are not Official Gangs in the game ... basicly various ped models will be used to create a theme gang .
i will also use thoses script examples to test or preview new features that may be added later in Gang-War .
Sex Workers Ped-War :
this war is a request from nativesith & tthousand , it also include a preview of ENEMY DRIVE-BY CAR feature ( in wave 1 of war ) that im still working on ...
Here's my script example :
(v 1.0)
//Core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx, EGy, EGz;
float DBx, DBy, DBz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
Ped zpedi;
Ped zpedj;
// Drive-By Vehicle handle
Vehicle gcar;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
Blip bgcar;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
boolean zPediInt = 0;
boolean zPedjInt = 0;
// DriveBy Car Spawned
boolean gcarInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 80.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
}
// DriveBy Enemy Settings
void DriveBySettings(uint ptype)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 150.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
REMOVE_BLIP(pblip);
}
// Set & Spawn Enemy Boss At Requested Coordinates
void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
{
REQUEST_MODEL(modelBoss);
while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
ADD_ARMOUR_TO_CHAR(zped, 5000);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
UpdateWeaponOfPed(zped, weapon);
SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zped, &bzPed);
GIVE_PED_FAKE_NETWORK_NAME(zped, "Pimp Boss", 134, 68, 110, 255);
EnemySettings(zped, bzPed);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
}
// Set & Spawn Enemy(A) Near Boss
void SpawnA(uint modelza, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelza);
while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpeda, weapon);
SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
GIVE_PED_FAKE_NETWORK_NAME(zpeda, "XXX", 134, 68, 110, 255);
EnemySettings(zpeda, bzPeda);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
}
// Set & Spawn Enemy(B) Near Boss
void SpawnB(uint modelzb, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzb);
while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedb, weapon);
SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
GIVE_PED_FAKE_NETWORK_NAME(zpedb, "XXX", 134, 68, 110, 255);
EnemySettings(zpedb, bzPedb);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
}
// Set & spawn Enemy(C) Near Boss
void SpawnC(uint modelzc, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzc);
while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedc, weapon);
SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
GIVE_PED_FAKE_NETWORK_NAME(zpedc, "XXX", 134, 68, 110, 255);
EnemySettings(zpedc, bzPedc);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
}
// Set & Spawn Enemy(D) Near Boss
void SpawnD(uint modelzd, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzd);
while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedd, weapon);
SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
GIVE_PED_FAKE_NETWORK_NAME(zpedd, "XXX", 134, 68, 110, 255);
EnemySettings(zpedd, bzPedd);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
}
// Set & Spawn Enemy(E) Near Boss
void SpawnE(uint modelze, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelze);
while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpede, weapon);
SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpede, &bzPede);
GIVE_PED_FAKE_NETWORK_NAME(zpede, "XXX", 134, 68, 110, 255);
EnemySettings(zpede, bzPede);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
}
// Set & Spawn Enemy(F) Near Boss
void SpawnF(uint modelzf, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzf);
while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedf, weapon);
SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
GIVE_PED_FAKE_NETWORK_NAME(zpedf, "XXX", 134, 68, 110, 255);
EnemySettings(zpedf, bzPedf);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
}
// Set & Spawn Enemy(G) Near Boss
void SpawnG(uint modelzg, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzg);
while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedg, weapon);
SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
GIVE_PED_FAKE_NETWORK_NAME(zpedg, "XXX", 134, 68, 110, 255);
EnemySettings(zpedg, bzPedg);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
}
// Set & Spawn enemy(H) Near Boss
void SpawnH(uint modelzh, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzh);
while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedh, weapon);
SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
GIVE_PED_FAKE_NETWORK_NAME(zpedh, "XXX", 134, 68, 110, 255);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set & Spawn enemy(I) Near DriveBy Car
void SpawnI(uint modelzi, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzi);
while (!HAS_MODEL_LOADED(modelzi)) WAIT(0);
GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(gcar, 0, offset_y , 0, &DBx, &DBy, &DBz);
CREATE_CHAR(16, modelzi, DBx,DBy,DBz, &zpedi, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedi, EGx, EGy, EGz, 150.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "XXX", 134, 68, 110, 255);
DriveBySettings(zpedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) Near DriveBy Car
void SpawnJ(uint modelzj, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(gcar, 0, offset_y , 0, &DBx, &DBy, &DBz);
CREATE_CHAR(16, modelzj, DBx,DBy,DBz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "XXX", 134, 68, 110, 255);
DriveBySettings(zpedj);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzj);
}
// Spawn Drive-By Vehicle
void SpawnDriveByVehicle(uint modelgcar, float Vx, float Vy, float Vz)
{
REQUEST_MODEL(modelgcar);
while (!HAS_MODEL_LOADED(modelgcar)) WAIT(0);
CREATE_CAR(modelgcar, Vx, Vy, Vz, &gcar, true);
ADD_BLIP_FOR_CAR(gcar, &bgcar);
SET_BLIP_AS_FRIENDLY(bgcar, FALSE);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelgcar);
return gcar;
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(1216.2084, 1655.5798, 16.6523, 49.2072);
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = 1216.2084, y = 1655.5798, z = 16.6523;
SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
LOAD_SCENE(x, y, z);
WAIT(500);
SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
SET_CHAR_HEADING(GetPlayerPed(), 49.2072);
SET_CAM_BEHIND_PED(GetPlayerPed());
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_IN(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
pWarpInt = 1;
iTextInt = 1;
}
}
}
// Display Intro Text Once PLayer Teleported
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("GANG WAR");
WAIT(4000);
Print("Kill All Gang Members And Boss To Get Into Next Wave");
WAIT(2000);
zWarInt = 0;
iTextInt = 0;
}
}
// Display Gang War Reseted Text If Player Die
void TextReset(void)
{
if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
{
WAIT(3000);
Print("You Died Gang War Reseted");
WAIT(4000);
Print("Get Back Into War Zone");
zWarInt = 0;
rTextInt = 0;
}
}
// Manage Death/Reset
void PlayerDeathReset(void)
{
if(IS_CHAR_DEAD(GetPlayerPed()))
{
zWarInt = 15;
rTextInt = 1;
}
}
// Spawn Enemy Gang Shortcut
void SpawnGang(void)
{
SpawnA(MODEL_F_Y_HOOKER_01, WEAPON_PISTOL, 1);
zPedaInt = 1;
SpawnB(MODEL_F_Y_HOOKER_03, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_F_Y_STRIPPERC01, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_F_Y_STRIPPERC02, WEAPON_SHOTGUN, 2);
zPeddInt = 1;
SpawnE(MODEL_F_Y_HOOKER_01, WEAPON_PISTOL, -1);
zPedeInt = 1;
SpawnF(MODEL_F_Y_HOOKER_03, WEAPON_SHOTGUN, -1);
zPedfInt = 1;
SpawnG(MODEL_F_Y_STRIPPERC01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_F_Y_STRIPPERC02, WEAPON_SHOTGUN, -2);
zPedhInt = 1;
}
void SpawnDriveByGang(void)
{
SpawnI(MODEL_F_Y_STRIPPERC01, WEAPON_MICRO_UZI, -3);
zPediInt = 1;
SpawnJ(MODEL_F_Y_HOOKER_01, WEAPON_PISTOL, 3);
zPedjInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1191.2720, 1719.3501, 16.6661, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_VOODOO, 1164.0028, 1656.9203, 16.6896);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnDriveByGang();
WAIT(1000);
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedj, gcar, 0);
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1234.8771, 1732.5248, 10.5925, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1176.8352, 1709.3694, 16.6644, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 3;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1243.3951, 1692.8568, 21.1842, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Gang War 5th Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1195.5837, 1701.2125, 24.7544, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1159.5916, 1659.1923, 16.7126, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1146.6758, 1680.3854, 16.7186, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 7;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1206.7998, 1706.5809, 16.6663, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Gang War 9th Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1137.3760, 1693.1223, 10.4193, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1192.1111, 1715.4387, 16.6658, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1195.3711, 1680.9868, 16.7241, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 11;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1195.8854, 1644.5896, 16.6734, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Gang War Final Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1149.7596, 1615.2897, 16.5732, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 13;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped))
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda))
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb))
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc))
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd))
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede))
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf))
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg))
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh))
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
// Remove Enemy(I) Logic
void RemoveI(void)
{
if(DOES_CHAR_EXIST(zpedi))
{
SET_CHAR_WANTED_BY_POLICE(zpedi, FALSE);
if(IS_CHAR_DEAD(zpedi) || IS_CHAR_DEAD(GetPlayerPed()))
{
EXPLODE_CHAR_HEAD(zpedi);
TASK_DIE(zpedi);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(zpedi);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedi);
zPediInt = 0;
}
}
}
// Remove Enemy(J) Logic
void RemoveJ(void)
{
if(DOES_CHAR_EXIST(zpedj))
{
SET_CHAR_WANTED_BY_POLICE(zpedj, FALSE);
if(IS_CHAR_DEAD(zpedj) || IS_CHAR_DEAD(GetPlayerPed()))
{
EXPLODE_CHAR_HEAD(zpedj);
TASK_DIE(zpedj);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(zpedj);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedj);
zPedjInt = 0;
}
}
}
// Explode & Remove Enemy Car After Wave
void RemoveCar(void)
{
if(DOES_VEHICLE_EXIST(gcar))
{
if(IS_CAR_DEAD(gcar) || IS_CHAR_DEAD(GetPlayerPed()) || gcarInt == 2)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
RemoveI();
RemoveJ();
RemoveCar();
}
}








Recent Threads

Recent Comments
vBulletin Message