XADRENALINEIX

JDMAlex's Zombie Minigame

Jul 6th, 2013
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 24.51 KB | None | 0 0
  1. /***********************************************************************
  2.     This file is a part of scocl project by Alexander Blade (c) 2011
  3. ***********************************************************************/
  4. /** Edited for game consol use by JDMAlex **/
  5.  
  6.  
  7. #include <natives.h>
  8. #include <common.h>
  9. #include <strings.h>
  10. #include <types.h>
  11. #include <consts.h>
  12.  
  13. #define ZOMB_MAX 20
  14. #define ZOMB_CREATE_MIN_DIST 25.0
  15. #define ONLINEPLAYERS 16
  16.  
  17. #define FIRE_ZOMBIES // SPAWNS FIRE ZOMBIES
  18. #define SPAWN_GUARD_OFF //IF ENABLED GUARDS ARE OFF
  19. #define MAX_GUARDS 1
  20. #define SPAWNED_VEH MODEL_ZOMBIEB
  21.  
  22. //#define DEBUG
  23. //#define SET_DRUNK_CAM // ENABLES DRUNK CAM WHEN NEAR ZOMBIES.. GETS ANNOYING
  24.  
  25. //for online
  26. typedef struct _online_players{
  27.     Ped ped;
  28.     int id;
  29.     bool connected;
  30. } online_players;
  31.  
  32. online_players players[ONLINEPLAYERS];
  33. // end for online
  34.  
  35. void DebugBreak(char *sMessage){
  36. #ifdef DEBUG
  37.     PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", sMessage , 5000, 1);
  38.     //WAIT(20);
  39.     //PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", "Press ~PAD_A~ to continue." , 5000, 1);
  40.     //while(!IS_BUTTON_JUST_PRESSED(0,0x10)) WAIT(0);
  41. #endif
  42. }
  43. int pCount,amount;
  44. int decm, cmbtdm;
  45. Group Bgroup;
  46. Ped gameped;
  47. Blip Charblip,gamepedblip;
  48. boolean MakeGuard=true;
  49. Blip pblip;
  50.  
  51.  
  52. void playerGroupHatesAll(Ped hater){
  53.     DebugBreak("1"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_CIVILLIAN_MALE);
  54.     DebugBreak("2"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_CIVILLIAN_FEMALE);
  55.     DebugBreak("3"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_COP);
  56.     DebugBreak("4"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_ALBANIAN);
  57.     DebugBreak("5"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_BIKER1);
  58.     DebugBreak("6"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_BIKER2);
  59.     DebugBreak("7"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_ITALIAN);
  60.     DebugBreak("8"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_RUSSIAN1);
  61.     DebugBreak("9"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_RUSSIAN2);
  62.     DebugBreak("10"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE,  RELATIONSHIP_GROUP_GANG_IRISH);
  63.     DebugBreak("11"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_JAMAICAN);
  64.     DebugBreak("12"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_AFRICAN_AMERICAN);
  65.     DebugBreak("13"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_KOREAN);
  66.     DebugBreak("14"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE,  RELATIONSHIP_GROUP_GANG_CHINESE_JAPANESE);
  67.     DebugBreak("15"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_GANG_PUERTO_RICAN);
  68.     DebugBreak("16"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_DEALER);
  69.     DebugBreak("17"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_MEDIC);
  70.     DebugBreak("18"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_FIREMAN);
  71.     DebugBreak("19"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_CRIMINAL);
  72.     DebugBreak("20"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_BUM);
  73.     DebugBreak("21"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_PROSTITUTE);
  74.     DebugBreak("22"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_SPECIAL);
  75.     DebugBreak("23"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_01);
  76.     DebugBreak("24"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_02);
  77.     DebugBreak("25"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_03);
  78.     DebugBreak("26"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_04);
  79.     DebugBreak("27"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_05);
  80.     DebugBreak("28"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_06);
  81.     DebugBreak("29"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_07);
  82.     DebugBreak("30"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_08);
  83.     DebugBreak("31"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_09);
  84.     DebugBreak("32"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_10);
  85.     DebugBreak("33"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_11);
  86.     DebugBreak("34"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_12);
  87.     DebugBreak("35"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_13);
  88.     DebugBreak("36"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_14);
  89.     DebugBreak("37"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_15);
  90.     DebugBreak("38"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_16);
  91.     DebugBreak("39"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_1);
  92.     DebugBreak("40"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_2);
  93.     DebugBreak("41"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_3);
  94.     DebugBreak("42"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_4);
  95.     DebugBreak("43"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_5);
  96.     DebugBreak("44"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_6);
  97.     DebugBreak("45"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_7);
  98.     DebugBreak("46"); SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_8);
  99.    
  100. }
  101. void playerHater(Ped hater){
  102.     DebugBreak("47");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_PLAYER);
  103.     DebugBreak("48");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_COP);
  104.     DebugBreak("49");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_01);
  105.     DebugBreak("50");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_02);
  106.     DebugBreak("51");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_03);
  107.     DebugBreak("52");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_04);
  108.     DebugBreak("53");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_05);
  109.     DebugBreak("54");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_06);
  110.     DebugBreak("55");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_07);
  111.     DebugBreak("56");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_08);
  112.     DebugBreak("57");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_09);
  113.     DebugBreak("58");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_10);
  114.     DebugBreak("59");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_11);
  115.     DebugBreak("60");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_12);
  116.     DebugBreak("61");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_13);
  117.     DebugBreak("62");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_14);
  118.     DebugBreak("63");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_15);
  119.     DebugBreak("64");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_PLAYER_16);
  120.     DebugBreak("65");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_1);
  121.     DebugBreak("66");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_2);
  122.     DebugBreak("67");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_3);
  123.     DebugBreak("68");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_4);
  124.     DebugBreak("69");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_5);
  125.     DebugBreak("70");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_6);
  126.     DebugBreak("71");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_7);
  127.     DebugBreak("72");SET_CHAR_RELATIONSHIP(hater, RELATIONSHIP_HATE, RELATIONSHIP_GROUP_NETWORK_TEAM_8);
  128. }
  129. void SetMemberAtt(void){
  130.     DebugBreak("73");SET_GROUP_MEMBER(Bgroup, gameped);
  131.     DebugBreak("74");SET_CHAR_RELATIONSHIP_GROUP(gameped, RELATIONSHIP_GROUP_PLAYER);
  132.     DebugBreak("75");SET_CHAR_RELATIONSHIP(gameped, RELATIONSHIP_RESPECT, RELATIONSHIP_GROUP_PLAYER);
  133.     DebugBreak("76");playerGroupHatesAll(gameped);
  134.     DebugBreak("77");SET_GROUP_CHAR_DUCKS_WHEN_AIMED_AT(gameped, false);
  135.     DebugBreak("78");SET_GROUP_SEPARATION_RANGE(Bgroup, 100.00000000);
  136.     DebugBreak("79");SET_CHAR_NEVER_LEAVES_GROUP(gameped, true);
  137.     DebugBreak("80");SET_PLAYER_GROUP_TO_FOLLOW_ALWAYS(GetPlayerIndex(), true);
  138.     DebugBreak("81");SET_CHAR_ACCURACY(gameped, 70);
  139.     DebugBreak("82");SET_CHAR_AS_MISSION_CHAR(gameped);
  140.     DebugBreak("83");SET_PED_IS_BLIND_RAGING(gameped, true);
  141.     DebugBreak("84");SET_GROUP_LEADER(Bgroup, GetPlayerPed());
  142.     DebugBreak("85");SET_CHAR_PROOFS(gameped, false, false, true, false, false);
  143.     DebugBreak("86");SET_CHAR_BULLETPROOF_VEST(gameped, true);
  144.     DebugBreak("87");SET_CHAR_PROVIDE_COVERING_FIRE(gameped, true);
  145.     DebugBreak("88");SET_CHAR_WILL_USE_COVER(gameped, true);
  146.     DebugBreak("89");SET_CHAR_WILL_DO_DRIVEBYS(gameped, true);
  147.     DebugBreak("90");SET_CHAR_WILL_USE_CARS_IN_COMBAT(gameped, true);
  148.     DebugBreak("91");SET_CHAR_WILL_MOVE_WHEN_INJURED(gameped, true);
  149.     DebugBreak("92");SET_CHAR_CAN_BE_KNOCKED_OFF_BIKE(gameped, false);
  150.     DebugBreak("93");SET_CHAR_CAN_BE_SHOT_IN_VEHICLE(gameped, false);
  151.     DebugBreak("94");SET_CHAR_GET_OUT_UPSIDE_DOWN_CAR(gameped, true);
  152.     DebugBreak("95");SET_CHAR_DEFAULT_COMPONENT_VARIATION(gameped);
  153.     DebugBreak("96");SET_PED_DONT_DO_EVASIVE_DIVES(gameped, true);
  154.     DebugBreak("97");SET_CHAR_CAN_BE_KNOCKED_OFF_BIKE(gameped, false);
  155.     DebugBreak("98");SET_CHAR_WILL_USE_CARS_IN_COMBAT(gameped, true);
  156.     DebugBreak("99");UpdateWeaponOfPed(gameped, WEAPON_SHOTGUN);
  157.     DebugBreak("100");SET_CURRENT_CHAR_WEAPON(gameped, WEAPON_SHOTGUN, true);
  158.     DebugBreak("101");ADD_BLIP_FOR_CHAR(gameped, &gamepedblip);
  159.     DebugBreak("102");CHANGE_BLIP_COLOUR(gamepedblip, 3);
  160.     DebugBreak("103");SET_BLIP_AS_FRIENDLY(gamepedblip, true);
  161. }
  162.  
  163. void CheckModelLoad(uint model)
  164. {
  165.     if ( !HAS_MODEL_LOADED(model) )
  166.     {
  167.         REQUEST_MODEL(model);
  168.         while (!HAS_MODEL_LOADED(model)) WAIT(0);
  169.     }
  170. }
  171. void GameSettings(void){
  172.     DebugBreak("104");SET_RANDOM_CAR_DENSITY_MULTIPLIER(0.0);
  173.     DebugBreak("105");SET_PARKED_CAR_DENSITY_MULTIPLIER(2.25);
  174.     DebugBreak("106");SWITCH_GARBAGE_TRUCKS(false);
  175.     DebugBreak("107");ALLOW_EMERGENCY_SERVICES(false);
  176.     DebugBreak("108");SWITCH_AMBIENT_PLANES(FALSE);
  177.     DebugBreak("109");SWITCH_RANDOM_TRAINS(FALSE);
  178.     DebugBreak("110");SWITCH_RANDOM_BOATS(FALSE);
  179.     DebugBreak("111");SET_CREATE_RANDOM_COPS(FALSE);
  180.     DebugBreak("112");FORCE_WEATHER_NOW(WEATHER_FOGGY);
  181.     DebugBreak("113");FORCE_TIME_OF_DAY(0, 0);
  182.     DebugBreak("114");SET_REDUCE_VEHICLE_MODEL_BUDGET(FALSE);
  183.     //DebugBreak("115");SET_CHAR_RELATIONSHIP(PED_TYPE_COP, RELATIONSHIP_HATE,RELATIONSHIP_GROUP_DEALER); // set cops hate zomb
  184. }
  185. void main(void)
  186. {
  187.     THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
  188.     while ( !IS_PLAYER_PLAYING(GetPlayerIndex()) ) WAIT(0);
  189.    
  190.     Ped zombies[ZOMB_MAX];
  191.     char *anims[3];
  192.     anims[0] = "move_injured_lower";
  193.     anims[1] = "move_injured_upper";
  194.     anims[2] = "move_injured_generic";
  195.     /*LOAD_CHAR_DECISION_MAKER
  196.     0 - "m_empty.ped"
  197.     1 - "m_norm.ped"
  198.     2 - "m_tough.ped"
  199.     3 - "m_weak.ped"
  200.     4 - "m_steal.ped"*/
  201.     DebugBreak("116");UpdateWeaponOfPed(GetPlayerPed(), WEAPON_SHOTGUN);
  202.     DebugBreak("117 REMOVED SET_CURRENT_CHAR_WEAPON");//SET_CURRENT_CHAR_WEAPON(GetPlayerPed(), WEAPON_SHOTGUN, true);
  203.     DebugBreak("118");WAIT(1000);
  204.  
  205.     DebugBreak("119 ");
  206.     if(!DOES_DECISION_MAKER_EXIST(decm)) {
  207.         LOAD_CHAR_DECISION_MAKER(2, &decm); WAIT(50);
  208.         SET_DECISION_MAKER_ATTRIBUTE_SIGHT_RANGE(decm, 500); WAIT(50);
  209.         SET_DECISION_MAKER_ATTRIBUTE_CAN_CHANGE_TARGET(decm, true);WAIT(50);
  210.     }
  211.     DebugBreak("120 ");
  212.     if(!DOES_DECISION_MAKER_EXIST(cmbtdm)) {
  213.         LOAD_COMBAT_DECISION_MAKER(3, &cmbtdm);  WAIT(500); // changed back to 3
  214.         SET_DECISION_MAKER_ATTRIBUTE_SIGHT_RANGE(cmbtdm, 500); WAIT(50);
  215.         SET_DECISION_MAKER_ATTRIBUTE_CAN_CHANGE_TARGET(cmbtdm, true); WAIT(50);
  216.     }
  217.  
  218.     DebugBreak("123");SET_CAR_DENSITY_MULTIPLIER(0.0);
  219.     DebugBreak("124");SET_PED_DENSITY_MULTIPLIER(0.0);
  220.     DebugBreak("125");
  221.     if(!IS_NETWORK_SESSION()) {GameSettings();}
  222.     while (TRUE)
  223.     {
  224.         DebugBreak("126");WAIT(1000);
  225.         // check for player died -> delete zombies
  226.         DebugBreak("127");
  227.  
  228.         if (IS_CHAR_DEAD(GetPlayerPed()))
  229.         {
  230.             DebugBreak("128");
  231.             while (IS_CHAR_DEAD(GetPlayerPed())) WAIT(0);
  232.             DebugBreak("129");
  233.             int i;
  234.             for (i = 0; i < ZOMB_MAX; i++){
  235.                 DebugBreak("130");
  236.                 if ( DOES_CHAR_EXIST(zombies[i]) ){
  237.                     DebugBreak("131");EXPLODE_CHAR_HEAD(zombies[i]);
  238.                     DebugBreak("132");TASK_DIE(zombies[i]);
  239.                     DebugBreak("133");MARK_CHAR_AS_NO_LONGER_NEEDED(&zombies[i]);
  240.                 }
  241.             }
  242.             DebugBreak("134");
  243.             if ( DOES_CHAR_EXIST(gameped) ){
  244.                 DebugBreak("135");EXPLODE_CHAR_HEAD(gameped);
  245.                 DebugBreak("136");TASK_DIE(gameped);
  246.                 DebugBreak("137");MARK_CHAR_AS_NO_LONGER_NEEDED(&gameped);
  247.             }
  248.             DebugBreak("138");WAIT(3000);
  249.             DebugBreak("139");
  250.             if(!IS_NETWORK_SESSION()) {GameSettings();}
  251.             DebugBreak("140");MakeGuard = TRUE;
  252.             DebugBreak("141");continue;
  253.         }
  254.         if(WANTED_STARS_ARE_FLASHING()){
  255.             DebugBreak("142");CLEAR_WANTED_LEVEL(GetPlayerIndex());
  256.             DebugBreak("143");continue;
  257.         }
  258.  
  259.  
  260.         //Check if player has guard
  261.         float tX,tY,tZ;
  262.         DebugBreak("144");
  263.         if(MakeGuard){
  264.             #ifdef SPAWN_GUARD_OFF
  265.             MakeGuard=FALSE; // DISABLES GUARD
  266.             continue;
  267.             #endif
  268.             uint key2;
  269.             DebugBreak("145");CheckModelLoad(MODEL_M_Y_DRUG_01);
  270.             DebugBreak("146");GET_KEY_FOR_CHAR_IN_ROOM(GetPlayerPed(), &key2);
  271.             DebugBreak("147");GET_CHAR_COORDINATES(GetPlayerPed() ,&tX, &tY, &tZ);
  272.             DebugBreak("148");CREATE_CHAR(RELATIONSHIP_GROUP_PLAYER,MODEL_M_Y_DRUG_01,tX,tY+5,tZ,&gameped,true);
  273.             DebugBreak("149");
  274.             if(DOES_CHAR_EXIST(gameped)){
  275.                 DebugBreak("150");SET_ROOM_FOR_CHAR_BY_KEY(gameped, key2);
  276.                 DebugBreak("151");GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  277.                 DebugBreak("152");
  278.                 if (!DOES_GROUP_EXIST(Bgroup)){
  279.                     DebugBreak("153");CREATE_GROUP(0, Bgroup, true);
  280.                     DebugBreak("154");GET_GROUP_SIZE(Bgroup, &amount, &pCount);
  281.                     DebugBreak("155");
  282.                     if (pCount < MAX_GUARDS) {
  283.                         DebugBreak("156");SetMemberAtt();
  284.                     }
  285.                 }
  286.                 else{
  287.                     DebugBreak("157");GET_GROUP_SIZE(Bgroup, &amount, &pCount);
  288.                     DebugBreak("158");
  289.                     if (pCount < MAX_GUARDS) {
  290.                         DebugBreak("159");SetMemberAtt();
  291.                     }
  292.                 }  
  293.             }
  294.             DebugBreak("160");MakeGuard = FALSE;
  295.             continue;
  296.         }
  297.         // check for player was hit by zombie -> kill player
  298.         int i , tick=0;;
  299.         DebugBreak("161");boolean dropcycle = FALSE;
  300.         DebugBreak("162");
  301.         for (i = 0; i < ZOMB_MAX; i++){
  302.         DebugBreak("163");
  303.             if ( DOES_CHAR_EXIST(zombies[i]) ){
  304.             DebugBreak("164");
  305.                 if(IS_NETWORK_SESSION()) {
  306.                 int player;
  307.                     for (player = 0; player < ONLINEPLAYERS; player++){
  308.                         if(DOES_CHAR_EXIST(players[player].ped)){
  309.                             TASK_COMBAT(zombies[i], players[player].ped);
  310.                             tick++;
  311.                             if ( tick > ONLINEPLAYERS ){
  312.                                 continue;
  313.                             }
  314.                         }
  315.                     }
  316.                 }
  317.                 if (HAS_CHAR_BEEN_DAMAGED_BY_CHAR(zombies[i], GetPlayerPed(), 0)){ // Always false at the end.
  318.                 DebugBreak("165");
  319.                     if(IS_CHAR_HEALTH_GREATER(zombies[i], 30)){
  320.                         DebugBreak("166");
  321.                         if(DOES_BLIP_EXIST(pblip)) {WAIT(100); REMOVE_BLIP(pblip);}
  322.                         EXPLODE_CHAR_HEAD(zombies[i]);
  323.                         TASK_DIE(zombies[i]);
  324.                         MARK_CHAR_AS_NO_LONGER_NEEDED(&zombies[i]);
  325.                     }
  326.                 }
  327.                 if (i < ZOMB_MAX) // if less then what is defined at top commence the zombie creation.
  328.                 {
  329.                     DebugBreak("167");dropcycle = TRUE;
  330.                     DebugBreak("168");break;
  331.                 }
  332.                 DebugBreak("169");continue;
  333.             }
  334.         }
  335.         // check for player in the water -> next iteration
  336.         DebugBreak("170");
  337.         if ( IS_CHAR_IN_WATER(GetPlayerPed()) ) continue;
  338.         // zombie check cycle
  339.         DebugBreak("171");
  340.         for (i = 0; i < ZOMB_MAX; i++)
  341.         {
  342.             DebugBreak("172");WAIT(10);
  343.             // delete unneeded zombie and make player drunk if he is near zombie
  344.             DebugBreak("173");
  345.             if ( DOES_CHAR_EXIST(zombies[i]) )
  346.             {
  347.                 float x, y, z, xpl, ypl, zpl, dist;
  348.                 DebugBreak("174");GET_CHAR_COORDINATES(zombies[i], &x, &y, &z);
  349.                 DebugBreak("175");GET_CHAR_COORDINATES(GetPlayerPed(), &xpl, &ypl, &zpl);
  350.                 DebugBreak("176");GET_DISTANCE_BETWEEN_COORDS_3D(x, y, z, xpl, ypl, zpl, &dist);
  351.                 if ( (dist < 2.0) && !IS_CHAR_IN_ANY_CAR(GetPlayerPed()) )
  352.                 {
  353.                 #ifdef SET_DRUNK_CAM
  354.                     Cam cam;
  355.                     GET_ROOT_CAM(&cam);
  356.                     SET_DRUNK_CAM(cam, 0.8, 4000);
  357.                 #endif
  358.                 }
  359.                 uint randint;
  360.                 DebugBreak("177");GENERATE_RANDOM_INT_IN_RANGE(0, 3, &randint);
  361.                 DebugBreak("178");
  362.                 if (randint == 0) SAY_AMBIENT_SPEECH(zombies[i], "MOAN", 1, 1, 2);
  363.                 DebugBreak("179");
  364.                 if ( (dist > 40.0) || IS_CHAR_DEAD(zombies[i]) || IS_CHAR_IN_WATER(zombies[i]) )
  365.                 {
  366.                     DebugBreak("180");EXPLODE_CHAR_HEAD(zombies[i]);
  367.                     DebugBreak("181");TASK_DIE(zombies[i]);
  368.                     DebugBreak("182");MARK_CHAR_AS_NO_LONGER_NEEDED(&zombies[i]);
  369.                 }
  370.                 DebugBreak("183");continue;
  371.             }
  372.             DebugBreak("184");
  373.             if (dropcycle) continue;
  374.             DebugBreak("185");WAIT(100);
  375.             // if zombie doesn't exist then
  376.             float x, y, z, xdif, ydif;
  377.             DebugBreak("186");
  378.             while (TRUE) //  find coords for zombie creation
  379.             {
  380.                 DebugBreak("187");GENERATE_RANDOM_FLOAT_IN_RANGE(-10.0, 10.0, &xdif);
  381.                 DebugBreak("188");GENERATE_RANDOM_FLOAT_IN_RANGE(0.0, 50.0, &ydif);
  382.                 DebugBreak("189");GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(GetPlayerPed(), xdif, ydif, 0.0, &x, &y, &z);
  383.                 float zgrnd, wh, xpl, ypl, zpl, dist;
  384.                 DebugBreak("190");
  385.                 if (GET_WATER_HEIGHT(x, y, z, &wh)) continue;
  386.                 DebugBreak("191");GET_CHAR_COORDINATES(GetPlayerPed(), &xpl, &ypl, &zpl);
  387.                 DebugBreak("192");GET_DISTANCE_BETWEEN_COORDS_3D(x, y, z, xpl, ypl, zpl, &dist);
  388.                 DebugBreak("193");
  389.                 if (dist < ZOMB_CREATE_MIN_DIST) continue;
  390.                 DebugBreak("194");GET_GROUND_Z_FOR_3D_COORD(x, y, z, &zgrnd);
  391.                 DebugBreak("195");
  392.                 if ( (zgrnd < z + 1.0) || (zgrnd > z - 1.0) ) break;
  393.  
  394.             } //  end -- find coords for zombie creation
  395.             // create zombie
  396.             uint PedModel;
  397.             DebugBreak("196");GENERATE_RANDOM_INT_IN_RANGE(0, 4, &PedModel);
  398.             DebugBreak("197");
  399.             if(GET_CURRENT_EPISODE() == 0){
  400.             DebugBreak("198");
  401.                 if (PedModel == 0) {
  402.                 #ifdef FIRE_ZOMBIES
  403.                     DebugBreak("199");CheckModelLoad(MODEL_M_Y_MULTIPLAYER);
  404.                     DebugBreak("200");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_Y_MULTIPLAYER, x, y, z+50.0, &zombies[i], 1);
  405.                     DebugBreak("201");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z+50.0);
  406.                     DebugBreak("202");SET_CHAR_COMPONENT_VARIATION(zombies[i], 0, 3, 3);
  407.                     DebugBreak("203");SET_CHAR_COMPONENT_VARIATION(zombies[i], 1, 4, 1);
  408.                     DebugBreak("204");START_CHAR_FIRE(zombies[i]);
  409.                 #endif
  410.                 }
  411.                 else {
  412.                     // IV ZOMBIE
  413.                     DebugBreak("205");CheckModelLoad(MODEL_M_Y_MULTIPLAYER);
  414.                     DebugBreak("206");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_Y_MULTIPLAYER, x, y, z, &zombies[i], 1);
  415.                     DebugBreak("207");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
  416.                     DebugBreak("208");SET_CHAR_COMPONENT_VARIATION(zombies[i], 0, 3, 3);
  417.                     DebugBreak("209");SET_CHAR_COMPONENT_VARIATION(zombies[i], 1, 4, 1);
  418.                 }
  419.             }
  420.             else{
  421.                 if (PedModel == 0) {
  422.                 #ifdef FIRE_ZOMBIES
  423.                     DebugBreak("210");CheckModelLoad(MODEL_IG_CHARLIEUC);
  424.                     DebugBreak("211");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_IG_CHARLIEUC, x, y, z+50.0, &zombies[i], 1);
  425.                     DebugBreak("212");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z+50.0);
  426.                     DebugBreak("213");START_CHAR_FIRE(zombies[i]);
  427.                 #endif
  428.                 }
  429.                 else if(PedModel==1){
  430.                     DebugBreak("214");CheckModelLoad(MODEL_M_M_GUNNUT_01);
  431.                     DebugBreak("215");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_M_GUNNUT_01, x, y, z, &zombies[i], 1);
  432.                     DebugBreak("216");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
  433.                     DebugBreak("217");SET_CHAR_COMPONENT_VARIATION(zombies[i], 0, 1, 1); // tatooface
  434.                 }
  435.                 else if(PedModel==2){
  436.                     DebugBreak("218");CheckModelLoad(MODEL_M_M_DODGYDOC);
  437.                     DebugBreak("219");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_M_DODGYDOC, x, y, z, &zombies[i], 1);
  438.                     DebugBreak("220");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
  439.                 }
  440.                 else if(PedModel==3){
  441.                     DebugBreak("221");CheckModelLoad(MODEL_M_M_ALCOHOLIC);
  442.                     DebugBreak("222");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_M_ALCOHOLIC, x, y, z, &zombies[i], 1);
  443.                     DebugBreak("223");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
  444.                     DebugBreak("224");SET_CHAR_COMPONENT_VARIATION(zombies[i], 1, 1, 1); // stained shirt
  445.                 }
  446.                 else if(PedModel==4){
  447.                     DebugBreak("225");CheckModelLoad(MODEL_M_M_CRACKHEAD);
  448.                     DebugBreak("226");CREATE_CHAR (RELATIONSHIP_GROUP_DEALER, MODEL_M_M_CRACKHEAD, x, y, z, &zombies[i], 1);
  449.                     DebugBreak("227");SET_CHAR_COORDINATES_NO_OFFSET(zombies[i], x, y, z);
  450.                 }
  451.             }
  452.  
  453.             /**/
  454.             if(DOES_CHAR_EXIST(zombies[i])){
  455.             uint key;
  456.             DebugBreak("228");GET_KEY_FOR_CHAR_IN_ROOM(GetPlayerPed(), &key);
  457.             DebugBreak("229");SET_ROOM_FOR_CHAR_BY_KEY(zombies[i], key);
  458.             /**/
  459.  
  460.             DebugBreak("230");
  461.             if(!IS_NETWORK_SESSION()) {GameSettings();}
  462.             DebugBreak("231");SET_CHAR_BLEEDING(zombies[i], true);
  463.             DebugBreak("232");SET_SENSE_RANGE(zombies[i], 500.0);
  464.             DebugBreak("233");SET_CHAR_RELATIONSHIP_GROUP(zombies[i], 24);
  465.             DebugBreak("234");SET_CHAR_RELATIONSHIP(zombies[i], 5, 0);//decm, cmbtdm;
  466.             DebugBreak("235");if(DOES_DECISION_MAKER_EXIST(decm)) SET_CHAR_DECISION_MAKER(zombies[i], decm);
  467.             DebugBreak("236");if(DOES_DECISION_MAKER_EXIST(cmbtdm)) SET_COMBAT_DECISION_MAKER(zombies[i], cmbtdm);
  468.             DebugBreak("237");SET_CHAR_AS_ENEMY(zombies[i], TRUE);
  469.             DebugBreak("238");SET_CHAR_DIES_INSTANTLY_IN_WATER(zombies[i], TRUE);
  470.             uint randint;
  471.             DebugBreak("239");GENERATE_RANDOM_INT_IN_RANGE(0, 2, &randint);
  472.             DebugBreak("240");SET_CHAR_HEALTH(zombies[i], 100.0);
  473.             DebugBreak("241");SET_ANIM_GROUP_FOR_CHAR(zombies[i], anims[randint]);
  474.             DebugBreak("242");SET_CHAR_KEEP_TASK(zombies[i], TRUE);
  475.             DebugBreak("243");TASK_COMBAT(zombies[i], GetPlayerPed());
  476.             DebugBreak("244");SET_CHAR_WILL_USE_CARS_IN_COMBAT(zombies[i], FALSE);
  477.             DebugBreak("245");SET_CHAR_MONEY(zombies[i], 0);
  478.             DebugBreak("246");SET_PED_IS_BLIND_RAGING(zombies[i], TRUE);
  479.             DebugBreak("247");SET_PED_GENERATES_DEAD_BODY_EVENTS(zombies[i], TRUE);
  480.             DebugBreak("248");SET_PED_PATH_MAY_USE_CLIMBOVERS(zombies[i], TRUE);
  481.             DebugBreak("249");SET_PED_PATH_MAY_DROP_FROM_HEIGHT(zombies[i], TRUE);
  482.             DebugBreak("250");SET_PED_PATH_MAY_USE_LADDERS(zombies[i], FALSE);
  483.             DebugBreak("251");SET_PED_DONT_DO_EVASIVE_DIVES(zombies[i], TRUE);
  484.             DebugBreak("252");SET_CHAR_WILL_USE_COVER(zombies[i], FALSE);
  485.            
  486.             DebugBreak("253");UpdateWeaponOfPed(zombies[i], WEAPON_KNIFE);
  487.             DebugBreak("254");SET_CURRENT_CHAR_WEAPON(zombies[i], WEAPON_KNIFE, true);
  488.             DebugBreak("255");SET_CHAR_CURRENT_WEAPON_VISIBLE(zombies[i], false);
  489.             DebugBreak("256");SET_CHAR_DROPS_WEAPONS_WHEN_DEAD(zombies[i], false );
  490.            
  491.             DebugBreak("257");playerHater(zombies[i]);
  492.             float randfloat;
  493.             DebugBreak("258");GENERATE_RANDOM_FLOAT_IN_RANGE(0.0, 0.5, &randfloat);
  494.  
  495.             DebugBreak("259");SET_CHAR_MOVE_ANIM_SPEED_MULTIPLIER(zombies[i], 1.2 + randfloat);
  496.             DebugBreak("260");ADD_BLIP_FOR_CHAR(zombies[i], &pblip);
  497.             DebugBreak("261");SET_BLIP_AS_FRIENDLY(pblip, FALSE);
  498.             DebugBreak("262");CHANGE_BLIP_COLOUR(pblip, BLIP_COLOR_DARK_RED);
  499.             // Sickem on online players if online
  500.        
  501.             DebugBreak("263");CANCEL_CURRENTLY_PLAYING_AMBIENT_SPEECH(zombies[i]);
  502.             DebugBreak("264");SET_AMBIENT_VOICE_NAME(zombies[i], "M_ZOMBIE");
  503.             DebugBreak("265");SAY_AMBIENT_SPEECH(zombies[i], "MOAN", 1, 1, 2);
  504.             }
  505.  
  506.  
  507.             DebugBreak("265");
  508.         }
  509.     }
  510.  
  511. }
Advertisement
Add Comment
Please, Sign In to add comment