GTA IV Ped-Wars Minigame :
this section will be for created wars using ped models that are not Official Gangs in the game ... basicly various ped models will be used to create a theme gang .
i will also use thoses script examples to test or preview new features that may be added later in Gang-War .
EDIT: this section will also host Ped-Wars made by users.
Sex Workers Ped-War :
this war is a request from nativesith & tthousand , it also include a preview of ENEMY DRIVE-BY CAR feature ( in wave 1 of war ) that im still working on ...
Here's my script example :
(v 1.1)
- added "task car mission ped target "
- added " set car heading "
note : this greatly improve ENEMY DRIVE-BY CAR , only fine tweaking left to be done before adding it to all gang-wars .
Code:
//Core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx, EGy, EGz;
float DBx, DBy, DBz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
Ped zpedi;
Ped zpedj;
// Drive-By Vehicle handle
Vehicle gcar;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
Blip bgcar;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
boolean zPediInt = 0;
boolean zPedjInt = 0;
// DriveBy Car Spawned
boolean gcarInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 80.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_WHITE);
}
// DriveBy Enemy Settings
void DriveBySettings(uint ptype)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 40);
SET_SENSE_RANGE(ptype, 150.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, FALSE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(ptype);
REMOVE_BLIP(pblip);
}
// Set & Spawn Enemy Boss At Requested Coordinates
void SpawnBoss(uint modelBoss, float xb, float yb, float zb, uint weapon)
{
REQUEST_MODEL(modelBoss);
while (!HAS_MODEL_LOADED(modelBoss)) WAIT(0);
CREATE_CHAR(16, modelBoss, xb, yb, zb, &zped, true);
ADD_ARMOUR_TO_CHAR(zped, 5000);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zped, xb, yb, zb, 20.0);
UpdateWeaponOfPed(zped, weapon);
SET_CURRENT_CHAR_WEAPON(zped, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zped, &bzPed);
GIVE_PED_FAKE_NETWORK_NAME(zped, "Pimp Boss", 225, 225, 225, 255);
EnemySettings(zped, bzPed);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelBoss);
}
// Set & Spawn Enemy(A) Near Boss
void SpawnA(uint modelza, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelza);
while (!HAS_MODEL_LOADED(modelza)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelza, EGx,EGy,EGz, &zpeda, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpeda, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpeda, weapon);
SET_CURRENT_CHAR_WEAPON(zpeda, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpeda, &bzPeda);
GIVE_PED_FAKE_NETWORK_NAME(zpeda, "XXX", 225, 225, 225, 255);
EnemySettings(zpeda, bzPeda);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelza);
}
// Set & Spawn Enemy(B) Near Boss
void SpawnB(uint modelzb, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzb);
while (!HAS_MODEL_LOADED(modelzb)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzb, EGx,EGy,EGz, &zpedb, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedb, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedb, weapon);
SET_CURRENT_CHAR_WEAPON(zpedb, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedb, &bzPedb);
GIVE_PED_FAKE_NETWORK_NAME(zpedb, "XXX", 225, 225, 225, 255);
EnemySettings(zpedb, bzPedb);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzb);
}
// Set & spawn Enemy(C) Near Boss
void SpawnC(uint modelzc, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzc);
while (!HAS_MODEL_LOADED(modelzc)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzc, EGx,EGy,EGz, &zpedc, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedc, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedc, weapon);
SET_CURRENT_CHAR_WEAPON(zpedc, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedc, &bzPedc);
GIVE_PED_FAKE_NETWORK_NAME(zpedc, "XXX", 225, 225, 225, 255);
EnemySettings(zpedc, bzPedc);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzc);
}
// Set & Spawn Enemy(D) Near Boss
void SpawnD(uint modelzd, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzd);
while (!HAS_MODEL_LOADED(modelzd)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzd, EGx,EGy,EGz, &zpedd, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedd, EGx, EGy, EGz, 25.0);
UpdateWeaponOfPed(zpedd, weapon);
SET_CURRENT_CHAR_WEAPON(zpedd, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedd, &bzPedd);
GIVE_PED_FAKE_NETWORK_NAME(zpedd, "XXX", 225, 225, 225, 255);
EnemySettings(zpedd, bzPedd);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzd);
}
// Set & Spawn Enemy(E) Near Boss
void SpawnE(uint modelze, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelze);
while (!HAS_MODEL_LOADED(modelze)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelze, EGx,EGy,EGz, &zpede, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpede, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpede, weapon);
SET_CURRENT_CHAR_WEAPON(zpede, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpede, &bzPede);
GIVE_PED_FAKE_NETWORK_NAME(zpede, "XXX", 225, 225, 225, 255);
EnemySettings(zpede, bzPede);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelze);
}
// Set & Spawn Enemy(F) Near Boss
void SpawnF(uint modelzf, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzf);
while (!HAS_MODEL_LOADED(modelzf)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzf, EGx,EGy,EGz, &zpedf, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedf, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedf, weapon);
SET_CURRENT_CHAR_WEAPON(zpedf, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedf, &bzPedf);
GIVE_PED_FAKE_NETWORK_NAME(zpedf, "XXX", 225, 225, 225, 255);
EnemySettings(zpedf, bzPedf);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzf);
}
// Set & Spawn Enemy(G) Near Boss
void SpawnG(uint modelzg, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzg);
while (!HAS_MODEL_LOADED(modelzg)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzg, EGx,EGy,EGz, &zpedg, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedg, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedg, weapon);
SET_CURRENT_CHAR_WEAPON(zpedg, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedg, &bzPedg);
GIVE_PED_FAKE_NETWORK_NAME(zpedg, "XXX", 225, 225, 225, 255);
EnemySettings(zpedg, bzPedg);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzg);
}
// Set & Spawn enemy(H) Near Boss
void SpawnH(uint modelzh, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzh);
while (!HAS_MODEL_LOADED(modelzh)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zped, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzh, EGx,EGy,EGz, &zpedh, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedh, EGx, EGy, EGz, 30.0);
UpdateWeaponOfPed(zpedh, weapon);
SET_CURRENT_CHAR_WEAPON(zpedh, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedh, &bzPedh);
GIVE_PED_FAKE_NETWORK_NAME(zpedh, "XXX", 225, 225, 225, 255);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set & Spawn enemy(I) Near DriveBy Car
void SpawnI(uint modelzi, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzi);
while (!HAS_MODEL_LOADED(modelzi)) WAIT(0);
GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(gcar, 0, offset_y , 0, &DBx, &DBy, &DBz);
CREATE_CHAR(16, modelzi, DBx,DBy,DBz, &zpedi, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedi, EGx, EGy, EGz, 150.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
GIVE_PED_FAKE_NETWORK_NAME(zpedi, "XXX", 225, 225, 225, 255);
DriveBySettings(zpedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) Near DriveBy Car
void SpawnJ(uint modelzj, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(gcar, 0, offset_y , 0, &DBx, &DBy, &DBz);
CREATE_CHAR(16, modelzj, DBx,DBy,DBz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
GIVE_PED_FAKE_NETWORK_NAME(zpedj, "XXX", 225, 225, 225, 255);
DriveBySettings(zpedj);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzj);
}
// Spawn Drive-By Vehicle
void SpawnDriveByVehicle(uint modelgcar, float Vx, float Vy, float Vz)
{
REQUEST_MODEL(modelgcar);
while (!HAS_MODEL_LOADED(modelgcar)) WAIT(0);
CREATE_CAR(modelgcar, Vx, Vy, Vz, &gcar, true);
SET_CAR_HEADING(gcar, 227.2076);
ADD_BLIP_FOR_CAR(gcar, &bgcar);
SET_BLIP_AS_FRIENDLY(bgcar, FALSE);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_WHITE);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelgcar);
return gcar;
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(1216.2084, 1655.5798, 16.6523, 49.2072);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 99.0, 2, 0, 10);
}
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = 1216.2084, y = 1655.5798, z = 16.6523;
SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
LOAD_SCENE(x, y, z);
WAIT(500);
SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
SET_CHAR_HEADING(GetPlayerPed(), 49.2072);
SET_CAM_BEHIND_PED(GetPlayerPed());
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_IN(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
pWarpInt = 1;
iTextInt = 1;
}
}
}
// Display Intro Text Once PLayer Teleported
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("GANG WAR");
WAIT(4000);
Print("Kill All Gang Members And Boss To Get Into Next Wave");
WAIT(2000);
zWarInt = 0;
iTextInt = 0;
}
}
// Display Gang War Reseted Text If Player Die
void TextReset(void)
{
if(!IS_CHAR_DEAD(GetPlayerPed()) && rTextInt == 1)
{
WAIT(3000);
Print("You Died Gang War Reseted");
WAIT(4000);
Print("Get Back Into War Zone");
zWarInt = 0;
rTextInt = 0;
}
}
// Manage Death/Reset
void PlayerDeathReset(void)
{
if(IS_CHAR_DEAD(GetPlayerPed()))
{
zWarInt = 15;
rTextInt = 1;
}
}
// Spawn Enemy Gang Shortcut
void SpawnGang(void)
{
SpawnA(MODEL_F_Y_HOOKER_01, WEAPON_PISTOL, 1);
zPedaInt = 1;
SpawnB(MODEL_F_Y_HOOKER_03, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_F_Y_STRIPPERC01, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_F_Y_STRIPPERC02, WEAPON_SHOTGUN, 2);
zPeddInt = 1;
SpawnE(MODEL_F_Y_HOOKER_01, WEAPON_PISTOL, -1);
zPedeInt = 1;
SpawnF(MODEL_F_Y_HOOKER_03, WEAPON_SHOTGUN, -1);
zPedfInt = 1;
SpawnG(MODEL_F_Y_STRIPPERC01, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_F_Y_STRIPPERC02, WEAPON_SHOTGUN, -2);
zPedhInt = 1;
}
void SpawnDriveByGang(void)
{
SpawnI(MODEL_F_Y_STRIPPERC01, WEAPON_MICRO_UZI, -3);
zPediInt = 1;
SpawnJ(MODEL_F_Y_HOOKER_01, WEAPON_PISTOL, 3);
zPedjInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1191.2720, 1719.3501, 16.6661, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_VOODOO, 1164.0028, 1656.9203, 16.6896);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnDriveByGang();
WAIT(1000);
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedj, gcar, 0);
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1234.8771, 1732.5248, 10.5925, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1176.8352, 1709.3694, 16.6644, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 3;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1243.3951, 1692.8568, 21.1842, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Gang War 5th Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1195.5837, 1701.2125, 24.7544, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1159.5916, 1659.1923, 16.7126, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1146.6758, 1680.3854, 16.7186, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 7;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1206.7998, 1706.5809, 16.6663, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Gang War 9th Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1137.3760, 1693.1223, 10.4193, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1192.1111, 1715.4387, 16.6658, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1195.3711, 1680.9868, 16.7241, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 11;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_RUNNER, 1195.8854, 1644.5896, 16.6734, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Gang War Final Wave");
SpawnBoss(MODEL_M_Y_SHADY_02, 1149.7596, 1615.2897, 16.5732, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 13;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped))
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda))
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb))
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc))
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd))
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede))
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf))
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg))
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh))
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
// Remove Enemy(I) Logic
void RemoveI(void)
{
if(DOES_CHAR_EXIST(zpedi))
{
SET_CHAR_WANTED_BY_POLICE(zpedi, FALSE);
if(IS_CHAR_DEAD(zpedi) || IS_CHAR_DEAD(GetPlayerPed()))
{
EXPLODE_CHAR_HEAD(zpedi);
TASK_DIE(zpedi);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(zpedi);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedi);
zPediInt = 0;
}
}
}
// Remove Enemy(J) Logic
void RemoveJ(void)
{
if(DOES_CHAR_EXIST(zpedj))
{
SET_CHAR_WANTED_BY_POLICE(zpedj, FALSE);
if(IS_CHAR_DEAD(zpedj) || IS_CHAR_DEAD(GetPlayerPed()))
{
EXPLODE_CHAR_HEAD(zpedj);
TASK_DIE(zpedj);
REMOVE_FAKE_NETWORK_NAME_FROM_PED(zpedj);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedj);
zPedjInt = 0;
}
}
}
// Explode & Remove Enemy Car After Wave
void RemoveCar(void)
{
if(DOES_VEHICLE_EXIST(gcar))
{
if(IS_CAR_DEAD(gcar) || IS_CHAR_DEAD(GetPlayerPed()) || gcarInt == 2)
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
RemoveI();
RemoveJ();
RemoveCar();
}
}
Zombies Ped-War :
this is my test file for new driveby vehicles, feature driveby boat & helicopter ... thoses should be included in gang-war 2.3 or 2.4
Code:
//Core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx, EGy, EGz;
float DBx, DBy, DBz;
float hGx, hGy, hGz;
// 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;
Ped zpedk;
Ped zpedl;
Ped zpedm;
// Drive-By Vehicle handle
Vehicle gcar;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
Blip bzPedi;
Blip bzPedj;
Blip bzPedk;
Blip bzPedl;
Blip bzPedm;
Blip bgcar;
Blip bbase;
// 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;
boolean zPedkInt = 0;
boolean zPedlInt = 0;
boolean zPedmInt = 0;
// Enemy base blip & guards logic
boolean baseInt = 0;
boolean basegInt = 0;
boolean btest = 0;
// DriveBy Car Spawned
boolean gcarInt = 0;
//War Waves Logic
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 45);
SET_SENSE_RANGE(ptype, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_COMPONENT_VARIATION(ptype, 0, 3, 3);
SET_CHAR_COMPONENT_VARIATION(ptype, 1, 4, 1);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_YELLOW);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
DrivebySettings(zpedg);
DrivebySettings(zpedh);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_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);
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);
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);
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);
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);
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);
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);
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);
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);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set & Spawn enemy(I) Near DriveBy Car
void SpawnI(uint modelzi, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzi);
while (!HAS_MODEL_LOADED(modelzi)) WAIT(0);
GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(gcar, 0, offset_y , 0, &DBx, &DBy, &DBz);
CREATE_CHAR(16, modelzi, DBx,DBy,DBz, &zpedi, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedi, EGx, EGy, EGz, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
SET_CHAR_CAN_BE_KNOCKED_OFF_BIKE(zpedi, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(zpedi, FALSE);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
EnemySettings(zpedj, bzPedj);
SET_PED_PATH_MAY_USE_CLIMBOVERS(zpedj, FALSE);
SET_PED_PATH_MAY_DROP_FROM_HEIGHT(zpedj, FALSE);
SET_PED_PATH_MAY_USE_LADDERS(zpedj, FALSE);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzj);
}
// Set & Spawn Enemy(K)
void SpawnK(uint modelzk, float Gx, float Gy, float Gz, uint weapon)
{
REQUEST_MODEL(modelzk);
while (!HAS_MODEL_LOADED(modelzk)) WAIT(0);
CREATE_CHAR(16, modelzk, Gx,Gy,Gz, &zpedk, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedk, Gx, Gy, Gz, 20.0);
UpdateWeaponOfPed(zpedk, weapon);
SET_CURRENT_CHAR_WEAPON(zpedk, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedk, &bzPedk);
EnemySettings(zpedk, bzPedk);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzk);
}
// Set & Spawn Enemy(L) Near K
void SpawnL(uint modelzl, uint weapon, float offset_y)
{
REQUEST_MODEL(modelzl);
while (!HAS_MODEL_LOADED(modelzl)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zpedk, 0, offset_y , 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzl, EGx,EGy,EGz, &zpedl, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedl, EGx, EGy, EGz, 20.0);
UpdateWeaponOfPed(zpedl, weapon);
SET_CURRENT_CHAR_WEAPON(zpedl, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedl, &bzPedl);
EnemySettings(zpedl, bzPedl);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzl);
}
// Set & spawn Enemy(M) Near K
void SpawnM(uint modelzm, uint weapon ,float offset_x)
{
REQUEST_MODEL(modelzm);
while (!HAS_MODEL_LOADED(modelzm)) WAIT(0);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(zpedk, offset_x, 0, 0, &EGx, &EGy, &EGz);
CREATE_CHAR(16, modelzm, EGx,EGy,EGz, &zpedm, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedm, EGx, EGy, EGz, 20.0);
UpdateWeaponOfPed(zpedm, weapon);
SET_CURRENT_CHAR_WEAPON(zpedm, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedm, &bzPedm);
EnemySettings(zpedm, bzPedm);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzm);
}
// Spawn Drive-By Vehicle
void SpawnDriveByVehicle(uint modelgcar, float Vx, float Vy, float Vz)
{
REQUEST_MODEL(modelgcar);
while (!HAS_MODEL_LOADED(modelgcar)) WAIT(0);
CREATE_CAR(modelgcar, Vx, Vy, Vz, &gcar, true);
ADD_BLIP_FOR_CAR(gcar, &bgcar);
SET_BLIP_AS_FRIENDLY(bgcar, FALSE);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_YELLOW);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelgcar);
return gcar;
}
// Set Various Player/World Settings
void MapSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
if(baseInt == 0)
{
ADD_BLIP_FOR_COORD(824.9642, 951.3129, 1.4325, &bbase);
CHANGE_BLIP_ALPHA(bbase, 255);
CHANGE_BLIP_SPRITE(bbase, BLIP_MULTIPLAYER_TUTORIAL);
CHANGE_BLIP_NAME_FROM_ASCII(bbase, "Ped-War Zombies");
CHANGE_BLIP_COLOUR(bbase, BLIP_COLOR_YELLOW);
baseInt = 1;
}
else if(baseInt == 1)
{
float xb = 824.9642, yb = 951.3129, zb = 1.4325;
float xpb, ypb, zpb, dist;
GET_CHAR_COORDINATES(GetPlayerPed(), &xpb, &ypb, &zpb);
GET_DISTANCE_BETWEEN_COORDS_3D(xb, yb, zb, xpb, ypb, zpb, &dist);
if(dist < 80.0 && basegInt == 0)
{
SpawnK(MODEL_M_Y_MULTIPLAYER, 824.9642, 951.3129, 1.4325, WEAPON_MICRO_UZI);
zPedkInt = 1;
SpawnL(MODEL_M_Y_MULTIPLAYER, WEAPON_SHOTGUN, 1);
zPedlInt = 1;
SpawnM(MODEL_M_Y_MULTIPLAYER, WEAPON_SHOTGUN, 1);
zPedmInt = 1;
basegInt = 1;
}
else if(dist > 160.0 && basegInt == 1)
{
zPedkInt = 2;
zPedlInt = 2;
zPedmInt = 2;
basegInt = 0;
}
}
else if (baseInt == 2)
{
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);
FLASH_BLIP(bbase, TRUE);
}
}
}
void WarProvoked(void)
{
if(baseInt == 1 && basegInt == 1)
{
if(zPedkInt == 0 && zPedlInt == 0 && zPedmInt == 0)
{
iTextInt = 1;
baseInt = 2;
}
}
}
// Display Intro Text
void TextIntro(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && iTextInt == 1)
{
Print("you provoked a GANG WAR");
WAIT(4000);
Print("Kill All Gang Members 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_MULTIPLAYER, WEAPON_DEAGLE, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_MULTIPLAYER, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_MULTIPLAYER, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_MULTIPLAYER, WEAPON_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_M_Y_MULTIPLAYER, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_M_Y_MULTIPLAYER, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_M_Y_MULTIPLAYER, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_M_Y_MULTIPLAYER, WEAPON_PISTOL, -2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
Print("Gang War 1st Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 869.7471, 938.1767, 6.6970, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_DINGHY, 779.5449, 779.7450, 0.475);
SET_CAR_HEADING(gcar, 1.5517);
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_MULTIPLAYER, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Gang War 2nd Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 880.0684, 927.7195, 11.9120, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 2;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 2)
{
Print("You Survived 2nd Wave");
WAIT(4000);
Print("Gang War 3rd Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 892.3710, 942.8923, 8.7248, WEAPON_MICRO_UZI);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_MULTIPLAYER, 932.0607, 935.9136, 21.0972, WEAPON_SNIPERRIFLE);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Gang War 4th Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 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_MULTIPLAYER, 906.8463, 964.9186, 8.2431, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_MAVERICK, 861.4164, 872.4223, 14.1174);
SET_CAR_HEADING(gcar, 42.4748);
zPedInt = 1;
zWarInt = 5;
gcarInt = 3;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_MULTIPLAYER, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Gang War 6th Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 933.8802, 963.6290, 19.4431, WEAPON_DEAGLE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Gang War 7th Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 943.3989, 982.6749, 17.6959, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_MULTIPLAYER, 969.7331, 978.6177, 21.3347, WEAPON_SNIPERRIFLE);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Gang War 8th Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 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_MULTIPLAYER, 888.9360, 917.5287, 16.9200, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnDriveByVehicle(MODEL_MAVERICK, 861.4164, 872.4223, 14.1174);
SET_CAR_HEADING(gcar, 42.4748);
zPedInt = 1;
zWarInt = 9;
gcarInt = 3;
if(DOES_VEHICLE_EXIST(gcar))
{
SpawnI(MODEL_M_Y_MULTIPLAYER, WEAPON_MICRO_UZI, -3);
WAIT(1000);
InCarSettings();
WARP_CHAR_INTO_CAR(zpedi, gcar);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedf, gcar, 0);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedg, gcar, 1);
WARP_CHAR_INTO_CAR_AS_PASSENGER(zpedh, gcar, 2);
zPediInt = 1;
}
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Gang War 10th Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 940.6735, 918.8997, 22.4565, WEAPON_MP5);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Gang War 11th Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 915.6450, 921.5864, 20.0843, WEAPON_AK47);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_MULTIPLAYER, 926.6002, 950.7131, 19.4465, WEAPON_SNIPERRIFLE);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Gang War 12th Wave");
SpawnBoss(MODEL_M_Y_MULTIPLAYER, 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_MULTIPLAYER, 904.4918, 945.0982, 8.2989, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_MULTIPLAYER, 931.3279, 946.9364, 22.5305, WEAPON_M40A1);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Gang War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
FLASH_BLIP(bbase, FALSE);
baseInt = 1;
basegInt = 0;
zWarInt = 15;
}
}
}
// Remove Enemy Boss Logic
void RemoveBoss(void)
{
if (DOES_CHAR_EXIST(zped) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zped, FALSE);
if(IS_CHAR_DEAD(zped) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zped, bzPed);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zped);
zPedInt = 0;
}
}
}
// Remove Enemy(A) Logic
void RemoveA(void)
{
if(DOES_CHAR_EXIST(zpeda) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpeda, FALSE);
if(IS_CHAR_DEAD(zpeda) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpeda, bzPeda);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpeda);
zPedaInt = 0;
}
}
}
// Remove Enemy(B) Logic
void RemoveB(void)
{
if(DOES_CHAR_EXIST(zpedb) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpedb, FALSE);
if(IS_CHAR_DEAD(zpedb) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedb, bzPedb);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedb);
zPedbInt = 0;
}
}
}
// Remove Enemy(C) Logic
void RemoveC(void)
{
if(DOES_CHAR_EXIST(zpedc) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpedc, FALSE);
if(IS_CHAR_DEAD(zpedc) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedc, bzPedc);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedc);
zPedcInt = 0;
}
}
}
// Remove Enemy(D) Logic
void RemoveD(void)
{
if(DOES_CHAR_EXIST(zpedd) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpedd, FALSE);
if(IS_CHAR_DEAD(zpedd) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedd, bzPedd);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedd);
zPeddInt = 0;
}
}
}
// Remove Enemy(E) Logic
void RemoveE(void)
{
if(DOES_CHAR_EXIST(zpede) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpede, FALSE);
if(IS_CHAR_DEAD(zpede) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpede, bzPede);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpede);
zPedeInt = 0;
}
}
}
// Remove enemy(F) Logic
void RemoveF(void)
{
if(DOES_CHAR_EXIST(zpedf) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpedf, FALSE);
if(IS_CHAR_DEAD(zpedf) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedf, bzPedf);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedf);
zPedfInt = 0;
}
}
}
// Remove Enemy(G) Logic
void RemoveG(void)
{
if(DOES_CHAR_EXIST(zpedg) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpedg, FALSE);
if(IS_CHAR_DEAD(zpedg) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedg, bzPedg);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedg);
zPedgInt = 0;
}
}
}
// Remove Enemy(H) Logic
void RemoveH(void)
{
if(DOES_CHAR_EXIST(zpedh) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpedh, FALSE);
if(IS_CHAR_DEAD(zpedh) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedh, bzPedh);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedh);
zPedhInt = 0;
}
}
}
// Remove Enemy(I) Logic
void RemoveI(void)
{
if(DOES_CHAR_EXIST(zpedi) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpedi, FALSE);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 60.0, 2, 0, 10);
}
if(gcarInt == 3 && zPediInt == 1)
{
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(GetPlayerPed(), 25.0, 0, 0, &hGx, &hGy, &hGz);
TASK_HELI_MISSION(zpedi, gcar, 0, 0, hGx, hGy, hGz, 4, 50.00, 30, -1.0, 70, 60);
}
if(IS_CHAR_DEAD(zpedi) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedi, bzPedi);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedi);
zPediInt = 0;
}
}
}
// Remove Enemy(J) Logic
void RemoveJ(void)
{
if(DOES_CHAR_EXIST(zpedj) && baseInt == 2)
{
SET_CHAR_WANTED_BY_POLICE(zpedj, FALSE);
if(IS_CHAR_DEAD(zpedj) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedj, bzPedj);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedj);
zPedjInt = 0;
}
}
}
// Remove Enemy(K) Logic
void RemoveK(void)
{
if(DOES_CHAR_EXIST(zpedk))
{
SET_CHAR_WANTED_BY_POLICE(zpedk, FALSE);
if(IS_CHAR_DEAD(zpedk) || zPedkInt == 2)
{
ClearEnemy(zpedk, bzPedk);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedk);
zPedkInt = 0;
}
}
}
// Remove Enemy(L) Logic
void RemoveL(void)
{
if(DOES_CHAR_EXIST(zpedl))
{
SET_CHAR_WANTED_BY_POLICE(zpedl, FALSE);
if(IS_CHAR_DEAD(zpedl) || zPedlInt == 2)
{
ClearEnemy(zpedl, bzPedl);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedl);
zPedlInt = 0;
}
}
}
// Remove Enemy(M) Logic
void RemoveM(void)
{
if(DOES_CHAR_EXIST(zpedm))
{
SET_CHAR_WANTED_BY_POLICE(zpedm, FALSE);
if(IS_CHAR_DEAD(zpedm) || zPedmInt == 2)
{
ClearEnemy(zpedm, bzPedm);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedm);
zPedmInt = 0;
}
}
}
// Explode & Remove Enemy Car After Wave
void RemoveCar(void)
{
if(DOES_VEHICLE_EXIST(gcar) && baseInt == 2)
{
if(IS_CAR_DEAD(gcar) || IS_CHAR_DEAD(GetPlayerPed()) || gcarInt == 2 || IsKeyPressed(DPAD_UP,TRIANGLE))
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) && baseInt == 2 )
{
Print("The Gang War Is Over");
WAIT(3000);
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0 && zPediInt == 0 && zPedjInt == 0)
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
FLASH_BLIP(bbase, FALSE);
baseInt = 1;
basegInt = 0;
zWarInt = 15;
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
MapSettings();
WarProvoked();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
RemoveI();
RemoveJ();
RemoveK();
RemoveL();
RemoveM();
RemoveCar();
QuitGangWar();
}
}
nativesith wars:
This is MULTI WAR! Which really is myself reflecting on the online play we had for aboot a month.
Going online in GTA IV one would see multiplayers all over. There was always someone trying to blow me to kingdom come with a RPG! They were like "Why won't you die?" Then I went KA BOOM!
Good times. Multi wars as it should ve been.
Code:
//core
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx, EGy, EGz;
float DBx, DBy, DBz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
Ped zpedi;
Ped zpedj;
// Drive-By Vehicle handle
Vehicle gcar;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
Blip bzPedi;
Blip bzPedj;
Blip bgcar;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
boolean zPediInt = 0;
boolean zPedjInt = 0;
// DriveBy Car Spawned
boolean gcarInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 45);
SET_SENSE_RANGE(ptype, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_RED);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_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);
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);
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);
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);
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);
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);
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);
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);
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);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set & Spawn enemy(I) Near DriveBy Car
void SpawnI(uint modelzi, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzi);
while (!HAS_MODEL_LOADED(modelzi)) WAIT(0);
GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(gcar, 0, offset_y , 0, &DBx, &DBy, &DBz);
CREATE_CHAR(16, modelzi, DBx,DBy,DBz, &zpedi, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedi, EGx, EGy, EGz, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
SET_CHAR_CAN_BE_KNOCKED_OFF_BIKE(zpedi, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(zpedi, FALSE);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
EnemySettings(zpedj, bzPedj);
SET_PED_PATH_MAY_USE_CLIMBOVERS(zpedj, FALSE);
SET_PED_PATH_MAY_DROP_FROM_HEIGHT(zpedj, FALSE);
SET_PED_PATH_MAY_USE_LADDERS(zpedj, FALSE);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzj);
}
// Spawn Drive-By Vehicle
void SpawnDriveByVehicle(uint modelgcar, float Vx, float Vy, float Vz)
{
REQUEST_MODEL(modelgcar);
while (!HAS_MODEL_LOADED(modelgcar)) WAIT(0);
CREATE_CAR(modelgcar, Vx, Vy, Vz, &gcar, true);
ADD_BLIP_FOR_CAR(gcar, &bgcar);
SET_BLIP_AS_FRIENDLY(bgcar, FALSE);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_RED);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelgcar);
return gcar;
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()))
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(-300.4960, 677.8065, 12.4096, 124.6267);
if(gcarInt == 1 && zPediInt == 1)
{
TASK_CAR_MISSION_PED_TARGET(zpedi, gcar, GetPlayerPed(), 2, 60.0, 2, 0, 10);
}
}
}
// Teleport player near war zone
void WarpToWar(void)
{
if(IS_PLAYER_PLAYING(GetPlayerIndex()) && pWarpInt == 0)
{
while (IS_SCREEN_FADING())
{
WAIT(0);
}
DO_SCREEN_FADE_OUT(500);
while (IS_SCREEN_FADING())
{
WAIT(0);
}
float x = -300.4997, y = 678.2755, z = 12.4094;
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("Multi WAR");
WAIT(4000);
Print("Kill EM All");
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 Multi War Reseted");
WAIT(4000);
Print("Get Back Into Multi 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_MULTIPLAYER, WEAPON_DEAGLE, 1);
zPedaInt = 1;
SpawnB(MODEL_M_Y_MULTIPLAYER, WEAPON_SHOTGUN, 1);
zPedbInt = 1;
SpawnC(MODEL_M_Y_MULTIPLAYER, WEAPON_MICRO_UZI, 2);
zPedcInt = 1;
SpawnD(MODEL_M_Y_MULTIPLAYER, WEAPON_BARETTA, 2);
zPeddInt = 1;
SpawnE(MODEL_F_Y_MULTIPLAYER, WEAPON_MP5, -1);
zPedeInt = 1;
SpawnF(MODEL_F_Y_MULTIPLAYER, WEAPON_PISTOL, -1);
zPedfInt = 1;
SpawnG(MODEL_F_Y_MULTIPLAYER, WEAPON_MICRO_UZI, -2);
zPedgInt = 1;
SpawnH(MODEL_F_Y_MULTIPLAYER, WEAPON_PISTOL, -2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
Print("Multi War 1st Wave");
SpawnBoss(MODEL_IG_BADMAN, -327.7130, 658.8873, 14.7505, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave");
WAIT(4000);
Print("Multi War 2nd Wave");
SpawnBoss(MODEL_IG_LILJACOB, -310.8735, 632.8878, 14.8938, WEAPON_RLAUNCHER);
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("Multi War 3rd Wave");
SpawnBoss(MODEL_IG_BRUCIE, -300.4997, 678.2755, 12.4094, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_MULTIPLAYER, -334.2978, 644.9096, 17.5564, WEAPON_RLAUNCHER);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave");
WAIT(4000);
Print("Multi War 4th Wave");
SpawnBoss(MODEL_IG_DWAYNE, -237.6251, 668.7616, 12.4091, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave");
WAIT(4000);
Print("Multi War 5th Wave");
SpawnBoss(MODEL_IG_JOHNNYBIKER, -204.4669, 666.6816, 13.5421, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
}
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave");
WAIT(4000);
Print("Multi War 6th Wave");
SpawnBoss(MODEL_IG_LUIS, -168.0925, 716.4803, 10.6335, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave");
WAIT(4000);
Print("Multi War 7th Wave");
SpawnBoss(MODEL_IG_PACKIE_MC, -103.5994, 655.6816, 13.0738, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_MULTIPLAYER, -74.8535, 647.4283, 16.4283 , WEAPON_RLAUNCHER);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave");
WAIT(4000);
Print("Multi War 8th Wave");
SpawnBoss(MODEL_IG_*******_X, -77.2026, 690.0826, 14.5870, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave");
WAIT(4000);
Print("Multi War 9th Wave");
SpawnBoss(MODEL_IG_PATHOS, -82.5475, 724.1247, 14.6205, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
if(DOES_VEHICLE_EXIST(gcar))
{
}
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave");
WAIT(4000);
Print("Multi War 10th Wave");
SpawnBoss(MODEL_IG_RAY_BOCCINO, -104.4981, 761.4913, 15.2955, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave");
WAIT(4000);
Print("Multi War 11th Wave");
SpawnBoss(MODEL_F_Y_HOOKER_03, -129.1469, 822.0797, 18.6308, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_MULTIPLAYER, -130.3441, 815.3864, 34.5654, WEAPON_RLAUNCHER);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave");
WAIT(4000);
Print("Multi War 12th Wave");
SpawnBoss(MODEL_F_Y_STRIPPERC01, -142.2373, 869.4619, 14.1630, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave");
WAIT(4000);
Print("Multi War Final Wave");
SpawnBoss(MODEL_IG_ROMAN, -80.1861, 824.0238, 17.3180, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_Y_MULTIPLAYER, -88.5677, 840.5977, 298.1373, WEAPON_RLAUNCHER);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave");
WAIT(4000);
Print("The Multi War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedi, bzPedi);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedi);
zPediInt = 0;
}
}
}
// Remove Enemy(J) Logic
void RemoveJ(void)
{
if(DOES_CHAR_EXIST(zpedj))
{
SET_CHAR_WANTED_BY_POLICE(zpedj, FALSE);
if(IS_CHAR_DEAD(zpedj) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedj, bzPedj);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedj);
zPedjInt = 0;
}
}
}
// Explode & Remove Enemy Car After Wave
void RemoveCar(void)
{
if(DOES_VEHICLE_EXIST(gcar))
{
if(IS_CAR_DEAD(gcar) || IS_CHAR_DEAD(GetPlayerPed()) || gcarInt == 2 || IsKeyPressed(DPAD_UP,TRIANGLE))
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
Print("The Multi War Is Over");
WAIT(3000);
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0 && zPediInt == 0 && zPedjInt == 0)
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
RemoveI();
RemoveJ();
RemoveCar();
QuitGangWar();
}
}
This is Rider War! Which is a Ghost Rider like script for war ,like since it is Niko on fire(in a War @ the Airport).
Also has a few bugs like applying other mods will kill the flame. But here is the Beta Ghost Rider War(sco download https://psx.egnyte.com/h-s/20120728/891318c6b52f439b)
[PS3]Script Example Rider War Beta - YouTube
Code:
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
//############### Define Ps3 GamePad ################################//
#define SELECT 0xD
#define START 0xC
#define SQUARE 0xE
#define TRIANGLE 0xF
#define X 0x10
#define CIRCLE 0x11
#define DPAD_UP 0x8
#define DPAD_DOWN 0x9
#define DPAD_LEFT 0xA
#define DPAD_RIGHT 0xB
#define L2 0x5
#define R2 0x7
#define L1 0x4
#define R1 0x6
#define STICK_L 0x12
#define STICK_R 0x13
//############### Define Ps3 GamePad ################################//
// Enemy Group coordinates
float EGx, EGy, EGz;
float DBx, DBy, DBz;
// Enemy Peds handles
Ped zped;
Ped zpeda;
Ped zpedb;
Ped zpedc;
Ped zpedd;
Ped zpede;
Ped zpedf;
Ped zpedg;
Ped zpedh;
Ped zpedi;
Ped zpedj;
// Drive-By Vehicle handle
Vehicle gcar;
// Enemy Peds Blip handles
Blip bzPed;
Blip bzPeda;
Blip bzPedb;
Blip bzPedc;
Blip bzPedd;
Blip bzPede;
Blip bzPedf;
Blip bzPedg;
Blip bzPedh;
Blip bzPedi;
Blip bzPedj;
Blip bgcar;
// Player Warped
boolean pWarpInt = 0;
// Intro & Reset Text Displayed
boolean iTextInt = 0;
boolean rTextInt = 0;
// Enemy Peds Spawned
boolean zPedInt = 0;
boolean zPedaInt = 0;
boolean zPedbInt = 0;
boolean zPedcInt = 0;
boolean zPeddInt = 0;
boolean zPedeInt = 0;
boolean zPedfInt = 0;
boolean zPedgInt = 0;
boolean zPedhInt = 0;
boolean zPediInt = 0;
boolean zPedjInt = 0;
// DriveBy Car Spawned
boolean gcarInt = 0;
// War Waves Current stage
boolean zWarInt = 15;
// Display Text Shortcut
void Print(char *string)
{
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 3000, 1);
}
// Button Press Activator Shortcut
bool IsKeyPressed(uint iKey , uint iJey)
{
return IS_BUTTON_PRESSED(0,iKey) && IS_BUTTON_JUST_PRESSED(0,iJey);
}
//Various Enemy peds Settings Shortcut
void EnemySettings(uint ptype, uint pblip)
{
SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
SET_CHAR_RELATIONSHIP(ptype, 5, 0);
SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
SET_CHAR_ONLY_DAMAGED_BY_PLAYER(ptype, TRUE);
SET_CHAR_AS_ENEMY(ptype, TRUE);
SET_CHAR_ACCURACY(ptype, 45);
SET_SENSE_RANGE(ptype, 250.0);
SET_CHAR_KEEP_TASK(ptype, TRUE);
TASK_COMBAT(ptype, GetPlayerPed());
SET_CHAR_IS_TARGET_PRIORITY(GetPlayerPed(), TRUE);
SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
SET_CHAR_WILL_USE_COVER(ptype, TRUE);
SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, TRUE);
SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
SET_BLIP_AS_FRIENDLY(pblip, FALSE);
CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_RED);
}
// Drive-by Settings Shortcut
void DrivebySettings(uint ptype)
{
SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, TRUE);
SET_CHAR_WILL_DO_DRIVEBYS(ptype, TRUE);
SET_CHAR_CANT_BE_DRAGGED_OUT(ptype, TRUE);
}
// Apply Drive-by Settings
void InCarSettings(void)
{
DrivebySettings(zpedi);
DrivebySettings(zpedf);
}
// Remove Enemy Shortcut
void ClearEnemy(uint ptype, uint pblip)
{
EXPLODE_CHAR_HEAD(ptype);
TASK_DIE(ptype);
REMOVE_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);
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);
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);
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);
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);
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);
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);
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);
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);
EnemySettings(zpedh, bzPedh);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzh);
}
// Set & Spawn enemy(I) Near DriveBy Car
void SpawnI(uint modelzi, uint weapon ,float offset_y)
{
REQUEST_MODEL(modelzi);
while (!HAS_MODEL_LOADED(modelzi)) WAIT(0);
GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(gcar, 0, offset_y , 0, &DBx, &DBy, &DBz);
CREATE_CHAR(16, modelzi, DBx,DBy,DBz, &zpedi, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedi, EGx, EGy, EGz, 250.0);
UpdateWeaponOfPed(zpedi, weapon);
SET_CURRENT_CHAR_WEAPON(zpedi, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedi, &bzPedi);
SET_CHAR_CAN_BE_KNOCKED_OFF_BIKE(zpedi, TRUE);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(zpedi, FALSE);
EnemySettings(zpedi, bzPedi);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzi);
}
// Set & Spawn enemy(J) On NearBy Roof
void SpawnJ(uint modelzj, float Sx, float Sy, float Sz, uint weapon)
{
REQUEST_MODEL(modelzj);
while (!HAS_MODEL_LOADED(modelzj)) WAIT(0);
CREATE_CHAR(16, modelzj, Sx, Sy, Sz, &zpedj, true);
SET_CHAR_SPHERE_DEFENSIVE_AREA(zpedj, EGx, EGy, EGz, 150.0);
UpdateWeaponOfPed(zpedj, weapon);
SET_CURRENT_CHAR_WEAPON(zpedj, weapon, TRUE);
ADD_BLIP_FOR_CHAR(zpedj, &bzPedj);
EnemySettings(zpedj, bzPedj);
SET_PED_PATH_MAY_USE_CLIMBOVERS(zpedj, FALSE);
SET_PED_PATH_MAY_DROP_FROM_HEIGHT(zpedj, FALSE);
SET_PED_PATH_MAY_USE_LADDERS(zpedj, FALSE);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelzj);
}
// Spawn Drive-By Vehicle
void SpawnDriveByVehicle(uint modelgcar, float Vx, float Vy, float Vz)
{
REQUEST_MODEL(modelgcar);
while (!HAS_MODEL_LOADED(modelgcar)) WAIT(0);
CREATE_CAR(modelgcar, Vx, Vy, Vz, &gcar, true);
ADD_BLIP_FOR_CAR(gcar, &bgcar);
SET_BLIP_AS_FRIENDLY(bgcar, FALSE);
CHANGE_BLIP_COLOUR(bgcar, BLIP_COLOR_RED);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelgcar);
return gcar;
}
// Set Various Player/World Settings
void PlayerSettings(void)
{
SET_MAX_WANTED_LEVEL(0);
SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
OVERRIDE_NEXT_RESTART(2238.1279, 178.5907, 5.8128, 174.1536);
}
// 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 = 2238.1279, y = 178.5907, z = 5.8128;
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("The Rider War");
WAIT(4000);
Print("Kill EM All");
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 Rider War Reseted");
WAIT(4000);
Print("Get Back In The Rider 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_GUNNUT_01,WEAPON_MP5, 2);
zPedaInt = 1;
SpawnB(MODEL_M_M_GUNNUT_01, WEAPON_BARETTA, -2);
zPedbInt = 1;
SpawnC(MODEL_M_M_GUNNUT_01, WEAPON_MP5, 1);
zPedcInt = 1;
SpawnD(MODEL_M_M_GUNNUT_01, WEAPON_PISTOL, -1);
zPeddInt = 1;
SpawnE(MODEL_M_M_GUNNUT_01, WEAPON_MICRO_UZI, 2);
zPedeInt = 1;
SpawnF(MODEL_M_M_GUNNUT_01, WEAPON_SHOTGUN, -2);
zPedfInt = 1;
SpawnG(MODEL_M_M_GUNNUT_01, WEAPON_M4, 1);
zPedgInt = 1;
SpawnH(MODEL_M_M_GUNNUT_01, WEAPON_M4, 2);
zPedhInt = 1;
}
// Enemy Boss Spawning Logic & War Waves & Texts Display
void WarWave(void)
{
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0 && zPediInt == 0 && zPedjInt == 0)
{
if(zWarInt == 0)
{
ADD_ARMOUR_TO_CHAR(GetPlayerPed(), 1000);
Print("Rider War 1st Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2287.7190, 178.0378, 5.8128, WEAPON_RLAUNCHER);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 1;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
}
}
}
else if(zWarInt == 1)
{
Print("You Survived 1st Wave?!");
WAIT(4000);
Print("Rider War 2nd Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2377.2712, 171.7271, 5.8128, WEAPON_MOLOTOV);
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("Rider War 3rd Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2459.3518, 178.5920, 5.8128, WEAPON_MOLOTOV);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_M_GUNNUT_01, 2461.4373, 212.9711, 14.7839, WEAPON_RLAUNCHER);
zPedInt = 1;
zWarInt = 3;
zPedjInt = 1;
}
}
else if(zWarInt == 3)
{
Print("You Survived 3rd Wave?!");
WAIT(4000);
Print("Rider War 4th Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2530.7656, 305.5197, 5.8129, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 4;
}
}
else if(zWarInt == 4)
{
Print("You Survived 4th Wave?!");
WAIT(4000);
Print("Rider War 5th Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2613.2136, 364.9480, 5.8149, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 5;
gcarInt = 1;
if(DOES_VEHICLE_EXIST(gcar))
{
}
}
}
else if(zWarInt == 5)
{
Print("You Survived 5th Wave?!");
WAIT(4000);
Print("Rider War 6th Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2665.6575, 419.6908, 5.3129, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 6;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 6)
{
Print("You Survived 6th Wave?!");
WAIT(4000);
Print("Rider War 7th Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2599.4355, 466.9725, 5.3080, WEAPON_MOLOTOV);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_M_GUNNUT_01, 2619.1658, 431.1385, 13.7707 , WEAPON_RLAUNCHER);
zPedInt = 1;
zWarInt = 7;
zPedjInt = 1;
}
}
else if(zWarInt == 7)
{
Print("You Survived 7th Wave?!");
WAIT(4000);
Print("Rider War 8th Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2540.3982, 507.1162, 5.8129, WEAPON_GRENADE);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 8;
}
}
else if(zWarInt == 8)
{
Print("You Survived 8th Wave?!");
WAIT(4000);
Print("Rider War 9th Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2441.4573, 502.9193, 5.8129, WEAPON_MOLOTOV);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 9;
if(DOES_VEHICLE_EXIST(gcar))
{
}
}
}
else if(zWarInt == 9)
{
Print("You Survived 9th Wave?!");
WAIT(4000);
Print("Rider War 10th Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2442.0402, 605.9261, 5.8129, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 10;
if(DOES_VEHICLE_EXIST(gcar))
{
gcarInt = 2;
}
}
}
else if(zWarInt == 10)
{
Print("You Survived 10th Wave?!");
WAIT(4000);
Print("Rider War 11th Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2349.0083, 640.6221, 5.8130, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_M_GUNNUT_01, 2345.3538, 614.1908, 10.5309, WEAPON_RLAUNCHER);
zPedInt = 1;
zWarInt = 11;
zPedjInt = 1;
}
}
else if(zWarInt == 11)
{
Print("You Survived 11th Wave?!");
WAIT(4000);
Print("Rider War 12th Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2276.1182, 703.7583, 5.8125, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
zPedInt = 1;
zWarInt = 12;
}
}
else if(zWarInt == 12)
{
Print("You Survived 12th Wave?!");
WAIT(4000);
Print("Rider War Final Wave");
SpawnBoss(MODEL_M_M_DODGYDOC, 2205.1309, 728.2326, 5.8130, WEAPON_M4);
if(DOES_CHAR_EXIST(zped))
{
SpawnGang();
SpawnJ(MODEL_M_M_GUNNUT_01, 2230.9070, 679.9233, 11.4182, WEAPON_RLAUNCHER);
zPedInt = 1;
zWarInt = 13;
zPedjInt = 1;
}
}
else if(zWarInt == 13)
{
Print("You Survived The Final Wave?!");
WAIT(4000);
Print("The Rider War Is Over");
zWarInt = 14;
}
else if(zWarInt == 14)
{
WAIT(4000);
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
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()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedi, bzPedi);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedi);
zPediInt = 0;
}
}
}
// Remove Enemy(J) Logic
void RemoveJ(void)
{
if(DOES_CHAR_EXIST(zpedj))
{
SET_CHAR_WANTED_BY_POLICE(zpedj, FALSE);
if(IS_CHAR_DEAD(zpedj) || IS_CHAR_DEAD(GetPlayerPed()) || IsKeyPressed(DPAD_UP,TRIANGLE))
{
ClearEnemy(zpedj, bzPedj);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zpedj);
zPedjInt = 0;
}
}
}
// Explode & Remove Enemy Car After Wave
void RemoveCar(void)
{
if(DOES_VEHICLE_EXIST(gcar))
{
if(IS_CAR_DEAD(gcar) || IS_CHAR_DEAD(GetPlayerPed()) || gcarInt == 2 || IsKeyPressed(DPAD_UP,TRIANGLE))
{
EXPLODE_CAR(gcar, 1, 0);
REMOVE_BLIP(bgcar);
MARK_CAR_AS_NO_LONGER_NEEDED(&gcar);
gcarInt = 0;
}
}
}
void QuitGangWar(void)
{
if( IsKeyPressed(DPAD_UP,TRIANGLE) )
{
Print("The Rider War Is Over!");
WAIT(3000);
if(zPedInt == 0 && zPedaInt == 0 && zPedbInt == 0 && zPedcInt == 0 && zPeddInt == 0 && zPedeInt == 0 && zPedfInt == 0 && zPedgInt == 0 && zPedhInt == 0 && zPediInt == 0 && zPedjInt == 0)
SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
CANCEL_OVERRIDE_RESTART();
TERMINATE_THIS_SCRIPT();
}
}
void main(void)
{
while (TRUE)
{
WAIT(0);
PlayerSettings();
WarpToWar();
TextIntro();
TextReset();
PlayerDeathReset();
WarWave();
RemoveBoss();
RemoveA();
RemoveB();
RemoveC();
RemoveD();
RemoveE();
RemoveF();
RemoveG();
RemoveH();
RemoveI();
RemoveJ();
RemoveCar();
QuitGangWar();
}
}