Code:
/***********************************************************************
This file is a part of scocl project by Alexander Blade (c) 2011
***********************************************************************/
/** Edited for game consol use by JDMAlex **/
#include <natives.h>
#include <common.h>
#include <strings.h>
#include <types.h>
#include <consts.h>
#define ZOMB_MAX 20
#define ZOMB_CREATE_MIN_DIST 25.0
#define ONLINEPLAYERS 16
#define FIRE_ZOMBIES // SPAWNS FIRE ZOMBIES
#define SPAWN_GUARD_OFF //IF ENABLED GUARDS ARE OFF
#define MAX_GUARDS 1
#define SPAWNED_VEH MODEL_ZOMBIEB
//#define DEBUG
//#define SET_DRUNK_CAM // ENABLES DRUNK CAM WHEN NEAR ZOMBIES.. GETS ANNOYING
//for online
typedef struct _online_players{
Ped ped;
int id;
bool connected;
} online_players;
online_players players[ONLINEPLAYERS];
// end for online
void DebugBreak(char *sMessage){
#ifdef DEBUG
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", sMessage , 5000, 1);
//WAIT(20);
//PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", "Press ~PAD_A~ to continue." , 5000, 1);
//while(!IS_BUTTON_JUST_PRESSED(0,0x10)) WAIT(0);
#endif
}
int pCount,amount;
int decm, cmbtdm;
Group Bgroup;
Ped gameped;
Blip Charblip,gamepedblip;
boolean MakeGuard=true;
Blip pblip;
void playerGroupHatesAll(Ped hater){
DebugBreak("1"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_CIVILLIAN_MALE);
DebugBreak("2"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_CIVILLIAN_FEMALE);
DebugBreak("3"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_COP);
DebugBreak("4"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_ALBANIAN);
DebugBreak("5"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_BIKER1);
DebugBreak("6"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_BIKER2);
DebugBreak("7"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_ITALIAN);
DebugBreak("8"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_RUSSIAN1);
DebugBreak("9"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_RUSSIAN2);
DebugBreak("10"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_IRISH);
DebugBreak("11"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_JAMAICAN);
DebugBreak("12"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_AFRICAN_AMERICAN);
DebugBreak("13"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_KOREAN);
DebugBreak("14"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_CHINESE_JAPANESE);
DebugBreak("15"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_PUERTO_RICAN);
DebugBreak("16"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_DEALER);
DebugBreak("17"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_MEDIC);
DebugBreak("18"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_FIREMAN);
DebugBreak("19"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_CRIMINAL);
DebugBreak("20"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_BUM);
DebugBreak("21"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_PROSTITUTE);
DebugBreak("22"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_SPECIAL);
DebugBreak("23"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_01);
DebugBreak("24"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_02);
DebugBreak("25"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_03);
DebugBreak("26"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_04);
DebugBreak("27"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_05);
DebugBreak("28"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_06);
DebugBreak("29"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_07);
DebugBreak("30"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_08);
DebugBreak("31"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_09);
DebugBreak("32"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_10);
DebugBreak("33"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_11);
DebugBreak("34"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_12);
DebugBreak("35"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_13);
DebugBreak("36"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_14);
DebugBreak("37"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_15);
DebugBreak("38"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_16);
DebugBreak("39"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_1);
DebugBreak("40"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_2);
DebugBreak("41"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_3);
DebugBreak("42"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_4);
DebugBreak("43"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_5);
DebugBreak("44"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_6);
DebugBreak("45"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_7);
DebugBreak("46"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_8);
}
void playerHater(Ped hater){
DebugBreak("47");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_PLAYER);
DebugBreak("48");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_COP);
DebugBreak("49");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_01);
DebugBreak("50");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_02);
DebugBreak("51");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_03);
DebugBreak("52");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_04);
DebugBreak("53");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_05);
DebugBreak("54");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_06);
DebugBreak("55");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_07);
DebugBreak("56");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_08);
DebugBreak("57");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_09);
DebugBreak("58");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_10);
DebugBreak("59");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_11);
DebugBreak("60");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_12);
DebugBreak("61");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_13);
DebugBreak("62");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_14);
DebugBreak("63");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_15);
DebugBreak("64");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_16);
DebugBreak("65");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_1);
DebugBreak("66");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_2);
DebugBreak("67");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_3);
DebugBreak("68");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_4);
DebugBreak("69");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_5);
DebugBreak("70");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_6);
DebugBreak("71");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_7);
DebugBreak("72");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_8);
}
void SetMemberAtt(void){
DebugBreak("73");SET_GROUP_MEMBER(Bgroup, gameped);
DebugBreak("74");SET_CHAR_RELATIONSHIP_GROUP(gameped, RELATIONSHIP_GROUP_PLAYER);
DebugBreak("75");SET_CHAR_RELATIONSHIP(gameped, RELATIONSHIP_RESPECT, RELATIONSHIP_GROUP_PLAYER);
DebugBreak("76");playerGroupHatesAll(gameped);
DebugBreak("77");SET_GROUP_CHAR_DUCKS_WHEN_AIMED_AT(gameped, false);
DebugBreak("78");SET_GROUP_SEPARATION_RANGE(Bgroup, 100.00000000);
DebugBreak("79");SET_CHAR_NEVER_LEAVES_GROUP(gameped, true);
DebugBreak("80");SET_PLAYER_GROUP_TO_FOLLOW_ALWAYS(GetPlayerIndex(), true);
DebugBreak("81");SET_CHAR_ACCURACY(gameped, 70);
DebugBreak("82");SET_CHAR_AS_MISSION_CHAR(gameped);
DebugBreak("83");SET_PED_IS_BLIND_RAGING(gameped, true);
DebugBreak("84");SET_GROUP_LEADER(Bgroup, GetPlayerPed());
DebugBreak("85");SET_CHAR_PROOFS(gameped, false, false, true, false, false);
DebugBreak("86");SET_CHAR_BULLETPROOF_VEST(gameped, true);
DebugBreak("87");SET_CHAR_PROVIDE_COVERING_FIRE(gameped, true);
DebugBreak("88");SET_CHAR_WILL_USE_COVER(gameped, true);
DebugBreak("89");SET_CHAR_WILL_DO_DRIVEBYS(gameped, true);
DebugBreak("90");SET_CHAR_WILL_USE_CARS_IN_COMBAT(gameped, true);
DebugBreak("91");SET_CHAR_WILL_MOVE_WHEN_INJURED(gameped, true);
DebugBreak("92");SET_CHAR_CAN_BE_KNOCKED_OFF_BIKE(gameped, false);
DebugBreak("93");SET_CHAR_CAN_BE_SHOT_IN_VEHICLE(gameped, false);
DebugBreak("94");SET_CHAR_GET_OUT_UPSIDE_DOWN_CAR(gameped, true);
DebugBreak("95");SET_CHAR_DEFAULT_COMPONENT_VARIATION(gameped);
DebugBreak("96");SET_PED_DONT_DO_EVASIVE_DIVES(gameped, true);
DebugBreak("97");SET_CHAR_CAN_BE_KNOCKED_OFF_BIKE(gameped, false);
DebugBreak("98");SET_CHAR_WILL_USE_CARS_IN_COMBAT(gameped, true);
DebugBreak("99");UpdateWeaponOfPed(gameped, WEAPON_SHOTGUN);
DebugBreak("100");SET_CURRENT_CHAR_WEAPON(gameped, WEAPON_SHOTGUN, true);
DebugBreak("101");ADD_BLIP_FOR_CHAR(gameped, &gamepedblip);
DebugBreak("102");CHANGE_BLIP_COLOUR(gamepedblip, 3);
DebugBreak("103");SET_BLIP_AS_FRIENDLY(gamepedblip, true);
}
void CheckModelLoad(uint model)
{
if ( !HAS_MODEL_LOADED(model) )
{
REQUEST_MODEL(model);
while (!HAS_MODEL_LOADED(model)) WAIT(0);
}
}
void GameSettings(void){
DebugBreak("104");SET_RANDOM_CAR_DENSITY_MULTIPLIER(0.0);
DebugBreak("105");SET_PARKED_CAR_DENSITY_MULTIPLIER(2.25);
DebugBreak("106");SWITCH_GARBAGE_TRUCKS(false);
DebugBreak("107");ALLOW_EMERGENCY_SERVICES(false);
DebugBreak("108");SWITCH_AMBIENT_PLANES(FALSE);
DebugBreak("109");SWITCH_RANDOM_TRAINS(FALSE);
DebugBreak("110");SWITCH_RANDOM_BOATS(FALSE);
DebugBreak("111");SET_CREATE_RANDOM_COPS(FALSE);
DebugBreak("112");FORCE_WEATHER_NOW(WEATHER_FOGGY);
DebugBreak("113");FORCE_TIME_OF_DAY(0, 0);
DebugBreak("114");SET_REDUCE_VEHICLE_MODEL_BUDGET(FALSE);
//DebugBreak("115");SET_CHAR_RELATIONSHIP(PED_TYPE_COP, RELATIONSHIP_HATE,RELATIONSHIP_GROUP_DEALER); // set cops hate zomb
}
void main(void)
{
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
while ( !IS_PLAYER_PLAYING(GetPlayerIndex()) ) WAIT(0);
Ped zombies[ZOMB_MAX];
char *anims[3];
anims[0] = "move_injured_lower";
anims[1] = "move_injured_upper";
anims[2] = "move_injured_generic";
/*LOAD_CHAR_DECISION_MAKER
0 - "m_empty.ped"
1 - "m_norm.ped"
2 - "m_tough.ped"
3 - "m_weak.ped"
4 - "m_steal.ped"*/
DebugBreak("116");UpdateWeaponOfPed(GetPlayerPed(), WEAPON_SHOTGUN);
DebugBreak("117 REMOVED SET_CURRENT_CHAR_WEAPON");//SET_CURRENT_CHAR_WEAPON(GetPlayerPed(), WEAPON_SHOTGUN, true);
DebugBreak("118");WAIT(1000);
DebugBreak("119 ");
if(!DOES_DECISION_MAKER_EXIST(decm)) {
LOAD_CHAR_DECISION_MAKER(2, &decm); WAIT(50);
SET_DECISION_MAKER_ATTRIBUTE_SIGHT_RANGE(decm, 500); WAIT(50);
SET_DECISION_MAKER_ATTRIBUTE_CAN_CHANGE_TARGET(decm, true);WAIT(50);
}
DebugBreak("120 ");
if(!DOES_DECISION_MAKER_EXIST(cmbtdm)) {
LOAD_COMBAT_DECISION_MAKER(3, &cmbtdm); WAIT(500); // changed back to 3
SET_DECISION_MAKER_ATTRIBUTE_SIGHT_RANGE(cmbtdm, 500); WAIT(50);
SET_DECISION_MAKER_ATTRIBUTE_CAN_CHANGE_TARGET(cmbtdm, true); WAIT(50);
}
DebugBreak("123");SET_CAR_DENSITY_MULTIPLIER(0.0);
DebugBreak("124");SET_PED_DENSITY_MULTIPLIER(0.0);
DebugBreak("125");
if(!IS_NETWORK_SESSION()) {GameSettings();}
while (TRUE)
{
DebugBreak("126");WAIT(1000);
// check for player died -> delete zombies
DebugBreak("127");
if (IS_CHAR_DEAD(GetPlayerPed()))
{
DebugBreak("128");
while (IS_CHAR_DEAD(GetPlayerPed())) WAIT(0);
DebugBreak("129");
int i;
for (i = 0; i < ZOMB_MAX; i++){
DebugBreak("130");
if ( DOES_CHAR_EXIST(zombies[i]) ){
DebugBreak("131");EXPLODE_CHAR_HEAD(zombies[i]);
DebugBreak("132");TASK_DIE(zombies[i]);
DebugBreak("133");MARK_CHAR_AS_NO_LONGER_NEEDED(&zombies[i]);
}
}
DebugBreak("134");
if ( DOES_CHAR_EXIST(gameped) ){
DebugBreak("135");EXPLODE_CHAR_HEAD(gameped);
DebugBreak("136");TASK_DIE(gameped);
DebugBreak("137");MARK_CHAR_AS_NO_LONGER_NEEDED(&gameped);
}
DebugBreak("138");WAIT(3000);
DebugBreak("139");
if(!IS_NETWORK_SESSION()) {GameSettings();}
DebugBreak("140");MakeGuard = TRUE;
DebugBreak("141");continue;
}
if(WANTED_STARS_ARE_FLASHING()){
DebugBreak("142");CLEAR_WANTED_LEVEL(GetPlayerIndex());
DebugBreak("143");continue;
}
//Check if player has guard
float tX,tY,tZ;
DebugBreak("144");
if(MakeGuard){
#ifdef SPAWN_GUARD_OFF
MakeGuard=FALSE; // DISABLES GUARD
continue;
#endif
uint key2;
DebugBreak("145");CheckModelLoad(MODEL_M_Y_DRUG_01);
DebugBreak("146");GET_KEY_FOR_CHAR_IN_ROOM(GetPlayerPed(), &key2);
DebugBreak("147");GET_CHAR_COORDINATES(GetPlayerPed() ,&tX, &tY, &tZ);
DebugBreak("148");CREATE_CHAR(RELATIONSHIP_GROUP_PLAYER,MODEL_M_Y_DRUG_01,tX,tY+5,tZ,&gameped,true);
DebugBreak("149");
if(DOES_CHAR_EXIST(gameped)){
DebugBreak("150");SET_ROOM_FOR_CHAR_BY_KEY(gameped, key2);
DebugBreak("151");GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
DebugBreak("152");
if (!DOES_GROUP_EXIST(Bgroup)){
DebugBreak("153");CREATE_GROUP(0, Bgroup, true);
DebugBreak("154");GET_GROUP_SIZE(Bgroup, &amount, &pCount);
DebugBreak("155");
if (pCount < MAX_GUARDS) {
DebugBreak("156");SetMemberAtt();
}
}
else{
DebugBreak("157");GET_GROUP_SIZE(Bgroup, &amount, &pCount);
DebugBreak("158");
if (pCount < MAX_GUARDS) {
DebugBreak("159");SetMemberAtt();
}
}
}
DebugBreak("160");MakeGuard = FALSE;
continue;
}
// check for player was hit by zombie -> kill player
int i , tick=0;;
DebugBreak("161");boolean dropcycle = FALSE;
DebugBreak("162");
for (i = 0; i < ZOMB_MAX; i++){
DebugBreak("163");
if ( DOES_CHAR_EXIST(zombies[i]) ){
DebugBreak("164");
if(IS_NETWORK_SESSION()) {
int player;
for (player = 0; player < ONLINEPLAYERS; player++){
if(DOES_CHAR_EXIST(players[player].ped)){
TASK_COMBAT(zombies[i], players[player].ped);
tick++;
if ( tick > ONLINEPLAYERS ){
continue;
}
}
}
}
if (HAS_CHAR_BEEN_DAMAGED_BY_CHAR(zombies[i], GetPlayerPed(), 0)){ // Always false at the end.
DebugBreak("165");
if(IS_CHAR_HEALTH_GREATER(zombies[i], 30)){
DebugBreak("166");
if(DOES_BLIP_EXIST(pblip)) {WAIT(100); REMOVE_BLIP(pblip);}
EXPLODE_CHAR_HEAD(zombies[i]);
TASK_DIE(zombies[i]);
MARK_CHAR_AS_NO_LONGER_NEEDED(&zombies[i]);
}
}
if (i < ZOMB_MAX) // if less then what is defined at top commence the zombie creation.
{
DebugBreak("167");dropcycle = TRUE;
DebugBreak("168");break;
}
DebugBreak("169");continue;
}
}
// check for player in the water -> next iteration
DebugBreak("170");
if ( IS_CHAR_IN_WATER(GetPlayerPed()) ) continue;
// zombie check cycle
DebugBreak("171");
for (i = 0; i < ZOMB_MAX; i++)
{
DebugBreak("172");WAIT(10);
// delete unneeded zombie and make player drunk if he is near zombie
DebugBreak("173");
if ( DOES_CHAR_EXIST(zombies[i]) )
{
float x, y, z, xpl, ypl, zpl, dist;
DebugBreak("174");GET_CHAR_COORDINATES(zombies[i], &x, &y, &z);
DebugBreak("175");GET_CHAR_COORDINATES(GetPlayerPed(), &xpl, &ypl, &zpl);
DebugBreak("176");GET_DISTANCE_BETWEEN_COORDS_3D(x, y, z, xpl, ypl, zpl, &dist);
if ( (dist < 2.0) && !IS_CHAR_IN_ANY_CAR(GetPlayerPed()) )
{
#ifdef SET_DRUNK_CAM
Cam cam;
GET_ROOT_CAM(&cam);
SET_DRUNK_CAM(cam, 0.8, 4000);
#endif
}
uint randint;
DebugBreak("177");GENERATE_RANDOM_INT_IN_RANGE(0, 3, &randint);
DebugBreak("178");
if (randint == 0) SAY_AMBIENT_SPEECH(zombies[i], "MOAN", 1, 1, 2);
DebugBreak("179");
if ( (dist > 40.0) || IS_CHAR_DEAD(zombies[i]) || IS_CHAR_IN_WATER(zombies[i]) )
{
DebugBreak("180");EXPLODE_CHAR_HEAD(zombies[i]);
DebugBreak("181");TASK_DIE(zombies[i]);
DebugBreak("182");MARK_CHAR_AS_NO_LONGER_NEEDED(&zombies[i]);
}
DebugBreak("183");continue;
}
DebugBreak("184");
if (dropcycle) continue;
DebugBreak("185");WAIT(100);
// if zombie doesn't exist then
float x, y, z, xdif, ydif;
DebugBreak("186");
while (TRUE) // find coords for zombie creation
{
DebugBreak("187");GENERATE_RANDOM_FLOAT_IN_RANGE(-10.0, 10.0, &xdif);
DebugBreak("188");GENERATE_RANDOM_FLOAT_IN_RANGE(0.0, 50.0, &ydif);
DebugBreak("189");GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(GetPlayerPed(), xdif, ydif, 0.0, &x, &y, &z);
float zgrnd, wh, xpl, ypl, zpl, dist;
DebugBreak("190");
if (GET_WATER_HEIGHT(x, y, z, &wh)) continue;
DebugBreak("191");GET_CHAR_COORDINATES(GetPlayerPed(), &xpl, &ypl, &zpl);
DebugBreak("192");GET_DISTANCE_BETWEEN_COORDS_3D(x, y, z, xpl, ypl, zpl, &dist);
DebugBreak("193");
if (dist < ZOMB_CREATE_MIN_DIST) continue;
DebugBreak("194");GET_GROUND_Z_FOR_3D_COORD(x, y, z, &zgrnd);
DebugBreak("195");
if ( (zgrnd < z + 1.0) || (zgrnd > z - 1.0) ) break;
} // end -- find coords for zombie creation
// create zombie
uint PedModel;
DebugBreak("196");GENERATE_RANDOM_INT_IN_RANGE(0, 4, &PedModel);
DebugBreak("197");
if(GET_CURRENT_EPISODE() == 0){
DebugBreak("198");
if (PedModel == 0) {
#ifdef FIRE_ZOMBIES
DebugBreak("199");CheckModelLoad(MODEL_M_Y_MULTIPLAYER);
DebugBreak("200");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_Y_MULTIPLAYER, x, y, z+50.0, &zombies[i], 1);
DebugBreak("201");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z+50.0);
DebugBreak("202");SET_CHAR_COMPONENT_VARIATION(zombies[i], 0, 3, 3);
DebugBreak("203");SET_CHAR_COMPONENT_VARIATION(zombies[i], 1, 4, 1);
DebugBreak("204");START_CHAR_FIRE(zombies[i]);
#endif
}
else {
// IV ZOMBIE
DebugBreak("205");CheckModelLoad(MODEL_M_Y_MULTIPLAYER);
DebugBreak("206");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_Y_MULTIPLAYER, x, y, z, &zombies[i], 1);
DebugBreak("207");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
DebugBreak("208");SET_CHAR_COMPONENT_VARIATION(zombies[i], 0, 3, 3);
DebugBreak("209");SET_CHAR_COMPONENT_VARIATION(zombies[i], 1, 4, 1);
}
}
else{
if (PedModel == 0) {
#ifdef FIRE_ZOMBIES
DebugBreak("210");CheckModelLoad(MODEL_IG_CHARLIEUC);
DebugBreak("211");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_IG_CHARLIEUC, x, y, z+50.0, &zombies[i], 1);
DebugBreak("212");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z+50.0);
DebugBreak("213");START_CHAR_FIRE(zombies[i]);
#endif
}
else if(PedModel==1){
DebugBreak("214");CheckModelLoad(MODEL_M_M_GUNNUT_01);
DebugBreak("215");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_M_GUNNUT_01, x, y, z, &zombies[i], 1);
DebugBreak("216");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
DebugBreak("217");SET_CHAR_COMPONENT_VARIATION(zombies[i], 0, 1, 1); // tatooface
}
else if(PedModel==2){
DebugBreak("218");CheckModelLoad(MODEL_M_M_DODGYDOC);
DebugBreak("219");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_M_DODGYDOC, x, y, z, &zombies[i], 1);
DebugBreak("220");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
}
else if(PedModel==3){
DebugBreak("221");CheckModelLoad(MODEL_M_M_ALCOHOLIC);
DebugBreak("222");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_M_ALCOHOLIC, x, y, z, &zombies[i], 1);
DebugBreak("223");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
DebugBreak("224");SET_CHAR_COMPONENT_VARIATION(zombies[i], 1, 1, 1); // stained shirt
}
else if(PedModel==4){
DebugBreak("225");CheckModelLoad(MODEL_M_M_CRACKHEAD);
DebugBreak("226");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_M_CRACKHEAD, x, y, z, &zombies[i], 1);
DebugBreak("227");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
}
}
/**/
if(DOES_CHAR_EXIST(zombies[i])){
uint key;
DebugBreak("228");GET_KEY_FOR_CHAR_IN_ROOM(GetPlayerPed(), &key);
DebugBreak("229");SET_ROOM_FOR_CHAR_BY_KEY(zombies[i], key);
/**/
DebugBreak("230");
if(!IS_NETWORK_SESSION()) {GameSettings();}
DebugBreak("231");SET_CHAR_BLEEDING(zombies[i], true);
DebugBreak("232");SET_SENSE_RANGE(zombies[i], 500.0);
DebugBreak("233");SET_CHAR_RELATIONSHIP_GROUP(zombies[i], 24);
DebugBreak("234");SET_CHAR_RELATIONSHIP(zombies[i], 5, 0);//decm, cmbtdm;
DebugBreak("235");if(DOES_DECISION_MAKER_EXIST(decm)) SET_CHAR_DECISION_MAKER(zombies[i], decm);
DebugBreak("236");if(DOES_DECISION_MAKER_EXIST(cmbtdm)) SET_COMBAT_DECISION_MAKER(zombies[i], cmbtdm);
DebugBreak("237");SET_CHAR_AS_ENEMY(zombies[i], TRUE);
DebugBreak("238");SET_CHAR_DIES_INSTANTLY_IN_WATER(zombies[i], TRUE);
uint randint;
DebugBreak("239");GENERATE_RANDOM_INT_IN_RANGE(0, 2, &randint);
DebugBreak("240");SET_CHAR_HEALTH(zombies[i], 100.0);
DebugBreak("241");SET_ANIM_GROUP_FOR_CHAR(zombies[i], anims[randint]);
DebugBreak("242");SET_CHAR_KEEP_TASK(zombies[i], TRUE);
DebugBreak("243");TASK_COMBAT(zombies[i], GetPlayerPed());
DebugBreak("244");SET_CHAR_WILL_USE_CARS_IN_COMBAT(zombies[i], FALSE);
DebugBreak("245");SET_CHAR_MONEY(zombies[i], 0);
DebugBreak("246");SET_PED_IS_BLIND_RAGING(zombies[i], TRUE);
DebugBreak("247");SET_PED_GENERATES_DEAD_BODY_EVENTS(zombies[i], TRUE);
DebugBreak("248");SET_PED_PATH_MAY_USE_CLIMBOVERS(zombies[i], TRUE);
DebugBreak("249");SET_PED_PATH_MAY_DROP_FROM_HEIGHT(zombies[i], TRUE);
DebugBreak("250");SET_PED_PATH_MAY_USE_LADDERS(zombies[i], FALSE);
DebugBreak("251");SET_PED_DONT_DO_EVASIVE_DIVES(zombies[i], TRUE);
DebugBreak("252");SET_CHAR_WILL_USE_COVER(zombies[i], FALSE);
DebugBreak("253");UpdateWeaponOfPed(zombies[i], WEAPON_KNIFE);
DebugBreak("254");SET_CURRENT_CHAR_WEAPON(zombies[i], WEAPON_KNIFE, true);
DebugBreak("255");SET_CHAR_CURRENT_WEAPON_VISIBLE(zombies[i], false);
DebugBreak("256");SET_CHAR_DROPS_WEAPONS_WHEN_DEAD(zombies[i], false );
DebugBreak("257");playerHater(zombies[i]);
float randfloat;
DebugBreak("258");GENERATE_RANDOM_FLOAT_IN_RANGE(0.0, 0.5, &randfloat);
DebugBreak("259");SET_CHAR_MOVE_ANIM_SPEED_MULTIPLIER(zombies[i], 1.2 + randfloat);
DebugBreak("260");ADD_BLIP_FOR_CHAR(zombies[i], &pblip);
DebugBreak("261");SET_BLIP_AS_FRIENDLY(pblip, FALSE);
DebugBreak("262");CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_DARK_RED);
// Sickem on online players if online
DebugBreak("263");CANCEL_CURRENTLY_PLAYING_AMBIENT_SPEECH(zombies[i]);
DebugBreak("264");SET_AMBIENT_VOICE_NAME(zombies[i], "M_ZOMBIE");
DebugBreak("265");SAY_AMBIENT_SPEECH(zombies[i], "MOAN", 1, 1, 2);
}
DebugBreak("265");
}
}
}