Advertisement
EmmanuelU

Advanced Bodyguard Functions by Emmanuel Utomi

Jun 29th, 2013
563
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.28 KB | None | 0 0
  1. Ped gameped[7]; //7 bodyguards
  2. Group Bgroup;
  3. Object otmp;
  4. uint test,guards,i;
  5.  
  6. void teleport_char(Ped pPed, float x,float y,float z){
  7.     if(IS_CHAR_IN_ANY_CAR(pPed)){
  8.         GET_CAR_CHAR_IS_USING(pPed,&pveh);
  9.         GET_CAR_SPEED(pveh,&speed);
  10.         GET_NETWORK_ID_FROM_VEHICLE(pveh,&nvid);
  11.         REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  12.         tick = 0;
  13.         while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  14.             tick++;
  15.             REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  16.             if(tick >= 200){
  17.                 print("~r~Error");
  18.                 return;
  19.             }
  20.             WAIT(0);
  21.         }
  22.         SET_CAR_COORDINATES(pveh,x,y,z);
  23.         SET_CAR_FORWARD_SPEED(pveh,speed);
  24.     }
  25.     else{
  26.         SET_CHAR_COORDINATES(pPed,x,y,z);
  27.         SET_GAME_CAM_HEADING(0.0);
  28.         LOAD_ALL_OBJECTS_NOW();
  29.     }
  30.     REQUEST_COLLISION_AT_POSN(x,y,z);
  31. }
  32.  
  33. void kill_spawnguards(void){
  34.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  35.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  36.     if((guards <= 0) || (!DOES_GROUP_EXIST(Bgroup))){
  37.         print("No guards Exist or Available");
  38.         return;
  39.     }
  40.     if(DOES_GROUP_EXIST(Bgroup)){
  41.         for(i = 0;i <= 6; i++){
  42.             if(DOES_CHAR_EXIST(gameped[i])){       
  43.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  44.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  45.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  46.                 tick = 0;
  47.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  48.                     tick++;
  49.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  50.                     if(tick >= 250){
  51.                         continue;
  52.                     }
  53.                     WAIT(0);
  54.                 }
  55.                 SET_CHAR_INVINCIBLE(gameped[i], false);
  56.                 SET_CHAR_PROOFS(gameped[i], false, false, false, false, false);
  57.             }
  58.         }
  59.         print("Made all guards killable");         
  60.         return;
  61.     }
  62.     return;
  63. }
  64.  
  65. void delete_all_spawnguards(void){
  66.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  67.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  68.     if((guards <= 0) || (!DOES_GROUP_EXIST(Bgroup))){
  69.         print("No guards Exist or Available");
  70.         return;
  71.     }
  72.     if(DOES_GROUP_EXIST(Bgroup)){
  73.         for(i = 0;i <= 6; i++){
  74.             if(DOES_CHAR_EXIST(gameped[i])){
  75.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  76.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  77.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  78.                 tick = 0;
  79.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  80.                     tick++;
  81.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  82.                     if(tick >= 250){
  83.                         continue;
  84.                     }
  85.                     WAIT(0);
  86.                 }
  87.                 FORCE_CHAR_TO_DROP_WEAPON(gameped[i]);
  88.                 WAIT(10);
  89.                 DELETE_CHAR(&gameped[i]);
  90.                 MARK_CHAR_AS_NO_LONGER_NEEDED(&gameped[i]);
  91.             }
  92.         }
  93.         print("Deleted All available guards");         
  94.         return;
  95.     }
  96.     return;
  97. }
  98.  
  99. void delete_one_spawnguards(void){
  100.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  101.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  102.     if((guards <= 0) || (!DOES_GROUP_EXIST(Bgroup))){
  103.         print("No guards Exist or Available");
  104.         return;
  105.     }
  106.     if(DOES_GROUP_EXIST(Bgroup)){
  107.         for(i = 0;i <= 6; i++){
  108.             if(DOES_CHAR_EXIST(gameped[i])){
  109.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  110.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  111.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  112.                 tick = 0;
  113.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  114.                     tick++;
  115.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  116.                     if(tick >= 250){
  117.                         return;
  118.                     }
  119.                     WAIT(0);
  120.                 }
  121.                 FORCE_CHAR_TO_DROP_WEAPON(gameped[i]);
  122.                 WAIT(10);
  123.                 DELETE_CHAR(&gameped[i]);
  124.                 MARK_CHAR_AS_NO_LONGER_NEEDED(&gameped[i]);
  125.                 print("1 was Guard Deleted");                  
  126.                 return;
  127.             }
  128.         }
  129.     print("No guards Exist or Available");         
  130.     return;
  131.     }
  132.     return;
  133. }
  134.  
  135. void arm_spawnguards(int weapon){
  136.     i = 0;
  137.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  138.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  139.     if((guards <= 0) || (!DOES_GROUP_EXIST(Bgroup))){
  140.         print("No guards Exist or Available");
  141.         return;
  142.     }
  143.     if(DOES_GROUP_EXIST(Bgroup)){
  144.         for(i = 0;i <= 6; i++){
  145.             if(DOES_CHAR_EXIST(gameped[i])){
  146.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  147.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  148.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  149.                 tick = 0;
  150.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  151.                     tick++;
  152.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  153.                     if(tick >= 250){
  154.                         continue;
  155.                     }
  156.                     WAIT(0);
  157.                 }
  158.                 REMOVE_ALL_CHAR_WEAPONS(gameped[i]);
  159.                 WAIT(10);
  160.                 if(!(weapon == WEAPON_MOLOTOV || weapon == WEAPON_POOLCUE || weapon == WEAPON_KNIFE || weapon == WEAPON_DEAGLE || weapon == WEAPON_BASEBALLBAT)){
  161.                     i = 23;
  162.                     UpdateWeaponOfPed(gameped[i], WEAPON_MP5);
  163.                     SET_CURRENT_CHAR_WEAPON(gameped[i], WEAPON_MP5, true);
  164.                 }
  165.                 UpdateWeaponOfPed(gameped[i], weapon);
  166.                 SET_CURRENT_CHAR_WEAPON(gameped[i], weapon, true);
  167.             }
  168.         }
  169.         if(i == 23) print("Gave all available guards specified weapon and a mp5");
  170.         else print("Gave all available guards specified weapon");
  171.         return;
  172.     }
  173.     return;
  174. }
  175.  
  176. void disband_spawnguards(void){
  177.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  178.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  179.     if((guards <= 0) || (!DOES_GROUP_EXIST(Bgroup))){
  180.         print("No guards Exist or Available");
  181.         return;
  182.     }
  183.     if(DOES_GROUP_EXIST(Bgroup)){
  184.         REMOVE_GROUP(Bgroup);
  185.         print("All Guards shall now roam free");           
  186.         return;
  187.     }
  188.     return;
  189. }
  190.  
  191. void tele_spawnguards(void){
  192.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  193.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  194.     if((guards <= 0) || (!DOES_GROUP_EXIST(Bgroup))){
  195.         print("No guards Exist or Available");
  196.         return;
  197.     }
  198.     if(DOES_GROUP_EXIST(Bgroup)){
  199.     //  float x,y,z;
  200.         GET_CHAR_COORDINATES(pPlayer,&x,&y,&z);
  201.         for(i = 0;i <= 6; i++){
  202.             if(DOES_CHAR_EXIST(gameped[i])){
  203.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  204.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  205.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  206.                 tick = 0;
  207.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  208.                     tick++;
  209.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  210.                     if(tick >= 250){
  211.                         continue;
  212.                     }
  213.                     WAIT(0);
  214.                 }
  215.                 teleport_char(gameped[i], x, y, z);
  216.             }
  217.         }
  218.         print("Teleported all available guards to you");           
  219.         return;
  220.     }
  221.     return;
  222. }
  223.  
  224. void object_spawnguards(uint model, uint bone, float x, float y, float z, float rotox, float rotoy, float rotoz){
  225.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  226.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  227.     if((guards <= 0) || (!DOES_GROUP_EXIST(Bgroup))){
  228.         print("No guards Exist or Available");
  229.         return;
  230.     }
  231.     if(DOES_GROUP_EXIST(Bgroup)){
  232.     //  float x,y,z;
  233.         for(i = 0;i <= 6; i++){
  234.             if(DOES_CHAR_EXIST(gameped[i])){
  235.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  236.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  237.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  238.                 tick = 0;
  239.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  240.                     tick++;
  241.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  242.                     if(tick >= 250){
  243.                         continue;
  244.                     }
  245.                     WAIT(0);
  246.                 }
  247.                 CREATE_OBJECT(model,0.0,0.0,0.0,&otmp,true);
  248.                 ATTACH_OBJECT_TO_PED(otmp,gameped[i],bone,x,y,z,rotox,rotoy,rotoz,0);
  249.             }
  250.         }
  251.         print("Attached an Object to all guards.");        
  252.         return;
  253.     }
  254.     return;
  255. }
  256.  
  257. void tower_spawnguards(Ped pPed){
  258.     if(DOES_CHAR_EXIST(pPed)){
  259.         for(i = 0;i <= 6; i++){
  260.             if(DOES_CHAR_EXIST(gameped[i])){
  261.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  262.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  263.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  264.                 tick = 0;
  265.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  266.                     tick++;
  267.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  268.                     if(tick >= 250){
  269.                         continue;
  270.                     }
  271.                     WAIT(0);
  272.                 }
  273.                 CREATE_OBJECT(MODEL_CJ_GOLF_BALL,0.0,0.0,0.0,&otmp,true);
  274.                 SET_OBJECT_VISIBLE(otmp, false);
  275.                 ATTACH_OBJECT_TO_PED(otmp,pPed,0,0.0,0.0,2.1,0.0,0.0,0.0,false);
  276.                 WAIT(10);
  277.                 ATTACH_PED_TO_OBJECT(gameped[i],otmp,0,0.0,0.0,-0.65,0,0,0,0);
  278.                 MARK_OBJECT_AS_NO_LONGER_NEEDED(&otmp);
  279.                 break;
  280.             }
  281.         }
  282.         for(i;i <= 6; i++){
  283.             if(DOES_CHAR_EXIST(gameped[i])){
  284.                 if(i == 6){
  285.                     print("Created a human guard tower");
  286.                     return;
  287.                 }
  288.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  289.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  290.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  291.                 tick = 0;
  292.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  293.                     tick++;
  294.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  295.                     if(tick >= 250){
  296.                         continue;
  297.                     }
  298.                     WAIT(0);
  299.                 }
  300.                 CREATE_OBJECT(MODEL_CJ_GOLF_BALL,0.0,0.0,0.0,&otmp,true);
  301.                 SET_OBJECT_VISIBLE(otmp, false);
  302.                 if(i == 1) i += 1;
  303.                 ATTACH_OBJECT_TO_PED(otmp,gameped[i],0,0.0,0.0,2.1,0.0,0.0,0.0,false);
  304.                 i += 1;
  305.                 WAIT(10);
  306.                 ATTACH_PED_TO_OBJECT(gameped[i],otmp,0,0.0,0.0,-0.65,0,0,0,0);
  307.                 i -= 1;
  308.                 MARK_OBJECT_AS_NO_LONGER_NEEDED(&otmp);
  309.             }
  310.         }
  311.     }
  312. }
  313.  
  314.  
  315. void anim_spawnguards(char* anim, char* animgroup, bool loop){
  316.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  317.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  318.     if((guards <= 0) || (!DOES_GROUP_EXIST(Bgroup))){
  319.         print("No guards Exist or Available");
  320.         return;
  321.     }
  322.     if(DOES_GROUP_EXIST(Bgroup)){
  323.         REQUEST_ANIMS(animgroup);
  324.         while(!HAVE_ANIMS_LOADED(animgroup)) WAIT(0);
  325.         for(i = 0;i <= 6; i++){
  326.             if(DOES_CHAR_EXIST(gameped[i])){
  327.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  328.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  329.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  330.                 tick = 0;
  331.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  332.                     tick++;
  333.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  334.                     if(tick >= 250){
  335.                         continue;
  336.                     }
  337.                     WAIT(0);
  338.                 }
  339.                 if(loop) TASK_PLAY_ANIM_WITH_FLAGS(gameped[i],anim,animgroup,8.0,0,0x20);
  340.                 else TASK_PLAY_ANIM_WITH_FLAGS(gameped[i],anim,animgroup,8.0,0,0);
  341.             }
  342.         }
  343.         print("Made all available guards dance");          
  344.         return;
  345.     }
  346.     return;
  347. }
  348.  
  349. void clear_spawnguards(void){
  350.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  351.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  352.     if((guards <= 0) || (!DOES_GROUP_EXIST(Bgroup))){
  353.         print("No guards Exist or Available");
  354.         return;
  355.     }
  356.     if(DOES_GROUP_EXIST(Bgroup)){
  357.         for(i = 0;i <= 6; i++){
  358.             if(DOES_CHAR_EXIST(gameped[i])){
  359.                 GET_NETWORK_ID_FROM_PED(gameped[i], &nvid);
  360.                 SET_NETWORK_ID_CAN_MIGRATE(nvid, true);
  361.                 REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  362.                 tick = 0;
  363.                 while(!HAS_CONTROL_OF_NETWORK_ID(nvid)){
  364.                     tick++;
  365.                     REQUEST_CONTROL_OF_NETWORK_ID(nvid);
  366.                     if(tick >= 250){
  367.                         continue;
  368.                     }
  369.                     WAIT(0);
  370.                 }
  371.                 CLEAR_CHAR_TASKS_IMMEDIATELY(gameped[i]);
  372.             }
  373.         }
  374.         print("Cleared all the available guard's tasks");          
  375.         return;
  376.     }
  377.     return;
  378. }
  379.  
  380. void spawnguards(uint model, uint weapon){
  381.     GET_PLAYER_GROUP(GetPlayerIndex(), &Bgroup);
  382.     if(!DOES_GROUP_EXIST(Bgroup)){
  383.         CREATE_GROUP(0, Bgroup, true);
  384.         SET_GROUP_LEADER(Bgroup, pPlayer);
  385.         SET_GROUP_FORMATION(Bgroup, 2);
  386.         SET_GROUP_FORMATION_SPACING(Bgroup, 3);
  387.     }  
  388.     GET_GROUP_SIZE(Bgroup, &test, &guards);
  389.     if((guards >= 7) || (guards == 7) || (guards > 6)){
  390.         print("Max guards (7) exceeded");
  391.         return;
  392.     }
  393.     for(i = 0;i <= 6; i++){
  394.         if(!DOES_CHAR_EXIST(gameped[i])){
  395.            
  396.             REQUEST_MODEL(model);
  397.             while (!HAS_MODEL_LOADED(model)) WAIT(0);
  398.             WAIT(100);
  399.            
  400.             GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(pPlayer, 0, 2, 0, &x, &y, &z);
  401.            
  402.             CREATE_CHAR(26, model, x,y,z, &gameped[i], true);
  403.             WAIT(100);
  404.             SET_CHAR_RANDOM_COMPONENT_VARIATION(gameped[i]);
  405.             SET_GROUP_MEMBER(Bgroup, gameped[i]);
  406.             SET_CHAR_NEVER_LEAVES_GROUP(gameped[i], true);
  407.             SET_CHAR_RELATIONSHIP_GROUP(gameped[i], 3);
  408.         //  SET_CHAR_RELATIONSHIP_GROUP(gameped[i], 24);
  409.             SET_CHAR_RELATIONSHIP(gameped[i], 5, 0);
  410.             SET_CHAR_ACCURACY(gameped[i], 100);
  411.             SET_CHAR_KEEP_TASK(gameped[i], true);
  412.             SET_SENSE_RANGE(gameped[i], 200.0);
  413.             SET_PED_GENERATES_DEAD_BODY_EVENTS(gameped[i], true);
  414.         //  SET_IGNORE_LOW_PRIORITY_SHOCKING_EVENTS(gameped[i], true);
  415.             SET_CHAR_SHOOT_RATE(gameped[i], 100);
  416.             SET_CHAR_WILL_USE_COVER(gameped[i], true);
  417.             SET_CHAR_WILL_DO_DRIVEBYS(gameped[i], true);
  418.             SET_CHAR_SIGNAL_AFTER_KILL(gameped[i], true);
  419.             SET_CHAR_WILL_USE_CARS_IN_COMBAT(gameped[i], true);
  420.             SET_CHAR_WILL_FLY_THROUGH_WINDSCREEN(gameped[i], false);
  421.             SET_CHAR_INVINCIBLE(gameped[i], true);
  422.             SET_CHAR_PROOFS(gameped[i], true, true, true, true, true);
  423.             SET_CHAR_PROVIDE_COVERING_FIRE(gameped[i], true);
  424.             SET_CHAR_CANT_BE_DRAGGED_OUT(gameped[i], true);
  425.             SET_CHAR_STAY_IN_CAR_WHEN_JACKED(gameped[i], true);
  426.             SET_PED_DONT_DO_EVASIVE_DIVES(gameped[i], true);
  427.             SET_DONT_ACTIVATE_RAGDOLL_FROM_PLAYER_IMPACT(gameped[i], true);
  428.             SET_PED_PATH_MAY_DROP_FROM_HEIGHT(gameped[i], true);
  429.             SET_PED_PATH_MAY_USE_CLIMBOVERS(gameped[i], true);
  430.             SET_PED_PATH_MAY_USE_LADDERS(gameped[i], true);
  431.             UpdateWeaponOfPed(gameped[i], weapon);
  432.             SET_CURRENT_CHAR_WEAPON(gameped[i], weapon, true);
  433.             WAIT(100);
  434.             print("Spawned Guard");
  435.             return;
  436.         }
  437.     }
  438.     return;
  439. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement