Exemplo n.º 1
0
        public static void LoadRPC(Form f, Listeners.OnNativeListener onNative)
        {
            using (OpenFileDialog ofd = new OpenFileDialog())
            {
                ofd.Title = "Load RPC BASE From File";
                DialogResult dr = ofd.ShowDialog();
                if (dr == DialogResult.OK)
                {
                    rpc.Clear();
                    Thread t = new Thread(new ThreadStart(() =>
                    {
                        try
                        {
                            isFinished = false;
                            String backup = f.Text;
                            f.Invoke(new Action(() =>
                            {
                                f.Text = "Loading RPC BASE...";
                            }));
                            string file = System.IO.File.ReadAllText(ofd.FileName);
                            string[] s_native = file.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
                            foreach (string native in s_native)
                            {
                                string[] hash = native.Split(new string[] { "=" }, StringSplitOptions.None);
                                if (hash.Length > 1)
                                {
                                    string name = hash[0].Trim();
                                    UInt32 offset = Convert.ToUInt32(hash[1].Trim(), 16);
                                    if (!rpc.ContainsKey(name))
                                    {
                                        rpc.Add(name, offset);
                                    }
                                }
                            }

                            isFinished = true;
                            f.Invoke(new Action(() =>
                            {

                                onNative.OnNativesLoaded("RPC BASE Loaded!");
                                f.Text = "RPC BASE Loaded";
                                new Thread(new ThreadStart(() =>
                                {
                                    Thread.Sleep(3000);
                                    f.Invoke(new Action(() =>
                                    {
                                        f.Text = backup;
                                    }));
                                })).Start();
                            }));
                        }
                        catch (Exception ex)
                        {

                            f.Invoke(new Action(() =>
                            {
                                onNative.OnNativesFailed("Failed To Load RPC BASE");
                            }));
                        }
                    }));
                    t.Start();

                }
                else
                {

                }
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Load Natives From URL
 /// </summary>
 /// <param name="f">this form </param>
 /// <param name="onNative">public class Form1 : Form, GTAVDB.Listeners.OnNativeListener</param>
 /// <param name="link">Provide Link to load natives</param>
 public static void LoadNatives(Form f, Listeners.OnNativeListener onNative,string link)
 {
     natives.Clear();
     Thread t = new Thread(new ThreadStart(() =>
     {
         try
         {
             isFinished = false;
             String backup = f.Text;
             f.Invoke(new Action(() =>
             {
                 f.Text = "Loading Natives...";
             }));
             WebClient wc = new WebClient();
             string file = wc.DownloadString(link);
             string[] s_native = file.Split(new string[] { "," }, StringSplitOptions.None);
             foreach (string native in s_native)
             {
                 string[] hash = native.Split(new string[] { "=" }, StringSplitOptions.None);
                 if (hash.Length > 1)
                 {
                     string name = hash[0].Trim();
                     UInt32 offset = Convert.ToUInt32(hash[1].Trim(), 16);
                     if (!natives.ContainsKey(name))
                     {
                         natives.Add(name, offset);
                     }
                 }
             }
             f.Invoke(new Action(() =>
             {
                 onNative.OnNativesLoaded("Loaded");
                 f.Text = "Natives Loaded";
                 new Thread(new ThreadStart(() =>
                 {
                     Thread.Sleep(3000);
                     f.Invoke(new Action(() =>
                     {
                         f.Text = backup;
                         isFinished = true;
                     }));
                 })).Start();
             }));
         }catch(Exception ex){
             f.Invoke(new Action(() =>
             {
                 onNative.OnNativesFailed("Failed To Load Natives");
             }));
         }
     }));
     t.Start();
 }