Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <natives.h>
- #include <common.h>
- #include <strings.h>
- #include <types.h>
- #include <consts.h>
- Ped zomb[40];
- Ped wped;
- uint zsptfx[40];
- uint zfptfx[40];
- uint fptfx[19];
- char *anims[3];
- int dm;
- int cdm;
- Object ob[19];
- Object gc[12];
- Blip sbase;
- Blip bwPed;
- Vehicle zcar[3];
- uint killed = 0;
- uint pdied = 0;
- uint died = 0;
- uint prp = 0;
- uint zmg = 0;
- uint qo = 0;
- uint stat = 0;
- uint mlvl = 0;
- float xp, yp, zp;
- // Various settings
- void InitZombSet(void)
- {
- anims[0] = "move_injured_lower";
- anims[1] = "move_injured_upper";
- anims[2] = "move_injured_generic";
- stat = GET_INT_STAT(363);
- GET_MAX_WANTED_LEVEL(&mlvl);
- LOAD_CHAR_DECISION_MAKER(2, &dm);
- LOAD_COMBAT_DECISION_MAKER(3, &cdm);
- SET_DECISION_MAKER_ATTRIBUTE_SIGHT_RANGE(dm, 250);
- SET_DECISION_MAKER_ATTRIBUTE_SIGHT_RANGE(cdm, 250);
- SET_INT_STAT(363, 5);
- SET_CAR_DENSITY_MULTIPLIER(0.0);
- SET_RANDOM_CAR_DENSITY_MULTIPLIER(0.0);
- SET_PARKED_CAR_DENSITY_MULTIPLIER(0.0);
- SET_PED_DENSITY_MULTIPLIER(0.0);
- SET_SCENARIO_PED_DENSITY_MULTIPLIER(0.0, 0.0);
- SET_ALL_RANDOM_PEDS_FLEE(GetPlayerIndex(), TRUE);
- ALLOW_EMERGENCY_SERVICES(FALSE);
- SWITCH_RANDOM_BOATS(FALSE);
- SWITCH_POLICE_HELIS(FALSE);
- SWITCH_AMBIENT_PLANES(FALSE);
- SWITCH_GARBAGE_TRUCKS(FALSE);
- SWITCH_RANDOM_TRAINS(FALSE);
- SET_CREATE_RANDOM_COPS(FALSE);
- MUTE_POSITIONED_RADIO(TRUE);
- DISABLE_FRONTEND_RADIO();
- SET_DEAD_PEDS_DROP_WEAPONS(FALSE);
- }
- // Zombies settings
- void ZombSet(uint ptype)
- {
- uint Ranim;
- SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
- SET_CHAR_RELATIONSHIP(ptype, 5, 0);
- SET_CHAR_RELATIONSHIP(ptype, 5, 1);
- SET_CHAR_RELATIONSHIP(ptype, 5, 2);
- SET_CHAR_RELATIONSHIP(ptype, 5, 3);
- SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
- SET_CHAR_COMPONENT_VARIATION(ptype, 0, 3, 3);
- SET_CHAR_COMPONENT_VARIATION(ptype, 1, 4, 1);
- SET_CHAR_AS_ENEMY(ptype, TRUE);
- SET_CHAR_MONEY(ptype, 0);
- SET_CHAR_DECISION_MAKER(ptype, dm);
- SET_COMBAT_DECISION_MAKER(ptype, cdm);
- SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
- SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, TRUE);
- SET_CHAR_DIES_INSTANTLY_IN_WATER(ptype, TRUE);
- GENERATE_RANDOM_INT_IN_RANGE(0, 3, &Ranim);
- SET_ANIM_GROUP_FOR_CHAR(ptype, anims[Ranim]);
- SET_SENSE_RANGE(ptype, 500.0);
- SET_CHAR_KEEP_TASK(ptype, TRUE);
- TASK_COMBAT_HATED_TARGETS_AROUND_CHAR(ptype, 500.0);
- SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
- SET_CHAR_WILL_USE_COVER(ptype, FALSE);
- SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
- SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
- SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
- SET_PED_PATH_MAY_USE_CLIMBOVERS(ptype, TRUE);
- SET_PED_PATH_MAY_DROP_FROM_HEIGHT(ptype, TRUE);
- SET_PED_PATH_MAY_USE_LADDERS(ptype, FALSE);
- UpdateWeaponOfPed(ptype, WEAPON_KNIFE);
- SET_CURRENT_CHAR_WEAPON(ptype, WEAPON_KNIFE, TRUE);
- SET_CHAR_CURRENT_WEAPON_VISIBLE(ptype, FALSE);
- CANCEL_CURRENTLY_PLAYING_AMBIENT_SPEECH(ptype);
- SET_AMBIENT_VOICE_NAME(ptype, "M_ZOMBIE");
- SAY_AMBIENT_SPEECH(ptype, "MOAN", 1, 1, 2);
- }
- // survivor ped settings shortcut
- void PedSettings(uint ptype, uint pblip)
- {
- SET_CHAR_PROOFS(ptype, TRUE, TRUE, TRUE, TRUE, TRUE);
- SET_CHAR_RELATIONSHIP_GROUP(ptype, 25);
- SET_CHAR_RELATIONSHIP(ptype, 5, 24);
- SET_CHAR_RELATIONSHIP(ptype, 1, 0);
- SET_SENSE_RANGE(ptype, 500.0);
- SET_CHAR_AS_ENEMY(ptype, FALSE);
- SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
- SET_PED_PATH_MAY_USE_CLIMBOVERS(ptype, FALSE);
- SET_PED_PATH_MAY_DROP_FROM_HEIGHT(ptype, FALSE);
- SET_PED_PATH_MAY_USE_LADDERS(ptype, FALSE);
- SET_CHAR_WILL_USE_COVER(ptype, TRUE);
- SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
- CHANGE_BLIP_NAME_FROM_ASCII(pblip, "Survivor");
- CHANGE_BLIP_ALPHA(pblip, 255);
- ADD_ARMOUR_TO_CHAR(ptype, 1000);
- }
- // soawn objects
- void SpawnO(void)
- {
- uint Omodel[19];
- float ox[19], oy[19], oz[19], oh[19], orx[19], ory[19], orz[19];
- Omodel[0] = 0x549F1904, ox[0] = -608.1309, oy[0] = -764.3752, oz[0] = 19.3343, oh[0] = 270.0, orx[0] = 0.0, ory[0] = 0.0, orz[0] = 0.7096;
- Omodel[1] = 0x05804843, ox[1] = -527.6982, oy[1] = -1021.8702, oz[1] = 3.6654, oh[1] = 0.0, orx[1] = 0.0, ory[1] = 0.0, orz[1] = 0.0;
- Omodel[2] = 0xC6470A5C, ox[2] = -620.6264, oy[2] = -703.5240, oz[2] = 4.2706, oh[2] = 44.8002, orx[2] = 0.0, ory[2] = 0.0, orz[2] = 0.3811;
- Omodel[3] = 0x6ED94AAA, ox[3] = -607.9415, oy[3] = -800.3182, oz[3] = 3.7594, oh[3] = 0.0, orx[3] = 0.0, ory[3] = 0.0, orz[3] = 0.0;
- Omodel[4] = 0x5C9C20E6, ox[4] = -409.0976, oy[4] = -983.1490 , oz[4] = 1.2214 , oh[4] = 0.0, orx[4] = 0.0, ory[4] = 0.0, orz[4] = 0.0;
- Omodel[5] = 0x3B86DEBC, ox[5] = -446.5614, oy[5] = -956.3296, oz[5] = 1.2214, oh[5] = 92.8001, orx[5] = 0.0, ory[5] = 0.0, orz[5] = 0.7242;
- Omodel[6] = 0x1AE7947B, ox[6] = -532.1340, oy[6] = -1008.1669, oz[6] = 10.0623, oh[6] = 0.0, orx[6] = 0.0, ory[6] = 0.0, orz[6] = 0.0;
- Omodel[7] = 0xCD0F256D, ox[7] = -799.5807, oy[7] = -739.4333, oz[7] = 3.8423, oh[7] = 0.0, orx[7] = 0.0, ory[7] = 0.0, orz[7] = 0.0;
- Omodel[8] = 0x887D13B5, ox[8] = -656.8682, oy[8] = -743.6622, oz[8] = 13.3206, oh[8] = 0.0, orx[8] = 0.0, ory[8] = 0.0, orz[8] = 0.0;
- Omodel[9] = 0x3A3F3588, ox[9] = -403.8921, oy[9] = -989.8643, oz[9] = 2.6214, oh[9] = 0.0, orx[9] = 0.0, ory[9] = 0.0, orz[9] = 0.0;
- Omodel[10] = 0x636F31C0, ox[10] = -595.3586, oy[10] = -674.9979, oz[10] = 4.7671, oh[10] = 0.0, orx[10] = 0.0, ory[10] = 0.0, orz[10] = 0.0;
- Omodel[11] = 0x53FC4E10, ox[11] = -511.4124, oy[11] = -778.6856, oz[11] = 0.4966, oh[11] = 0.0, orx[11] = 0.0, ory[11] = 0.0, orz[11] = 0.0;
- Omodel[12] = 0x86C2F761, ox[12] = -608.0051, oy[12] = -749.2362, oz[12] = 45.3129, oh[12] = 0.0, orx[12] = 0.0, ory[12] = 0.0, orz[12] = 0.0;
- Omodel[13] = 0x8A256069, ox[13] = -493.2223, oy[13] = -948.9349, oz[13] = 7.4605, oh[13] = 0.0, orx[13] = 0.0, ory[13] = 0.0, orz[13] = 0.0;
- Omodel[14] = 0x15C3721A, ox[14] = -610.5992, oy[14] = -797.0838, oz[14] = 3.8443, oh[14] = 0.0, orx[14] = 0.0, ory[14] = 0.0, orz[14] = 0.0;
- Omodel[15] = 0x38570E6B, ox[15] = -647.7209, oy[15] = -986.4228, oz[15] = 0.4814, oh[15] = 0.0, orx[15] = 0.0, ory[15] = 0.0, orz[15] = 0.0;
- Omodel[16] = 0xD91E0E0C, ox[16] = -611.3616, oy[16] = -783.2891, oz[16] = 12.0713, oh[16] = 270.0, orx[16] = 0.0, ory[16] = 0.0, orz[16] = 0.7096;
- Omodel[17] = 0xD91E0E0C, ox[17] = -605.5215, oy[17] = -783.3243, oz[17] = 12.0713, oh[17] = 90.0, orx[17] = 0.0, ory[17] = 0.0, orz[17] = 0.7096;
- Omodel[18] = 0x78453DC1, ox[18] = -526.0718, oy[18] = -996.5006, oz[18] = 8.3623, oh[18] = 0.0, orx[18] = 0.0, ory[18] = 0.0, orz[18] = 0.0;
- uint I;
- for (I = 0; I <= 18; I++)
- {
- REQUEST_MODEL(Omodel[I]);
- while(!HAS_MODEL_LOADED(Omodel[I]))WAIT(0);
- CREATE_OBJECT(Omodel[I], ox[I], oy[I], oz[I], &ob[I], 1);
- SET_OBJECT_ROTATION(ob[I], orx[I], ory[I], orz[I]);
- SET_OBJECT_HEADING(ob[I], oh[I]);
- SET_OBJECT_RECORDS_COLLISIONS(ob[I], TRUE);
- SET_OBJECT_DYNAMIC(ob[I], FALSE);
- FREEZE_OBJECT_POSITION(ob[I], TRUE);
- SET_OBJECT_PROOFS(ob[I], 1, 1, 1, 1, 1);
- MARK_MODEL_AS_NO_LONGER_NEEDED(Omodel[I]);
- }
- }
- // start map ptfx
- void SpawnFX(void)
- {
- fptfx[0] = START_PTFX("fire_plume_large", -512.3300, -1000.8740, 4.5150, 0.0, 0.0, 0.0, 1.0);
- fptfx[1] = START_PTFX("fire_plume_large", -543.7067, -1039.3331, 4.0449, 0.0, 0.0, 0.0, 1.0);
- fptfx[2] = START_PTFX("ambient_fire_generic", -586.5933, -931.2390, 3.8429, 0.0, 0.0, 0.0, 1.0);
- fptfx[3] = START_PTFX("ambient_fire_generic", -547.2629, -964.6824, 3.9130, 0.0, 0.0, 0.0, 1.0);
- fptfx[4] = START_PTFX("ambient_fire_generic", -538.7658, -948.5478, 3.9130, 0.0, 0.0, 0.0, 1.0);
- fptfx[5] = START_PTFX("ambient_fire_generic", -533.8160, -962.3737, 3.8429, 0.0, 0.0, 0.0, 1.0);
- fptfx[6] = START_PTFX("ambient_fire_generic", -486.2957, -947.1908, 3.8429, 0.0, 0.0, 0.0, 1.0);
- fptfx[7] = START_PTFX("ambient_fire_generic", -495.2988, -893.5700, 3.8429, 0.0, 0.0, 0.0, 1.0);
- fptfx[8] = START_PTFX("ambient_fire_generic", -513.8417, -893.9219, 3.8429, 0.0, 0.0, 0.0, 1.0);
- fptfx[9] = START_PTFX("ambient_fire_generic", -587.5649, -816.2086, 3.8431, 0.0, 0.0, 0.0, 1.0);
- fptfx[10] = START_PTFX("ambient_fire_generic", -634.3055, -836.2691, 3.8429, 0.0, 0.0, 0.0, 1.0);
- fptfx[11] = START_PTFX("ambient_fire_generic", -669.3873, -936.9453, 3.8423, 0.0, 0.0, 0.0, 1.0);
- fptfx[12] = START_PTFX("ambient_fire_generic", -712.3514, -816.7839, 3.8426, 0.0, 0.0, 0.0, 1.0);
- fptfx[13] = START_PTFX("ambient_fire_generic", -698.6480, -771.0497, 3.8427, 0.0, 0.0, 0.0, 1.0);
- fptfx[14] = START_PTFX("ambient_fire_generic", -676.7689, -701.0596, 3.8426, 0.0, 0.0, 0.0, 1.0);
- fptfx[15] = START_PTFX("ambient_fire_generic", -608.8053, -659.7471, 3.8425, 0.0, 0.0, 0.0, 1.0);
- fptfx[16] = START_PTFX("ambient_fire_generic", -525.1100, -776.2291, 3.8426, 0.0, 0.0, 0.0, 1.0);
- fptfx[17] = START_PTFX("ambient_fire_generic", -632.7447, -809.9327, 3.9130, 0.0, 0.0, 0.0, 1.0);
- fptfx[18] = START_PTFX("fire_plume_large", -573.8593, -1013.7192, 4.0643, 0.0, 0.0, 0.0, 1.0);
- }
- // spawn vehicles
- void SpawnV(void)
- {
- uint Vmodel[3];
- float vx[3], vy[3], vz[3], vh[3];
- Vmodel[0] = MODEL_TOURMAV, vx[0] = -525.0351, vy[0] = -990.7301, vz[0] = 10.9689, vh[0] = 86.2237;
- Vmodel[1] = MODEL_MRTASTY, vx[1] = -807.0687, vy[1] = -744.3047, vz[1] = 4.3376, vh[1] = 180.0234;
- Vmodel[2] = MODEL_REEFER, vx[2] = -641.9576, vy[2] = -625.2635, vz[2] = -3.0143, vh[2] = 180.0001;
- uint I;
- for (I = 0; I <= 2; I++)
- {
- REQUEST_MODEL(Vmodel[I]);
- while (!HAS_MODEL_LOADED(Vmodel[I])) WAIT(0);
- CREATE_CAR(Vmodel[I], vx[I], vy[I], vz[I], &zcar[I], true);
- SET_CAR_HEADING(zcar[I], vh[I]);
- SET_ENGINE_HEALTH(zcar[I], 0.0);
- SET_CAR_PROOFS(zcar[I], TRUE, TRUE, TRUE, TRUE, TRUE);
- MARK_MODEL_AS_NO_LONGER_NEEDED(Vmodel[I]);
- }
- }
- // spawn pilot char
- void SpawnC(void)
- {
- REQUEST_MODEL(MODEL_M_M_HELIPILOT_01);
- while (!HAS_MODEL_LOADED(MODEL_M_M_HELIPILOT_01)) WAIT(0);
- CREATE_CHAR(16, MODEL_M_M_HELIPILOT_01, -534.4318, -994.4573, 10.0620, &wped, true);
- ADD_BLIP_FOR_CHAR(wped, &bwPed);
- PedSettings(wped, bwPed);
- CHANGE_BLIP_COLOUR(bwPed, 11);
- UpdateWeaponOfPed(wped, WEAPON_SNIPERRIFLE);
- SET_CURRENT_CHAR_WEAPON(wped, WEAPON_SNIPERRIFLE, TRUE);
- MARK_MODEL_AS_NO_LONGER_NEEDED(MODEL_M_M_HELIPILOT_01);
- }
- // teleport to hapiness island
- void WarpToHappiness(void)
- {
- if(IS_PLAYER_PLAYING(GetPlayerIndex()))
- {
- SpawnO();
- SpawnFX();
- SpawnC();
- SpawnV();
- FREEZE_CAR_POSITION(zcar[2], TRUE);
- FORCE_TIME_OF_DAY(0, 0);
- FORCE_WEATHER_NOW(WEATHER_FOGGY);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- float x = -642.4174, y = -624.6684, z = 0.6028;
- 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(), 220.3054);
- SET_CAM_BEHIND_PED(GetPlayerPed());
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 1;
- }
- }
- }
- // Display Text Shortcut
- void Print(char *string)
- {
- PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 4500, 1);
- }
- // get player info
- void PlayerC(void)
- {
- if(IS_PLAYER_PLAYING(GetPlayerIndex()))
- {
- pdied = 0;
- GET_CHAR_COORDINATES(GetPlayerPed(), &xp, &yp, &zp);
- }
- }
- // manage player death
- void Pdeath(void)
- {
- if(IS_CHAR_DEAD(GetPlayerPed()) && pdied == 0)
- {
- died++;
- pdied = 1;
- }
- }
- // manage player & wanted settings
- void Pset(void)
- {
- if(IS_PLAYER_PLAYING(GetPlayerIndex()))
- {
- char *zone;
- zone = GET_NAME_OF_ZONE(xp, yp, zp);
- SET_ZONE_NO_COPS(zone, TRUE);
- CLEAR_WANTED_LEVEL(GetPlayerIndex());
- SET_MAX_WANTED_LEVEL(0);
- SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
- SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
- SET_POLICE_RADAR_BLIPS(FALSE);
- }
- }
- // set print
- void set_up_draw(int type, float width, float height, uint r, uint g, uint b, uint a)
- {
- SET_TEXT_FONT(0);
- SET_TEXT_BACKGROUND(0);
- SET_TEXT_DROPSHADOW(0, 0, 0, 0, 255);
- SET_TEXT_EDGE(0, 0, 0, 0, 255);
- if (type == 1)
- {
- SET_TEXT_BACKGROUND(1);
- }
- else if (type == 2)
- {
- SET_TEXT_DROPSHADOW(1, 0, 0, 0, 255);
- }
- else if (type == 3)
- {
- SET_TEXT_EDGE(1, 0, 0, 0, 255);
- }
- SET_TEXT_COLOUR(r, g, b, a);
- SET_TEXT_SCALE(width, height);
- SET_TEXT_PROPORTIONAL(1);
- SET_TEXT_JUSTIFY(0);
- SET_TEXT_CENTRE(0);
- SET_TEXT_RIGHT_JUSTIFY(0);
- }
- // draw text
- float draw_text(char *gxtName, float x, float y, char *val)
- {
- float result;
- result = GET_STRING_WIDTH_WITH_STRING(gxtName, val);
- DISPLAY_TEXT_WITH_LITERAL_STRING(x, y, gxtName, val);
- return result;
- }
- // draw int
- void draw_number(char *gxtName, float x, float y, int val)
- {
- DISPLAY_TEXT_WITH_NUMBER(x, y, gxtName, val);
- }
- // print zombie killed & player death totals
- void PrintKD(void)
- {
- set_up_draw(2, 0.30000000, 0.30000000, 255, 255, 75, 150);
- draw_text("STRING", 0.05000000, 0.10000000, "ZOMBIES KILLED :");
- set_up_draw(2, 0.30000000, 0.30000000, 255, 255, 75, 150);
- draw_number("NUMBR", 0.05000000, 0.13000000, killed);
- set_up_draw(2, 0.30000000, 0.30000000, 230, 110, 0, 150);
- draw_text("STRING", 0.05000000, 0.16000000, "PLAYER DIED :");
- set_up_draw(2, 0.30000000, 0.30000000, 230, 110, 0, 150);
- draw_number("NUMBR", 0.05000000, 0.19000000, died);
- }
- // Zombie generator
- void ZombGen(void)
- {
- if(IS_PLAYER_PLAYING(GetPlayerIndex()))
- {
- uint I;
- for (I = 0; I <= 39; I++)
- {
- if(!DOES_CHAR_EXIST(zomb[I]))
- {
- float offx;
- float offy;
- float x, y, z;
- float zgrnd;
- float dista;
- GENERATE_RANDOM_FLOAT_IN_RANGE(-85.0, 85.0, &offx);
- GENERATE_RANDOM_FLOAT_IN_RANGE(-85.0, 85.0, &offy);
- GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(GetPlayerPed(), offx, offy, 0, &x, &y, &z);
- GET_GROUND_Z_FOR_3D_COORD(x, y, z, &zgrnd);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, x, y, zgrnd, &dista);
- if(dista >= 40.0 && zgrnd >= 1.0)
- {
- REQUEST_MODEL(MODEL_M_Y_MULTIPLAYER);
- while (!HAS_MODEL_LOADED(MODEL_M_Y_MULTIPLAYER)) WAIT(0);
- CLEAR_AREA_OF_CARS(x, y, zgrnd, 3.0);
- CLEAR_AREA_OF_CHARS(x, y, zgrnd, 3.0);
- CREATE_CHAR(16, MODEL_M_Y_MULTIPLAYER, x, y, zgrnd + 0.1000, &zomb[I], true);
- ZombSet(zomb[I]);
- zsptfx[I] = START_PTFX_ON_PED_BONE("ambient_steam_manhole", zomb[I], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, BONE_PELVIS, 1.0);
- zfptfx[I] = START_PTFX_ON_PED_BONE("ambient_flies_circling", zomb[I], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, BONE_HEAD, 1.0);
- MARK_MODEL_AS_NO_LONGER_NEEDED(MODEL_M_Y_MULTIPLAYER);
- }
- }
- }
- }
- }
- // Manage zombies
- void ManageZomb(void)
- {
- uint I;
- for (I = 0; I <= 39; I++)
- {
- if(DOES_CHAR_EXIST(zomb[I]))
- {
- float zx, zy, zz;
- float distb;
- uint zrs;
- GET_CHAR_COORDINATES(zomb[I], &zx, &zy, &zz);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, zx, zy, zz, &distb);
- SAY_AMBIENT_SPEECH(zomb[I], "MOAN", 1, 1, 2);
- SET_CHAR_WANTED_BY_POLICE(zomb[I], FALSE);
- GENERATE_RANDOM_INT_IN_RANGE(0, 50, &zrs);
- if(HAS_CHAR_BEEN_DAMAGED_BY_CHAR(zomb[I], GetPlayerPed(), 0))
- {
- SWITCH_PED_TO_RAGDOLL (zomb[I], 0, 3000, 0, 0, 0, 0);
- if(IS_CHAR_FATALLY_INJURED(zomb[I]) && IS_CHAR_DEAD(zomb[I]))
- {
- killed++;
- }
- }
- if(zrs == 25)
- {
- float Rspeed;
- GENERATE_RANDOM_FLOAT_IN_RANGE(0.2, 2.5, &Rspeed);
- SET_CHAR_MOVE_ANIM_SPEED_MULTIPLIER(zomb[I], Rspeed);
- }
- if(IS_CHAR_DEAD(zomb[I]) || distb > 100.0)
- {
- STOP_PTFX(zsptfx[I]);
- STOP_PTFX(zfptfx[I]);
- REMOVE_PTFX_FROM_PED(zomb[I]);
- EXPLODE_CHAR_HEAD(zomb[I]);
- TASK_DIE(zomb[I]);
- MARK_CHAR_AS_NO_LONGER_NEEDED(&zomb[I]);
- }
- }
- }
- }
- // gas can generator
- void GasCanGen(void)
- {
- if(killed >= 50)
- {
- if(IS_PLAYER_PLAYING(GetPlayerIndex()))
- {
- uint I;
- for (I = 0; I <= 11; I++)
- {
- if(!DOES_OBJECT_EXIST(gc[I]))
- {
- float boffx;
- float boffy;
- float bzgrnd;
- float bx, by, bz;
- float distc;
- GENERATE_RANDOM_FLOAT_IN_RANGE(-85.0, 85.0, &boffx);
- GENERATE_RANDOM_FLOAT_IN_RANGE(-85.0, 85.0, &boffy);
- GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(GetPlayerPed(), boffx, boffy, 0, &bx, &by, &bz);
- GET_GROUND_Z_FOR_3D_COORD(bx, by, bz, &bzgrnd);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, bx, by, bzgrnd, &distc);
- if(distc >= 40.0 && bzgrnd >= 1.0)
- {
- REQUEST_MODEL(0x32BBE5F4);
- while (!HAS_MODEL_LOADED(0x32BBE5F4)) WAIT(0);
- CREATE_OBJECT(0x32BBE5F4, bx, by, bzgrnd, &gc[I], 1);
- SET_OBJECT_SCALE(gc[I], 0.5);
- SET_OBJECT_RECORDS_COLLISIONS(gc[I], TRUE);
- SET_OBJECT_DYNAMIC(gc[I], TRUE);
- SET_OBJECT_AS_STEALABLE(gc[I], TRUE);
- MAKE_OBJECT_TARGETTABLE(gc[I], TRUE);
- MARK_MODEL_AS_NO_LONGER_NEEDED(0x32BBE5F4);
- }
- }
- }
- }
- }
- }
- // Manage gas cans
- void ManageGC(void)
- {
- if(killed >= 50)
- {
- uint I;
- for (I = 0; I <= 11; I++)
- {
- if(DOES_OBJECT_EXIST(gc[I]))
- {
- float gcx, gcy, gcz;
- float distd;
- GET_OBJECT_COORDINATES(gc[I], &gcx, &gcy, &gcz);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, gcx, gcy, gcz, &distd);
- if(distd > 100.0 || IS_OBJECT_IN_WATER(gc[I]))
- {
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&gc[I]);
- }
- }
- }
- }
- }
- // manage boat's denied
- void NoBoat(void)
- {
- if(IS_CHAR_IN_ANY_BOAT(GetPlayerPed()))
- {
- Vehicle pcar;
- GET_CAR_CHAR_IS_USING(GetPlayerPed(), &pcar);
- SET_ENGINE_HEALTH(pcar, 0.0);
- ANCHOR_BOAT(pcar, TRUE);
- FREEZE_CAR_POSITION(pcar, TRUE);
- MARK_CAR_AS_NO_LONGER_NEEDED(&pcar);
- }
- }
- // custom cutscene setting IN
- void CcSetIn(void)
- {
- SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), -534.4318, -999.4573, 10.0620);
- SET_CHAR_HEADING(GetPlayerPed(), 0.0);
- SET_CHAR_COORDINATES_NO_OFFSET(wped, -534.4318, -996.4573, 10.0620);
- SET_CHAR_HEADING(wped, 180.0);
- SET_CAMERA_CONTROLS_DISABLED_WITH_PLAYER_CONTROLS(FALSE);
- SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
- SET_INSTANT_WIDESCREEN_BORDERS(TRUE);
- }
- // custom cutscene setting OUT
- void CcSetOut(void)
- {
- SET_CAM_BEHIND_PED(GetPlayerPed());
- SET_INSTANT_WIDESCREEN_BORDERS(FALSE);
- SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
- CLEAR_CHAR_TASKS_IMMEDIATELY(wped);
- TASK_COMBAT_HATED_TARGETS_AROUND_CHAR(wped, 500.0);
- }
- // unfreeze quest object
- void FindObjectSet(uint otype)
- {
- FREEZE_OBJECT_POSITION(otype, FALSE);
- SET_OBJECT_DYNAMIC(otype, TRUE);
- SET_OBJECT_AS_STEALABLE(otype, TRUE);
- }
- // freeze quest object
- void DropObject(uint otype)
- {
- SET_OBJECT_AS_STEALABLE(otype, FALSE);
- SET_OBJECT_DYNAMIC(otype, FALSE);
- FREEZE_OBJECT_POSITION(otype, TRUE);
- }
- // manage player restart point
- void RestartPoint(void)
- {
- if(prp == 0)
- {
- OVERRIDE_NEXT_RESTART(-669.8347, -661.1768, 5.1860, 211.3054);
- }
- else if(prp == 1)
- {
- OVERRIDE_NEXT_RESTART(-538.5554, -997.6279, 11.0619, 15.2282);
- }
- else if(prp == 2)
- {
- OVERRIDE_NEXT_RESTART(-1020.2728, -558.8301, 6.3528, 5.7398);
- }
- }
- // manage quest objects
- void Mobj(void)
- {
- if(qo == 1)
- {
- FREEZE_OBJECT_POSITION(ob[15], FALSE);
- SET_OBJECT_RECORDS_COLLISIONS(ob[15], FALSE);
- ATTACH_OBJECT_TO_CAR(ob[15], zcar[0], 0, 0.0, 1.0, -0.2, 0.0, 0.0, 0.0);
- qo = 2;
- }
- else if(qo == 3)
- {
- FREEZE_OBJECT_POSITION(ob[10], FALSE);
- SET_OBJECT_RECORDS_COLLISIONS(ob[10], FALSE);
- ATTACH_OBJECT_TO_CAR(ob[10], zcar[0], 0, 0.0, 1.15, -0.2, 0.0, 0.0, 0.0);
- qo = 4;
- }
- else if(qo == 5)
- {
- FREEZE_OBJECT_POSITION(ob[8], FALSE);
- SET_OBJECT_RECORDS_COLLISIONS(ob[8], FALSE);
- ATTACH_OBJECT_TO_CAR(ob[8], zcar[0], 0, 0.0, 2.0, 1.3, 0.0, 0.0, 0.0);
- qo = 6;
- }
- }
- // Manage zombie minigame
- void ZombMini(void)
- {
- float xo, yo, zo;
- float diste;
- DRAW_CHECKPOINT_WITH_ALPHA(-534.4318, -999.4573, 10.0620, 1.0, 61, 166, 235, 100);
- if(zmg == 1)
- {
- Print("HAPPINESS ISLAND zombie infested !");
- SET_CHAR_DIES_INSTANTLY_IN_WATER(GetPlayerPed(), TRUE);
- ADD_BLIP_FOR_COORD(-538.5554, -997.6279, 11.0619, &sbase);
- CHANGE_BLIP_ALPHA(sbase, 255);
- CHANGE_BLIP_SPRITE(sbase, BLIP_MULTIPLAYER_TUTORIAL);
- CHANGE_BLIP_NAME_FROM_ASCII(sbase, "SURVIVOR BASE");
- CHANGE_BLIP_COLOUR(sbase, 22);
- WAIT(3500);
- Print("Find a Safe Zone!");
- zmg = 2;
- }
- else if (zmg == 2)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Survivor : ~w~Im glad to see someone alive ! who are you and how you got here ?");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~My name is Niko , i just wreaked my boat on north side of island ...");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~what the hell is going on here ?!? zombies , that cant be .");
- WAIT(5000);
- Print("~COL_NET_4~Survivor : ~w~Im Tom , it all started last night , Zombies were everywhere ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~they just kill everyone , so i tryed using my helicopter to flee ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~but the army quarantined the city and shot anything that fly or sail away ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~i was hit , but i managed to land here ... could we use your boat to escape ?");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~not possible , its sinking ! i was lucky to reach island without a swim .");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~Lucky indeed , the army done something weird to water ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~i think its meant to prevent zombies from swiming to other land ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~so try to avoid deep water for its deadly .");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~Hum , maybe i can repair my helicopter with your help ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~could you search around the island for things ill need ?");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~Sure i can do that , just tell me what you need and ill find it for you .");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~First i would need a battery to power up the helicopter main controls ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~so , if you can find one , bring it back and drop it next to helicopter .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 3;
- prp = 1;
- }
- }
- }
- }
- else if(zmg == 3)
- {
- FindObjectSet(ob[15]);
- GET_OBJECT_COORDINATES(ob[15], &xo, &yo, &zo);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
- if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[15], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
- }
- else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[15], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
- }
- else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[15], ob[18]))
- {
- WAIT(1000);
- DropObject(ob[15]);
- Print("Object dropped , go talk with ~COL_NET_4~Tom");
- zmg = 4;
- }
- }
- else if(zmg == 4)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~You found a battery , great ! Now i need pliers to be able to hook it up .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 5;
- }
- }
- }
- }
- else if(zmg == 5)
- {
- FindObjectSet(ob[14]);
- GET_OBJECT_COORDINATES(ob[14], &xo, &yo, &zo);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
- if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[14], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
- }
- else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[14], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
- }
- else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[14], ob[18]))
- {
- WAIT(1000);
- DropObject(ob[14]);
- Print("Object dropped , go talk with ~COL_NET_4~Tom");
- zmg = 6;
- }
- }
- else if(zmg == 6)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~Good job finding thoses pliers ! i will be able to power up main controls .");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~Now i would need a laptop to log in helicopter computer .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 7;
- }
- }
- }
- }
- else if(zmg == 7)
- {
- FindObjectSet(ob[10]);
- GET_OBJECT_COORDINATES(ob[10], &xo, &yo, &zo);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
- if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[10], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
- }
- else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[10], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
- if(qo == 0)
- {
- qo = 1;
- }
- }
- else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[10], ob[18]))
- {
- WAIT(1000);
- DropObject(ob[10]);
- Print("Object dropped , go talk with ~COL_NET_4~Tom");
- zmg = 8;
- }
- }
- else if(zmg == 8)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~Well done , this laptop is exacly what i needed ! ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~Now i will need a screwdriver to open helicopter control panel.");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 9;
- }
- }
- }
- }
- else if(zmg == 9)
- {
- FindObjectSet(ob[9]);
- GET_OBJECT_COORDINATES(ob[9], &xo, &yo, &zo);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
- if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[9], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
- }
- else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[9], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
- if(qo == 2)
- {
- qo = 3;
- }
- }
- else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[9], ob[18]))
- {
- WAIT(1000);
- DropObject(ob[9]);
- Print("Object dropped , go talk with ~COL_NET_4~Tom");
- zmg = 10;
- }
- }
- else if(zmg == 10)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~You got a screwdriver , well it seems we are lucky so far ! ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~but to fix controls ill need some electronic parts , try to find a radio .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 11;
- }
- }
- }
- }
- else if(zmg == 11)
- {
- FindObjectSet(ob[8]);
- GET_OBJECT_COORDINATES(ob[8], &xo, &yo, &zo);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
- if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[8], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
- }
- else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[8], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
- }
- else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[8], ob[18]))
- {
- WAIT(1000);
- DropObject(ob[8]);
- Print("Object dropped , go talk with ~COL_NET_4~Tom");
- zmg = 12;
- }
- }
- else if(zmg == 12)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~Sweet , that old radio will provide the parts i needed ! ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~but i have found a few oil leaks , i would need a pipewrench .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 13;
- }
- }
- }
- }
- else if(zmg == 13)
- {
- FindObjectSet(ob[11]);
- GET_OBJECT_COORDINATES(ob[11], &xo, &yo, &zo);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
- if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[11], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
- }
- else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[11], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
- if(qo == 4)
- {
- qo = 5;
- }
- }
- else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[11], ob[18]))
- {
- WAIT(1000);
- DropObject(ob[11]);
- Print("Object dropped , go talk with ~COL_NET_4~Tom");
- zmg = 14;
- }
- }
- else if(zmg == 14)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~Thats just perfect , ill be able to fix thoses oil leaks ! ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~ but now try to find some motor oil to fill helicopter back up .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 15;
- }
- }
- }
- }
- else if(zmg == 15)
- {
- FindObjectSet(ob[7]);
- GET_OBJECT_COORDINATES(ob[7], &xo, &yo, &zo);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
- if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[7], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
- }
- else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[7], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
- }
- else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[7], ob[18]))
- {
- WAIT(1000);
- DropObject(ob[7]);
- Print("Object dropped , go talk with ~COL_NET_4~Tom");
- zmg = 16;
- }
- }
- else if(zmg == 16)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~Good , there should be enuff oil for a small trip ! ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~now would need you to find a hammer .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 17;
- }
- }
- }
- }
- else if(zmg == 17)
- {
- FindObjectSet(ob[12]);
- GET_OBJECT_COORDINATES(ob[12], &xo, &yo, &zo);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
- if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[12], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
- }
- else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[12], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
- }
- else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[12], ob[18]))
- {
- WAIT(1000);
- DropObject(ob[12]);
- Print("Object dropped , go talk with ~COL_NET_4~Tom");
- zmg = 18;
- }
- }
- else if(zmg == 18)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~Fine , i will be able to straight up some bent metal parts with it ! ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~but i just found out oil pump is badly damaged , i need more parts ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~so , try to find something with a small engine .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 19;
- }
- }
- }
- }
- else if(zmg == 19)
- {
- FindObjectSet(ob[13]);
- GET_OBJECT_COORDINATES(ob[13], &xo, &yo, &zo);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
- if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[13], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
- }
- else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[13], ob[18]))
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
- }
- else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[13], ob[18]))
- {
- WAIT(1000);
- DropObject(ob[13]);
- Print("Object dropped , go talk with ~COL_NET_4~Tom");
- zmg = 20;
- }
- }
- else if(zmg == 20)
- {
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetIn();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~The powersaw engine will fit just fine ! the helicopter is now fixed ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~but given helicopter conditions , we wont be able to fly very far ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~so , i will fly us to industrial area , for theres less population there ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~once there , we will have to improvise a plan and find a safe area ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~now lets go away from here , be carefull not to fall from helicopter .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- SET_ENGINE_HEALTH(zcar[0], 100.0);
- WARP_CHAR_INTO_CAR(wped, zcar[0]);
- WARP_CHAR_INTO_CAR_AS_PASSENGER(GetPlayerPed(), zcar[0], 2);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- prp = 2;
- zmg = 21;
- }
- }
- }
- }
- else if(zmg == 21)
- {
- REMOVE_BLIP(sbase);
- TASK_HELI_MISSION(wped, zcar[0], 0, 0, -1036.0369, -537.8839, 6.1529, 4, 50.00, 30, -1.0, 70, 60);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -1036.0369, -537.8839, 6.1529, &diste);
- if(diste <= 2.5)
- {
- SET_ENGINE_HEALTH(zcar[0], 0.0);
- TASK_LEAVE_CAR_IMMEDIATELY(wped, zcar[0]);
- zmg = 22;
- }
- }
- else if(zmg == 22)
- {
- DRAW_CHECKPOINT_WITH_ALPHA(-1026.0707, -539.1629, 6.2528, 1.0, 61, 166, 235, 100);
- GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -1026.0707, -539.1629, 7.2528, &diste);
- if(diste <= 15.0)
- {
- TASK_GO_STRAIGHT_TO_COORD(wped, -1026.0707, -536.1629, 7.2528, 3, -1);
- if(diste <= 1.5)
- {
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), -1026.0707, -539.1629, 6.3528);
- SET_CHAR_HEADING(GetPlayerPed(), 0.0);
- SET_CHAR_COORDINATES_NO_OFFSET(wped, -1026.0707, -536.1629, 6.3528);
- SET_CHAR_HEADING(wped, 180.0);
- SET_CAMERA_CONTROLS_DISABLED_WITH_PLAYER_CONTROLS(FALSE);
- SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
- SET_INSTANT_WIDESCREEN_BORDERS(TRUE);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(1000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
- Print("~COL_NET_4~Tom : ~w~We made it , but the helicopter is dead ! so , what should we do now ?");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~This roof seems safe , we should rest a little and think about our next move .");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~Ok , we will need a vehicle , weapons , food and a safe place to go ... ");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~Wait , since i was away for days i still dont know what the hell is going on ...");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~so you need to tell me more about what happend here , i must know ! ");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~It all happend so fast , i was done with my last tourist trip ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~i was ready to go home , when the radio started to broadcast a public warning ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~the mayor asked everybody to evacuate the city by all means ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~for a toxic gaz was leaking from a digging in Bohan constuction site ... ");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~the next few hours were horrible , everybody was scared ... ");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~then zombies started to emerge from the fog and killed everyone in sight ... ");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~thats when i escaped using my helicopter , but a 2nd warning was on radio ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~it was the army , they said city was quarantined for classified reasons ...");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~nobody is allowed in or out ! you know the rest , what about you ? ");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~My cousin Roman dragged me to a party on a yacht far at sea ... ");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~but after 2 days i had enuff ! unlike Roman , so i borrowed a boat ... ");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~but it was damaged , the engine died and i drifted toward island .");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~Atleast you know your cousin is safe , on that yacht his life aint in danger . ");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~If you knew him you wouldnt say that , Roman beats all odds in that matter ...");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~that said , if i get us a car , where do you thinks we should go ?");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~My old friend Paulie was a gun dealer for the local bikers ... ");
- WAIT(5000);
- Print("~COL_NET_4~Tom : ~w~his weapons are in a container next to his garage , its not far from here .");
- WAIT(5000);
- Print("~COL_NET_1~Niko : ~w~Sounds good to me , we shall go in a few hours .");
- WAIT(5000);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_OUT(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- CcSetOut();
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- }
- DO_SCREEN_FADE_IN(500);
- while (IS_SCREEN_FADING())
- {
- WAIT(0);
- zmg = 23;
- }
- }
- }
- }
- else if(zmg == 23)
- {
- Print("End of Zombie Minigame : Escape Happiness island ...");
- WAIT(5000);
- Print("TO BE CONTINUED ! ... in Zombie Minigame 2 : Big Paulie Gun's");
- WAIT(5000);
- SET_INT_STAT(363, stat);
- SET_MAX_WANTED_LEVEL(mlvl);
- SET_CAR_DENSITY_MULTIPLIER(1.25);
- SET_RANDOM_CAR_DENSITY_MULTIPLIER(1.25);
- SET_PARKED_CAR_DENSITY_MULTIPLIER(2.25);
- SET_PED_DENSITY_MULTIPLIER(1.50);
- SET_SCENARIO_PED_DENSITY_MULTIPLIER(1.0, 1.0);
- SET_ALL_RANDOM_PEDS_FLEE(GetPlayerIndex(), FALSE);
- ALLOW_EMERGENCY_SERVICES(TRUE);
- SWITCH_RANDOM_BOATS(TRUE);
- SWITCH_POLICE_HELIS(TRUE);
- SWITCH_AMBIENT_PLANES(TRUE);
- SWITCH_GARBAGE_TRUCKS(TRUE);
- SWITCH_RANDOM_TRAINS(TRUE);
- SET_CREATE_RANDOM_COPS(TRUE);
- SET_POLICE_RADAR_BLIPS(TRUE);
- SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
- MUTE_POSITIONED_RADIO(FALSE);
- DISABLE_FRONTEND_RADIO();
- FORCE_WEATHER_NOW(WEATHER_SUNNY);
- SET_DEAD_PEDS_DROP_WEAPONS(TRUE);
- RELEASE_TIME_OF_DAY();
- CANCEL_OVERRIDE_RESTART();
- TERMINATE_THIS_SCRIPT();
- }
- }
- void main(void)
- {
- THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
- InitZombSet();
- WarpToHappiness();
- while (TRUE)
- {
- WAIT(0);
- PlayerC();
- Pdeath();
- Pset();
- PrintKD();
- ZombGen();
- ManageZomb();
- GasCanGen();
- ManageGC();
- NoBoat();
- RestartPoint();
- Mobj();
- ZombMini();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment