XADRENALINEIX

HuN's Zombie Island

Jul 6th, 2013
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 46.06 KB | None | 0 0
  1. #include <natives.h>
  2. #include <common.h>
  3. #include <strings.h>
  4. #include <types.h>
  5. #include <consts.h>
  6.  
  7. Ped zomb[40];
  8. Ped wped;
  9.  
  10. uint zsptfx[40];
  11. uint zfptfx[40];
  12. uint fptfx[19];
  13.  
  14. char *anims[3];
  15. int dm;
  16. int cdm;
  17.  
  18. Object ob[19];
  19. Object gc[12];
  20.  
  21. Blip sbase;
  22. Blip bwPed;
  23.  
  24. Vehicle zcar[3];
  25.  
  26. uint killed = 0;
  27. uint pdied = 0;
  28. uint died = 0;
  29. uint prp = 0;
  30. uint zmg = 0;
  31. uint qo = 0;
  32. uint stat = 0;
  33. uint mlvl = 0;
  34.  
  35. float xp, yp, zp;
  36.  
  37. // Various settings
  38. void InitZombSet(void)
  39. {
  40.     anims[0] = "move_injured_lower";
  41.     anims[1] = "move_injured_upper";
  42.     anims[2] = "move_injured_generic";
  43.     stat = GET_INT_STAT(363);
  44.     GET_MAX_WANTED_LEVEL(&mlvl);
  45.     LOAD_CHAR_DECISION_MAKER(2, &dm);
  46.     LOAD_COMBAT_DECISION_MAKER(3, &cdm);
  47.     SET_DECISION_MAKER_ATTRIBUTE_SIGHT_RANGE(dm, 250);
  48.     SET_DECISION_MAKER_ATTRIBUTE_SIGHT_RANGE(cdm, 250);
  49.     SET_INT_STAT(363, 5);
  50.     SET_CAR_DENSITY_MULTIPLIER(0.0);
  51.     SET_RANDOM_CAR_DENSITY_MULTIPLIER(0.0);
  52.     SET_PARKED_CAR_DENSITY_MULTIPLIER(0.0);
  53.     SET_PED_DENSITY_MULTIPLIER(0.0);
  54.     SET_SCENARIO_PED_DENSITY_MULTIPLIER(0.0, 0.0);
  55.     SET_ALL_RANDOM_PEDS_FLEE(GetPlayerIndex(), TRUE);
  56.     ALLOW_EMERGENCY_SERVICES(FALSE);
  57.     SWITCH_RANDOM_BOATS(FALSE);
  58.     SWITCH_POLICE_HELIS(FALSE);
  59.     SWITCH_AMBIENT_PLANES(FALSE);
  60.     SWITCH_GARBAGE_TRUCKS(FALSE);
  61.     SWITCH_RANDOM_TRAINS(FALSE);
  62.     SET_CREATE_RANDOM_COPS(FALSE);
  63.     MUTE_POSITIONED_RADIO(TRUE);
  64.     DISABLE_FRONTEND_RADIO();
  65.     SET_DEAD_PEDS_DROP_WEAPONS(FALSE);
  66. }
  67.  
  68. // Zombies settings
  69. void ZombSet(uint ptype)
  70. {
  71.     uint Ranim;
  72.     SET_CHAR_RELATIONSHIP_GROUP(ptype, 24);
  73.     SET_CHAR_RELATIONSHIP(ptype, 5, 0);
  74.     SET_CHAR_RELATIONSHIP(ptype, 5, 1);
  75.     SET_CHAR_RELATIONSHIP(ptype, 5, 2);
  76.     SET_CHAR_RELATIONSHIP(ptype, 5, 3);
  77.     SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
  78.     SET_CHAR_COMPONENT_VARIATION(ptype, 0, 3, 3);
  79.     SET_CHAR_COMPONENT_VARIATION(ptype, 1, 4, 1);
  80.     SET_CHAR_AS_ENEMY(ptype, TRUE);
  81.     SET_CHAR_MONEY(ptype, 0);
  82.     SET_CHAR_DECISION_MAKER(ptype, dm);
  83.     SET_COMBAT_DECISION_MAKER(ptype, cdm);
  84.     SET_CHAR_WILL_USE_CARS_IN_COMBAT(ptype, FALSE);
  85.     SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(ptype, TRUE);
  86.     SET_CHAR_DIES_INSTANTLY_IN_WATER(ptype, TRUE);
  87.     GENERATE_RANDOM_INT_IN_RANGE(0, 3, &Ranim);
  88.     SET_ANIM_GROUP_FOR_CHAR(ptype, anims[Ranim]);
  89.     SET_SENSE_RANGE(ptype, 500.0);
  90.     SET_CHAR_KEEP_TASK(ptype, TRUE);
  91.     TASK_COMBAT_HATED_TARGETS_AROUND_CHAR(ptype, 500.0);
  92.     SET_CHAR_WILL_MOVE_WHEN_INJURED(ptype, TRUE);
  93.     SET_CHAR_WILL_USE_COVER(ptype, FALSE);
  94.     SET_PED_DONT_DO_EVASIVE_DIVES(ptype, TRUE);
  95.     SET_PED_DIES_WHEN_INJURED(ptype, TRUE);
  96.     SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
  97.     SET_PED_PATH_MAY_USE_CLIMBOVERS(ptype, TRUE);
  98.     SET_PED_PATH_MAY_DROP_FROM_HEIGHT(ptype, TRUE);
  99.     SET_PED_PATH_MAY_USE_LADDERS(ptype, FALSE);
  100.     UpdateWeaponOfPed(ptype, WEAPON_KNIFE);
  101.     SET_CURRENT_CHAR_WEAPON(ptype, WEAPON_KNIFE, TRUE);
  102.     SET_CHAR_CURRENT_WEAPON_VISIBLE(ptype, FALSE);
  103.     CANCEL_CURRENTLY_PLAYING_AMBIENT_SPEECH(ptype);
  104.     SET_AMBIENT_VOICE_NAME(ptype, "M_ZOMBIE");
  105.     SAY_AMBIENT_SPEECH(ptype, "MOAN", 1, 1, 2);
  106. }
  107.  
  108. // survivor ped settings shortcut
  109. void PedSettings(uint ptype, uint pblip)
  110. {
  111.     SET_CHAR_PROOFS(ptype, TRUE, TRUE, TRUE, TRUE, TRUE);
  112.     SET_CHAR_RELATIONSHIP_GROUP(ptype, 25);
  113.     SET_CHAR_RELATIONSHIP(ptype, 5, 24);
  114.     SET_CHAR_RELATIONSHIP(ptype, 1, 0);
  115.     SET_SENSE_RANGE(ptype, 500.0);
  116.     SET_CHAR_AS_ENEMY(ptype, FALSE);
  117.     SET_CHAR_RANDOM_COMPONENT_VARIATION(ptype);
  118.     SET_PED_PATH_MAY_USE_CLIMBOVERS(ptype, FALSE);
  119.     SET_PED_PATH_MAY_DROP_FROM_HEIGHT(ptype, FALSE);
  120.     SET_PED_PATH_MAY_USE_LADDERS(ptype, FALSE);
  121.     SET_CHAR_WILL_USE_COVER(ptype, TRUE);
  122.     SET_PED_GENERATES_DEAD_BODY_EVENTS(ptype, TRUE);
  123.     CHANGE_BLIP_NAME_FROM_ASCII(pblip, "Survivor");
  124.     CHANGE_BLIP_ALPHA(pblip, 255);
  125.     ADD_ARMOUR_TO_CHAR(ptype, 1000);
  126. }
  127.  
  128. // soawn objects
  129. void SpawnO(void)
  130. {
  131.     uint Omodel[19];
  132.     float ox[19], oy[19], oz[19], oh[19], orx[19], ory[19], orz[19];
  133.     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;
  134.     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;
  135.     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;
  136.     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;
  137.     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;
  138.     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;
  139.     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;
  140.     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;
  141.     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;
  142.     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;
  143.     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;
  144.     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;
  145.     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;
  146.     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;
  147.     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;
  148.     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;
  149.     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;
  150.     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;
  151.     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;
  152.     uint I;
  153.     for (I = 0; I <= 18; I++)
  154.     {
  155.         REQUEST_MODEL(Omodel[I]);
  156.         while(!HAS_MODEL_LOADED(Omodel[I]))WAIT(0);
  157.         CREATE_OBJECT(Omodel[I], ox[I], oy[I], oz[I], &ob[I], 1);
  158.         SET_OBJECT_ROTATION(ob[I], orx[I], ory[I], orz[I]);
  159.         SET_OBJECT_HEADING(ob[I], oh[I]);
  160.         SET_OBJECT_RECORDS_COLLISIONS(ob[I], TRUE);
  161.         SET_OBJECT_DYNAMIC(ob[I], FALSE);
  162.         FREEZE_OBJECT_POSITION(ob[I], TRUE);
  163.         SET_OBJECT_PROOFS(ob[I], 1, 1, 1, 1, 1);
  164.         MARK_MODEL_AS_NO_LONGER_NEEDED(Omodel[I]);
  165.     }
  166. }
  167.  
  168. // start map ptfx
  169. void SpawnFX(void)
  170. {
  171.     fptfx[0] = START_PTFX("fire_plume_large", -512.3300, -1000.8740, 4.5150, 0.0, 0.0, 0.0, 1.0);
  172.     fptfx[1] = START_PTFX("fire_plume_large", -543.7067, -1039.3331, 4.0449, 0.0, 0.0, 0.0, 1.0);
  173.     fptfx[2] = START_PTFX("ambient_fire_generic", -586.5933, -931.2390, 3.8429, 0.0, 0.0, 0.0, 1.0);
  174.     fptfx[3] = START_PTFX("ambient_fire_generic", -547.2629, -964.6824, 3.9130, 0.0, 0.0, 0.0, 1.0);
  175.     fptfx[4] = START_PTFX("ambient_fire_generic", -538.7658, -948.5478, 3.9130, 0.0, 0.0, 0.0, 1.0);
  176.     fptfx[5] = START_PTFX("ambient_fire_generic", -533.8160, -962.3737, 3.8429, 0.0, 0.0, 0.0, 1.0);
  177.     fptfx[6] = START_PTFX("ambient_fire_generic", -486.2957, -947.1908, 3.8429, 0.0, 0.0, 0.0, 1.0);
  178.     fptfx[7] = START_PTFX("ambient_fire_generic", -495.2988, -893.5700, 3.8429, 0.0, 0.0, 0.0, 1.0);
  179.     fptfx[8] = START_PTFX("ambient_fire_generic", -513.8417, -893.9219, 3.8429, 0.0, 0.0, 0.0, 1.0);
  180.     fptfx[9] = START_PTFX("ambient_fire_generic", -587.5649, -816.2086, 3.8431, 0.0, 0.0, 0.0, 1.0);
  181.     fptfx[10] = START_PTFX("ambient_fire_generic", -634.3055, -836.2691, 3.8429, 0.0, 0.0, 0.0, 1.0);
  182.     fptfx[11] = START_PTFX("ambient_fire_generic", -669.3873, -936.9453, 3.8423, 0.0, 0.0, 0.0, 1.0);
  183.     fptfx[12] = START_PTFX("ambient_fire_generic", -712.3514, -816.7839, 3.8426, 0.0, 0.0, 0.0, 1.0);
  184.     fptfx[13] = START_PTFX("ambient_fire_generic", -698.6480, -771.0497, 3.8427, 0.0, 0.0, 0.0, 1.0);
  185.     fptfx[14] = START_PTFX("ambient_fire_generic", -676.7689, -701.0596, 3.8426, 0.0, 0.0, 0.0, 1.0);
  186.     fptfx[15] = START_PTFX("ambient_fire_generic", -608.8053, -659.7471, 3.8425, 0.0, 0.0, 0.0, 1.0);
  187.     fptfx[16] = START_PTFX("ambient_fire_generic", -525.1100, -776.2291, 3.8426, 0.0, 0.0, 0.0, 1.0);
  188.     fptfx[17] = START_PTFX("ambient_fire_generic", -632.7447, -809.9327, 3.9130, 0.0, 0.0, 0.0, 1.0);
  189.     fptfx[18] = START_PTFX("fire_plume_large", -573.8593, -1013.7192, 4.0643, 0.0, 0.0, 0.0, 1.0);
  190.    
  191. }
  192.  
  193. // spawn vehicles
  194. void SpawnV(void)
  195. {
  196.     uint Vmodel[3];
  197.     float vx[3], vy[3], vz[3], vh[3];
  198.     Vmodel[0] = MODEL_TOURMAV, vx[0] = -525.0351, vy[0] = -990.7301, vz[0] = 10.9689, vh[0] = 86.2237;
  199.     Vmodel[1] = MODEL_MRTASTY, vx[1] = -807.0687, vy[1] = -744.3047, vz[1] = 4.3376, vh[1] = 180.0234;
  200.     Vmodel[2] = MODEL_REEFER, vx[2] = -641.9576, vy[2] = -625.2635, vz[2] = -3.0143, vh[2] = 180.0001;
  201.     uint I;
  202.     for (I = 0; I <= 2; I++)
  203.     {
  204.         REQUEST_MODEL(Vmodel[I]);
  205.         while (!HAS_MODEL_LOADED(Vmodel[I])) WAIT(0);
  206.         CREATE_CAR(Vmodel[I], vx[I], vy[I], vz[I], &zcar[I], true);
  207.         SET_CAR_HEADING(zcar[I], vh[I]);
  208.         SET_ENGINE_HEALTH(zcar[I], 0.0);
  209.         SET_CAR_PROOFS(zcar[I], TRUE, TRUE, TRUE, TRUE, TRUE);
  210.         MARK_MODEL_AS_NO_LONGER_NEEDED(Vmodel[I]);
  211.     }
  212. }
  213.  
  214. // spawn pilot char
  215. void SpawnC(void)
  216. {
  217.     REQUEST_MODEL(MODEL_M_M_HELIPILOT_01);
  218.     while (!HAS_MODEL_LOADED(MODEL_M_M_HELIPILOT_01)) WAIT(0);
  219.     CREATE_CHAR(16, MODEL_M_M_HELIPILOT_01, -534.4318, -994.4573, 10.0620, &wped, true);
  220.     ADD_BLIP_FOR_CHAR(wped, &bwPed);
  221.     PedSettings(wped, bwPed);
  222.     CHANGE_BLIP_COLOUR(bwPed, 11);
  223.     UpdateWeaponOfPed(wped, WEAPON_SNIPERRIFLE);
  224.     SET_CURRENT_CHAR_WEAPON(wped, WEAPON_SNIPERRIFLE, TRUE);
  225.     MARK_MODEL_AS_NO_LONGER_NEEDED(MODEL_M_M_HELIPILOT_01);
  226. }  
  227.  
  228. // teleport to hapiness island
  229. void WarpToHappiness(void)
  230. {
  231.     if(IS_PLAYER_PLAYING(GetPlayerIndex()))
  232.     {
  233.         SpawnO();
  234.         SpawnFX();
  235.         SpawnC();
  236.         SpawnV();
  237.         FREEZE_CAR_POSITION(zcar[2], TRUE);
  238.         FORCE_TIME_OF_DAY(0, 0);
  239.         FORCE_WEATHER_NOW(WEATHER_FOGGY);
  240.          while (IS_SCREEN_FADING())
  241.         {
  242.             WAIT(0);
  243.         }
  244.         DO_SCREEN_FADE_OUT(500);
  245.         while (IS_SCREEN_FADING())
  246.         {
  247.             WAIT(0);
  248.         }
  249.         float x = -642.4174, y = -624.6684, z = 0.6028;
  250.         SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
  251.         LOAD_SCENE(x, y, z);
  252.         WAIT(500);
  253.         SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
  254.         SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), x, y, z);
  255.         SET_CHAR_HEADING(GetPlayerPed(), 220.3054);
  256.         SET_CAM_BEHIND_PED(GetPlayerPed());
  257.         while (IS_SCREEN_FADING())
  258.         {
  259.             WAIT(0);
  260.         }
  261.         DO_SCREEN_FADE_IN(500);
  262.         while (IS_SCREEN_FADING())
  263.         {
  264.             WAIT(0);
  265.             zmg = 1;
  266.         }
  267.     }
  268. }
  269.  
  270. // Display Text Shortcut
  271. void Print(char *string)
  272. {
  273.     PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", string, 4500, 1);
  274. }
  275.  
  276. // get player info
  277. void PlayerC(void)
  278. {
  279.     if(IS_PLAYER_PLAYING(GetPlayerIndex()))
  280.     {
  281.         pdied = 0;
  282.         GET_CHAR_COORDINATES(GetPlayerPed(), &xp, &yp, &zp);
  283.     }
  284. }
  285.  
  286. // manage player death
  287. void Pdeath(void)
  288. {
  289.     if(IS_CHAR_DEAD(GetPlayerPed()) && pdied == 0)
  290.     {
  291.         died++;
  292.         pdied = 1;
  293.     }
  294. }
  295.  
  296. // manage player & wanted settings
  297. void Pset(void)
  298. {
  299.     if(IS_PLAYER_PLAYING(GetPlayerIndex()))
  300.     {
  301.         char *zone;
  302.         zone = GET_NAME_OF_ZONE(xp, yp, zp);
  303.         SET_ZONE_NO_COPS(zone, TRUE);
  304.         CLEAR_WANTED_LEVEL(GetPlayerIndex());
  305.         SET_MAX_WANTED_LEVEL(0);
  306.         SET_CHAR_WANTED_BY_POLICE(GetPlayerPed(), FALSE);
  307.         SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), TRUE);
  308.         SET_POLICE_RADAR_BLIPS(FALSE);
  309.     }
  310. }
  311.  
  312. // set print
  313. void set_up_draw(int type, float width, float height, uint r, uint g, uint b, uint a)
  314. {
  315.         SET_TEXT_FONT(0);
  316.         SET_TEXT_BACKGROUND(0);
  317.         SET_TEXT_DROPSHADOW(0, 0, 0, 0, 255);
  318.         SET_TEXT_EDGE(0, 0, 0, 0, 255);
  319.         if (type == 1)
  320.         {
  321.                 SET_TEXT_BACKGROUND(1);
  322.         }
  323.         else if (type == 2)
  324.         {
  325.                 SET_TEXT_DROPSHADOW(1, 0, 0, 0, 255);
  326.         }
  327.         else if (type == 3)
  328.         {
  329.                 SET_TEXT_EDGE(1, 0, 0, 0, 255);
  330.         }
  331.         SET_TEXT_COLOUR(r, g, b, a);
  332.         SET_TEXT_SCALE(width, height);
  333.         SET_TEXT_PROPORTIONAL(1);
  334.         SET_TEXT_JUSTIFY(0);
  335.         SET_TEXT_CENTRE(0);
  336.         SET_TEXT_RIGHT_JUSTIFY(0);
  337. }
  338.  
  339. // draw text
  340. float draw_text(char *gxtName, float x, float y, char *val)
  341. {
  342.         float result;
  343.         result = GET_STRING_WIDTH_WITH_STRING(gxtName, val);
  344.         DISPLAY_TEXT_WITH_LITERAL_STRING(x, y, gxtName, val);
  345.         return result;
  346. }
  347.  
  348. // draw int
  349. void draw_number(char *gxtName, float x, float y, int val)
  350. {
  351.         DISPLAY_TEXT_WITH_NUMBER(x, y, gxtName, val);
  352. }
  353.  
  354. // print zombie killed & player death totals
  355. void PrintKD(void)
  356. {
  357.         set_up_draw(2, 0.30000000, 0.30000000, 255, 255, 75, 150);
  358.         draw_text("STRING", 0.05000000, 0.10000000, "ZOMBIES KILLED :");
  359.         set_up_draw(2, 0.30000000, 0.30000000, 255, 255, 75, 150);
  360.         draw_number("NUMBR", 0.05000000, 0.13000000, killed);
  361.         set_up_draw(2, 0.30000000, 0.30000000, 230, 110, 0, 150);
  362.         draw_text("STRING", 0.05000000, 0.16000000, "PLAYER DIED :");
  363.         set_up_draw(2, 0.30000000, 0.30000000, 230, 110, 0, 150);
  364.         draw_number("NUMBR", 0.05000000, 0.19000000, died);
  365. }
  366.  
  367. // Zombie generator
  368. void ZombGen(void)
  369. {
  370.     if(IS_PLAYER_PLAYING(GetPlayerIndex()))
  371.     {
  372.         uint I;
  373.         for (I = 0; I <= 39; I++)
  374.         {
  375.             if(!DOES_CHAR_EXIST(zomb[I]))
  376.             {
  377.                 float offx;
  378.                 float offy;
  379.                 float x, y, z;
  380.                 float zgrnd;
  381.                 float dista;
  382.                 GENERATE_RANDOM_FLOAT_IN_RANGE(-85.0, 85.0, &offx);
  383.                 GENERATE_RANDOM_FLOAT_IN_RANGE(-85.0, 85.0, &offy);
  384.                 GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(GetPlayerPed(), offx, offy, 0, &x, &y, &z);
  385.                 GET_GROUND_Z_FOR_3D_COORD(x, y, z, &zgrnd);
  386.                 GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, x, y, zgrnd, &dista);
  387.                 if(dista >= 40.0 && zgrnd >= 1.0)
  388.                 {
  389.                     REQUEST_MODEL(MODEL_M_Y_MULTIPLAYER);
  390.                     while (!HAS_MODEL_LOADED(MODEL_M_Y_MULTIPLAYER)) WAIT(0);
  391.                     CLEAR_AREA_OF_CARS(x, y, zgrnd, 3.0);
  392.                     CLEAR_AREA_OF_CHARS(x, y, zgrnd, 3.0);
  393.                     CREATE_CHAR(16, MODEL_M_Y_MULTIPLAYER, x, y, zgrnd + 0.1000, &zomb[I], true);
  394.                     ZombSet(zomb[I]);
  395.                     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);
  396.                     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);
  397.                     MARK_MODEL_AS_NO_LONGER_NEEDED(MODEL_M_Y_MULTIPLAYER);
  398.                 }
  399.             }
  400.         }
  401.     }
  402. }
  403.  
  404. // Manage zombies
  405. void ManageZomb(void)
  406. {
  407.     uint I;
  408.     for (I = 0; I <= 39; I++)
  409.     {
  410.         if(DOES_CHAR_EXIST(zomb[I]))
  411.         {
  412.             float zx, zy, zz;
  413.             float distb;
  414.             uint zrs;
  415.             GET_CHAR_COORDINATES(zomb[I], &zx, &zy, &zz);
  416.             GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, zx, zy, zz, &distb);
  417.             SAY_AMBIENT_SPEECH(zomb[I], "MOAN", 1, 1, 2);
  418.             SET_CHAR_WANTED_BY_POLICE(zomb[I], FALSE);
  419.             GENERATE_RANDOM_INT_IN_RANGE(0, 50, &zrs);
  420.             if(HAS_CHAR_BEEN_DAMAGED_BY_CHAR(zomb[I], GetPlayerPed(), 0))
  421.             {
  422.                 SWITCH_PED_TO_RAGDOLL (zomb[I], 0, 3000, 0, 0, 0, 0);
  423.                 if(IS_CHAR_FATALLY_INJURED(zomb[I]) && IS_CHAR_DEAD(zomb[I]))
  424.                 {
  425.                     killed++;
  426.                 }
  427.             }
  428.             if(zrs == 25)
  429.             {
  430.                 float Rspeed;
  431.                 GENERATE_RANDOM_FLOAT_IN_RANGE(0.2, 2.5, &Rspeed);
  432.                 SET_CHAR_MOVE_ANIM_SPEED_MULTIPLIER(zomb[I], Rspeed);
  433.             }
  434.             if(IS_CHAR_DEAD(zomb[I]) || distb > 100.0)
  435.             {
  436.                 STOP_PTFX(zsptfx[I]);
  437.                 STOP_PTFX(zfptfx[I]);
  438.                 REMOVE_PTFX_FROM_PED(zomb[I]);
  439.                 EXPLODE_CHAR_HEAD(zomb[I]);
  440.                 TASK_DIE(zomb[I]);
  441.                 MARK_CHAR_AS_NO_LONGER_NEEDED(&zomb[I]);
  442.             }
  443.         }
  444.     }
  445. }
  446.  
  447. // gas can generator
  448. void GasCanGen(void)
  449. {
  450.     if(killed >= 50)
  451.     {
  452.         if(IS_PLAYER_PLAYING(GetPlayerIndex()))
  453.         {
  454.             uint I;
  455.             for (I = 0; I <= 11; I++)
  456.             {
  457.                 if(!DOES_OBJECT_EXIST(gc[I]))
  458.                 {
  459.                     float boffx;
  460.                     float boffy;
  461.                     float bzgrnd;
  462.                     float bx, by, bz;
  463.                     float distc;
  464.                     GENERATE_RANDOM_FLOAT_IN_RANGE(-85.0, 85.0, &boffx);
  465.                     GENERATE_RANDOM_FLOAT_IN_RANGE(-85.0, 85.0, &boffy);
  466.                     GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(GetPlayerPed(), boffx, boffy, 0, &bx, &by, &bz);
  467.                     GET_GROUND_Z_FOR_3D_COORD(bx, by, bz, &bzgrnd);
  468.                     GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, bx, by, bzgrnd, &distc);
  469.                     if(distc >= 40.0 && bzgrnd >= 1.0)
  470.                     {
  471.                         REQUEST_MODEL(0x32BBE5F4);
  472.                         while (!HAS_MODEL_LOADED(0x32BBE5F4)) WAIT(0);
  473.                         CREATE_OBJECT(0x32BBE5F4, bx, by, bzgrnd, &gc[I], 1);
  474.                         SET_OBJECT_SCALE(gc[I], 0.5);
  475.                         SET_OBJECT_RECORDS_COLLISIONS(gc[I], TRUE);
  476.                         SET_OBJECT_DYNAMIC(gc[I], TRUE);
  477.                         SET_OBJECT_AS_STEALABLE(gc[I], TRUE);
  478.                         MAKE_OBJECT_TARGETTABLE(gc[I], TRUE);
  479.                         MARK_MODEL_AS_NO_LONGER_NEEDED(0x32BBE5F4);
  480.                     }
  481.                 }  
  482.             }
  483.         }
  484.     }
  485. }
  486.  
  487. // Manage gas cans
  488. void ManageGC(void)
  489. {
  490.     if(killed >= 50)
  491.     {
  492.         uint I;
  493.         for (I = 0; I <= 11; I++)
  494.         {
  495.             if(DOES_OBJECT_EXIST(gc[I]))
  496.             {
  497.                 float gcx, gcy, gcz;
  498.                 float distd;
  499.                 GET_OBJECT_COORDINATES(gc[I], &gcx, &gcy, &gcz);
  500.                 GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, gcx, gcy, gcz, &distd);
  501.                 if(distd > 100.0 || IS_OBJECT_IN_WATER(gc[I]))
  502.                 {
  503.                     MARK_OBJECT_AS_NO_LONGER_NEEDED(&gc[I]);
  504.                 }
  505.             }
  506.         }
  507.     }
  508. }
  509.  
  510. // manage boat's denied
  511. void NoBoat(void)
  512. {
  513.     if(IS_CHAR_IN_ANY_BOAT(GetPlayerPed()))
  514.     {
  515.         Vehicle pcar;
  516.         GET_CAR_CHAR_IS_USING(GetPlayerPed(), &pcar);
  517.         SET_ENGINE_HEALTH(pcar, 0.0);
  518.         ANCHOR_BOAT(pcar, TRUE);
  519.         FREEZE_CAR_POSITION(pcar, TRUE);
  520.         MARK_CAR_AS_NO_LONGER_NEEDED(&pcar);
  521.     }  
  522. }
  523.  
  524. // custom cutscene setting IN
  525. void CcSetIn(void)
  526. {
  527.     SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), -534.4318, -999.4573, 10.0620);
  528.     SET_CHAR_HEADING(GetPlayerPed(), 0.0);
  529.     SET_CHAR_COORDINATES_NO_OFFSET(wped, -534.4318, -996.4573, 10.0620);
  530.     SET_CHAR_HEADING(wped, 180.0);
  531.     SET_CAMERA_CONTROLS_DISABLED_WITH_PLAYER_CONTROLS(FALSE);
  532.     SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
  533.     SET_INSTANT_WIDESCREEN_BORDERS(TRUE);
  534. }
  535.  
  536. // custom cutscene setting OUT
  537. void CcSetOut(void)
  538. {
  539.     SET_CAM_BEHIND_PED(GetPlayerPed());
  540.     SET_INSTANT_WIDESCREEN_BORDERS(FALSE);
  541.     SET_PLAYER_CONTROL(GetPlayerIndex(), TRUE);
  542.     CLEAR_CHAR_TASKS_IMMEDIATELY(wped);
  543.     TASK_COMBAT_HATED_TARGETS_AROUND_CHAR(wped, 500.0);
  544. }
  545.  
  546. // unfreeze quest object  
  547. void FindObjectSet(uint otype)
  548. {
  549.     FREEZE_OBJECT_POSITION(otype, FALSE);
  550.     SET_OBJECT_DYNAMIC(otype, TRUE);
  551.     SET_OBJECT_AS_STEALABLE(otype, TRUE);
  552. }
  553.  
  554. // freeze quest object
  555. void DropObject(uint otype)
  556. {
  557.     SET_OBJECT_AS_STEALABLE(otype, FALSE);
  558.     SET_OBJECT_DYNAMIC(otype, FALSE);
  559.     FREEZE_OBJECT_POSITION(otype, TRUE);
  560. }
  561.  
  562. // manage player restart point
  563. void RestartPoint(void)
  564. {
  565.     if(prp == 0)
  566.     {
  567.         OVERRIDE_NEXT_RESTART(-669.8347, -661.1768, 5.1860, 211.3054);
  568.     }
  569.     else if(prp == 1)
  570.     {
  571.         OVERRIDE_NEXT_RESTART(-538.5554, -997.6279, 11.0619, 15.2282);
  572.     }
  573.     else if(prp == 2)
  574.     {
  575.         OVERRIDE_NEXT_RESTART(-1020.2728, -558.8301, 6.3528, 5.7398);
  576.     }
  577. }
  578.  
  579. // manage quest objects
  580. void Mobj(void)
  581. {
  582.     if(qo == 1)
  583.     {
  584.         FREEZE_OBJECT_POSITION(ob[15], FALSE);
  585.         SET_OBJECT_RECORDS_COLLISIONS(ob[15], FALSE);
  586.         ATTACH_OBJECT_TO_CAR(ob[15], zcar[0], 0, 0.0, 1.0, -0.2, 0.0, 0.0, 0.0);
  587.         qo = 2;
  588.     }
  589.     else if(qo == 3)
  590.     {
  591.         FREEZE_OBJECT_POSITION(ob[10], FALSE);
  592.         SET_OBJECT_RECORDS_COLLISIONS(ob[10], FALSE);
  593.         ATTACH_OBJECT_TO_CAR(ob[10], zcar[0], 0, 0.0, 1.15, -0.2, 0.0, 0.0, 0.0);
  594.         qo = 4;
  595.     }
  596.     else if(qo == 5)
  597.     {
  598.         FREEZE_OBJECT_POSITION(ob[8], FALSE);
  599.         SET_OBJECT_RECORDS_COLLISIONS(ob[8], FALSE);
  600.         ATTACH_OBJECT_TO_CAR(ob[8], zcar[0], 0, 0.0, 2.0, 1.3, 0.0, 0.0, 0.0);
  601.         qo = 6;
  602.     }
  603. }
  604.    
  605. // Manage zombie minigame
  606. void ZombMini(void)
  607. {
  608.     float xo, yo, zo;
  609.     float diste;
  610.     DRAW_CHECKPOINT_WITH_ALPHA(-534.4318, -999.4573, 10.0620, 1.0, 61, 166, 235, 100);
  611.     if(zmg == 1)
  612.     {
  613.         Print("HAPPINESS ISLAND zombie infested !");
  614.         SET_CHAR_DIES_INSTANTLY_IN_WATER(GetPlayerPed(), TRUE);
  615.         ADD_BLIP_FOR_COORD(-538.5554, -997.6279, 11.0619, &sbase);
  616.         CHANGE_BLIP_ALPHA(sbase, 255);
  617.         CHANGE_BLIP_SPRITE(sbase, BLIP_MULTIPLAYER_TUTORIAL);
  618.         CHANGE_BLIP_NAME_FROM_ASCII(sbase, "SURVIVOR BASE");
  619.         CHANGE_BLIP_COLOUR(sbase, 22);
  620.         WAIT(3500);
  621.         Print("Find a Safe Zone!");
  622.         zmg = 2;
  623.     }
  624.     else if (zmg == 2)
  625.     {
  626.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  627.         if(diste <= 15.0)
  628.         {
  629.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  630.             if(diste <= 1.5)
  631.             {
  632.                 while (IS_SCREEN_FADING())
  633.                 {
  634.                     WAIT(0);
  635.                 }  
  636.                 DO_SCREEN_FADE_OUT(1000);
  637.                 while (IS_SCREEN_FADING())
  638.                 {
  639.                     WAIT(0);
  640.                 }
  641.                 CcSetIn();
  642.                 while (IS_SCREEN_FADING())
  643.                 {
  644.                     WAIT(0);
  645.                 }
  646.                 DO_SCREEN_FADE_IN(1000);
  647.                 while (IS_SCREEN_FADING())
  648.                 {
  649.                     WAIT(0);
  650.                 }
  651.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  652.                 Print("~COL_NET_4~Survivor : ~w~Im glad to see someone alive ! who are you and how you got here ?");
  653.                 WAIT(5000);
  654.                 Print("~COL_NET_1~Niko : ~w~My name is Niko , i just wreaked my boat on north side of island ...");
  655.                 WAIT(5000);
  656.                 Print("~COL_NET_1~Niko : ~w~what the hell is going on here ?!? zombies , that cant be .");
  657.                 WAIT(5000);
  658.                 Print("~COL_NET_4~Survivor : ~w~Im Tom , it all started last night , Zombies were everywhere ...");
  659.                 WAIT(5000);
  660.                 Print("~COL_NET_4~Tom : ~w~they just kill everyone , so i tryed using my helicopter to flee ...");
  661.                 WAIT(5000);
  662.                 Print("~COL_NET_4~Tom : ~w~but the army quarantined the city and shot anything that fly or sail away ...");
  663.                 WAIT(5000);
  664.                 Print("~COL_NET_4~Tom : ~w~i was hit , but i managed to land here ... could we use your boat to escape ?");
  665.                 WAIT(5000);
  666.                 Print("~COL_NET_1~Niko : ~w~not possible , its sinking ! i was lucky to reach island without a swim .");
  667.                 WAIT(5000);
  668.                 Print("~COL_NET_4~Tom : ~w~Lucky indeed , the army done something weird to water ...");
  669.                 WAIT(5000);
  670.                 Print("~COL_NET_4~Tom : ~w~i think its meant to prevent zombies from swiming to other land ...");
  671.                 WAIT(5000);
  672.                 Print("~COL_NET_4~Tom : ~w~so try to avoid deep water for its deadly .");
  673.                 WAIT(5000);
  674.                 Print("~COL_NET_4~Tom : ~w~Hum , maybe i can repair my helicopter with your help ...");
  675.                 WAIT(5000);
  676.                 Print("~COL_NET_4~Tom : ~w~could you search around the island for things ill need ?");
  677.                 WAIT(5000);
  678.                 Print("~COL_NET_1~Niko : ~w~Sure i can do that , just tell me what you need and ill find it for you .");
  679.                 WAIT(5000);
  680.                 Print("~COL_NET_4~Tom : ~w~First i would need a battery to power up the helicopter main controls ...");
  681.                 WAIT(5000);
  682.                 Print("~COL_NET_4~Tom : ~w~so , if you can find one , bring it back and drop it next to helicopter .");
  683.                 WAIT(5000);
  684.                 while (IS_SCREEN_FADING())
  685.                 {
  686.                     WAIT(0);
  687.                 }
  688.                 DO_SCREEN_FADE_OUT(500);
  689.                 while (IS_SCREEN_FADING())
  690.                 {
  691.                     WAIT(0);
  692.                 }
  693.                 CcSetOut();
  694.                 while (IS_SCREEN_FADING())
  695.                 {
  696.                     WAIT(0);
  697.                 }
  698.                 DO_SCREEN_FADE_IN(500);
  699.                 while (IS_SCREEN_FADING())
  700.                 {
  701.                     WAIT(0);
  702.                     zmg = 3;
  703.                     prp = 1;
  704.                 }
  705.             }
  706.         }
  707.     }
  708.     else if(zmg == 3)
  709.     {
  710.         FindObjectSet(ob[15]);
  711.         GET_OBJECT_COORDINATES(ob[15], &xo, &yo, &zo);
  712.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
  713.         if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[15], ob[18]))
  714.         {
  715.             DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
  716.         }
  717.         else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[15], ob[18]))
  718.         {
  719.             DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
  720.         }
  721.         else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[15], ob[18]))
  722.         {
  723.             WAIT(1000);
  724.             DropObject(ob[15]);
  725.             Print("Object dropped , go talk with ~COL_NET_4~Tom");
  726.             zmg = 4;
  727.         }                      
  728.     }
  729.     else if(zmg == 4)
  730.     {
  731.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  732.         if(diste <= 15.0)
  733.         {
  734.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  735.             if(diste <= 1.5)
  736.             {
  737.                 while (IS_SCREEN_FADING())
  738.                 {
  739.                     WAIT(0);
  740.                 }  
  741.                 DO_SCREEN_FADE_OUT(1000);
  742.                 while (IS_SCREEN_FADING())
  743.                 {
  744.                     WAIT(0);
  745.                 }
  746.                 CcSetIn();
  747.                 while (IS_SCREEN_FADING())
  748.                 {
  749.                     WAIT(0);
  750.                 }
  751.                 DO_SCREEN_FADE_IN(1000);
  752.                 while (IS_SCREEN_FADING())
  753.                 {
  754.                     WAIT(0);
  755.                 }
  756.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  757.                 Print("~COL_NET_4~Tom : ~w~You found a battery , great ! Now i need pliers to be able to hook it up .");
  758.                 WAIT(5000);
  759.                 while (IS_SCREEN_FADING())
  760.                 {
  761.                     WAIT(0);
  762.                 }
  763.                 DO_SCREEN_FADE_OUT(500);
  764.                 while (IS_SCREEN_FADING())
  765.                 {
  766.                     WAIT(0);
  767.                 }
  768.                 CcSetOut();
  769.                 while (IS_SCREEN_FADING())
  770.                 {
  771.                     WAIT(0);
  772.                 }
  773.                 DO_SCREEN_FADE_IN(500);
  774.                 while (IS_SCREEN_FADING())
  775.                 {
  776.                     WAIT(0);
  777.                     zmg = 5;
  778.                 }
  779.             }
  780.         }
  781.     }
  782.     else if(zmg == 5)
  783.     {
  784.         FindObjectSet(ob[14]);
  785.         GET_OBJECT_COORDINATES(ob[14], &xo, &yo, &zo);
  786.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
  787.         if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[14], ob[18]))
  788.         {
  789.             DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
  790.         }
  791.         else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[14], ob[18]))
  792.         {
  793.             DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
  794.         }
  795.         else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[14], ob[18]))
  796.         {
  797.             WAIT(1000);
  798.             DropObject(ob[14]);
  799.             Print("Object dropped , go talk with ~COL_NET_4~Tom");
  800.             zmg = 6;
  801.         }
  802.     }
  803.     else if(zmg == 6)
  804.     {
  805.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  806.         if(diste <= 15.0)
  807.         {
  808.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  809.             if(diste <= 1.5)
  810.             {
  811.                 while (IS_SCREEN_FADING())
  812.                 {
  813.                     WAIT(0);
  814.                 }  
  815.                 DO_SCREEN_FADE_OUT(1000);
  816.                 while (IS_SCREEN_FADING())
  817.                 {
  818.                     WAIT(0);
  819.                 }
  820.                 CcSetIn();
  821.                 while (IS_SCREEN_FADING())
  822.                 {
  823.                     WAIT(0);
  824.                 }
  825.                 DO_SCREEN_FADE_IN(1000);
  826.                 while (IS_SCREEN_FADING())
  827.                 {
  828.                     WAIT(0);
  829.                 }
  830.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  831.                 Print("~COL_NET_4~Tom : ~w~Good job finding thoses pliers ! i will be able to power up main controls .");
  832.                 WAIT(5000);
  833.                 Print("~COL_NET_4~Tom : ~w~Now i would need a laptop to log in helicopter computer .");
  834.                 WAIT(5000);
  835.                 while (IS_SCREEN_FADING())
  836.                 {
  837.                     WAIT(0);
  838.                 }
  839.                 DO_SCREEN_FADE_OUT(500);
  840.                 while (IS_SCREEN_FADING())
  841.                 {
  842.                     WAIT(0);
  843.                 }
  844.                 CcSetOut();
  845.                 while (IS_SCREEN_FADING())
  846.                 {
  847.                     WAIT(0);
  848.                 }
  849.                 DO_SCREEN_FADE_IN(500);
  850.                 while (IS_SCREEN_FADING())
  851.                 {
  852.                     WAIT(0);
  853.                     zmg = 7;
  854.                 }
  855.             }
  856.         }
  857.     }
  858.     else if(zmg == 7)
  859.     {
  860.         FindObjectSet(ob[10]);
  861.         GET_OBJECT_COORDINATES(ob[10], &xo, &yo, &zo);
  862.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
  863.         if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[10], ob[18]))
  864.         {
  865.             DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
  866.         }
  867.         else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[10], ob[18]))
  868.         {
  869.             DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
  870.             if(qo == 0)
  871.             {
  872.                 qo = 1;
  873.             }
  874.         }
  875.         else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[10], ob[18]))
  876.         {
  877.             WAIT(1000);
  878.             DropObject(ob[10]);
  879.             Print("Object dropped , go talk with ~COL_NET_4~Tom");
  880.             zmg = 8;
  881.         }
  882.     }
  883.     else if(zmg == 8)
  884.     {
  885.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  886.         if(diste <= 15.0)
  887.         {
  888.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  889.             if(diste <= 1.5)
  890.             {
  891.                 while (IS_SCREEN_FADING())
  892.                 {
  893.                     WAIT(0);
  894.                 }  
  895.                 DO_SCREEN_FADE_OUT(1000);
  896.                 while (IS_SCREEN_FADING())
  897.                 {
  898.                     WAIT(0);
  899.                 }
  900.                 CcSetIn();
  901.                 while (IS_SCREEN_FADING())
  902.                 {
  903.                     WAIT(0);
  904.                 }
  905.                 DO_SCREEN_FADE_IN(1000);
  906.                 while (IS_SCREEN_FADING())
  907.                 {
  908.                     WAIT(0);
  909.                 }
  910.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  911.                 Print("~COL_NET_4~Tom : ~w~Well done , this laptop is exacly what i needed ! ...");
  912.                 WAIT(5000);
  913.                 Print("~COL_NET_4~Tom : ~w~Now i will need a screwdriver to open helicopter control panel.");
  914.                 WAIT(5000);
  915.                 while (IS_SCREEN_FADING())
  916.                 {
  917.                     WAIT(0);
  918.                 }
  919.                 DO_SCREEN_FADE_OUT(500);
  920.                 while (IS_SCREEN_FADING())
  921.                 {
  922.                     WAIT(0);
  923.                 }
  924.                 CcSetOut();
  925.                 while (IS_SCREEN_FADING())
  926.                 {
  927.                     WAIT(0);
  928.                 }
  929.                 DO_SCREEN_FADE_IN(500);
  930.                 while (IS_SCREEN_FADING())
  931.                 {
  932.                     WAIT(0);
  933.                     zmg = 9;
  934.                 }
  935.             }
  936.         }
  937.     }
  938.     else if(zmg == 9)
  939.     {
  940.         FindObjectSet(ob[9]);
  941.         GET_OBJECT_COORDINATES(ob[9], &xo, &yo, &zo);
  942.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
  943.         if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[9], ob[18]))
  944.         {
  945.             DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
  946.         }
  947.         else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[9], ob[18]))
  948.         {
  949.             DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
  950.             if(qo == 2)
  951.             {
  952.                 qo = 3;
  953.             }
  954.         }
  955.         else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[9], ob[18]))
  956.         {
  957.             WAIT(1000);
  958.             DropObject(ob[9]);
  959.             Print("Object dropped , go talk with ~COL_NET_4~Tom");
  960.             zmg = 10;
  961.         }
  962.     }
  963.     else if(zmg == 10)
  964.     {
  965.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  966.         if(diste <= 15.0)
  967.         {
  968.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  969.             if(diste <= 1.5)
  970.             {
  971.                 while (IS_SCREEN_FADING())
  972.                 {
  973.                     WAIT(0);
  974.                 }  
  975.                 DO_SCREEN_FADE_OUT(1000);
  976.                 while (IS_SCREEN_FADING())
  977.                 {
  978.                     WAIT(0);
  979.                 }
  980.                 CcSetIn();
  981.                 while (IS_SCREEN_FADING())
  982.                 {
  983.                     WAIT(0);
  984.                 }
  985.                 DO_SCREEN_FADE_IN(1000);
  986.                 while (IS_SCREEN_FADING())
  987.                 {
  988.                     WAIT(0);
  989.                 }
  990.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  991.                 Print("~COL_NET_4~Tom : ~w~You got a screwdriver , well it seems we are lucky so far ! ...");
  992.                 WAIT(5000);
  993.                 Print("~COL_NET_4~Tom : ~w~but to fix controls ill need some electronic parts , try to find a radio .");
  994.                 WAIT(5000);
  995.                 while (IS_SCREEN_FADING())
  996.                 {
  997.                     WAIT(0);
  998.                 }
  999.                 DO_SCREEN_FADE_OUT(500);
  1000.                 while (IS_SCREEN_FADING())
  1001.                 {
  1002.                     WAIT(0);
  1003.                 }
  1004.                 CcSetOut();
  1005.                 while (IS_SCREEN_FADING())
  1006.                 {
  1007.                     WAIT(0);
  1008.                 }
  1009.                 DO_SCREEN_FADE_IN(500);
  1010.                 while (IS_SCREEN_FADING())
  1011.                 {
  1012.                     WAIT(0);
  1013.                     zmg = 11;
  1014.                 }
  1015.             }
  1016.         }
  1017.     }
  1018.     else if(zmg == 11)
  1019.     {
  1020.         FindObjectSet(ob[8]);
  1021.         GET_OBJECT_COORDINATES(ob[8], &xo, &yo, &zo);
  1022.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
  1023.         if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[8], ob[18]))
  1024.         {
  1025.             DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
  1026.         }
  1027.         else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[8], ob[18]))
  1028.         {
  1029.             DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
  1030.         }
  1031.         else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[8], ob[18]))
  1032.         {
  1033.             WAIT(1000);
  1034.             DropObject(ob[8]);
  1035.             Print("Object dropped , go talk with ~COL_NET_4~Tom");
  1036.             zmg = 12;
  1037.         }
  1038.     }
  1039.     else if(zmg == 12)
  1040.     {
  1041.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  1042.         if(diste <= 15.0)
  1043.         {
  1044.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  1045.             if(diste <= 1.5)
  1046.             {
  1047.                 while (IS_SCREEN_FADING())
  1048.                 {
  1049.                     WAIT(0);
  1050.                 }  
  1051.                 DO_SCREEN_FADE_OUT(1000);
  1052.                 while (IS_SCREEN_FADING())
  1053.                 {
  1054.                     WAIT(0);
  1055.                 }
  1056.                 CcSetIn();
  1057.                 while (IS_SCREEN_FADING())
  1058.                 {
  1059.                     WAIT(0);
  1060.                 }
  1061.                 DO_SCREEN_FADE_IN(1000);
  1062.                 while (IS_SCREEN_FADING())
  1063.                 {
  1064.                     WAIT(0);
  1065.                 }
  1066.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  1067.                 Print("~COL_NET_4~Tom : ~w~Sweet , that old radio will provide the parts i needed ! ...");
  1068.                 WAIT(5000);
  1069.                 Print("~COL_NET_4~Tom : ~w~but i have found a few oil leaks , i would need a pipewrench .");
  1070.                 WAIT(5000);
  1071.                 while (IS_SCREEN_FADING())
  1072.                 {
  1073.                     WAIT(0);
  1074.                 }
  1075.                 DO_SCREEN_FADE_OUT(500);
  1076.                 while (IS_SCREEN_FADING())
  1077.                 {
  1078.                     WAIT(0);
  1079.                 }
  1080.                 CcSetOut();
  1081.                 while (IS_SCREEN_FADING())
  1082.                 {
  1083.                     WAIT(0);
  1084.                 }
  1085.                 DO_SCREEN_FADE_IN(500);
  1086.                 while (IS_SCREEN_FADING())
  1087.                 {
  1088.                     WAIT(0);
  1089.                     zmg = 13;
  1090.                 }
  1091.             }
  1092.         }
  1093.     }
  1094.     else if(zmg == 13)
  1095.     {
  1096.         FindObjectSet(ob[11]);
  1097.         GET_OBJECT_COORDINATES(ob[11], &xo, &yo, &zo);
  1098.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
  1099.         if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[11], ob[18]))
  1100.         {
  1101.             DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
  1102.         }
  1103.         else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[11], ob[18]))
  1104.         {
  1105.             DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
  1106.             if(qo == 4)
  1107.             {
  1108.                 qo = 5;
  1109.             }
  1110.         }
  1111.         else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[11], ob[18]))
  1112.         {
  1113.             WAIT(1000);
  1114.             DropObject(ob[11]);
  1115.             Print("Object dropped , go talk with ~COL_NET_4~Tom");
  1116.             zmg = 14;
  1117.         }
  1118.     }
  1119.     else if(zmg == 14)
  1120.     {
  1121.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  1122.         if(diste <= 15.0)
  1123.         {
  1124.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  1125.             if(diste <= 1.5)
  1126.             {
  1127.                 while (IS_SCREEN_FADING())
  1128.                 {
  1129.                     WAIT(0);
  1130.                 }  
  1131.                 DO_SCREEN_FADE_OUT(1000);
  1132.                 while (IS_SCREEN_FADING())
  1133.                 {
  1134.                     WAIT(0);
  1135.                 }
  1136.                 CcSetIn();
  1137.                 while (IS_SCREEN_FADING())
  1138.                 {
  1139.                     WAIT(0);
  1140.                 }
  1141.                 DO_SCREEN_FADE_IN(1000);
  1142.                 while (IS_SCREEN_FADING())
  1143.                 {
  1144.                     WAIT(0);
  1145.                 }
  1146.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  1147.                 Print("~COL_NET_4~Tom : ~w~Thats just perfect , ill be able to fix thoses oil leaks ! ...");
  1148.                 WAIT(5000);
  1149.                 Print("~COL_NET_4~Tom : ~w~ but now try to find some motor oil to fill helicopter back up .");
  1150.                 WAIT(5000);
  1151.                 while (IS_SCREEN_FADING())
  1152.                 {
  1153.                     WAIT(0);
  1154.                 }
  1155.                 DO_SCREEN_FADE_OUT(500);
  1156.                 while (IS_SCREEN_FADING())
  1157.                 {
  1158.                     WAIT(0);
  1159.                 }
  1160.                 CcSetOut();
  1161.                 while (IS_SCREEN_FADING())
  1162.                 {
  1163.                     WAIT(0);
  1164.                 }
  1165.                 DO_SCREEN_FADE_IN(500);
  1166.                 while (IS_SCREEN_FADING())
  1167.                 {
  1168.                     WAIT(0);
  1169.                     zmg = 15;
  1170.                 }
  1171.             }
  1172.         }
  1173.     }
  1174.     else if(zmg == 15)
  1175.     {
  1176.         FindObjectSet(ob[7]);
  1177.         GET_OBJECT_COORDINATES(ob[7], &xo, &yo, &zo);
  1178.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
  1179.         if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[7], ob[18]))
  1180.         {
  1181.             DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
  1182.         }
  1183.         else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[7], ob[18]))
  1184.         {
  1185.             DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
  1186.         }
  1187.         else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[7], ob[18]))
  1188.         {
  1189.             WAIT(1000);
  1190.             DropObject(ob[7]);
  1191.             Print("Object dropped , go talk with ~COL_NET_4~Tom");
  1192.             zmg = 16;
  1193.         }
  1194.     }
  1195.     else if(zmg == 16)
  1196.     {
  1197.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  1198.         if(diste <= 15.0)
  1199.         {
  1200.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  1201.             if(diste <= 1.5)
  1202.             {
  1203.                 while (IS_SCREEN_FADING())
  1204.                 {
  1205.                     WAIT(0);
  1206.                 }  
  1207.                 DO_SCREEN_FADE_OUT(1000);
  1208.                 while (IS_SCREEN_FADING())
  1209.                 {
  1210.                     WAIT(0);
  1211.                 }
  1212.                 CcSetIn();
  1213.                 while (IS_SCREEN_FADING())
  1214.                 {
  1215.                     WAIT(0);
  1216.                 }
  1217.                 DO_SCREEN_FADE_IN(1000);
  1218.                 while (IS_SCREEN_FADING())
  1219.                 {
  1220.                     WAIT(0);
  1221.                 }
  1222.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  1223.                 Print("~COL_NET_4~Tom : ~w~Good , there should be enuff oil for a small trip ! ...");
  1224.                 WAIT(5000);
  1225.                 Print("~COL_NET_4~Tom : ~w~now would need you to find a hammer .");
  1226.                 WAIT(5000);
  1227.                 while (IS_SCREEN_FADING())
  1228.                 {
  1229.                     WAIT(0);
  1230.                 }
  1231.                 DO_SCREEN_FADE_OUT(500);
  1232.                 while (IS_SCREEN_FADING())
  1233.                 {
  1234.                     WAIT(0);
  1235.                 }
  1236.                 CcSetOut();
  1237.                 while (IS_SCREEN_FADING())
  1238.                 {
  1239.                     WAIT(0);
  1240.                 }
  1241.                 DO_SCREEN_FADE_IN(500);
  1242.                 while (IS_SCREEN_FADING())
  1243.                 {
  1244.                     WAIT(0);
  1245.                     zmg = 17;
  1246.                 }
  1247.             }
  1248.         }
  1249.     }
  1250.     else if(zmg == 17)
  1251.     {
  1252.         FindObjectSet(ob[12]);
  1253.         GET_OBJECT_COORDINATES(ob[12], &xo, &yo, &zo);
  1254.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
  1255.         if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[12], ob[18]))
  1256.         {
  1257.             DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
  1258.         }
  1259.         else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[12], ob[18]))
  1260.         {
  1261.             DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
  1262.         }
  1263.         else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[12], ob[18]))
  1264.         {
  1265.             WAIT(1000);
  1266.             DropObject(ob[12]);
  1267.             Print("Object dropped , go talk with ~COL_NET_4~Tom");
  1268.             zmg = 18;
  1269.         }
  1270.     }
  1271.     else if(zmg == 18)
  1272.     {
  1273.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  1274.         if(diste <= 15.0)
  1275.         {
  1276.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  1277.             if(diste <= 1.5)
  1278.             {
  1279.                 while (IS_SCREEN_FADING())
  1280.                 {
  1281.                     WAIT(0);
  1282.                 }  
  1283.                 DO_SCREEN_FADE_OUT(1000);
  1284.                 while (IS_SCREEN_FADING())
  1285.                 {
  1286.                     WAIT(0);
  1287.                 }
  1288.                 CcSetIn();
  1289.                 while (IS_SCREEN_FADING())
  1290.                 {
  1291.                     WAIT(0);
  1292.                 }
  1293.                 DO_SCREEN_FADE_IN(1000);
  1294.                 while (IS_SCREEN_FADING())
  1295.                 {
  1296.                     WAIT(0);
  1297.                 }
  1298.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  1299.                 Print("~COL_NET_4~Tom : ~w~Fine , i will be able to straight up some bent metal parts with it ! ...");
  1300.                 WAIT(5000);
  1301.                 Print("~COL_NET_4~Tom : ~w~but i just found out oil pump is badly damaged , i need more parts ...");
  1302.                 WAIT(5000);
  1303.                 Print("~COL_NET_4~Tom : ~w~so , try to find something with a small engine .");
  1304.                 WAIT(5000);
  1305.                 while (IS_SCREEN_FADING())
  1306.                 {
  1307.                     WAIT(0);
  1308.                 }
  1309.                 DO_SCREEN_FADE_OUT(500);
  1310.                 while (IS_SCREEN_FADING())
  1311.                 {
  1312.                     WAIT(0);
  1313.                 }
  1314.                 CcSetOut();
  1315.                 while (IS_SCREEN_FADING())
  1316.                 {
  1317.                     WAIT(0);
  1318.                 }
  1319.                 DO_SCREEN_FADE_IN(500);
  1320.                 while (IS_SCREEN_FADING())
  1321.                 {
  1322.                     WAIT(0);
  1323.                     zmg = 19;
  1324.                 }
  1325.             }
  1326.         }
  1327.     }
  1328.     else if(zmg == 19)
  1329.     {
  1330.         FindObjectSet(ob[13]);
  1331.         GET_OBJECT_COORDINATES(ob[13], &xo, &yo, &zo);
  1332.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xo, yo, zo, &diste);
  1333.         if(diste >= 2.5 && !IS_OBJECT_TOUCHING_OBJECT(ob[13], ob[18]))
  1334.         {
  1335.             DRAW_CHECKPOINT_WITH_ALPHA(xo, yo, zo, 1.0, 180, 29, 0, 100);
  1336.         }
  1337.         else if(diste <= 2.4 && !IS_OBJECT_TOUCHING_OBJECT(ob[13], ob[18]))
  1338.         {
  1339.             DRAW_CHECKPOINT_WITH_ALPHA(-526.0438, -996.0359, 10.0619, 2.5, 180, 29, 0, 100);
  1340.         }
  1341.         else if(diste >= 0.1 && IS_OBJECT_TOUCHING_OBJECT(ob[13], ob[18]))
  1342.         {
  1343.             WAIT(1000);
  1344.             DropObject(ob[13]);
  1345.             Print("Object dropped , go talk with ~COL_NET_4~Tom");
  1346.             zmg = 20;
  1347.         }
  1348.     }
  1349.     else if(zmg == 20)
  1350.     {
  1351.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -534.4318, -999.4573, 10.0620, &diste);
  1352.         if(diste <= 15.0)
  1353.         {
  1354.             TASK_GO_STRAIGHT_TO_COORD(wped, -534.4318, -996.4573, 10.0620, 3, -1);
  1355.             if(diste <= 1.5)
  1356.             {
  1357.                 while (IS_SCREEN_FADING())
  1358.                 {
  1359.                     WAIT(0);
  1360.                 }  
  1361.                 DO_SCREEN_FADE_OUT(1000);
  1362.                 while (IS_SCREEN_FADING())
  1363.                 {
  1364.                     WAIT(0);
  1365.                 }
  1366.                 CcSetIn();
  1367.                 while (IS_SCREEN_FADING())
  1368.                 {
  1369.                     WAIT(0);
  1370.                 }
  1371.                 DO_SCREEN_FADE_IN(1000);
  1372.                 while (IS_SCREEN_FADING())
  1373.                 {
  1374.                     WAIT(0);
  1375.                 }
  1376.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  1377.                 Print("~COL_NET_4~Tom : ~w~The powersaw engine will fit just fine ! the helicopter is now fixed ...");
  1378.                 WAIT(5000);
  1379.                 Print("~COL_NET_4~Tom : ~w~but given helicopter conditions , we wont be able to fly very far ...");
  1380.                 WAIT(5000);
  1381.                 Print("~COL_NET_4~Tom : ~w~so , i will fly us to industrial area , for theres less population there ...");
  1382.                 WAIT(5000);
  1383.                 Print("~COL_NET_4~Tom : ~w~once there , we will have to improvise a plan and find a safe area ...");
  1384.                 WAIT(5000);
  1385.                 Print("~COL_NET_4~Tom : ~w~now lets go away from here , be carefull not to fall from helicopter .");
  1386.                 WAIT(5000);
  1387.                 while (IS_SCREEN_FADING())
  1388.                 {
  1389.                     WAIT(0);
  1390.                 }
  1391.                 DO_SCREEN_FADE_OUT(500);
  1392.                 while (IS_SCREEN_FADING())
  1393.                 {
  1394.                     WAIT(0);
  1395.                 }
  1396.                 CcSetOut();
  1397.                 SET_ENGINE_HEALTH(zcar[0], 100.0);
  1398.                 WARP_CHAR_INTO_CAR(wped, zcar[0]);
  1399.                 WARP_CHAR_INTO_CAR_AS_PASSENGER(GetPlayerPed(), zcar[0], 2);
  1400.                 while (IS_SCREEN_FADING())
  1401.                 {
  1402.                     WAIT(0);
  1403.                 }
  1404.                 DO_SCREEN_FADE_IN(500);
  1405.                 while (IS_SCREEN_FADING())
  1406.                 {
  1407.                     WAIT(0);
  1408.                     prp = 2;
  1409.                     zmg = 21;
  1410.                 }
  1411.             }
  1412.         }
  1413.     }
  1414.     else if(zmg == 21)
  1415.     {
  1416.         REMOVE_BLIP(sbase);
  1417.         TASK_HELI_MISSION(wped, zcar[0], 0, 0, -1036.0369, -537.8839, 6.1529, 4, 50.00, 30, -1.0, 70, 60);
  1418.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -1036.0369, -537.8839, 6.1529, &diste);
  1419.         if(diste <= 2.5)
  1420.         {
  1421.             SET_ENGINE_HEALTH(zcar[0], 0.0);
  1422.             TASK_LEAVE_CAR_IMMEDIATELY(wped, zcar[0]);
  1423.             zmg = 22;
  1424.         }
  1425.     }
  1426.     else if(zmg == 22)
  1427.     {
  1428.         DRAW_CHECKPOINT_WITH_ALPHA(-1026.0707, -539.1629, 6.2528, 1.0, 61, 166, 235, 100);
  1429.         GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, -1026.0707, -539.1629, 7.2528, &diste);
  1430.         if(diste <= 15.0)
  1431.         {
  1432.             TASK_GO_STRAIGHT_TO_COORD(wped, -1026.0707, -536.1629, 7.2528, 3, -1);
  1433.             if(diste <= 1.5)
  1434.             {
  1435.                 while (IS_SCREEN_FADING())
  1436.                 {
  1437.                     WAIT(0);
  1438.                 }  
  1439.                 DO_SCREEN_FADE_OUT(1000);
  1440.                 while (IS_SCREEN_FADING())
  1441.                 {
  1442.                     WAIT(0);
  1443.                 }
  1444.                 SET_CHAR_COORDINATES_NO_OFFSET(GetPlayerPed(), -1026.0707, -539.1629, 6.3528);
  1445.                 SET_CHAR_HEADING(GetPlayerPed(), 0.0);
  1446.                 SET_CHAR_COORDINATES_NO_OFFSET(wped, -1026.0707, -536.1629, 6.3528);
  1447.                 SET_CHAR_HEADING(wped, 180.0);
  1448.                 SET_CAMERA_CONTROLS_DISABLED_WITH_PLAYER_CONTROLS(FALSE);
  1449.                 SET_PLAYER_CONTROL(GetPlayerIndex(), FALSE);
  1450.                 SET_INSTANT_WIDESCREEN_BORDERS(TRUE);
  1451.                 while (IS_SCREEN_FADING())
  1452.                 {
  1453.                     WAIT(0);
  1454.                 }
  1455.                 DO_SCREEN_FADE_IN(1000);
  1456.                 while (IS_SCREEN_FADING())
  1457.                 {
  1458.                     WAIT(0);
  1459.                 }
  1460.                 TASK_CHAT_WITH_CHAR(wped, GetPlayerPed(), 1, 1);
  1461.                 Print("~COL_NET_4~Tom : ~w~We made it , but the helicopter is dead ! so , what should we do now ?");
  1462.                 WAIT(5000);
  1463.                 Print("~COL_NET_1~Niko : ~w~This roof seems safe , we should rest a little and think about our next move .");
  1464.                 WAIT(5000);
  1465.                 Print("~COL_NET_4~Tom : ~w~Ok , we will need a vehicle , weapons , food and a safe place to go ... ");
  1466.                 WAIT(5000);
  1467.                 Print("~COL_NET_1~Niko : ~w~Wait , since i was away for days i still dont know what the hell is going on ...");
  1468.                 WAIT(5000);
  1469.                 Print("~COL_NET_1~Niko : ~w~so you need to tell me more about what happend here , i must know ! ");
  1470.                 WAIT(5000);
  1471.                 Print("~COL_NET_4~Tom : ~w~It all happend so fast , i was done with my last tourist trip ...");
  1472.                 WAIT(5000);
  1473.                 Print("~COL_NET_4~Tom : ~w~i was ready to go home , when the radio started to broadcast a public warning ...");
  1474.                 WAIT(5000);
  1475.                 Print("~COL_NET_4~Tom : ~w~the mayor asked everybody to evacuate the city by all means ...");
  1476.                 WAIT(5000);
  1477.                 Print("~COL_NET_4~Tom : ~w~for a toxic gaz was leaking from a digging in Bohan constuction site ... ");
  1478.                 WAIT(5000);
  1479.                 Print("~COL_NET_4~Tom : ~w~the next few hours were horrible , everybody was scared ... ");
  1480.                 WAIT(5000);
  1481.                 Print("~COL_NET_4~Tom : ~w~then zombies started to emerge from the fog and killed everyone in sight ... ");
  1482.                 WAIT(5000);
  1483.                 Print("~COL_NET_4~Tom : ~w~thats when i escaped using my helicopter , but a 2nd warning was on radio ...");
  1484.                 WAIT(5000);
  1485.                 Print("~COL_NET_4~Tom : ~w~it was the army , they said city was quarantined for classified reasons ...");
  1486.                 WAIT(5000);
  1487.                 Print("~COL_NET_4~Tom : ~w~nobody is allowed in or out ! you know the rest , what about you ? ");
  1488.                 WAIT(5000);
  1489.                 Print("~COL_NET_1~Niko : ~w~My cousin Roman dragged me to a party on a yacht far at sea ... ");
  1490.                 WAIT(5000);
  1491.                 Print("~COL_NET_1~Niko : ~w~but after 2 days i had enuff ! unlike Roman , so i borrowed a boat ... ");
  1492.                 WAIT(5000);
  1493.                 Print("~COL_NET_1~Niko : ~w~but it was damaged , the engine died and i drifted toward island .");
  1494.                 WAIT(5000);
  1495.                 Print("~COL_NET_4~Tom : ~w~Atleast you know your cousin is safe , on that yacht his life aint in danger . ");
  1496.                 WAIT(5000);
  1497.                 Print("~COL_NET_1~Niko : ~w~If you knew him you wouldnt say that , Roman beats all odds in that matter ...");
  1498.                 WAIT(5000);
  1499.                 Print("~COL_NET_1~Niko : ~w~that said , if i get us a car , where do you thinks we should go ?");
  1500.                 WAIT(5000);
  1501.                 Print("~COL_NET_4~Tom : ~w~My old friend Paulie was a gun dealer for the local bikers ... ");
  1502.                 WAIT(5000);
  1503.                 Print("~COL_NET_4~Tom : ~w~his weapons are in a container next to his garage , its not far from here .");
  1504.                 WAIT(5000);
  1505.                 Print("~COL_NET_1~Niko : ~w~Sounds good to me , we shall go in a few hours .");
  1506.                 WAIT(5000);
  1507.                 while (IS_SCREEN_FADING())
  1508.                 {
  1509.                     WAIT(0);
  1510.                 }
  1511.                 DO_SCREEN_FADE_OUT(500);
  1512.                 while (IS_SCREEN_FADING())
  1513.                 {
  1514.                     WAIT(0);
  1515.                 }
  1516.                 CcSetOut();
  1517.                 while (IS_SCREEN_FADING())
  1518.                 {
  1519.                     WAIT(0);
  1520.                 }
  1521.                 DO_SCREEN_FADE_IN(500);
  1522.                 while (IS_SCREEN_FADING())
  1523.                 {
  1524.                     WAIT(0);
  1525.                     zmg = 23;
  1526.                 }
  1527.             }
  1528.         }
  1529.     }
  1530.     else if(zmg == 23)
  1531.     {
  1532.         Print("End of Zombie Minigame : Escape Happiness island ...");
  1533.         WAIT(5000);
  1534.         Print("TO BE CONTINUED ! ... in Zombie Minigame 2 : Big Paulie Gun's");
  1535.         WAIT(5000);
  1536.         SET_INT_STAT(363, stat);
  1537.         SET_MAX_WANTED_LEVEL(mlvl);
  1538.         SET_CAR_DENSITY_MULTIPLIER(1.25);
  1539.         SET_RANDOM_CAR_DENSITY_MULTIPLIER(1.25);
  1540.         SET_PARKED_CAR_DENSITY_MULTIPLIER(2.25);
  1541.         SET_PED_DENSITY_MULTIPLIER(1.50);
  1542.         SET_SCENARIO_PED_DENSITY_MULTIPLIER(1.0, 1.0);
  1543.         SET_ALL_RANDOM_PEDS_FLEE(GetPlayerIndex(), FALSE);
  1544.         ALLOW_EMERGENCY_SERVICES(TRUE);
  1545.         SWITCH_RANDOM_BOATS(TRUE);
  1546.         SWITCH_POLICE_HELIS(TRUE);
  1547.         SWITCH_AMBIENT_PLANES(TRUE);
  1548.         SWITCH_GARBAGE_TRUCKS(TRUE);
  1549.         SWITCH_RANDOM_TRAINS(TRUE);
  1550.         SET_CREATE_RANDOM_COPS(TRUE);
  1551.         SET_POLICE_RADAR_BLIPS(TRUE);
  1552.         SET_POLICE_IGNORE_PLAYER(GetPlayerIndex(), FALSE);
  1553.         MUTE_POSITIONED_RADIO(FALSE);
  1554.         DISABLE_FRONTEND_RADIO();
  1555.         FORCE_WEATHER_NOW(WEATHER_SUNNY);
  1556.         SET_DEAD_PEDS_DROP_WEAPONS(TRUE);
  1557.         RELEASE_TIME_OF_DAY();
  1558.         CANCEL_OVERRIDE_RESTART();
  1559.         TERMINATE_THIS_SCRIPT();
  1560.     }
  1561. }
  1562.  
  1563. void main(void)
  1564. {  
  1565.     THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
  1566.     InitZombSet();
  1567.     WarpToHappiness();
  1568.     while (TRUE)
  1569.     {
  1570.         WAIT(0);
  1571.         PlayerC();
  1572.         Pdeath();
  1573.         Pset();
  1574.         PrintKD();
  1575.         ZombGen();
  1576.         ManageZomb();
  1577.         GasCanGen();
  1578.         ManageGC();
  1579.         NoBoat();
  1580.         RestartPoint();
  1581.         Mobj();
  1582.         ZombMini();
  1583.     }
  1584. }
Advertisement
Add Comment
Please, Sign In to add comment