Guest User

RobFleeca GTA V sript mod .9

a guest
Dec 8th, 2016
4,424
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. using GTA;
  6. using GTA.Native;
  7. using GTA.Math;
  8. using Font = GTA.Font;
  9. using System.IO;
  10. using System.Linq;
  11. using System.Threading.Tasks;
  12.  
  13.  
  14.  
  15.  
  16. public class RobFleeca : Script
  17. {
  18.     private ScriptSettings KeysData;
  19.  
  20.     Driller Drill;
  21.  
  22.     List<Rob> Robs = new List<Rob>();
  23.  
  24.     List<Vector3> Bank_Locations = new List<Vector3>();
  25.  
  26.     List<Vector3> EnterExitBank_Locations = new List<Vector3>();
  27.  
  28.     List<Vector3> Cam1_Locations = new List<Vector3>();
  29.     List<Vector3> Cam2_Locations = new List<Vector3>();
  30.     List<Vector3> Cam3_Locations = new List<Vector3>();
  31.     List<Vector3> Cam4_Locations = new List<Vector3>();
  32.     List<Vector3> Cam5_Locations = new List<Vector3>();
  33.  
  34.     List<float> Cam1_Heading = new List<float>();
  35.     List<float> Cam2_Heading = new List<float>();
  36.     List<float> Cam3_Heading = new List<float>();
  37.     List<float> Cam4_Heading = new List<float>();
  38.     List<float> Cam5_Heading = new List<float>();
  39.  
  40.     List<Vector3> Teller_Locations = new List<Vector3>();
  41.     List<float> Teller_Heading = new List<float>();
  42.  
  43.     List<Vector3> Hostage1_Locations = new List<Vector3>();
  44.     List<float> Hostage1_Heading = new List<float>();
  45.  
  46.     List<Vector3> Hostage2_Locations = new List<Vector3>();
  47.     List<float> Hostage2_Heading = new List<float>();
  48.  
  49.     List<Vector3> Hostage3_Locations = new List<Vector3>();
  50.     List<float> Hostage3_Heading = new List<float>();
  51.  
  52.     List<Vector3> Teller_Walk_Locations1 = new List<Vector3>();
  53.     List<Vector3> Teller_Walk_Locations2 = new List<Vector3>();
  54.  
  55.     List<Vector3> FleecaDoor_Locations = new List<Vector3>();
  56.     List<float> FleecaDoor_Heading = new List<float>();
  57.  
  58.     List<Vector3> FleecaVaultDoor_Locations = new List<Vector3>();
  59.     List<float> FleecaVaultDoor_Heading = new List<float>();
  60.  
  61.     List<Vector3> FleecaVaultDoor_KeyPad_Locations = new List<Vector3>();
  62.  
  63.     List<Vector3> FleecaVaultDrill_Locations = new List<Vector3>();
  64.     List<float> FleecaVaultDrill_Heading = new List<float>();
  65.  
  66.     List<Vector3> FleecaVaultBoxWall_Locations = new List<Vector3>();
  67.     List<float> FleecaVaultBoxWall_Heading = new List<float>();
  68.  
  69.     List<Vector3> FleecaVaultBoxDoor_Locations = new List<Vector3>();
  70.     List<float> FleecaVaultBoxDoor_Heading = new List<float>();
  71.  
  72.     int MinCash = 0;
  73.  
  74.     int MaxCash = 0;
  75.  
  76.     int WantedLevel = 4;
  77.  
  78.     int Passed_Index = -1;
  79.  
  80.     int time = 0;
  81.     bool run = false;
  82.     int Scale;
  83.     int step = -1;
  84.  
  85.     string WhoDied;
  86.  
  87.  
  88.     List<bool> BankAvalible = new List<bool>();
  89.  
  90.     bool BankRobbed1;
  91.     bool BankRobbed2;
  92.     bool BankRobbed3;
  93.     bool BankRobbed4;
  94.     bool BankRobbed5;
  95.     bool BankRobbed6;
  96.  
  97.     bool ShowBlips;
  98.  
  99.     public RobFleeca()
  100.     {
  101.         BankAvalible.Add(true);
  102.         BankAvalible.Add(true);
  103.         BankAvalible.Add(true);
  104.         BankAvalible.Add(true);
  105.         BankAvalible.Add(true);
  106.         BankAvalible.Add(true);
  107.  
  108.         ////// bank 1 ocean
  109.         Bank_Locations.Add(new Vector3(-2975.3f, 483.17f, 14.0f));  // green marker
  110.  
  111.         EnterExitBank_Locations.Add(new Vector3(-2965.7f, 482.64f, 15.91f));
  112.  
  113.         Cam1_Locations.Add(new Vector3(-2962.176f, 486.5187f, 17.38165f));   // 168901740 prop_cctv_cam_06a coords for cams
  114.         Cam2_Locations.Add(new Vector3(-2960.813f, 476.3674f, 17.88708f));
  115.         Cam3_Locations.Add(new Vector3(-2959.599f, 476.3453f, 17.88706f));
  116.         Cam4_Locations.Add(new Vector3(-2958.923f, 478.9213f, 17.67277f));
  117.         Cam5_Locations.Add(new Vector3(-2963.956f, 478.9629f, 17.34873f));  // -1340405475   prop_cctv_cam_07a
  118.  
  119.      
  120.         Teller_Walk_Locations1.Add(new Vector3(-2960.813f, 477.5f, 17.88708f));
  121.         Teller_Walk_Locations2.Add(new Vector3(-2958.3f, 477.7f, 17.88706f));
  122.  
  123.         Teller_Locations.Add(new Vector3(-2960.8f, 482.7f, 15.7f));  // teller  a_m_y_business_01   a_m_y_busicas_01
  124.         Teller_Heading.Add(+90.0f);
  125.  
  126.         Hostage1_Locations.Add(new Vector3(-2964.2f, 486.7f, 14.2f));  // left seat Hostage1   a_m_y_stbla_01  a_m_y_stbla_02  a_f_y_tourist_02  a_f_y_tourist_01  a_m_m_stlat_02    a_m_y_genstreet_01  a_f_y_business_03
  127.         Hostage1_Heading.Add(+180.0f);
  128.  
  129.         Hostage2_Locations.Add(new Vector3(-2965.7f, 478.6f, 14.2f));  
  130.         Hostage2_Heading.Add(-90.0f);
  131.  
  132.         Hostage3_Locations.Add(new Vector3(-2963.0f, 481.6f, 14.7f));
  133.         Hostage3_Heading.Add(-90.0f);
  134.  
  135.         FleecaDoor_Locations.Add(new Vector3(-2960.176f, 479.0105f, 15.97056f));       // -131754413 v_ilev_gb_teldr heading 145.0371 fleeca door
  136.         FleecaDoor_Heading.Add(357.5421f);
  137.  
  138.         FleecaVaultDoor_KeyPad_Locations.Add(new Vector3(-2956.3f, 481.6f, 15.8f));
  139.  
  140.         FleecaVaultDoor_Locations.Add(new Vector3(-2958.539f, 482.2706f, 15.83594f));  // 2121050683 v_ilev_gb_vauldr  heading 357.5421 valt door
  141.  
  142.         FleecaVaultDoor_Heading.Add(357.5421f);
  143.  
  144.         FleecaVaultDrill_Locations.Add(new Vector3(-2953.2f, 484.715f, 14.7f));
  145.         FleecaVaultDrill_Heading.Add(-92.5f);
  146.  
  147.         FleecaVaultBoxWall_Locations.Add(new Vector3(-2952.2f, 484.3f, 15.88f));
  148.         FleecaVaultBoxWall_Heading.Add(-92.5f);
  149.  
  150.         FleecaVaultBoxDoor_Locations.Add(new Vector3(-2952.37f, 484.81f, 17.039f));
  151.         FleecaVaultBoxDoor_Heading.Add(-92.5f);
  152.  
  153. ////// bank 2 near lifeinvader
  154.         Bank_Locations.Add(new Vector3(-1220.5f, -317.5f, 36.4f));  // green marker
  155.  
  156.         EnterExitBank_Locations.Add(new Vector3(-1213.96f, -327.28f, 36.8f));
  157.  
  158.         Cam1_Locations.Add(new Vector3(-1209.339f, -329.3076f, 39.4656f));   // 168901740 prop_cctv_cam_06a coords for cams
  159.         Cam2_Locations.Add(new Vector3(-1217.521f, -335.4675f, 39.97102f));
  160.         Cam3_Locations.Add(new Vector3(-1216.972f, -336.5515f, 39.971f));
  161.         Cam4_Locations.Add(new Vector3(-1214.37f, -335.864f, 39.75671f));
  162.         Cam5_Locations.Add(new Vector3(-1216.798f, -331.4561f, 39.43268f));  // -1340405475   prop_cctv_cam_07a
  163.  
  164.      
  165.         Teller_Walk_Locations1.Add(new Vector3(-1216.35f, -335.1f, 36.66f));
  166.         Teller_Walk_Locations2.Add(new Vector3(-1215.4f, -337.2f, 36.6f));
  167.  
  168.         Teller_Locations.Add(new Vector3(-1212.2f, -332.5f, 37.8f));  // teller  a_m_y_business_01   a_m_y_busicas_01
  169.         Teller_Heading.Add(26.8637f);
  170.  
  171.         Hostage1_Locations.Add(new Vector3(-1210.1f, -327.7f, 36.3f));  // left seat Hostage1   a_m_y_stbla_01  a_m_y_stbla_02  a_f_y_tourist_02  a_f_y_tourist_01  a_m_m_stlat_02    a_m_y_genstreet_01  a_f_y_business_03
  172.         Hostage1_Heading.Add(+115.0f);
  173.  
  174.         Hostage2_Locations.Add(new Vector3(-1217.9f, -330.1f, 36.3f));
  175.         Hostage2_Heading.Add(205.0f);
  176.  
  177.         Hostage3_Locations.Add(new Vector3(-1214.1f, -331.3f, 36.8f));
  178.         Hostage3_Heading.Add(165.0f);
  179.  
  180.         FleecaDoor_Locations.Add(new Vector3(-1214.905f, -334.7281f, 38.05551f));       // -131754413 v_ilev_gb_teldr heading 145.0371 fleeca door
  181.         FleecaDoor_Heading.Add(296.8637f);
  182.  
  183.         FleecaVaultDoor_KeyPad_Locations.Add(new Vector3(-1210.65f, -336.4f, 37.56f));
  184.  
  185.         FleecaVaultDoor_Locations.Add(new Vector3(-1211.261f, -334.5596f, 37.91989f));  // 2121050683 v_ilev_gb_vauldr  heading 357.5421 valt door
  186.  
  187.         FleecaVaultDoor_Heading.Add(296.8637f);
  188.  
  189.         FleecaVaultDrill_Locations.Add(new Vector3(-1206.572f, -338.0f, 36.82f));
  190.         FleecaVaultDrill_Heading.Add(-152.8f);
  191.  
  192.         FleecaVaultBoxWall_Locations.Add(new Vector3(-1206.43f, -339.1f, 38.0f));
  193.         FleecaVaultBoxWall_Heading.Add(-152.8f);
  194.  
  195.         FleecaVaultBoxDoor_Locations.Add(new Vector3(-1206.072f, -338.69f, 39.159f));
  196.         FleecaVaultBoxDoor_Heading.Add(-152.8f);
  197.  
  198. ////// bank 3  burton
  199.         Bank_Locations.Add(new Vector3(-344.69f, -28.5f, 46.4f));  // green marker
  200.  
  201.         EnterExitBank_Locations.Add(new Vector3(-349.67f, -46.4f, 49.0f));
  202.  
  203.         Cam1_Locations.Add(new Vector3(-347.6229f, -51.30733f, 50.72114f));   // 168901740 prop_cctv_cam_06a coords for cams
  204.         Cam2_Locations.Add(new Vector3(-357.7383f, -49.69931f, 51.22656f));
  205.         Cam3_Locations.Add(new Vector3(-358.1367f, -50.84728f, 51.22655f));
  206.         Cam4_Locations.Add(new Vector3(-355.8343f, -52.24216f, 51.01226f));
  207.         Cam5_Locations.Add(new Vector3(-354.3498f, -47.43351f, 50.68822f));  // -1340405475   prop_cctv_cam_07a
  208.  
  209.        
  210.         Teller_Walk_Locations1.Add(new Vector3(-356.8f, -50.15f, 48.2f));
  211.         Teller_Walk_Locations2.Add(new Vector3(-357.6f, -52.4f, 48.2f));
  212.  
  213.         Teller_Locations.Add(new Vector3(-352.6f, -51.6f, 49.2f));  // teller  a_m_y_business_01   a_m_y_busicas_01
  214.         Teller_Heading.Add(-25.0f);
  215.  
  216.         Hostage1_Locations.Add(new Vector3(-347.2f, -50.4f, 47.55f));  // left seat Hostage1   a_m_y_stbla_01  a_m_y_stbla_02  a_f_y_tourist_02  a_f_y_tourist_01  a_m_m_stlat_02    a_m_y_genstreet_01  a_f_y_business_03
  217.         Hostage1_Heading.Add(85.0f);
  218.  
  219.         Hostage2_Locations.Add(new Vector3(-356.6f, -46.6f, 47.55f));
  220.         Hostage2_Heading.Add(-105.0f);
  221.  
  222.         Hostage3_Locations.Add(new Vector3(-352.1f, -49.2f, 48.1f));
  223.         Hostage3_Heading.Add(-195.0f);
  224.  
  225.         FleecaDoor_Locations.Add(new Vector3(-355.3892f, -51.06769f, 49.31105f));       // -131754413 v_ilev_gb_teldr heading 145.0371 fleeca door
  226.         FleecaDoor_Heading.Add(250.5898f);
  227.  
  228.         FleecaVaultDoor_KeyPad_Locations.Add(new Vector3(-353.7f, -55.3f, 49.0f));
  229.  
  230.         FleecaVaultDoor_Locations.Add(new Vector3(-352.7365f, -53.57248f, 49.17543f));  // 2121050683 v_ilev_gb_vauldr  heading 357.5421 valt door
  231.  
  232.         FleecaVaultDoor_Heading.Add(250.8598f);
  233.  
  234.         FleecaVaultDrill_Locations.Add(new Vector3(-351.918f, -59.38f, 48.05f));
  235.         FleecaVaultDrill_Heading.Add(160.75f);
  236.  
  237.         FleecaVaultBoxWall_Locations.Add(new Vector3(-352.6f, -60.2f, 49.225f));
  238.         FleecaVaultBoxWall_Heading.Add(160.75f);
  239.  
  240.         FleecaVaultBoxDoor_Locations.Add(new Vector3(-352.06f, -60.18f, 50.384f));
  241.         FleecaVaultBoxDoor_Heading.Add(160.75f);
  242.  
  243. ////// bank 4  alta
  244.         Bank_Locations.Add(new Vector3(318.1f, -266.1f, 52.6f));  // green marker
  245.  
  246.         EnterExitBank_Locations.Add(new Vector3(315.3f, -276.1f, 54.0f));
  247.  
  248.         Cam1_Locations.Add(new Vector3(317.5102f, -280.554f, 55.84935f));   // 168901740 prop_cctv_cam_06a coords for cams
  249.         Cam2_Locations.Add(new Vector3(307.4242f, -278.7708f, 56.35477f));
  250.         Cam3_Locations.Add(new Vector3(307.0059f, -279.9117f, 56.35476f));
  251.         Cam4_Locations.Add(new Vector3(309.2838f, -281.3463f, 56.14047f));
  252.         Cam5_Locations.Add(new Vector3(310.81643f, -276.5641f, 55.81643f));  // -1340405475   prop_cctv_cam_07a
  253.  
  254.         Teller_Walk_Locations1.Add(new Vector3(308.5f, -278.85f, 53.3f));
  255.         Teller_Walk_Locations2.Add(new Vector3(307.7f, -281.3f, 53.3f));
  256.  
  257.         Teller_Locations.Add(new Vector3(313.6f, -280.0f, 54.2f));  // teller  a_m_y_business_01   a_m_y_busicas_01
  258.         Teller_Heading.Add(-25.0f);
  259.  
  260.         Hostage1_Locations.Add(new Vector3(318.3f, -278.65f, 52.65f));  // left seat Hostage1   a_m_y_stbla_01  a_m_y_stbla_02  a_f_y_tourist_02  a_f_y_tourist_01  a_m_m_stlat_02    a_m_y_genstreet_01  a_f_y_business_03
  261.         Hostage1_Heading.Add(70.0f);
  262.  
  263.         Hostage2_Locations.Add(new Vector3(311.5f, -274.9f, 52.65f));
  264.         Hostage2_Heading.Add(-195.0f);
  265.  
  266.         Hostage3_Locations.Add(new Vector3(314.4f, -278.6f, 53.2f));
  267.         Hostage3_Heading.Add(-195.0f);
  268.  
  269.         FleecaDoor_Locations.Add(new Vector3(309.7491f, -280.1797f, 54.43926f));       // -131754413 v_ilev_gb_teldr heading 145.0371 fleeca door
  270.         FleecaDoor_Heading.Add(249.866f);
  271.  
  272.         FleecaVaultDoor_KeyPad_Locations.Add(new Vector3(311.35f, -284.45f, 54.0f));
  273.  
  274.         FleecaVaultDoor_Locations.Add(new Vector3(312.358f, -282.73018f, 54.30365f));  // 2121050683 v_ilev_gb_vauldr  heading 357.5421 valt door
  275.  
  276.         FleecaVaultDoor_Heading.Add(249.866f);
  277.  
  278.         FleecaVaultDrill_Locations.Add(new Vector3(313.078f, -288.54f, 53.2f));
  279.         FleecaVaultDrill_Heading.Add(160.0f);
  280.  
  281.         FleecaVaultBoxWall_Locations.Add(new Vector3(312.39f, -289.35f, 54.38f));
  282.         FleecaVaultBoxWall_Heading.Add(160.0f);
  283.  
  284.         FleecaVaultBoxDoor_Locations.Add(new Vector3(312.928f, -289.339f, 55.539f));
  285.         FleecaVaultBoxDoor_Heading.Add(160.0f);
  286.  
  287. ////// bank 5  grand senora
  288.         Bank_Locations.Add(new Vector3(1175.4f, 2690.9f, 36.6f));  // green marker
  289.  
  290.         EnterExitBank_Locations.Add(new Vector3(1175.2f, 2703.75f, 38.0f));
  291.  
  292.         Cam1_Locations.Add(new Vector3(1171.454f, 2707.45f, 39.77259f));   // 168901740 prop_cctv_cam_06a coords for cams
  293.         Cam2_Locations.Add(new Vector3(1181.537f, 2708.842f, 40.27802f));
  294.         Cam3_Locations.Add(new Vector3(1181.537f, 2710.057f, 40.278f));
  295.         Cam4_Locations.Add(new Vector3(1178.905f, 2710.62f, 40.06371f));
  296.         Cam5_Locations.Add(new Vector3(1179.079f, 2705.591f, 39.73968f));  // -1340405475   prop_cctv_cam_07a
  297.  
  298.         Teller_Walk_Locations1.Add(new Vector3(1180.4f, 2708.5f, 38.0f));
  299.         Teller_Walk_Locations2.Add(new Vector3(1180.4f, 2711.2f, 38.0f));
  300.  
  301.         Teller_Locations.Add(new Vector3(1175.0f, 2709.0f, 38.0f));  // teller  a_m_y_business_01   a_m_y_busicas_01
  302.         Teller_Heading.Add(180.0f);
  303.  
  304.         Hostage1_Locations.Add(new Vector3(1171.4f, 2705.1f, 36.59f));  // left seat Hostage1   a_m_y_stbla_01  a_m_y_stbla_02  a_f_y_tourist_02  a_f_y_tourist_01  a_m_m_stlat_02    a_m_y_genstreet_01  a_f_y_business_03
  305.         Hostage1_Heading.Add(-90.0f);
  306.  
  307.         Hostage2_Locations.Add(new Vector3(1179.4f, 2703.8f, 36.59f));
  308.         Hostage2_Heading.Add(.0f);
  309.  
  310.         Hostage3_Locations.Add(new Vector3(1175.0f, 2706.5f, 37.145f));
  311.         Hostage3_Heading.Add(.0f);
  312.  
  313.         FleecaDoor_Locations.Add(new Vector3(1178.87f, 2709.365f, 38.36251f));       // -131754413 v_ilev_gb_teldr heading 145.0371 fleeca door
  314.         FleecaDoor_Heading.Add(90.0f);
  315.  
  316.         FleecaVaultDoor_KeyPad_Locations.Add(new Vector3(1175.9f, 2712.8f, 38.0f));
  317.  
  318.         FleecaVaultDoor_Locations.Add(new Vector3(1175.542f, 2710.861f, 38.22689f));  // 2121050683 v_ilev_gb_vauldr  heading 357.5421 valt door
  319.  
  320.         FleecaVaultDoor_Heading.Add(90.0f);
  321.  
  322.         FleecaVaultDrill_Locations.Add(new Vector3(1172.855f, 2716.1f, 37.14f));
  323.         FleecaVaultDrill_Heading.Add(0.0f);
  324.  
  325.         FleecaVaultBoxWall_Locations.Add(new Vector3(1173.23f, 2717.1f, 38.32f));
  326.         FleecaVaultBoxWall_Heading.Add(0.0f);
  327.  
  328.         FleecaVaultBoxDoor_Locations.Add(new Vector3(1172.725f, 2716.91f, 39.48f));
  329.         FleecaVaultBoxDoor_Heading.Add(0.0f);
  330.  
  331.  
  332. ////// bank 6 Vespucci_Boulevard
  333.         Bank_Locations.Add(new Vector3(153.2f, -1029.0f, 28.0f));  // green marker
  334.  
  335.         EnterExitBank_Locations.Add(new Vector3(151.3f, -1036.6f, 29.0f));
  336.  
  337.         Cam1_Locations.Add(new Vector3(153.1795f, -1042.05264f, 31.05264f));   // 168901740 prop_cctv_cam_06a coords for cams
  338.         Cam2_Locations.Add(new Vector3(143.0941f, -1040.403f, 31.55806f));
  339.         Cam3_Locations.Add(new Vector3(142.5754f, -1041.543f, 31.55805f));
  340.         Cam4_Locations.Add(new Vector3(144.9529f, -1042.979f, 31.34375f));
  341.         Cam5_Locations.Add(new Vector3(146.5221f, -1038.197f, 31.01972f));  // -1340405475   prop_cctv_cam_07a
  342.  
  343.         Teller_Walk_Locations1.Add(new Vector3(144.7f, -1040.6f, 29.0f));
  344.         Teller_Walk_Locations2.Add(new Vector3(143.3f, -1043.2f, 29.0f));
  345.  
  346.         Teller_Locations.Add(new Vector3(149.7f, -1042.4f, 29.0f));  // teller  a_m_y_business_01   a_m_y_busicas_01
  347.         Teller_Heading.Add(0.0f);
  348.  
  349.         Hostage1_Locations.Add(new Vector3(154.0f, -1040.3f, 27.85f));  // left seat Hostage1   a_m_y_stbla_01  a_m_y_stbla_02  a_f_y_tourist_02  a_f_y_tourist_01  a_m_m_stlat_02    a_m_y_genstreet_01  a_f_y_business_03
  350.         Hostage1_Heading.Add(69.8462f);
  351.  
  352.         Hostage2_Locations.Add(new Vector3(146.7f, -1036.5f, 27.85f));
  353.         Hostage2_Heading.Add(159.8462f);
  354.  
  355.         Hostage3_Locations.Add(new Vector3(150.0f, -1040.6f, 28.4f));
  356.         Hostage3_Heading.Add(159.8462f);
  357.  
  358.         FleecaDoor_Locations.Add(new Vector3(145.4186f, -1041.813f, 29.64255f));       // -131754413 v_ilev_gb_teldr heading 145.0371 fleeca door
  359.         FleecaDoor_Heading.Add(249.8462f);
  360.  
  361.         FleecaVaultDoor_KeyPad_Locations.Add(new Vector3(146.9f, -1046.0f, 29.0f));
  362.  
  363.         FleecaVaultDoor_Locations.Add(new Vector3(148.0266f, -1044.364f, 29.50693f));  // 2121050683 v_ilev_gb_vauldr  heading 357.5421 valt door
  364.  
  365.         FleecaVaultDoor_Heading.Add(249.8462f);
  366.  
  367.         FleecaVaultDrill_Locations.Add(new Vector3(148.748f, -1050.2f, 28.365f));
  368.         FleecaVaultDrill_Heading.Add(159.8462f);
  369.  
  370.         FleecaVaultBoxWall_Locations.Add(new Vector3(148.05f, -1051.0f, 29.55f));
  371.         FleecaVaultBoxWall_Heading.Add(159.8462f);
  372.  
  373.         FleecaVaultBoxDoor_Locations.Add(new Vector3(148.59f, -1051.0f, 30.70f));
  374.         FleecaVaultBoxDoor_Heading.Add(159.8462f);
  375.  
  376.       /////////////////////
  377.  
  378.         KeysData = ScriptSettings.Load("scripts//RobFleeca.ini");
  379.        
  380.         MinCash = KeysData.GetValue<int>("settings", "MinCash", 25000);
  381.  
  382.         MaxCash = KeysData.GetValue<int>("settings", "MaxCash", 250000);
  383.  
  384.         WantedLevel = KeysData.GetValue<int>("settings", "WantedLevel", 4);
  385.  
  386.         ShowBlips = KeysData.GetValue<bool>("settings", "ShowBlips", false);  
  387.  
  388.         BankRobbed1 = KeysData.GetValue<bool>("settings", "BankRobbed1", false);  
  389.        
  390.         BankRobbed2 = KeysData.GetValue<bool>("settings", "BankRobbed2", false);
  391.  
  392.         BankRobbed3 = KeysData.GetValue<bool>("settings", "BankRobbed3", false);
  393.        
  394.         BankRobbed4 = KeysData.GetValue<bool>("settings", "BankRobbed4", false);
  395.        
  396.         BankRobbed5 = KeysData.GetValue<bool>("settings", "BankRobbed5", false);
  397.  
  398.         BankRobbed6 = KeysData.GetValue<bool>("settings", "BankRobbed6", false);
  399.  
  400.  
  401.         Blip[] blips = World.GetActiveBlips();
  402.  
  403.         if (blips.Count() > 0)
  404.         {
  405.             for (int i2 = 0; i2 < blips.Count(); i2++)
  406.             {
  407.                 for (int i = 0; i < Bank_Locations.Count; i++)
  408.                 {
  409.                     if (blips[i2].Position == Bank_Locations[i])
  410.                     {
  411.                         blips[i2].Remove();
  412.                     }
  413.                 }
  414.             }
  415.         }
  416.  
  417.         if (ShowBlips)
  418.         {
  419.             for (int i = 0; i < Bank_Locations.Count; i++)
  420.             {
  421.                 Blip b = World.CreateBlip(Bank_Locations[i]);
  422.                 b.Sprite = BlipSprite.DollarSignSquared;
  423.                 b.Color = BlipColor.Green;
  424.                 b.IsShortRange = true;
  425.                 b.Name = "FLEECA BANK";
  426.             }
  427.         }
  428.  
  429.         Tick += OnTick;
  430.         KeyUp += OnKeyUp;
  431.  
  432.     }
  433.  
  434.  
  435.     public void OnTick(object o, EventArgs e)
  436.     {
  437.      
  438.         //Prop[] tmppop = World.GetNearbyProps(Game.Player.Character.Position + Game.Player.Character.ForwardVector * 1 + Game.Player.Character.UpVector * .5f, 2.0f);    // "prop_facgate_04_l","prop_facgate_04_r",
  439.  
  440.         //if (tmppop.Count() > 0)
  441.         //{
  442.         //    World.DrawMarker(MarkerType.UpsideDownCone, tmppop[0].Position, new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 180.0f, 0.0f), new Vector3(1.0f, 1.0f, 2.0f), Color.Red, true, true, 2, false, "", "", false);
  443.  
  444.         //    //UI.ShowSubtitle(tmppop[0].Model.Hash.ToString(), 10);
  445.         //    UI.ShowSubtitle(tmppop[0].Model.Hash.ToString() + "   " + tmppop[0].Position.ToString() + "   " + tmppop[0].Heading.ToString() + "   " + tmppop[0].Health.ToString() + "  " + Function.Call<int>(Hash.GET_ENTITY_LOD_DIST, tmppop[0].Handle).ToString(), 10);
  446.  
  447.         //    //Function.Call<string>(Hash._0x717E4D1F2048376D, tmppop[0].Handle);
  448.         //}
  449.  
  450.         //Ped tmpped = World.GetClosestPed(Game.Player.Character.Position + Game.Player.Character.ForwardVector * 3, 1.0f);    // "prop_facgate_04_l","prop_facgate_04_r",
  451.  
  452.         //if (tmpped != null)
  453.         //{
  454.         //    World.DrawMarker(MarkerType.UpsideDownCone, tmpped.Position, new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 180.0f, 0.0f), new Vector3(1.0f, 1.0f, 2.0f), Color.Red, true, true, 2, false, "", "", false);
  455.  
  456.         //    //UI.ShowSubtitle(tmppop[0].Model.Hash.ToString(), 10);
  457.         //    UI.ShowSubtitle(tmpped.Model.Hash.ToString() + "   " + tmpped.Position.ToString() + "   " + tmpped.Heading.ToString() + "   " + tmpped.Health.ToString() + "  " + Function.Call<int>(Hash.GET_ENTITY_LOD_DIST, tmpped.Handle).ToString(), 10);
  458.  
  459.         //    //Function.Call<string>(Hash._0x717E4D1F2048376D, tmppop[0].Handle);
  460.         //}
  461.         //Game.Player.WantedLevel = 0;
  462.  
  463.         if (Function.Call<bool>(Hash.IS_CONTROL_JUST_PRESSED, 2, 175)) // start if dpad left
  464.         {
  465.             if (Game.Player.WantedLevel < 1 && Robs.Count < 1 && Function.Call<int>(Hash.GET_CLOCK_HOURS) >= 7 && Function.Call<int>(Hash.GET_CLOCK_HOURS) < 18)
  466.             {
  467.                 for (int i = 0; i < Bank_Locations.Count; i++)
  468.                 {
  469.                     if (Bank_Locations[i].DistanceTo(Game.Player.Character.Position) < 12.0f && BankAvalible[i] == true)
  470.                     {
  471.                         Rob rob = new Rob(i);
  472.                         Robs.Add(rob);
  473.                     }
  474.                 }
  475.             }
  476.         }
  477.  
  478.         if (Robs.Count > 0)
  479.         {
  480.          
  481.             switch (Robs[0].Objective_Index)
  482.             {
  483.                 case 0:
  484.                     {
  485.                         Function.Call(Hash.PLAY_SOUND_FRONTEND, Robs[0].Checkpoint_Sound, "CHECKPOINT_PERFECT", "HUD_MINI_GAME_SOUNDSET", 1);
  486.  
  487.                         Ped p = World.GetClosestPed(Teller_Locations[Robs[0].List_Index], 1.0f);
  488.  
  489.                         if (p != null && p.IsDead != true)
  490.                         {
  491.                             Robs[0].Teller = p;
  492.                             p.IsPersistent = true;
  493.                         }
  494.                         else
  495.                         {
  496.                             int modelSelect = Function.Call<int>(Hash.GET_RANDOM_INT_IN_RANGE, 0, 100);
  497.                          
  498.                             string mdl = "a_f_y_business_03";
  499.  
  500.                             if (modelSelect >= 50)
  501.                             {
  502.                                 mdl = "a_f_y_business_02";
  503.                             }
  504.                             if (modelSelect > 50)
  505.                             {
  506.                                 mdl = "a_m_y_business_02";
  507.                             }
  508.  
  509.                             var model = new Model(mdl);
  510.                             model.Request(250);
  511.  
  512.                             if (model.IsInCdImage && model.IsValid)
  513.                             {
  514.                                 while (!model.IsLoaded) Script.Wait(50);
  515.                                 Ped ped = World.CreatePed(model, Teller_Locations[Robs[0].List_Index], Teller_Heading[Robs[0].List_Index]);
  516.                                 Robs[0].Teller = ped;
  517.                                 ped.IsPersistent = true;
  518.                                 ped.RandomizeOutfit();
  519.                                 Function.Call(Hash.TASK_START_SCENARIO_AT_POSITION, ped, "WORLD_HUMAN_CLIPBOARD", Teller_Locations[Robs[0].List_Index].X, Teller_Locations[Robs[0].List_Index].Y, Teller_Locations[Robs[0].List_Index].Z, Teller_Heading[Robs[0].List_Index], -1, 0, 1);
  520.                             }
  521.  
  522.                             model.MarkAsNoLongerNeeded();
  523.  
  524.                         }
  525.  
  526.                         Ped Hostage1 = World.GetClosestPed(Hostage1_Locations[Robs[0].List_Index], 1.0f);
  527.  
  528.                         if (Hostage1 != null)
  529.                         {
  530.                             Robs[0].Hostage1 = Hostage1;
  531.                             Robs[0].Hostage1.CanBeTargetted = false;
  532.                             Hostage1.IsPersistent = true;
  533.                         }
  534.                         else
  535.                         {
  536.                             int modelSelect = Function.Call<int>(Hash.GET_RANDOM_INT_IN_RANGE, 1, 7);
  537.  
  538.                             string mdl = "a_m_y_stbla_01";
  539.  
  540.                             switch (modelSelect)
  541.                             {
  542.                                 case 1:
  543.                                     {
  544.                                         mdl = "a_m_y_stbla_01";
  545.                                     } break;
  546.                                 case 2:
  547.                                     {
  548.                                         mdl = "a_m_y_stbla_02";
  549.                                     } break;
  550.                                 case 3:
  551.                                     {
  552.                                         mdl = "a_f_y_tourist_01";
  553.                                     } break;
  554.                                 case 4:
  555.                                     {
  556.                                         mdl = "a_f_y_tourist_02";
  557.                                     } break;
  558.                                 case 5:
  559.                                     {
  560.                                         mdl = "a_m_m_stlat_02";
  561.                                     } break;
  562.                                 case 6:
  563.                                     {
  564.                                         mdl = "a_m_y_genstreet_01";
  565.                                     } break;
  566.                                 case 7:
  567.                                     {
  568.                                         mdl = "a_f_y_business_03";
  569.                                     } break;
  570.                             }
  571.                          
  572.                             var model = new Model(mdl);
  573.                             model.Request(250);
  574.  
  575.                             if (model.IsInCdImage && model.IsValid)
  576.                             {
  577.                                 while (!model.IsLoaded) Script.Wait(50);
  578.                                 Ped ped = World.CreatePed(model, Hostage1_Locations[Robs[0].List_Index], Hostage1_Heading[Robs[0].List_Index]);
  579.  
  580.                                 Function.Call(Hash.TASK_START_SCENARIO_AT_POSITION, ped, "PROP_HUMAN_SEAT_BENCH", ped.Position.X, ped.Position.Y, ped.Position.Z, Hostage1_Heading[Robs[0].List_Index], -1, 1, 0);
  581.  
  582.                                 Robs[0].Hostage1 = ped;
  583.                                 Robs[0].Hostage1.CanBeTargetted = false;
  584.  
  585.                                 ped.IsPersistent = true;
  586.                                 ped.RandomizeOutfit();
  587.                             }
  588.  
  589.                             model.MarkAsNoLongerNeeded();
  590.  
  591.                         }
  592.  
  593.                         Ped Hostage2 = World.GetClosestPed(Hostage2_Locations[Robs[0].List_Index], 1.0f);
  594.  
  595.                         if (Hostage2 != null)
  596.                         {
  597.                             Robs[0].Hostage2 = Hostage2;
  598.                             Robs[0].Hostage2.CanBeTargetted = false;
  599.  
  600.                             Hostage2.IsPersistent = true;
  601.                         }
  602.                         else
  603.                         {
  604.                             int modelSelect = Function.Call<int>(Hash.GET_RANDOM_INT_IN_RANGE, 1, 7);
  605.  
  606.                             string mdl = "a_m_y_stbla_01";
  607.  
  608.                             switch (modelSelect)
  609.                             {
  610.                                 case 1:
  611.                                     {
  612.                                         mdl = "a_m_y_stbla_01";
  613.                                     } break;
  614.                                 case 2:
  615.                                     {
  616.                                         mdl = "a_m_y_stbla_02";
  617.                                     } break;
  618.                                 case 3:
  619.                                     {
  620.                                         mdl = "a_f_y_tourist_01";
  621.                                     } break;
  622.                                 case 4:
  623.                                     {
  624.                                         mdl = "a_f_y_tourist_02";
  625.                                     } break;
  626.                                 case 5:
  627.                                     {
  628.                                         mdl = "a_m_m_stlat_02";
  629.                                     } break;
  630.                                 case 6:
  631.                                     {
  632.                                         mdl = "a_m_y_genstreet_01";
  633.                                     } break;
  634.                                 case 7:
  635.                                     {
  636.                                         mdl = "a_f_y_business_03";
  637.                                     } break;
  638.                             }
  639.  
  640.                             var model = new Model(mdl);
  641.                             model.Request(250);
  642.  
  643.                             if (model.IsInCdImage && model.IsValid)
  644.                             {
  645.                                 while (!model.IsLoaded) Script.Wait(50);
  646.                                 Ped ped = World.CreatePed(model, Hostage2_Locations[Robs[0].List_Index], Hostage2_Heading[Robs[0].List_Index]);
  647.  
  648.                                 Function.Call(Hash.TASK_START_SCENARIO_AT_POSITION, ped, "PROP_HUMAN_SEAT_BENCH", ped.Position.X, ped.Position.Y, ped.Position.Z, Hostage2_Heading[Robs[0].List_Index], -1, 1, 0);
  649.  
  650.                                 Robs[0].Hostage2 = ped;
  651.  
  652.                                 Robs[0].Hostage2.CanBeTargetted = false;
  653.  
  654.                                 ped.IsPersistent = true;
  655.                                 ped.RandomizeOutfit();
  656.                             }
  657.  
  658.                             model.MarkAsNoLongerNeeded();
  659.  
  660.                         }
  661.  
  662.                         Ped Hostage3 = World.GetClosestPed(Hostage3_Locations[Robs[0].List_Index], 1.0f);
  663.  
  664.                         if (Hostage3 != null)
  665.                         {
  666.                             Robs[0].Hostage3 = Hostage3;
  667.                             Robs[0].Hostage3.CanBeTargetted = false;
  668.  
  669.                             Hostage3.IsPersistent = true;
  670.                         }
  671.                         else
  672.                         {
  673.                             int modelSelect = Function.Call<int>(Hash.GET_RANDOM_INT_IN_RANGE, 1, 7);
  674.  
  675.                             string mdl = "a_m_y_stbla_01";
  676.  
  677.                             switch (modelSelect)
  678.                             {
  679.                                 case 1:
  680.                                     {
  681.                                         mdl = "a_m_y_stbla_01";
  682.                                     } break;
  683.                                 case 2:
  684.                                     {
  685.                                         mdl = "a_m_y_stbla_02";
  686.                                     } break;
  687.                                 case 3:
  688.                                     {
  689.                                         mdl = "a_f_y_tourist_01";
  690.                                     } break;
  691.                                 case 4:
  692.                                     {
  693.                                         mdl = "a_f_y_tourist_02";
  694.                                     } break;
  695.                                 case 5:
  696.                                     {
  697.                                         mdl = "a_m_m_stlat_02";
  698.                                     } break;
  699.                                 case 6:
  700.                                     {
  701.                                         mdl = "a_m_y_genstreet_01";
  702.                                     } break;
  703.                                 case 7:
  704.                                     {
  705.                                         mdl = "a_f_y_business_03";
  706.                                     } break;
  707.                             }
  708.  
  709.                             var model = new Model(mdl);
  710.                             model.Request(250);
  711.  
  712.                             if (model.IsInCdImage && model.IsValid)
  713.                             {
  714.                                 while (!model.IsLoaded) Script.Wait(50);
  715.                                 Ped ped = World.CreatePed(model, Hostage3_Locations[Robs[0].List_Index], Hostage3_Heading[Robs[0].List_Index]);
  716.  
  717.                                 Function.Call(Hash.TASK_START_SCENARIO_AT_POSITION, ped, "PROP_HUMAN_STAND_IMPATIENT", ped.Position.X, ped.Position.Y, ped.Position.Z, Hostage3_Heading[Robs[0].List_Index], -1, 0, 0);
  718.  
  719.                                 Robs[0].Hostage3 = ped;
  720.                                 Robs[0].Hostage3.CanBeTargetted = false;
  721.  
  722.                                 ped.IsPersistent = true;
  723.                                 ped.RandomizeOutfit();
  724.                             }
  725.  
  726.                             model.MarkAsNoLongerNeeded();
  727.  
  728.                         }
  729.                             Prop[] prop = World.GetNearbyProps(Cam1_Locations[Robs[0].List_Index], 0.5f);
  730.                             if (prop.Count() > 0)
  731.                             {
  732.                                 for (int i = 0; i < prop.Count(); i++)
  733.                                 {
  734.                                     if (prop[i].Model == 168901740 || prop[i].Model == -1340405475 || prop[i].Model == -1007354661 || prop[i].Model == -1842407088)
  735.                                     {
  736.                                         Robs[0].Cam1 = prop[i];
  737.                                         Robs[0].Cam1.AddBlip();
  738.                                         Robs[0].Cam1.CurrentBlip.Color = BlipColor.Red;
  739.                                         Robs[0].Cam1.CurrentBlip.IsFlashing = false;
  740.                                         Robs[0].Cam1.CurrentBlip.Scale = .65f;
  741.                                     }
  742.                                 }
  743.                             }
  744.  
  745.                             Prop[] prop2 = World.GetNearbyProps(Cam2_Locations[Robs[0].List_Index], 0.5f);
  746.                             if (prop2.Count() > 0)
  747.                             {
  748.                                 for (int i = 0; i < prop2.Count(); i++)
  749.                                 {
  750.                                     if (prop2[i].Model == 168901740 || prop2[i].Model == -1340405475 || prop[i].Model == -1007354661 || prop[i].Model == -1842407088)
  751.                                     {
  752.                                         Robs[0].Cam2 = prop2[i];
  753.                                         Robs[0].Cam2.AddBlip();
  754.                                         Robs[0].Cam2.CurrentBlip.Color = BlipColor.Red;
  755.                                         Robs[0].Cam2.CurrentBlip.IsFlashing = false;
  756.                                         Robs[0].Cam2.CurrentBlip.Scale = .65f;
  757.                                     }
  758.                                 }
  759.                             }
  760.  
  761.                             Prop[] prop3 = World.GetNearbyProps(Cam3_Locations[Robs[0].List_Index], 0.5f);
  762.                             if (prop3.Count() > 0)
  763.                             {
  764.                                 for (int i = 0; i < prop3.Count(); i++)
  765.                                 {
  766.                                     if (prop3[i].Model == 168901740 || prop3[i].Model == -1340405475 || prop[i].Model == -1007354661 || prop[i].Model == -1842407088)
  767.                                     {
  768.                                         Robs[0].Cam3 = prop3[i];
  769.                                         Robs[0].Cam3.AddBlip();
  770.                                         Robs[0].Cam3.CurrentBlip.Color = BlipColor.Red;
  771.                                         Robs[0].Cam3.CurrentBlip.IsFlashing = false;
  772.                                         Robs[0].Cam3.CurrentBlip.Scale = .65f;
  773.                                     }
  774.                                 }
  775.                             }
  776.  
  777.                             Prop[] prop4 = World.GetNearbyProps(Cam4_Locations[Robs[0].List_Index], 0.5f);
  778.                             if (prop4.Count() > 0)
  779.                             {
  780.                                 for (int i = 0; i < prop4.Count(); i++)
  781.                                 {
  782.                                     if (prop4[i].Model == 168901740 || prop4[i].Model == -1340405475 || prop[i].Model == -1007354661 || prop[i].Model == -1842407088)
  783.                                     {
  784.                                         Robs[0].Cam4 = prop4[i];
  785.                                         Robs[0].Cam4.AddBlip();
  786.                                         Robs[0].Cam4.CurrentBlip.Color = BlipColor.Red;
  787.                                         Robs[0].Cam4.CurrentBlip.IsFlashing = false;
  788.                                         Robs[0].Cam4.CurrentBlip.Scale = .65f;
  789.                                     }
  790.                                 }
  791.                             }
  792.  
  793.                             Prop[] prop5 = World.GetNearbyProps(Cam5_Locations[Robs[0].List_Index], 0.5f);
  794.                             if (prop5.Count() > 0)
  795.                             {
  796.                                 for (int i = 0; i < prop5.Count(); i++)
  797.                                 {
  798.                                     if (prop5[i].Model == 168901740 || prop5[i].Model == -1340405475 || prop[i].Model == -1007354661 || prop[i].Model == -1842407088)
  799.                                     {
  800.                                         Robs[0].Cam5 = prop5[i];
  801.                                         Robs[0].Cam5.AddBlip();
  802.                                         Robs[0].Cam5.CurrentBlip.Color = BlipColor.Red;
  803.                                         Robs[0].Cam5.CurrentBlip.IsFlashing = false;
  804.                                         Robs[0].Cam5.CurrentBlip.Scale = .65f;
  805.                                     }
  806.                                 }
  807.                             }
  808.  
  809.                             Prop[] prop6 = World.GetNearbyProps(FleecaDoor_Locations[Robs[0].List_Index], 0.5f);
  810.                             if (prop6.Count() > 0)
  811.                             {
  812.                                 for (int i = 0; i < prop6.Count(); i++)
  813.                                 {
  814.                                     if (prop6[i].Model == -131754413)
  815.                                     {
  816.                                         prop6[i].Heading = FleecaDoor_Heading[Robs[0].List_Index];
  817.                                     }
  818.                                 }
  819.                             }
  820.  
  821.                             Prop[] prop8 = World.GetNearbyProps(FleecaVaultDoor_Locations[Robs[0].List_Index], 1.5f);
  822.                             if (prop8.Count() > 0)
  823.                             {
  824.                                 for (int i = 0; i < prop8.Count(); i++)
  825.                                 {
  826.                                     if (prop8[i].Model == 2121050683 || prop8[i].Model == -63539571)
  827.                                         {
  828.                                             prop8[i].Delete();
  829.  
  830.                                         }
  831.                                 }
  832.                             }
  833.                             var modelv = new Model("hei_prop_heist_sec_door"); //
  834.                             modelv.Request(250);
  835.                             if (modelv.IsInCdImage && modelv.IsValid)
  836.                             {
  837.                                 while (!modelv.IsLoaded) Script.Wait(50);
  838.                                 Prop door = World.CreateProp(modelv, new Vector3(FleecaVaultDoor_Locations[Robs[0].List_Index].X, FleecaVaultDoor_Locations[Robs[0].List_Index].Y, FleecaVaultDoor_Locations[Robs[0].List_Index].Z - 1.2f), new Vector3(0.0f, 0.0f, FleecaVaultDoor_Heading[Robs[0].List_Index]), true, false);
  839.                                 door.FreezePosition = true;
  840.                             }
  841.  
  842.                             modelv.MarkAsNoLongerNeeded();
  843.  
  844.                             Prop[] prop9 = World.GetNearbyProps(FleecaVaultBoxWall_Locations[Robs[0].List_Index], 1.0f);
  845.                             if (prop9.Count() > 0)
  846.                             {
  847.                                 for (int i = 0; i < prop9.Count(); i++)
  848.                                 {
  849.                                     if (prop9[i].Model == 152330975)
  850.                                     {
  851.                                         prop9[i].Delete();
  852.                                     }
  853.                                 }
  854.                             }
  855.                             var modelWall = new Model("hei_prop_heist_safedeposit"); //
  856.                             modelWall.Request(250);
  857.                             if (modelWall.IsInCdImage && modelWall.IsValid)
  858.                             {
  859.                                 while (!modelWall.IsLoaded) Script.Wait(50);
  860.                                 Prop wall = World.CreateProp(modelWall, new Vector3(FleecaVaultBoxWall_Locations[Robs[0].List_Index].X, FleecaVaultBoxWall_Locations[Robs[0].List_Index].Y, FleecaVaultBoxWall_Locations[Robs[0].List_Index].Z - 1.2f), new Vector3(0.0f, 0.0f, FleecaVaultBoxWall_Heading[Robs[0].List_Index]), true, false);
  861.                                 Robs[0].BoxWall = wall;
  862.                                 wall.FreezePosition = true;
  863.                             }
  864.  
  865.                             modelWall.MarkAsNoLongerNeeded();
  866.  
  867.                             Prop[] prop10 = World.GetNearbyProps(FleecaVaultBoxDoor_Locations[Robs[0].List_Index], 1.5f);
  868.                             if (prop10.Count() > 0)
  869.                             {
  870.                                 for (int i = 0; i < prop10.Count(); i++)
  871.                                 {
  872.                                     if (prop10[i].Model == -812777085)
  873.                                     {
  874.                                         prop10[i].Delete();
  875.                                     }
  876.                                 }
  877.                             }
  878.                             var modelDoor = new Model("hei_prop_heist_safedepdoor"); //
  879.                             modelDoor.Request(250);
  880.                             if (modelDoor.IsInCdImage && modelDoor.IsValid)
  881.                             {
  882.                                 while (!modelDoor.IsLoaded) Script.Wait(50);
  883.                                 Prop door = World.CreateProp(modelDoor, new Vector3(FleecaVaultBoxDoor_Locations[Robs[0].List_Index].X, FleecaVaultBoxDoor_Locations[Robs[0].List_Index].Y, FleecaVaultBoxDoor_Locations[Robs[0].List_Index].Z - 1.2f), new Vector3(0.0f, 0.0f, FleecaVaultBoxDoor_Heading[Robs[0].List_Index]), true, false);
  884.                                 Robs[0].BoxDoor = door;
  885.                                 door.FreezePosition = true;
  886.                             }
  887.  
  888.                             modelDoor.MarkAsNoLongerNeeded();
  889.  
  890.                             Prop[] prop11 = World.GetNearbyProps(FleecaVaultBoxDoor_Locations[Robs[0].List_Index], 1.5f);
  891.                             if (prop11.Count() > 0)
  892.                             {
  893.                                 for (int i = 0; i < prop11.Count(); i++)
  894.                                 {
  895.                                     if (prop11[i].Model == 264881854)
  896.                                     {
  897.                                         prop11[i].Delete();
  898.                                     }
  899.                                 }
  900.                             }
  901.                             var modelenvelope = new Model("p_cash_envelope_01_s"); //
  902.                             modelenvelope.Request(250);
  903.                             if (modelenvelope.IsInCdImage && modelenvelope.IsValid)
  904.                             {
  905.                                 while (!modelenvelope.IsLoaded) Script.Wait(50);
  906.                                 Prop envelope = World.CreateProp(modelenvelope, Robs[0].BoxDoor.Position + Robs[0].BoxDoor.ForwardVector * +.12f + Robs[0].BoxDoor.RightVector * +.15f + Robs[0].BoxDoor.UpVector * -.1f, new Vector3(90.0f, 45.0f, Robs[0].BoxDoor.Heading), true, false);
  907.                                 Robs[0].CashEnvelope = envelope;
  908.                                 envelope.FreezePosition = true;
  909.                             }
  910.  
  911.                             modelenvelope.MarkAsNoLongerNeeded();
  912.  
  913.                             UI.ShowSubtitle("Shoot the ~y~Cameras.", 30000);
  914.  
  915.                             Robs[0].Objective_Index = 1;
  916.  
  917.  
  918.                     } break;
  919.                 case 1:
  920.                     {
  921.                         UI.ShowSubtitle("Shoot the ~y~Cameras.", 1000);
  922.  
  923.                         if (Robs[0].Cam1 != null && Robs[0].Cam1.Health < 900)
  924.                         {
  925.                             Robs[0].Cam1.CurrentBlip.Remove();
  926.                             Robs[0].Cam1.MarkAsNoLongerNeeded();
  927.                         }
  928.  
  929.                         if (Robs[0].Cam2 != null && Robs[0].Cam2.Health < 900)
  930.                         {
  931.                             Robs[0].Cam2.CurrentBlip.Remove();
  932.                             Robs[0].Cam2.MarkAsNoLongerNeeded();
  933.                         }
  934.                         if (Robs[0].Cam3 != null && Robs[0].Cam3.Health < 900)
  935.                         {
  936.                             Robs[0].Cam3.CurrentBlip.Remove();
  937.                             Robs[0].Cam3.MarkAsNoLongerNeeded();
  938.                         }
  939.                         if (Robs[0].Cam4 != null && Robs[0].Cam4.Health < 900)
  940.                         {
  941.                             Robs[0].Cam4.CurrentBlip.Remove();
  942.                             Robs[0].Cam4.MarkAsNoLongerNeeded();
  943.                         }
  944.                         if (Robs[0].Cam5 != null && Robs[0].Cam5.Health < 900)
  945.                         {
  946.                             Robs[0].Cam5.CurrentBlip.Remove();
  947.                             Robs[0].Cam5.MarkAsNoLongerNeeded();
  948.                         }
  949.  
  950.                         if (Robs[0].Cam1 != null && Robs[0].Cam2 != null && Robs[0].Cam3 != null && Robs[0].Cam4 != null && Robs[0].Cam5 != null &&
  951.                             Robs[0].Cam1.Health < 900 && Robs[0].Cam2.Health < 900 && Robs[0].Cam3.Health < 900 && Robs[0].Cam4.Health < 900 && Robs[0].Cam5.Health < 900)
  952.                         {
  953.                             Robs[0].Objective_Index = 2;
  954.                             Robs[0].Teller.AddBlip();
  955.                             Robs[0].Teller.CurrentBlip.Color = BlipColor.Blue;
  956.                             Robs[0].Teller.CurrentBlip.Scale = .75f;
  957.                             Function.Call(Hash.PLAY_SOUND_FRONTEND, Robs[0].Checkpoint_Sound, "CHECKPOINT_PERFECT", "HUD_MINI_GAME_SOUNDSET", 1);
  958.                         }
  959.  
  960.                         if (Robs[0].Cam1 == null || Robs[0].Cam2 == null && Robs[0].Cam3 == null || Robs[0].Cam4 == null | Robs[0].Cam5 == null ||
  961.                       Robs[0].Cam1.Health < 900 || Robs[0].Cam2.Health < 900 || Robs[0].Cam3.Health < 900 || Robs[0].Cam4.Health < 900 || Robs[0].Cam5.Health < 900)
  962.                         {
  963.  
  964.                             Function.Call(Hash.SET_FAKE_WANTED_LEVEL, 2);
  965.                             //Game.Player.WantedLevel = 0;
  966.                            
  967.                             if ( !Robs[0].TellerCower)
  968.                             {
  969.                                 Robs[0].TellerCower = true;
  970.  
  971.                                 Function.Call(Hash.SET_PED_COWER_HASH, Robs[0].Teller, "CODE_HUMAN_STAND_COWER");
  972.  
  973.                                 Robs[0].Teller.Task.Cower(-1);
  974.                             }
  975.  
  976.                             if ( !Robs[0].Hostage3Cower)
  977.                             {
  978.                                 Robs[0].Hostage3Cower = true;
  979.  
  980.                                 Robs[0].Hostage3.Task.ClearAllImmediately();
  981.  
  982.                                 Function.Call(Hash.SET_PED_COWER_HASH, Robs[0].Hostage3, "CODE_HUMAN_STAND_COWER");
  983.  
  984.                                 Robs[0].Hostage3.Task.Cower(-1);
  985.                             }
  986.                         }
  987.  
  988.                         if (Function.Call<bool>(Hash.IS_PLAYER_FREE_AIMING_AT_ENTITY, Game.Player, Robs[0].Teller) && !Robs[0].TellerCower)
  989.                         {
  990.                             Robs[0].TellerCower = true;
  991.  
  992.                             Function.Call(Hash.SET_PED_COWER_HASH, Robs[0].Teller, "CODE_HUMAN_STAND_COWER");
  993.  
  994.                             Robs[0].Teller.Task.Cower(-1);
  995.                         }
  996.  
  997.                         if (Function.Call<bool>(Hash.IS_PLAYER_FREE_AIMING_AT_ENTITY, Game.Player, Robs[0].Hostage3) && !Robs[0].Hostage3Cower)
  998.                         {
  999.                             Robs[0].Hostage3Cower = true;
  1000.  
  1001.                             Function.Call(Hash.SET_PED_COWER_HASH, Robs[0].Hostage3, "CODE_HUMAN_STAND_COWER");
  1002.  
  1003.                             Robs[0].Hostage3.Task.Cower(-1);
  1004.                         }
  1005.  
  1006.  
  1007.                     } break;
  1008.                 case 2:
  1009.                     {
  1010.                         Function.Call(Hash.SET_BLOCKING_OF_NON_TEMPORARY_EVENTS, Robs[0].Teller, true);
  1011.  
  1012.                         if (Function.Call<bool>(Hash.IS_PLAYER_FREE_AIMING_AT_ENTITY, Game.Player, Robs[0].Teller))
  1013.                         {
  1014.                             Function.Call(Hash.PLAY_SOUND_FRONTEND, Robs[0].Checkpoint_Sound, "CHECKPOINT_PERFECT", "HUD_MINI_GAME_SOUNDSET", 1);
  1015.  
  1016.                             Robs[0].Teller.Task.ClearAllImmediately();
  1017.                          
  1018.                             Robs[0].Objective_Index = 3;
  1019.                         }
  1020.  
  1021.                         UI.ShowSubtitle("Intiminate the ~b~teller.", 30000);
  1022.  
  1023.                         Function.Call(Hash.SET_FAKE_WANTED_LEVEL, 2);
  1024.  
  1025.                         Game.Player.WantedLevel = 0;
  1026.  
  1027.                     } break;
  1028.                 case 3:
  1029.                     {
  1030.                         Function.Call(Hash.SET_PED_COWER_HASH, Robs[0].Teller, "CODE_HUMAN_COWER");
  1031.  
  1032.                         unsafe
  1033.                         {
  1034.                             int seq = 0;
  1035.                             GTA.Native.Function.Call(Hash.OPEN_SEQUENCE_TASK, &seq);
  1036.  
  1037.                             Function.Call(Hash.TASK_PLAY_ANIM, 0, "ped", "handsup", 4.0f, .0f, -1, 49, .0f, 0, 0, 0);
  1038.  
  1039.                             Function.Call(Hash.TASK_GO_STRAIGHT_TO_COORD, 0, Teller_Walk_Locations1[Robs[0].List_Index].X, Teller_Walk_Locations1[Robs[0].List_Index].Y, Teller_Walk_Locations1[Robs[0].List_Index].Z, 1.0f, -1, Teller_Heading[Robs[0].List_Index] + 100.0f, -.1f);
  1040.                             Function.Call(Hash.TASK_GO_STRAIGHT_TO_COORD, 0, Teller_Walk_Locations2[Robs[0].List_Index].X, Teller_Walk_Locations2[Robs[0].List_Index].Y, Teller_Walk_Locations2[Robs[0].List_Index].Z, 1.0f, -1, Teller_Heading[Robs[0].List_Index] - 100.0f, -.1f);
  1041.                             Function.Call(Hash.TASK_GO_STRAIGHT_TO_COORD, 0, FleecaVaultDoor_KeyPad_Locations[Robs[0].List_Index].X, FleecaVaultDoor_KeyPad_Locations[Robs[0].List_Index].Y, FleecaVaultDoor_KeyPad_Locations[Robs[0].List_Index].Z, 1.2f, -1, Teller_Heading[Robs[0].List_Index] - 90.0f, -.1f);
  1042.  
  1043.                             GTA.Native.Function.Call(Hash.SET_SEQUENCE_TO_REPEAT, seq, false);
  1044.                             GTA.Native.Function.Call(Hash.CLOSE_SEQUENCE_TASK, seq);
  1045.                             GTA.Native.Function.Call(Hash.TASK_PERFORM_SEQUENCE, Robs[0].Teller, seq);
  1046.                             GTA.Native.Function.Call(Hash.CLEAR_SEQUENCE_TASK, &seq);
  1047.                            
  1048.                             Robs[0].Teller.AlwaysKeepTask = true;
  1049.  
  1050.                         }
  1051.  
  1052.                         Robs[0].Objective_Index = 4;
  1053.  
  1054.                     } break;
  1055.                 case 4:
  1056.                     {
  1057.                      
  1058.                         if (!Robs[0].Teller_Door_Open)
  1059.                         {
  1060.                             if (Robs[0].Teller.Position.DistanceTo(FleecaDoor_Locations[Robs[0].List_Index]) < 1.2f)
  1061.                             {
  1062.                                 Prop[] prop = World.GetNearbyProps(FleecaDoor_Locations[Robs[0].List_Index], 0.5f);
  1063.                                 if (prop.Count() > 0)
  1064.                                 {
  1065.                                     for (int i = 0; i < prop.Count(); i++)
  1066.                                     {
  1067.                                         if (prop[i].Model == -131754413)
  1068.                                         {
  1069.                                             prop[i].Heading = FleecaDoor_Heading[Robs[0].List_Index] + 90.0f;
  1070.                                             Robs[0].Teller_Door_Open = true;
  1071.                                         }
  1072.                                     }
  1073.                                 }
  1074.                             }
  1075.                         }
  1076.  
  1077.                         if (Robs[0].Teller.Position.DistanceTo(FleecaVaultDoor_KeyPad_Locations[Robs[0].List_Index]) < .5f)
  1078.                         {
  1079.                             Robs[0].Objective_Index = 5;
  1080.                              if(Robs[0].Teller.CurrentBlip != null)
  1081.                              {
  1082.                                  Robs[0].Teller.CurrentBlip.Remove();
  1083.                              }
  1084.                         }
  1085.  
  1086.                         UI.ShowSubtitle("Follow the ~b~teller ~w~to the ~y~vault.", 30000);
  1087.  
  1088.                         Function.Call(Hash.SET_FAKE_WANTED_LEVEL, 2);
  1089.  
  1090.                         Game.Player.WantedLevel = 0;
  1091.  
  1092.                     } break;
  1093.                 case 5:
  1094.                     {
  1095.                         Robs[0].Teller.Task.ClearAllImmediately();
  1096.  
  1097.                             unsafe
  1098.                             {
  1099.                                 int seq = 0;
  1100.                                 GTA.Native.Function.Call(Hash.OPEN_SEQUENCE_TASK, &seq);
  1101.                                 Function.Call(Hash.TASK_ACHIEVE_HEADING, 0, Teller_Heading[Robs[0].List_Index] - 95.0f, 1000);
  1102.  
  1103.                                 Function.Call(Hash.TASK_PLAY_ANIM, 0, "amb@prop_human_atm@female@idle_a", "idle_b", 4.0f, 1.0f, 1100, 0, .0f, 0, 0, 0);
  1104.                                 Function.Call(Hash.TASK_PLAY_ANIM, 0, "amb@prop_human_atm@female@idle_a", "idle_b", 4.0f, 1.0f, 1300, 0, .0f, 0, 0, 0);
  1105.                                 Function.Call(Hash.TASK_PLAY_ANIM, 0, "amb@prop_human_atm@female@idle_a", "idle_b", 1.0f, 1.0f, 1100, 0, .0f, 0, 0, 0);
  1106.                                 Function.Call(Hash.TASK_PLAY_ANIM, 0, "amb@prop_human_atm@female@idle_a", "idle_b", 1.0f, 1.0f, 1100, 0, .0f, 0, 0, 0);
  1107.  
  1108.                                 GTA.Native.Function.Call(Hash.SET_SEQUENCE_TO_REPEAT, seq, false);
  1109.                                 GTA.Native.Function.Call(Hash.CLOSE_SEQUENCE_TASK, seq);
  1110.                                 GTA.Native.Function.Call(Hash.TASK_PERFORM_SEQUENCE, Robs[0].Teller, seq);
  1111.                                 GTA.Native.Function.Call(Hash.CLEAR_SEQUENCE_TASK, &seq);
  1112.                                 Robs[0].Teller.AlwaysKeepTask = true;
  1113.                                 Robs[0].Objective_Index = 6;
  1114.                                 UI.ShowSubtitle("Wait for the ~b~Teller ~w~to open the ~y~vault.", 5000);
  1115.                             }
  1116.                        
  1117.                     } break;
  1118.  
  1119.                 case 6:
  1120.                     {
  1121.                         while (Function.Call<int>(Hash.GET_SEQUENCE_PROGRESS, Robs[0].Teller) != -1)
  1122.                         {
  1123.                             Wait(500);
  1124.                             if (Function.Call<int>(Hash.GET_SEQUENCE_PROGRESS, Robs[0].Teller) == 0)
  1125.                             {
  1126.                                 Robs[0].Teller.FreezePosition = true;
  1127.                             }
  1128.                         }
  1129.  
  1130.                         Robs[0].Teller.FreezePosition = false;
  1131.  
  1132.                         Robs[0].Objective_Index = 7;
  1133.  
  1134.                         if (Robs[0].Objective_Index > -1 && Robs[0].Objective_Index < 8 && Robs[0].Teller.IsAlive == false && Robs[0].Faild == false)
  1135.                         {
  1136.                             Function.Call(Hash.PLAY_SOUND_FRONTEND, -1, "ScreenFlash", "MissionFailedSounds", 1);
  1137.  
  1138.                             Function.Call(Hash.PLAY_MISSION_COMPLETE_AUDIO, "GENERIC_FAILED");
  1139.                            
  1140.                             WhoDied = "THE ~b~TELLER ";
  1141.  
  1142.                             BankAvalible[Robs[0].List_Index] = false;
  1143.  
  1144.                             Robs[0].Faild = true;
  1145.  
  1146.                             run = true;
  1147.                             step = 0;
  1148.  
  1149.                             Robs[0].Objective_Index = -1;
  1150.  
  1151.                         }
  1152.                    
  1153.                     } break;
  1154.                 case 7:
  1155.                     {
  1156.                         Function.Call(Hash.PLAY_SOUND_FROM_COORD, Robs[0].Vault_Sound, "vault_unlock", FleecaVaultDoor_Locations[Robs[0].List_Index].X, FleecaVaultDoor_Locations[Robs[0].List_Index].Y, FleecaVaultDoor_Locations[Robs[0].List_Index].Z, "dlc_heist_fleeca_bank_door_sounds", 0, 0, 0);
  1157.  
  1158.                         Prop[] prop = World.GetNearbyProps(new Vector3(FleecaVaultDoor_Locations[Robs[0].List_Index].X, FleecaVaultDoor_Locations[Robs[0].List_Index].Y, FleecaVaultDoor_Locations[Robs[0].List_Index].Z - 1.2f), 1.5f);
  1159.  
  1160.                         if (prop.Count() > 0)
  1161.                         {
  1162.                             for (int i = 0; i < prop.Count(); i++)
  1163.                             {
  1164.                                 if (prop[i].Model == -63539571)
  1165.                                 {
  1166.                                     prop[i].FreezePosition = false;
  1167.  
  1168.                                     Function.Call(Hash.PLAY_ENTITY_ANIM, prop[i], "bank_vault_door_opens", "anim@heists@fleeca_bank@bank_vault_door", 4.0f, 0, 1, 0, 0f, 8);
  1169.  
  1170.                                     prop[i].HasCollision = false;
  1171.                                     Wait(1000);
  1172.                                     Function.Call(Hash.PLAY_SOUND_FROM_COORD, Robs[0].Alarm_Sound, "Burglar_Bell", FleecaVaultDoor_KeyPad_Locations[Robs[0].List_Index].X, FleecaVaultDoor_KeyPad_Locations[Robs[0].List_Index].Y, FleecaVaultDoor_KeyPad_Locations[Robs[0].List_Index].Z, "Generic_Alarms", 0, 0, 0);
  1173.  
  1174.                                     prop[i].FreezePosition = false;
  1175.  
  1176.                                     prop[i].MarkAsNoLongerNeeded();
  1177.  
  1178.                                 }
  1179.                             }
  1180.                         }
  1181.  
  1182.                         Robs[0].Teller.Task.Cower(-1);
  1183.                        
  1184.                         UI.ShowSubtitle("~g~Go ~w~to the ~y~deposit box.", 000);
  1185.                        
  1186.                         Robs[0].Objective_Index = 8;
  1187.  
  1188.                         Function.Call(Hash.SET_FAKE_WANTED_LEVEL, 2);
  1189.  
  1190.                         Game.Player.WantedLevel = 0;
  1191.  
  1192.                     } break;
  1193.  
  1194.  
  1195.                 case 8:
  1196.                     {
  1197.                         if (!Robs[0].Vault_Door_Open)
  1198.                         {
  1199.                                             Robs[0].Vault_Door_Open = true;
  1200.                                             Robs[0].Objective_Index = 9;
  1201.                         }
  1202.                     } break;
  1203.                 case 9:
  1204.                     {
  1205.                         Blip blip = Function.Call<Blip>(Hash.ADD_BLIP_FOR_COORD, FleecaVaultDrill_Locations[Robs[0].List_Index].X, FleecaVaultDrill_Locations[Robs[0].List_Index].Y, FleecaVaultDrill_Locations[Robs[0].List_Index].Z);
  1206.                         Robs[0].Drill_LocationBlip = blip;
  1207.                         Robs[0].Drill_LocationBlip.Scale = .75f;
  1208.                         Robs[0].Objective_Index = 10;
  1209.                     } break;
  1210.                 case 10:
  1211.                     {
  1212.                         UI.ShowSubtitle("~g~Go ~w~to the ~y~deposit box.", 000);
  1213.  
  1214.                         World.DrawMarker(MarkerType.VerticalCylinder, FleecaVaultDrill_Locations[Robs[0].List_Index], new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 0.0f), new Vector3(.5f, .5f, 0.5f), Color.FromArgb(255, 255, 0), false, true, 2, false, "", "", false);
  1215.                        
  1216.                         if (Game.Player.Character.Position.DistanceTo(FleecaVaultDrill_Locations[Robs[0].List_Index]) < 1.5f)
  1217.                         {
  1218.                             bool D_Pad_Right = Function.Call<bool>(Hash.IS_DISABLED_CONTROL_PRESSED, 2, 75);
  1219.                             bool key_Right = Function.Call<bool>(Hash.IS_DISABLED_CONTROL_PRESSED, 2, 175);
  1220.  
  1221.                             DisplayHelpTextThisFrame("~INPUT_FRONTEND_RIGHT~ to dril deposit box");
  1222.                             if (D_Pad_Right || key_Right)
  1223.                             {
  1224.                                 Robs[0].Objective_Index = 11;
  1225.                             }
  1226.                         }
  1227.  
  1228.                         Function.Call(Hash.SET_FAKE_WANTED_LEVEL, WantedLevel);
  1229.  
  1230.                         Game.Player.WantedLevel = 0;
  1231.  
  1232.                     } break;
  1233.                 case 11:
  1234.                     {
  1235.                         if (Drill == null || Drill.Drilling == false)
  1236.                         {
  1237.                             if (Robs[0].Drill_LocationBlip != null)
  1238.                             {
  1239.                                 Robs[0].Drill_LocationBlip.Remove();
  1240.                             }
  1241.  
  1242.                             Game.Player.Character.FreezePosition = true;
  1243.                            
  1244.                             Driller rob = new Driller();
  1245.                             Drill = rob;
  1246.  
  1247.                             Drill.CamMode = Function.Call<int>(Hash.GET_FOLLOW_PED_CAM_VIEW_MODE);
  1248.  
  1249.                             Function.Call(Hash.SET_FOLLOW_PED_CAM_VIEW_MODE, 1);
  1250.  
  1251.                             Game.Player.Character.Position = FleecaVaultDrill_Locations[Robs[0].List_Index];
  1252.                             Game.Player.Character.Heading = FleecaVaultDrill_Heading[Robs[0].List_Index];
  1253.  
  1254.                             Game.Player.Character.FreezePosition = true;
  1255.  
  1256.                             Function.Call(Hash.SET_FOLLOW_PED_CAM_VIEW_MODE, Drill.CamMode);
  1257.  
  1258.                             Robs[0].Objective_Index = 12;
  1259.                         }
  1260.  
  1261.                     } break;
  1262.                 case 12:
  1263.                     {
  1264.                         bool D_Pad_Right = Function.Call<bool>(Hash.IS_DISABLED_CONTROL_PRESSED, 2, 74);
  1265.                         bool key_Right = Function.Call<bool>(Hash.IS_DISABLED_CONTROL_PRESSED, 2, 174);
  1266.  
  1267.                         DisplayHelpTextThisFrame("~INPUT_FRONTEND_LEFT~ to quit drilling");
  1268.  
  1269.                         if (key_Right)
  1270.                         {
  1271.                             if (Drill.Drilling)
  1272.                             {
  1273.                                 Drill.RemoveDriller();
  1274.  
  1275.                                 if (Robs[0].Drill_LocationBlip.Exists() == false)
  1276.                                 {
  1277.                                     Game.Player.Character.FreezePosition = false;
  1278.  
  1279.                                     Blip blip = Function.Call<Blip>(Hash.ADD_BLIP_FOR_COORD, FleecaVaultDrill_Locations[Robs[0].List_Index].X, FleecaVaultDrill_Locations[Robs[0].List_Index].Y, FleecaVaultDrill_Locations[Robs[0].List_Index].Z);
  1280.                                     Robs[0].Drill_LocationBlip = blip;
  1281.                                 }
  1282.                             }
  1283.  
  1284.                             Robs[0].Objective_Index = 10;
  1285.  
  1286.                         }
  1287.  
  1288.                         Function.Call(Hash.SET_FAKE_WANTED_LEVEL, WantedLevel);
  1289.  
  1290.                         Game.Player.WantedLevel = 0;
  1291.  
  1292.                         if(Robs[0].Drilling_Done)
  1293.                         {
  1294.                             Function.Call(Hash.SET_FAKE_WANTED_LEVEL, 0);
  1295.                             if (Game.Player.WantedLevel <= WantedLevel)
  1296.                             {
  1297.                                 Game.Player.WantedLevel = WantedLevel;
  1298.  
  1299.                             }
  1300.                             unsafe
  1301.                             {
  1302.                                 int seq = 0;
  1303.                                 GTA.Native.Function.Call(Hash.OPEN_SEQUENCE_TASK, &seq);
  1304.                                 Function.Call(Hash.TASK_PLAY_ANIM, 0, "anim@heists@fleeca_bank@drilling", "outro", 1.0f, .01f, 10000, 0, .0f, 1, 1, 1);
  1305.                                 GTA.Native.Function.Call(Hash.SET_SEQUENCE_TO_REPEAT, seq, false);
  1306.                                 GTA.Native.Function.Call(Hash.CLOSE_SEQUENCE_TASK, seq);
  1307.                                 GTA.Native.Function.Call(Hash.TASK_PERFORM_SEQUENCE, Game.Player.Character, seq);
  1308.                                 GTA.Native.Function.Call(Hash.CLEAR_SEQUENCE_TASK, &seq);
  1309.                                 Robs[0].Teller.AlwaysKeepTask = true;
  1310.                             }
  1311.                             Wait(2500);
  1312.                             Robs[0].BoxDoor.Heading -= 90.0f;
  1313.                             Wait(500);
  1314.                             Robs[0].CashEnvelope.Delete();
  1315.                             Wait(2500);
  1316.                             Robs[0].BoxDoor.Heading += 90.0f;
  1317.                             Wait(1000);
  1318.                             Drill.RemoveDriller();
  1319.                             Game.Player.Character.FreezePosition = false;
  1320.  
  1321.                             //Function.Call(Hash.SET_FAKE_WANTED_LEVEL, 0);
  1322.                             //if (Game.Player.WantedLevel <= WantedLevel)
  1323.                             //{
  1324.                             //    Game.Player.WantedLevel = WantedLevel;
  1325.  
  1326.                             //}
  1327.                             Robs[0].Objective_Index = 13;
  1328.                         }
  1329.  
  1330.                     } break;
  1331.                 case 13:
  1332.                     {
  1333.                         UI.ShowSubtitle("~y~Leave ~w~the ~g~bank.", 000);
  1334.                         if (Game.Player.Character.Position.DistanceTo(EnterExitBank_Locations[Robs[0].List_Index]) < 2.0f)
  1335.                         {
  1336.                             Function.Call(Hash.PLAY_SOUND_FRONTEND, Robs[0].Checkpoint_Sound, "CHECKPOINT_PERFECT", "HUD_MINI_GAME_SOUNDSET", 1);
  1337.  
  1338.                             Vehicle lastVehicle = Function.Call<Vehicle>((Hash)0xB2D06FAEDE65B577);// GET_LAST_DRIVEN_VEHICLE
  1339.                             if (lastVehicle != null)
  1340.                             {
  1341.                                 Function.Call(Hash.SET_VEHICLE_IS_WANTED, lastVehicle, true);
  1342.                             }
  1343.                          
  1344.                             Robs[0].Objective_Index = 14;
  1345.                         }
  1346.                     } break;
  1347.              
  1348.                 case 14:
  1349.                     {
  1350.                         UI.ShowSubtitle("Lose The Cops.", 1000);
  1351.                         if (Game.Player.WantedLevel < 1)
  1352.                         {
  1353.                             Robs[0].Objective_Index = 15;
  1354.                             Passed_Index = 0;
  1355.                             BankAvalible[Robs[0].List_Index] = false;
  1356.                         }
  1357.                     } break;
  1358.                 case 15:
  1359.                     {
  1360.                         Robs[0].Objective_Index = -1;
  1361.                     } break;
  1362.                
  1363.             }
  1364.  
  1365.             if (Robs[0].Objective_Index > -1 && Robs[0].Objective_Index < 7 && Robs[0].Teller.IsAlive == false && Robs[0].Faild == false )
  1366.             {
  1367.                 BankAvalible[Robs[0].List_Index] = false;
  1368.  
  1369.                 Function.Call(Hash.PLAY_SOUND_FRONTEND, -1, "ScreenFlash", "MissionFailedSounds", 1);
  1370.                 Function.Call(Hash.PLAY_MISSION_COMPLETE_AUDIO, "GENERIC_FAILED");
  1371.                 WhoDied = "THE ~b~TELLER ";
  1372.                 Robs[0].Faild = true;
  1373.                 run = true;
  1374.                 step = 0;
  1375.                 Robs[0].RemoveRob();
  1376.                 Robs.RemoveAt(0);
  1377.             }
  1378.  
  1379.             if (Game.Player.IsDead)
  1380.             {
  1381.                 while (!Game.IsScreenFadedOut)
  1382.                 {
  1383.                     Wait(10);
  1384.                 }
  1385.                 while (Game.IsScreenFadedOut)
  1386.                 {
  1387.                     Wait(4000);
  1388.                 }
  1389.              
  1390.                 BankAvalible[Robs[0].List_Index] = false;
  1391.  
  1392.                 Function.Call(Hash.PLAY_MISSION_COMPLETE_AUDIO, "GENERIC_FAILED");
  1393.  
  1394.                 WhoDied = "YOU ";
  1395.                 Robs[0].Faild = true;
  1396.                 run = true;
  1397.                 step = 0;
  1398.                 Robs[0].RemoveRob();
  1399.                 Robs.RemoveAt(0);
  1400.             }
  1401.  
  1402.         }
  1403.  
  1404.         if (Function.Call<int>(Hash.GET_CLOCK_HOURS) > 18 || Function.Call<int>(Hash.GET_CLOCK_HOURS) < 7)
  1405.         {
  1406.             for (int i = 0; i < BankAvalible.Count; i++)
  1407.             {
  1408.                 if (BankAvalible[i] == false)
  1409.                 {
  1410.                     BankAvalible[i] = true;
  1411.                 }
  1412.             }
  1413.         }
  1414.  
  1415.         if (Robs.Count < 1 && Function.Call<int>(Hash.GET_CLOCK_HOURS) >= 7 && Function.Call<int>(Hash.GET_CLOCK_HOURS) < 18)
  1416.         {
  1417.             for (int i = 0; i < Bank_Locations.Count; i++)
  1418.             {
  1419.                 if (BankAvalible[i] == true && Game.Player.WantedLevel == 0)
  1420.                 {
  1421.                     World.DrawMarker(MarkerType.VerticalCylinder, Bank_Locations[i], new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 0.0f), new Vector3(2.0f, 2.0f, 0.5f), Color.FromArgb(51, 255, 107), false, true, 2, false, "", "", false);
  1422.                 }
  1423.                 else
  1424.                 {
  1425.                     World.DrawMarker(MarkerType.VerticalCylinder, Bank_Locations[i], new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 0.0f), new Vector3(2.0f, 2.0f, 0.5f), Color.FromArgb(255, 0, 0), false, true, 2, false, "", "", false);
  1426.                 }
  1427.             }
  1428.         }
  1429.  
  1430.      
  1431.        
  1432.         switch (Passed_Index)
  1433.         {
  1434.             case 0:
  1435.                 {
  1436.                     Scale = Function.Call<int>((Hash)0x11FE353CF9733E6F, "MIDSIZED_MESSAGE");
  1437.                     time = (int)Game.GameTime + 1500;
  1438.                     Passed_Index = 1;
  1439.                 } break;
  1440.  
  1441.             case 1:
  1442.                 {
  1443.                     if ((int)Game.GameTime > time)
  1444.                     {
  1445.                         if (Function.Call<bool>(Hash.HAS_SCALEFORM_MOVIE_LOADED, Scale))
  1446.                         {
  1447.                             Function.Call(Hash._START_SCREEN_EFFECT, "SuccessNeutral", 8500, false);
  1448.  
  1449.                             Function.Call(Hash.PLAY_SOUND_FRONTEND, -1, "CHECKPOINT_PERFECT", "HUD_MINI_GAME_SOUNDSET", 1);
  1450.                             Function.Call(Hash.PLAY_MISSION_COMPLETE_AUDIO, "MICHAEL_BIG_01");
  1451.  
  1452.                             Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION, Scale, "SHOW_SHARD_MIDSIZED_MESSAGE");
  1453.  
  1454.                             if (Robs[0].List_Index == 0)
  1455.                             {
  1456.                                 if (!BankRobbed1)
  1457.                                 {
  1458.                                     KeysData.SetValue<bool>("settings", "BankRobbed1", true);
  1459.                                     KeysData.Save();
  1460.                                     BankRobbed1 = true;
  1461.                                 }
  1462.                             }
  1463.                             if (Robs[0].List_Index == 1)
  1464.                             {
  1465.                                 if (!BankRobbed2)
  1466.                                 {
  1467.                                     KeysData.SetValue("settings", "BankRobbed2", "True");
  1468.                                     KeysData.Save();
  1469.                                     BankRobbed2 = true;
  1470.                                 }
  1471.                             }
  1472.                             if (Robs[0].List_Index == 2)
  1473.                             {
  1474.                                 if (!BankRobbed3)
  1475.                                 {
  1476.                                     KeysData.SetValue("settings", "BankRobbed3", "True");
  1477.                                     KeysData.Save();
  1478.                                     BankRobbed3 = true;
  1479.                                 }
  1480.                             }
  1481.                             if (Robs[0].List_Index == 3)
  1482.                             {
  1483.                                 if (!BankRobbed4)
  1484.                                 {
  1485.                                     KeysData.SetValue("settings", "BankRobbed4", "True");
  1486.                                     KeysData.Save();
  1487.                                     BankRobbed4 = true;
  1488.                                 }
  1489.                             }
  1490.                             if (Robs[0].List_Index == 4)
  1491.                             {
  1492.                                 if (!BankRobbed5)
  1493.                                 {
  1494.                                     KeysData.SetValue("settings", "BankRobbed5", "True");
  1495.                                     KeysData.Save();
  1496.                                     BankRobbed5 = true;
  1497.                                 }
  1498.                             }
  1499.                             if (Robs[0].List_Index == 5)
  1500.                             {
  1501.                                 if (!BankRobbed6)
  1502.                                 {
  1503.                                     KeysData.SetValue("settings", "BankRobbed6", "True");
  1504.                                     KeysData.Save();
  1505.                                     BankRobbed6 = true;
  1506.                                 }
  1507.                             }
  1508.                            
  1509.                             int banksRobbed = 0;
  1510.  
  1511.                             if (BankRobbed1)
  1512.                             {
  1513.                                 banksRobbed += 1;
  1514.                             }
  1515.                             if (BankRobbed2)
  1516.                             {
  1517.                                 banksRobbed += 1;
  1518.                             }
  1519.                             if (BankRobbed3)
  1520.                             {
  1521.                                 banksRobbed += 1;
  1522.                             }
  1523.                             if (BankRobbed4)
  1524.                             {
  1525.                                 banksRobbed += 1;
  1526.                             }
  1527.                             if (BankRobbed5)
  1528.                             {
  1529.                                 banksRobbed += 1;
  1530.                             }
  1531.                             if (BankRobbed6)
  1532.                             {
  1533.                                 banksRobbed += 1;
  1534.                             }
  1535.  
  1536.                             Function.Call(Hash._BEGIN_TEXT_COMPONENT, "STRING");
  1537.                             Function.Call((Hash)0x6C188BE134E074AA, "~g~ROBBERY SUCCESS");
  1538.                             Function.Call(Hash._END_TEXT_COMPONENT);
  1539.  
  1540.  
  1541.                             int cash = Function.Call<int>(Hash.GET_RANDOM_INT_IN_RANGE, MinCash, MaxCash); //
  1542.                             Game.Player.Money += cash;
  1543.                             Function.Call(Hash._BEGIN_TEXT_COMPONENT, "STRING");
  1544.                             Function.Call((Hash)0x6C188BE134E074AA, "Banks Robbed " + banksRobbed.ToString() + "/6~n~" + "Money earned  " + cash.ToString());
  1545.                             Function.Call(Hash._END_TEXT_COMPONENT);
  1546.  
  1547.                             Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID);
  1548.  
  1549.                             time = (int)Game.GameTime + 10000; // time to display message
  1550.  
  1551.                             Passed_Index = 2;
  1552.                         }
  1553.                     }
  1554.  
  1555.                 } break;
  1556.  
  1557.             case 2:
  1558.                 {
  1559.                     if (Function.Call<bool>(Hash.HAS_SCALEFORM_MOVIE_LOADED, Scale))
  1560.                     {
  1561.                         if ((int)Game.GameTime <= time)
  1562.                         {
  1563.                             Function.Call(Hash.DRAW_SCALEFORM_MOVIE_FULLSCREEN, Scale, 255, 255, 255, 255);
  1564.                         }
  1565.                         else if ((int)Game.GameTime < time + 100)
  1566.                         {
  1567.                             Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION, Scale, "SHARD_ANIM_OUT");
  1568.                             Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 1);// color 0,1=white 2=black 3=grey 6,7,8=red 9,10,11=blue 12,13,14=yellow 15,16,17=orange 18,19,20=green 21,22,23=purple
  1569.                             Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT, .33f);
  1570.  
  1571.                             Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID);
  1572.                             time -= 100;
  1573.                         }
  1574.                         else if ((int)Game.GameTime < time + 2000)
  1575.                         {
  1576.                             Function.Call(Hash.DRAW_SCALEFORM_MOVIE_FULLSCREEN, Scale, 255, 255, 255, 255);
  1577.                         }
  1578.                         else
  1579.                         {
  1580.                             Passed_Index = 3;
  1581.                         }
  1582.                     }
  1583.                 } break;
  1584.             case 3:
  1585.                 {
  1586.                     unsafe
  1587.                     {
  1588.                         int b = Scale;
  1589.  
  1590.                         Function.Call(Hash.SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED, &b);
  1591.  
  1592.                         Passed_Index = -1;
  1593.                         if (Robs.Count > 0)
  1594.                         {
  1595.                             Robs[0].RemoveRob();
  1596.                             Robs.RemoveAt(0);
  1597.                         }
  1598.                     }
  1599.                 } break;
  1600.         }
  1601.      
  1602.  
  1603.         if (run)
  1604.         {
  1605.             switch (step)
  1606.             {
  1607.                 case 0:
  1608.                     {
  1609.                         Scale = Function.Call<int>((Hash)0x11FE353CF9733E6F, "MIDSIZED_MESSAGE");
  1610.  
  1611.                         time = (int)Game.GameTime + 1500; // time before message is displayed
  1612.                         step = 1;
  1613.  
  1614.                     } break;
  1615.  
  1616.                 case 1:
  1617.                     {
  1618.                         if ((int)Game.GameTime > time)
  1619.                         {
  1620.                             if (Function.Call<bool>(Hash.HAS_SCALEFORM_MOVIE_LOADED, Scale))
  1621.                             {
  1622.                                 Function.Call(Hash._START_SCREEN_EFFECT, "SuccessNeutral", 8000, false);
  1623.  
  1624.                                 Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION, Scale, "SHOW_SHARD_MIDSIZED_MESSAGE");
  1625.  
  1626.                                 Function.Call(Hash._BEGIN_TEXT_COMPONENT, "STRING");
  1627.                                 Function.Call((Hash)0x6C188BE134E074AA, "ROBBERY FAILED");
  1628.                                 Function.Call(Hash._END_TEXT_COMPONENT);
  1629.                                 Function.Call(Hash._BEGIN_TEXT_COMPONENT, "STRING");
  1630.                                 Function.Call((Hash)0x6C188BE134E074AA, WhoDied + "~w~DIED");
  1631.                                 Function.Call(Hash._END_TEXT_COMPONENT);
  1632.                                 Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 6);// color 0,1=white 2=black 3=grey 6,7,8=red 9,10,11=blue 12,13,14=yellow 15,16,17=orange 18,19,20=green 21,22,23=purple
  1633.  
  1634.                                 Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID);
  1635.  
  1636.                                 time = (int)Game.GameTime + 8000; // time to display message
  1637.                                 step = 2;
  1638.                             }
  1639.                         }
  1640.  
  1641.                     } break;
  1642.  
  1643.                 case 2:
  1644.                     {
  1645.                         if (Function.Call<bool>(Hash.HAS_SCALEFORM_MOVIE_LOADED, Scale))
  1646.                         {
  1647.                             if ((int)Game.GameTime <= time)
  1648.                             {
  1649.                                 Function.Call(Hash.DRAW_SCALEFORM_MOVIE_FULLSCREEN, Scale, 255, 255, 255, 255);
  1650.                             }
  1651.                             else if ((int)Game.GameTime < time + 100)
  1652.                             {
  1653.                                 Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION, Scale, "SHARD_ANIM_OUT");
  1654.                                 Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 1);// color 0,1=white 2=black 3=grey 6,7,8=red 9,10,11=blue 12,13,14=yellow 15,16,17=orange 18,19,20=green 21,22,23=purple
  1655.                                 Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT, .33f);
  1656.  
  1657.                                 Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID);
  1658.                                 time -= 100;
  1659.                             }
  1660.                             else if ((int)Game.GameTime < time + 2000)
  1661.                             {
  1662.                                 Function.Call(Hash.DRAW_SCALEFORM_MOVIE_FULLSCREEN, Scale, 255, 255, 255, 255);
  1663.                             }
  1664.                             else
  1665.                             {
  1666.                                 step = 3;
  1667.                             }
  1668.                         }
  1669.                     } break;
  1670.                 case 3:
  1671.                     {
  1672.                         unsafe
  1673.                         {
  1674.                             int b = Scale;
  1675.  
  1676.                             Function.Call(Hash.SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED, &b);
  1677.  
  1678.                             step = -1;
  1679.                         }
  1680.  
  1681.                         if (Robs.Count > 0)
  1682.                         {
  1683.                             Robs[0].RemoveRob();
  1684.                             Robs.RemoveAt(0);
  1685.                         }
  1686.  
  1687.                     } break;
  1688.             }
  1689.         }
  1690.      
  1691.  
  1692.         if (Drill != null)
  1693.         {
  1694.  
  1695.             if (Game.Player.IsDead)
  1696.             {
  1697.                 if (Drill.Drilling)
  1698.                 {
  1699.                     Drill.RemoveDriller();
  1700.                 }
  1701.             }
  1702.  
  1703.             if (Drill.Drilling)
  1704.             {
  1705.                 UI.ShowSubtitle("Drill the ~g~safety deposit box", 1000);
  1706.  
  1707.                 Function.Call(Hash.DISABLE_CONTROL_ACTION, 2, 37); // left button weapon wheel
  1708.                 Function.Call(Hash.DISABLE_CONTROL_ACTION, 2, 27); // dpad up phone
  1709.  
  1710.                 Function.Call(Hash.DRAW_SCALEFORM_MOVIE_FULLSCREEN, Drill.ScaleFormDrilling, 255, 255, 255, 255);
  1711.  
  1712.                 float leftStick = 0;  // used to set drill position
  1713.                 float rightTrigger = 0;  // used to set drill speed
  1714.  
  1715.                 if (Game.CurrentInputMode == InputMode.GamePad)
  1716.                 {
  1717.                     leftStick = Function.Call<float>(Hash.GET_CONTROL_NORMAL, 2, 32); // get drill position with controler left stick
  1718.  
  1719.                     rightTrigger = Function.Call<float>(Hash.GET_CONTROL_NORMAL, 2, 24); // get input for drill speed
  1720.                     Drill.DrillSpeed = rightTrigger; // set drill speed
  1721.                 }
  1722.                 if (Game.CurrentInputMode == InputMode.MouseAndKeyboard)  // if using Mouse And Keyboard
  1723.                 {
  1724.                     float mouse = Function.Call<float>(Hash.GET_CONTROL_NORMAL, 2, 240); // mouse up and down (cam)
  1725.  
  1726.                     mouse = 0.0f - mouse + .9f;
  1727.  
  1728.                     leftStick = mouse;
  1729.  
  1730.                     if (Function.Call<bool>(Hash.IS_CONTROL_JUST_PRESSED, 2, 241)) // wheel up   // get input for drill speed
  1731.                     {
  1732.                         if (Drill.DrillSpeed < 1.0f)
  1733.                         {
  1734.                             Drill.DrillSpeed += .125f;
  1735.                         }
  1736.                         else
  1737.                         {
  1738.                             Drill.DrillSpeed = 1.0f;
  1739.                         }
  1740.                     }
  1741.                     if (Function.Call<bool>(Hash.IS_CONTROL_JUST_PRESSED, 2, 242)) // wheel down   // get input for drill speed
  1742.                     {
  1743.                         if (Drill.DrillSpeed > .0f)
  1744.                         {
  1745.                             Drill.DrillSpeed -= .125f;
  1746.                         }
  1747.                         else
  1748.                         {
  1749.                             Drill.DrillSpeed = .0f;
  1750.                         }
  1751.                     }
  1752.                 }
  1753.  
  1754.              
  1755.                 if (Drill.ResetTime < (int)Game.GameTime)
  1756.                 {
  1757.                     if (Drill.DrillSpeed > 0)
  1758.                     {
  1759.                         if (Function.Call<bool>(Hash.HAS_SOUND_FINISHED, Drill.Sound))
  1760.                         {
  1761.                             Function.Call(Hash.PLAY_SOUND_FROM_ENTITY, Drill.Sound, "Drill", Drill.Drill_Prop, "DLC_HEIST_FLEECA_SOUNDSET", 1, 0);
  1762.                         }
  1763.                     }
  1764.                     else
  1765.                     {
  1766.                         Function.Call(Hash.STOP_SOUND, Drill.Sound);
  1767.                     }
  1768.  
  1769.                     if (Drill.DrillPosition == 0 && !Function.Call<bool>(Hash.IS_ENTITY_PLAYING_ANIM, Game.Player.Character, "anim@heists@fleeca_bank@drilling", "drill_straight_idle", 3))
  1770.                     {
  1771.                         Function.Call(Hash.TASK_PLAY_ANIM, Game.Player.Character, "anim@heists@fleeca_bank@drilling", "drill_straight_idle", 6.0f, .01f, -1, 0, .0f, 1, 1, 1);
  1772.                     }
  1773.  
  1774.                     if (Drill.DrillPosition > 0 && !Function.Call<bool>(Hash.IS_ENTITY_PLAYING_ANIM, Game.Player.Character, "anim@heists@fleeca_bank@drilling", "drill_right_end", 3))
  1775.                     {
  1776.                         Function.Call(Hash.TASK_PLAY_ANIM, Game.Player.Character, "anim@heists@fleeca_bank@drilling", "drill_right_end", 3.0f, .01f, -1, 0, .0f, 1, 1, 1);
  1777.                     }
  1778.  
  1779.  
  1780.                     if (Drill.DrillTemperature < 1.0f)
  1781.                     {
  1782.                         if (Drill.DrillPosition > Drill.DrillDepth - .2f)
  1783.                         {
  1784.                             if (Drill.DrillSpeed > .2f & Drill.DrillSpeed < .8f)
  1785.                             {
  1786.                                 Drill.DrillDepth += .0003f;
  1787.                             }
  1788.  
  1789.                             if (Drill.DrillSpeed > .3f & Drill.DrillSpeed < .7f)
  1790.                             {
  1791.                                 Drill.DrillDepth += .0003f;
  1792.                             }
  1793.                             if (Drill.DrillDepth > .776f)
  1794.                             {
  1795.                                 if (Drill.DrillSpeed > .2f & Drill.DrillSpeed < .7f)
  1796.                                 {
  1797.                                     Drill.DrillDepth += .005f;
  1798.                                 }
  1799.                             }
  1800.                         }
  1801.                     }
  1802.  
  1803.                     if (leftStick > .75f && Drill.DrillSpeed > .0f || leftStick > 0 && Drill.DrillSpeed > .75f)
  1804.                     {
  1805.                         if (Drill.DrillPosition > Drill.DrillDepth - .2f)
  1806.                         {
  1807.                             if (Drill.DrillTemperature < 1.0f)
  1808.                             {
  1809.                                 Drill.DrillTemperature += .015f;
  1810.                             }
  1811.                         }
  1812.                     }
  1813.  
  1814.                     if (Drill.DrillSpeed == 0 || Drill.DrillPosition == 0)
  1815.                     {
  1816.                         if (Drill.DrillTemperature > .0f)
  1817.                         {
  1818.                             Drill.DrillTemperature -= .005f;
  1819.                         }
  1820.                     }
  1821.  
  1822.                     if (Drill.DrillSpeed < .01f)  
  1823.                     {
  1824.                         Function.Call(Hash.REMOVE_PARTICLE_FX, Drill.DrillFX, 0);
  1825.                     }
  1826.  
  1827.                     if (leftStick > 0)
  1828.                     {
  1829.                         if (Drill.DrillPosition < Drill.DrillDepth - .2f)
  1830.                         {
  1831.                             Drill.DrillPosition += .05f;
  1832.                         }
  1833.                         if (Drill.DrillPosition < Drill.DrillDepth)
  1834.                         {
  1835.                             Drill.DrillPosition += .01f;  
  1836.  
  1837.                             if (Drill.DrillSpeed > 0)  
  1838.                             {
  1839.                                 Function.Call(Hash.REMOVE_PARTICLE_FX, Drill.DrillFX, 0);
  1840.                                 Function.Call(Hash._SET_PTFX_ASSET_NEXT_CALL, "fm_mission_controler");
  1841.                                 Drill.DrillFX = Function.Call<int>(Hash._START_PARTICLE_FX_LOOPED_ON_ENTITY_2, "scr_drill_debris", Drill.Drill_Prop, 0.0f, -0.55f, .01f, 90.0f, 90.0f, 90.0f, .8f, 0, 0, 0);
  1842.                                 Function.Call(Hash.SET_PARTICLE_FX_LOOPED_EVOLUTION, Drill.DrillFX, "power", .7f, 0);
  1843.                             }
  1844.                             else  
  1845.                             {
  1846.                                 Function.Call(Hash.REMOVE_PARTICLE_FX, Drill.DrillFX, 0);
  1847.                             }
  1848.                         }
  1849.                     }
  1850.                     else
  1851.                     {
  1852.                         Drill.DrillPosition = .0f;
  1853.                         Function.Call(Hash.REMOVE_PARTICLE_FX, Drill.DrillFX, 0);
  1854.                     }
  1855.  
  1856.                     Function.Call(Hash.SET_VARIABLE_ON_SOUND, Drill.Sound, "DrillState", .0);
  1857.  
  1858.                     if (leftStick > Drill.DrillDepth && leftStick < Drill.DrillDepth + .2f)
  1859.                     {
  1860.                         Function.Call(Hash.SET_VARIABLE_ON_SOUND, Drill.Sound, "DrillState", .5);
  1861.                     }
  1862.                     if (leftStick > Drill.DrillDepth && leftStick > Drill.DrillDepth + .2f)
  1863.                     {
  1864.                         Function.Call(Hash.SET_VARIABLE_ON_SOUND, Drill.Sound, "DrillState", 1.0);
  1865.                     }
  1866.  
  1867.  
  1868.                     if (Drill.DrillDepth > .326f && !Drill.Pin_one)
  1869.                     {
  1870.                         Function.Call(Hash.PLAY_SOUND_FRONTEND, Drill.PinSound, "Drill_Pin_Break", "DLC_HEIST_FLEECA_SOUNDSET", 1);
  1871.                         Drill.Pin_one = true;
  1872.                     }
  1873.                     if (Drill.DrillDepth > .476f && !Drill.Pin_two)
  1874.                     {
  1875.                         Function.Call(Hash.PLAY_SOUND_FRONTEND, Drill.PinSound, "Drill_Pin_Break", "DLC_HEIST_FLEECA_SOUNDSET", 1);
  1876.                         Drill.Pin_two = true;
  1877.                     }
  1878.                     if (Drill.DrillDepth > .625f && !Drill.Pin_three)
  1879.                     {
  1880.                         Function.Call(Hash.PLAY_SOUND_FRONTEND, Drill.PinSound, "Drill_Pin_Break", "DLC_HEIST_FLEECA_SOUNDSET", 1);
  1881.                         Drill.Pin_three = true;
  1882.                     }
  1883.                     if (Drill.DrillDepth > .776f && !Drill.Pin_four)
  1884.                     {
  1885.                         Function.Call(Hash.PLAY_SOUND_FRONTEND, Drill.PinSound, "Drill_Pin_Break", "DLC_HEIST_FLEECA_SOUNDSET", 1);
  1886.                         Drill.Pin_four = true;
  1887.                     }
  1888.  
  1889.                     if (Drill.DrillTemperature > .99f || Drill.DrillPosition > Drill.DrillDepth + .3f)
  1890.                     {
  1891.                         if (!Function.Call<bool>(Hash.HAS_SOUND_FINISHED, Drill.Sound))  
  1892.                         {
  1893.                             Function.Call(Hash.SET_VARIABLE_ON_SOUND, Drill.Sound, "DrillState", .0);
  1894.  
  1895.                             Function.Call(Hash.STOP_SOUND, Drill.Sound);
  1896.                         }
  1897.                         if (!Function.Call<bool>(Hash.HAS_SOUND_FINISHED, Drill.PinSound))
  1898.                         {
  1899.                             Function.Call(Hash.STOP_SOUND, Drill.PinSound);
  1900.                         }
  1901.  
  1902.                         Function.Call(Hash.PLAY_SOUND_FROM_ENTITY, Drill.FailSound, "Drill_Jam", Game.Player.Character, "DLC_HEIST_FLEECA_SOUNDSET", 1, 20);
  1903.  
  1904.                         Drill.Fail();
  1905.                     }
  1906.  
  1907.                 }
  1908.  
  1909.                 Function.Call(Hash._CALL_SCALEFORM_MOVIE_FUNCTION_FLOAT_PARAMS, Drill.ScaleFormDrilling, "SET_TEMPERATURE", Drill.DrillTemperature, -1082130432, -1082130432, -1082130432, -1082130432);
  1910.  
  1911.                 Function.Call(Hash._CALL_SCALEFORM_MOVIE_FUNCTION_FLOAT_PARAMS, Drill.ScaleFormDrilling, "SET_DRILL_POSITION", Drill.DrillPosition, -1082130432, -1082130432, -1082130432, -1082130432);
  1912.  
  1913.                 Function.Call(Hash._CALL_SCALEFORM_MOVIE_FUNCTION_FLOAT_PARAMS, Drill.ScaleFormDrilling, "SET_SPEED", Drill.DrillSpeed, -1082130432, -1082130432, -1082130432, -1082130432);
  1914.  
  1915.                 if (Robs.Count > 0)
  1916.                 {
  1917.                     if (Drill.DrillPosition > .8f)
  1918.                     {
  1919.                         Function.Call(Hash.REMOVE_PARTICLE_FX, Drill.DrillFX, 0);
  1920.  
  1921.                         if (!Function.Call<bool>(Hash.HAS_SOUND_FINISHED, Drill.Sound))
  1922.                         {
  1923.                             Function.Call(Hash.STOP_SOUND, Drill.Sound);
  1924.                         }
  1925.  
  1926.                         Drill.DrillTemperature = 0;
  1927.                         Drill.DrillSpeed = 0;
  1928.                         Robs[0].Drilling_Done = true;
  1929.  
  1930.                     }
  1931.                 }
  1932.             }
  1933.         }
  1934.     }
  1935.  
  1936.     public void OnKeyUp(object o, KeyEventArgs e)
  1937.     {
  1938.  
  1939.         KeysData = ScriptSettings.Load("scripts//RobFleeca.ini");
  1940.  
  1941.         Keys StartKey = KeysData.GetValue<Keys>("settings", "StartKey", Keys.U);
  1942.  
  1943.    
  1944.         if (e.KeyCode == StartKey)
  1945.         {
  1946.             if (Game.Player.WantedLevel < 1 && Robs.Count < 1 && Function.Call<int>(Hash.GET_CLOCK_HOURS) >= 7 && Function.Call<int>(Hash.GET_CLOCK_HOURS) < 18)  // 7am - 6pm
  1947.             {
  1948.                 for (int i = 0; i < Bank_Locations.Count; i++)
  1949.                 {
  1950.                     if (Bank_Locations[i].DistanceTo(Game.Player.Character.Position) < 12.0f && BankAvalible[i] == true)
  1951.                     {
  1952.                         Rob rob = new Rob(i);
  1953.                         Robs.Add(rob);
  1954.                     }
  1955.                 }
  1956.             }
  1957.         }
  1958.  
  1959.  
  1960.     }
  1961.  
  1962.     public class Rob
  1963.     {
  1964.           public Rob( int list_index)
  1965.         {
  1966.  
  1967.             this.Objective_Index = 0;
  1968.  
  1969.             this.List_Index = list_index;
  1970.  
  1971.             this.Teller_Door_Open = false;
  1972.  
  1973.             this.Vault_Door_Open = false;
  1974.  
  1975.             this.Faild = false;
  1976.  
  1977.             this.Drilling_Done = false;
  1978.  
  1979.             this.TellerCower = false;
  1980.  
  1981.             this.Hostage3Cower = false;
  1982.  
  1983.             Function.Call(Hash.REQUEST_ANIM_DICT, "amb@prop_human_atm@female@idle_a");
  1984.             Function.Call(Hash.REQUEST_ANIM_DICT, "anim@heists@fleeca_bank@bank_vault_door");
  1985.             Function.Call(Hash.REQUEST_ANIM_DICT, "anim@heists@fleeca_bank@drilling");
  1986.  
  1987.             while (!Function.Call<bool>(Hash.HAS_ANIM_DICT_LOADED, "amb@prop_human_atm@female@idle_a") &&
  1988.                !Function.Call<bool>(Hash.HAS_ANIM_DICT_LOADED, "anim@heists@fleeca_bank@bank_vault_door") &&
  1989.                !Function.Call<bool>(Hash.HAS_ANIM_DICT_LOADED, "anim@heists@fleeca_bank@drilling") &&
  1990.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "HEIST_FLEECA_DRILL", 0, -1) &&  
  1991.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "HEIST_FLEECA_DRILL_2", 0, -1) &&  
  1992.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL", 0, -1) &&
  1993.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL_2", 0, -1) &&
  1994.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "SAFE_CRACK", 0, -1) &&
  1995.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "DLC_Biker_Cracked_Sounds", 0, -1) &&
  1996.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "HUD_MINI_GAME_SOUNDSET", 0, -1) &&
  1997.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "MissionFailedSounds", 0, -1) &&
  1998.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "dlc_heist_fleeca_bank_door_sounds", 0, -1) &&
  1999.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "vault_door", 0, -1) &&
  2000.                !Function.Call<bool>(Hash.REQUEST_SCRIPT_AUDIO_BANK, "Alarms", 0, -1) &&
  2001.                !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "DLC_HEIST_FLEECA_SOUNDSET", 0, -1))
  2002.             {
  2003.                 Wait(100);
  2004.             }
  2005.          
  2006.               this.Alarm_Sound = -1;
  2007.  
  2008.             this.Vault_Sound = -1;
  2009.  
  2010.             this.Checkpoint_Sound = -1;
  2011.  
  2012.             this.Alarm_Sound = Function.Call<int>(Hash.GET_SOUND_ID);
  2013.          
  2014.               while (this.Alarm_Sound == -1)
  2015.             {
  2016.                 Wait(0);
  2017.             }
  2018.            
  2019.               this.Vault_Sound = Function.Call<int>(Hash.GET_SOUND_ID);
  2020.            
  2021.               while (this.Vault_Sound == -1)
  2022.             {
  2023.                 Wait(0);
  2024.             }
  2025.            
  2026.               this.Checkpoint_Sound = Function.Call<int>(Hash.GET_SOUND_ID);
  2027.            
  2028.               while (this.Checkpoint_Sound == -1)
  2029.             {
  2030.                 Wait(0);
  2031.             }
  2032.         }
  2033.  
  2034.           public int Objective_Index;
  2035.  
  2036.           public int List_Index;
  2037.  
  2038.           public Ped Teller;
  2039.        
  2040.           public bool TellerCower;
  2041.  
  2042.           public Ped Hostage1;
  2043.  
  2044.           public Ped Hostage2;
  2045.  
  2046.           public Ped Hostage3;
  2047.  
  2048.           public bool Hostage3Cower;
  2049.  
  2050.           public Prop Cam1;
  2051.  
  2052.           public Prop Cam2;
  2053.  
  2054.           public Prop Cam3;
  2055.  
  2056.           public Prop Cam4;
  2057.  
  2058.           public Prop Cam5;
  2059.  
  2060.           public Prop BoxWall;
  2061.        
  2062.           public Prop BoxDoor;
  2063.  
  2064.           public Prop CashEnvelope;
  2065.  
  2066.           public bool Faild;
  2067.  
  2068.           public bool Drilling_Done;
  2069.  
  2070.           public Blip Drill_LocationBlip;
  2071.  
  2072.           public bool Teller_Door_Open;
  2073.  
  2074.           public bool Vault_Door_Open;
  2075.  
  2076.           public int Alarm_Sound;
  2077.  
  2078.           public int Vault_Sound;
  2079.  
  2080.           public int Checkpoint_Sound;
  2081.  
  2082.           public void RemoveRob() // funtion to remove when canciling or complete
  2083.           {
  2084.               if (!Function.Call<bool>(Hash.HAS_SOUND_FINISHED, this.Alarm_Sound))
  2085.               {
  2086.                   Function.Call(Hash.STOP_SOUND, this.Alarm_Sound);
  2087.               }
  2088.  
  2089.               //if (this.Alarm_Sound != 0) // release all sounds
  2090.               //{
  2091.                   Function.Call(Hash.RELEASE_SOUND_ID, this.Alarm_Sound);
  2092.               //}
  2093.  
  2094.               if (!Function.Call<bool>(Hash.HAS_SOUND_FINISHED, this.Vault_Sound))
  2095.               {
  2096.                   Function.Call(Hash.STOP_SOUND, this.Vault_Sound);
  2097.               }
  2098.  
  2099.               //if (this.Vault_Sound != 0) // release all sounds
  2100.               //{
  2101.                   Function.Call(Hash.RELEASE_SOUND_ID, this.Vault_Sound);
  2102.               //}
  2103.  
  2104.                   if (!Function.Call<bool>(Hash.HAS_SOUND_FINISHED, this.Checkpoint_Sound))
  2105.                   {
  2106.                       Function.Call(Hash.STOP_SOUND, this.Checkpoint_Sound);
  2107.                   }
  2108.  
  2109.               //if (this.Checkpoint_Sound != 0) // release all sounds
  2110.               //{
  2111.                   Function.Call(Hash.RELEASE_SOUND_ID, this.Checkpoint_Sound);
  2112.               //}
  2113.  
  2114.               //Function.Call(Hash.REMOVE_ANIM_DICT, "mp_heists@keypad@");
  2115.  
  2116.               Function.Call(Hash.REMOVE_ANIM_DICT, "anim@heists@fleeca_bank@bank_vault_door");
  2117.               Function.Call(Hash.REMOVE_ANIM_DICT, "amb@prop_human_atm@female@idle_a");
  2118.               Function.Call(Hash.REMOVE_ANIM_DICT, "anim@heists@fleeca_bank@drilling");
  2119.  
  2120.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "SAFE_CRACK");
  2121.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_Biker_Cracked_Sounds");
  2122.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "HUD_MINI_GAME_SOUNDSET");
  2123.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "MissionFailedSounds");
  2124.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "vault_door");
  2125.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "Alarms");
  2126.  
  2127.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "SAFE_CRACK");
  2128.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_Biker_Cracked_Sounds");
  2129.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "HUD_MINI_GAME_SOUNDSET");
  2130.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "MissionFailedSounds");
  2131.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "dlc_heist_fleeca_bank_door_sounds");
  2132.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "vault_door");
  2133.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "Alarms");
  2134.  
  2135.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "HEIST_FLEECA_DRILL");
  2136.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "HEIST_FLEECA_DRILL_2");
  2137.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL");
  2138.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL_2");
  2139.               //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_HEIST_FLEECA_SOUNDSET");
  2140.  
  2141.               Game.Player.WantedLevel = Function.Call<int>((Hash)0x4C9296CBCD1B971E);
  2142.  
  2143.               Function.Call(Hash.SET_FAKE_WANTED_LEVEL, 0);
  2144.  
  2145.               if (this.Teller.CurrentBlip != null)
  2146.               {
  2147.                   this.Teller.CurrentBlip.Remove();
  2148.               }
  2149.               if(this.Teller != null)
  2150.               {
  2151.                   this.Teller.MarkAsNoLongerNeeded();
  2152.               }
  2153.  
  2154.               if (this.Hostage1.CurrentBlip != null)
  2155.               {
  2156.                   this.Hostage1.CurrentBlip.Remove();
  2157.               }
  2158.               if (this.Hostage1 != null)
  2159.               {
  2160.                   this.Hostage1.MarkAsNoLongerNeeded();
  2161.               }
  2162.  
  2163.               if (this.Hostage2.CurrentBlip != null)
  2164.               {
  2165.                   this.Hostage2.CurrentBlip.Remove();
  2166.               }
  2167.               if (this.Hostage2 != null)
  2168.               {
  2169.                   this.Hostage2.MarkAsNoLongerNeeded();
  2170.               }
  2171.  
  2172.               if (this.Hostage3.CurrentBlip != null)
  2173.               {
  2174.                   this.Hostage3.CurrentBlip.Remove();
  2175.               }
  2176.               if (this.Hostage3 != null)
  2177.               {
  2178.                   this.Hostage3.MarkAsNoLongerNeeded();
  2179.               }
  2180.  
  2181.               if (this.Cam1 != null)
  2182.               {
  2183.                   if(this.Cam1.CurrentBlip.Exists())
  2184.                   {
  2185.                       this.Cam1.CurrentBlip.Remove();
  2186.                   }
  2187.                   this.Cam1.MarkAsNoLongerNeeded();
  2188.               }
  2189.               if (this.Cam2 != null)
  2190.               {
  2191.                   if (this.Cam2.CurrentBlip.Exists())
  2192.                   {
  2193.                       this.Cam2.CurrentBlip.Remove();
  2194.                   }
  2195.                   this.Cam2.MarkAsNoLongerNeeded();
  2196.               }
  2197.               if (this.Cam3 != null)
  2198.               {
  2199.                   if (this.Cam3.CurrentBlip.Exists())
  2200.                   {
  2201.                       this.Cam3.CurrentBlip.Remove();
  2202.                   }
  2203.                   this.Cam3.MarkAsNoLongerNeeded();
  2204.               }
  2205.               if (this.Cam4 != null)
  2206.               {
  2207.                   if (this.Cam4.CurrentBlip.Exists())
  2208.                   {
  2209.                       this.Cam4.CurrentBlip.Remove();
  2210.                   }
  2211.                   this.Cam4.MarkAsNoLongerNeeded();
  2212.               }
  2213.               if (this.Cam5 != null)
  2214.               {
  2215.                   if (this.Cam5.CurrentBlip.Exists())
  2216.                   {
  2217.                       this.Cam5.CurrentBlip.Remove();
  2218.                   }
  2219.                   this.Cam5.MarkAsNoLongerNeeded();
  2220.               }
  2221.               if (this.Drill_LocationBlip != null)
  2222.               {
  2223.                       this.Drill_LocationBlip.Remove();
  2224.               }
  2225.              
  2226.               if (this.BoxWall != null)
  2227.               {
  2228.                   this.BoxWall.MarkAsNoLongerNeeded();
  2229.               }
  2230.               if (this.BoxDoor != null)
  2231.               {
  2232.                   this.BoxDoor.MarkAsNoLongerNeeded();
  2233.               }
  2234.               if (this.CashEnvelope != null)
  2235.               {
  2236.                   this.CashEnvelope.MarkAsNoLongerNeeded();
  2237.               }
  2238.  
  2239.               this.Faild = false;
  2240.           }
  2241.     }
  2242.  
  2243.  
  2244.     public class Driller
  2245.     {
  2246.  
  2247.         public Driller()
  2248.         {
  2249.             Game.Player.Character.Weapons.Give(WeaponHash.Unarmed, 0, true, true);  
  2250.  
  2251.             Function.Call(Hash.SET_PED_CAN_SWITCH_WEAPON, false);
  2252.  
  2253.             Game.Player.Character.FreezePosition = true;  
  2254.        
  2255.             int scale = Function.Call<int>(Hash.REQUEST_SCALEFORM_MOVIE_INSTANCE, "DRILLING");
  2256.  
  2257.             while (!Function.Call<bool>(Hash.HAS_SCALEFORM_MOVIE_LOADED, scale))
  2258.             {
  2259.                 Wait(100);
  2260.             }
  2261.  
  2262.             this.ScaleFormDrilling = scale;  
  2263.  
  2264.             Function.Call(Hash._CALL_SCALEFORM_MOVIE_FUNCTION_FLOAT_PARAMS, scale, "SET_SPEED", .0f, -1082130432, -1082130432, -1082130432, -1082130432);
  2265.             Function.Call(Hash._CALL_SCALEFORM_MOVIE_FUNCTION_FLOAT_PARAMS, scale, "SET_HOLE_DEPTH", .1f, -1082130432, -1082130432, -1082130432, -1082130432);
  2266.             Function.Call(Hash._CALL_SCALEFORM_MOVIE_FUNCTION_FLOAT_PARAMS, scale, "SET_DRILL_POSITION", .0f, -1082130432, -1082130432, -1082130432, -1082130432);
  2267.             Function.Call(Hash._CALL_SCALEFORM_MOVIE_FUNCTION_FLOAT_PARAMS, scale, "SET_TEMPERATURE", .0f, -1082130432, -1082130432, -1082130432, -1082130432);
  2268.  
  2269.             Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "fm_mission_controler");
  2270.  
  2271.             Function.Call(Hash.REQUEST_ANIM_DICT, "anim@heists@fleeca_bank@drilling");
  2272.  
  2273.             while (!Function.Call<bool>(Hash.HAS_ANIM_DICT_LOADED, "anim@heists@fleeca_bank@drilling") &&
  2274.                 !Function.Call<bool>(Hash.HAS_NAMED_PTFX_ASSET_LOADED, "fm_mission_controler") &&
  2275.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "HEIST_FLEECA_DRILL", 0, -1) &&
  2276.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "HEIST_FLEECA_DRILL_2", 0, -1) &&
  2277.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL", 0, -1) &&
  2278.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL_2", 0, -1) &&
  2279.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "SAFE_CRACK", 0, -1) &&
  2280.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "DLC_Biker_Cracked_Sounds", 0, -1) &&
  2281.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "HUD_MINI_GAME_SOUNDSET", 0, -1) &&
  2282.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "MissionFailedSounds", 0, -1) &&
  2283.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "dlc_heist_fleeca_bank_door_sounds", 0, -1) &&
  2284.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "vault_door", 0, -1) &&
  2285.                 !Function.Call<bool>(Hash.REQUEST_SCRIPT_AUDIO_BANK, "Alarms", 0, -1) &&
  2286.                 !Function.Call<bool>(Hash.REQUEST_AMBIENT_AUDIO_BANK, "DLC_HEIST_FLEECA_SOUNDSET", 0, -1))
  2287.             {
  2288.                 Wait(100);
  2289.             }
  2290.  
  2291.             this.Sound = Function.Call<int>(Hash.GET_SOUND_ID);
  2292.  
  2293.             this.PinSound = Function.Call<int>(Hash.GET_SOUND_ID);
  2294.  
  2295.             this.FailSound = Function.Call<int>(Hash.GET_SOUND_ID);
  2296.  
  2297.             var model = new Model("hei_prop_heist_drill");
  2298.             model.Request(10000);
  2299.             Prop drill = World.CreateProp(model, Game.Player.Character.Position, false, false);
  2300.             this.Drill_Prop = drill;  
  2301.             drill.FreezePosition = true;
  2302.             drill.HasCollision = false;
  2303.             Function.Call(Hash.ATTACH_ENTITY_TO_ENTITY, drill, Game.Player.Character, Game.Player.Character.GetBoneIndex((Bone)28422), 0f, 0f, 0f, 0f, 0f, 0f, 0, 0, 0, 0, 2, 1);
  2304.             drill.IsInvincible = true;
  2305.             model.MarkAsNoLongerNeeded();
  2306.  
  2307.             Vector3 po = Game.Player.Character.Position + Game.Player.Character.ForwardVector * 1;
  2308.  
  2309.             Function.Call(Hash.TASK_PLAY_ANIM, Game.Player.Character, "anim@heists@fleeca_bank@drilling", "drill_right_end", 1.0f, .1f, 2000, 0, .0f, 1, 1, 1);
  2310.  
  2311.             this.Drilling = true;  
  2312.  
  2313.             this.DrillSpeed = 0.0f;
  2314.  
  2315.             this.DrillPosition = 0.0f;
  2316.  
  2317.             this.DrillDepth = 0.1f;  
  2318.  
  2319.             this.DrillTemperature = 0.0f;
  2320.  
  2321.             this.Pin_one = false;
  2322.  
  2323.             this.Pin_two = false;
  2324.  
  2325.             this.Pin_three = false;
  2326.  
  2327.             this.Pin_four = false;
  2328.  
  2329.             this.Reset = false;  
  2330.  
  2331.             this.CamMode = 1;
  2332.  
  2333.         }
  2334.  
  2335.         public int ScaleFormDrilling;
  2336.  
  2337.         public int DrillingSound;
  2338.  
  2339.         public bool Drilling;
  2340.  
  2341.         public Prop Drill_Prop;
  2342.  
  2343.         public Prop CashPickup;
  2344.  
  2345.         public bool Pin_one;
  2346.  
  2347.         public bool Pin_two;
  2348.  
  2349.         public bool Pin_three;
  2350.  
  2351.         public bool Pin_four;
  2352.  
  2353.         public bool Reset;
  2354.  
  2355.         public float DrillSpeed;
  2356.  
  2357.         public float DrillDepth;
  2358.  
  2359.         public float DrillPosition;
  2360.  
  2361.         public float DrillTemperature;
  2362.  
  2363.         public int Sound;
  2364.  
  2365.         public int PinSound;
  2366.  
  2367.         public int FailSound;  
  2368.  
  2369.         public int DrillFX;  
  2370.  
  2371.         public int ResetTime;
  2372.  
  2373.         public int CamMode;
  2374.  
  2375.         public void Fail()
  2376.         {
  2377.             Function.Call(Hash.REMOVE_PARTICLE_FX, this.DrillFX, 0);
  2378.             Function.Call(Hash.TASK_PLAY_ANIM, Game.Player.Character, "anim@heists@fleeca_bank@drilling", "drill_straight_fail", 1.0f, .1f, 2000, 0, .0f, 1, 1, 1);
  2379.             this.DrillPosition = 0.0f;
  2380.             this.DrillSpeed = 0.0f;  
  2381.             this.DrillTemperature = 0.0f;
  2382.             this.Reset = false;  
  2383.             this.ResetTime = (int)Game.GameTime + 1000; // set reset time so you cant contimue for 1 second
  2384.         }
  2385.  
  2386.         public void RemoveDriller()
  2387.         {
  2388.             Function.Call(Hash.ENABLE_CONTROL_ACTION, 2, 37); //weapon wheel
  2389.             Function.Call(Hash.ENABLE_CONTROL_ACTION, 2, 27); // dpad up phone
  2390.  
  2391.             Function.Call(Hash.SET_PED_CAN_SWITCH_WEAPON, true);
  2392.  
  2393.             Game.Player.Character.FreezePosition = false;
  2394.  
  2395.             Game.Player.CanControlCharacter = true;
  2396.  
  2397.             Game.Player.Character.Task.ClearAllImmediately();
  2398.  
  2399.             if (this.Drill_Prop != null)
  2400.             {
  2401.                 this.Drill_Prop.Delete();
  2402.  
  2403.             }
  2404.             if (!Function.Call<bool>(Hash.HAS_SOUND_FINISHED, this.Sound))
  2405.             {
  2406.                 Function.Call(Hash.STOP_SOUND, this.Sound);
  2407.             }
  2408.             if (this.Sound != 0)
  2409.             {
  2410.                 Function.Call(Hash.RELEASE_SOUND_ID, this.Sound);
  2411.             }
  2412.  
  2413.             if (!Function.Call<bool>(Hash.HAS_SOUND_FINISHED, this.PinSound))
  2414.             {
  2415.                 Function.Call(Hash.STOP_SOUND, this.PinSound);
  2416.             }
  2417.             if (this.PinSound != 0)
  2418.             {
  2419.                 Function.Call(Hash.RELEASE_SOUND_ID, this.PinSound);
  2420.             }
  2421.  
  2422.             if (!Function.Call<bool>(Hash.HAS_SOUND_FINISHED, this.FailSound))
  2423.             {
  2424.                 Function.Call(Hash.STOP_SOUND, this.FailSound);
  2425.             }
  2426.             if (this.FailSound != 0)
  2427.             {
  2428.                 Function.Call(Hash.RELEASE_SOUND_ID, this.FailSound);
  2429.             }
  2430.  
  2431.  
  2432.             Function.Call(Hash.REMOVE_PARTICLE_FX, this.DrillFX, 0);
  2433.  
  2434.             this.Drilling = false;  
  2435.  
  2436.             this.Pin_one = false;  
  2437.  
  2438.             this.Pin_two = false;
  2439.  
  2440.             this.Pin_three = false;
  2441.  
  2442.             this.Pin_four = false;
  2443.  
  2444.             unsafe
  2445.             {
  2446.                 int d = this.ScaleFormDrilling;
  2447.  
  2448.                 Function.Call(Hash.SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED, &d);
  2449.             }
  2450.  
  2451.             //for (int i = 0; i < Function.Call<int>(Hash.GET_SOUND_ID) + 1; i++)
  2452.             //{
  2453.             //    Function.Call(Hash.STOP_SOUND, i);
  2454.             //    Function.Call(Hash.RELEASE_SOUND_ID, i);
  2455.             //}
  2456.  
  2457.             Function.Call(Hash._REMOVE_NAMED_PTFX_ASSET, "fm_mission_controler");
  2458.  
  2459.             Function.Call(Hash.REMOVE_ANIM_DICT, "anim@heists@fleeca_bank@drilling");
  2460.  
  2461.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "HEIST_FLEECA_DRILL");
  2462.  
  2463.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "HEIST_FLEECA_DRILL_2");
  2464.  
  2465.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL");
  2466.  
  2467.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL_2");
  2468.  
  2469.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_HEIST_FLEECA_SOUNDSET");
  2470.  
  2471.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "SAFE_CRACK");
  2472.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_Biker_Cracked_Sounds");
  2473.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "HUD_MINI_GAME_SOUNDSET");
  2474.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "MissionFailedSounds");
  2475.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "dlc_heist_fleeca_bank_door_sounds");
  2476.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "vault_door");
  2477.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "Alarms");
  2478.  
  2479.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "HEIST_FLEECA_DRILL");
  2480.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "HEIST_FLEECA_DRILL_2");
  2481.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL");
  2482.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_MPHEIST\\HEIST_FLEECA_DRILL_2");
  2483.             //Function.Call(Hash.RELEASE_NAMED_SCRIPT_AUDIO_BANK, "DLC_HEIST_FLEECA_SOUNDSET");
  2484.         }
  2485.  
  2486.  
  2487.  
  2488.     }
  2489.  
  2490.     void DisplayHelpTextThisFrame(string text) // used to display quit message. credit jedijosh920 for this function
  2491.     {
  2492.         Function.Call(Hash._SET_TEXT_COMPONENT_FORMAT, "STRING");
  2493.         Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, text);
  2494.         Function.Call(Hash._0x238FFE5C7B0498A6, 0, 0, 1, -1);
  2495.     }
  2496.  
  2497.  
  2498. }
RAW Paste Data