コード例 #1
0
        private void LoadAll()
        {
            Thread.Sleep(3000);
            Chat         = Chat.GetInstance();
            Game         = Game.GetInstance();
            Player       = Player.GetInstance();
            World        = World.GetInstance();
            Vehicle      = Vehicle.GetInstance();
            remotePlayer = RemotePlayer.GetInstance();

            AmbulanceCalls      = new List <AmbulanceCall>();
            Chat.OnChatMessage += OnChatMessageReceived;
            Chat.OnCommand     += OnCommandReceived;
            MyName              = Player.GetName();
            LoadRobberies();


            Task.Run(() =>
            {
                List <string> robsToRemove = new List <string>();
                while (true)
                {
                    foreach (var r in Robberies)
                    {
                        TimeSpan delta = r.Value.AddMinutes(28) - DateTime.Now;
                        if (delta.Minutes > 0 && delta.Minutes < 4)
                        {
                            Chat.Send($"/fb [Warning] Через {delta.Minutes} минуты(у) планируется ограбление {r.Key}");
                            SAMP_API.API.ShowGameText($"Prepare for robbery. {r.Key} will be in {delta.Minutes} minutes", 2, 1);
                            Task.Delay(1200);
                        }
                        else if (delta.Hours < -2)
                        {
                            robsToRemove.Add(r.Key);
                        }
                    }
                    foreach (string rob in robsToRemove)
                    {
                        Robberies.Remove(rob);
                    }
                    DrawUIRobTimings();
                    Task.Delay(1000 * 60).Wait();
                }
            });


            SAMP_API.API.DestroyAllVisual();
            Thread.Sleep(500);
            SAMP_API.API.ShowGameText("PDHelper by FoxPro loaded", 20, 1);

            Chat.RegisterCommand("/rob", (c, v) =>
            {
                SendRobInfo();
            });
            Chat.RegisterCommand("/sfollow", (c, v) =>
            {
                Thread.Sleep(1100);
                if (string.IsNullOrEmpty(v[0]))
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                uint id     = uint.Parse(v[0]);
                string name = SAMP_API.API.GetPlayerNameByIDEx((int)id).Replace("_", " ");
                Chat.Send($"/me взял преступника за локоть и повел его");
                Thread.Sleep(1170);
                Chat.Send($"/follow {id}");
            });
            Chat.RegisterCommand("/clearrob", (c, v) =>
            {
                ClearRob();
            });
            Chat.RegisterCommand("/scput", (c, v) =>
            {
                if (v.Length < 1)
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                Thread.Sleep(1100);

                if (string.IsNullOrEmpty(v[0]))
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                uint id = uint.Parse(v[0]);

                string name = SAMP_API.API.GetPlayerNameByIDEx((int)id).Replace("_", " ");
                Thread.Sleep(1170);
                Chat.Send("/me открыл дверь автомобиля");
                Thread.Sleep(1170);
                Chat.Send($"/me ухватил {name} за руки и шею");
                Thread.Sleep(1170);
                Chat.Send($"/cput {id}");
                Thread.Sleep(1170);
                Chat.Send("/me закрыл дверь");
            });
            Chat.RegisterCommand("/scuff", (c, v) =>
            {
                if (v.Length < 1)
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                Thread.Sleep(1100);
                if (string.IsNullOrEmpty(v[0]))
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                uint id     = uint.Parse(v[0]);
                string name = SAMP_API.API.GetPlayerNameByIDEx((int)id).Replace("_", " ");
                Chat.Send($"/me снял наручники с пояса и зацепил на руки {name}");
                Thread.Sleep(1150);
                Chat.Send($"/cuff {id}");
            });
            Chat.RegisterCommand("/smdc", (c, v) =>
            {
                if (v.Length < 1)
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                Thread.Sleep(1100);
                if (string.IsNullOrEmpty(v[0]))
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                uint id = uint.Parse(v[0]);
                // string name = remotePlayer.GetPlayerNameById(id, true);
                string name = SAMP_API.API.GetPlayerNameByIDEx((int)id);
                Thread.Sleep(1170);
                Chat.Send($"/seeme включил мобильный компьютер и пробил информацию о {name}".Replace("_", " "));
                Thread.Sleep(1170);
                Chat.Send($"/mdc {id}");
            });
            Chat.RegisterCommand("/sfrisk", (c, v) =>
            {
                if (v.Length < 1)
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                Thread.Sleep(1100);
                if (string.IsNullOrEmpty(v[0]))
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                uint id     = uint.Parse(v[0]);
                string name = SAMP_API.API.GetPlayerNameByIDEx((int)id).Replace("_", " ");
                Thread.Sleep(1170);
                Chat.Send("/me достал из кармана и надел перчатки");
                Thread.Sleep(1170);
                Chat.Send($"/me похлопал {name} по телу, проверил карманы, обыскав его");
                Thread.Sleep(1170);
                Chat.Send($"/frisk {id}");
            });
            Chat.RegisterCommand("/sticket", (c, v) =>
            {
                if (v.Length < 1)
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                if (string.IsNullOrEmpty(v[0]))
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                uint id     = uint.Parse(v[0]);
                string name = SAMP_API.API.GetPlayerNameByIDEx((int)id).Replace("_", " ");
                Thread.Sleep(1170);
                Chat.Send($"/me взял документы {name}");
                Thread.Sleep(1170);
                Chat.Send($"/me достал бланк и ручку, вписал данные паспорта {name} и поставил роспись");
            });
            Chat.RegisterCommand("/shi", (c, v) =>
            {
                if (v.Length < 1)
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                Thread.Sleep(1100);
                if (string.IsNullOrEmpty(v[0]))
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                uint id       = uint.Parse(v[0]);
                string MyName = Player.GetName().Replace("_", " ");
                Chat.Send($"{nameTextBox.Text} LSPD {MyName}.");
                if (shouldShowPassCheckBox.Checked)
                {
                    Thread.Sleep(1100);
                    Chat.Send($"/showpass {id}");
                }
            });
            Chat.RegisterCommand("/sceject", (c, v) =>
            {
                if (v.Length < 1)
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                Thread.Sleep(1170);
                if (string.IsNullOrEmpty(v[0]))
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                uint id     = uint.Parse(v[0]);
                string name = SAMP_API.API.GetPlayerNameByIDEx((int)id).Replace("_", " ");
                //Thread.Sleep(1170);
                Chat.Send("/me открыл дверь");
                Thread.Sleep(1170);
                Chat.Send($"/me взял {name} за шею");
                Thread.Sleep(1170);
                Chat.Send($"/ceject {id}");
            });
            Chat.RegisterCommand("/aac", OnServiceAccepted);
            Chat.RegisterCommand("/aacc", OnCustomServiceAccepted);
            Chat.RegisterCommand("/ph", (c, v) =>
            {
                Chat.AddMessage("PoliceHelper is working!", "f56342");
                Thread.Sleep(1450);
                Chat.Send("/f Ребят. Я складываю полномочия и передаю их новому шерифу LSPD - Диме Галкину.");
            });
            Chat.RegisterCommand("/gs", (c, v) =>
            {
                Chat.AddMessage($"Маркер находится в {GetCurrentCity()}, {GetCurrentZone()}");
            });
            Chat.RegisterCommand("/delo", (c, v) =>
            {
                if (v.Length < 3)
                {
                    Chat.AddMessage("Введите id, количество звезд и параметр [off/dead/ok]");
                    return;
                }
                Thread.Sleep(1100);
                if (string.IsNullOrEmpty(v[0]) || string.IsNullOrEmpty(v[1]) || string.IsNullOrEmpty(v[2]))
                {
                    Chat.AddMessage("Введите id человека");
                    return;
                }
                string deloid = v[0];
                int srok      = int.Parse(v[1]);
                string type   = v[2];
                string srok_s = "года";
                if (srok == 1)
                {
                    srok_s = "год";
                }
                else if (srok == 5 || srok == 6)
                {
                    srok_s = "лет";
                }
                if (type == "off")
                {
                    Chat.Send($"/f {settings.Tag} Дело № XX закрыто. Преступнику грозит {srok} {srok_s} ТЗ.");
                }
                else if (type == "dead")
                {
                    Chat.Send($"/f {settings.Tag} Дело № {deloid} закрыто. Преступник доправлен в больницу, ему грозит {srok} {srok_s} ТЗ.");
                }
                else
                {
                    Chat.Send($"/f {settings.Tag} Дело № {deloid} закрыто. Преступнику грозит {srok} {srok_s} ТЗ.");
                }
            });
            Chat.RegisterCommand("/mhstats", (c, v) =>
            {
                var ds = GetAllDays();
                if (ds != null)
                {
                    int totalCallAccepted = 0;
                    foreach (var day in ds)
                    {
                        totalCallAccepted += day.Calls.Count;
                    }
                    string report = $"Всего принято вызовов: {totalCallAccepted}";
                    Chat.AddMessage(report);
                    Log(report);
                }
            });
            Chat.AddMessage("PoliceHelper by FoxPro [Dima_Galkin] loaded sucessfully!", "f56342");
            Chat.AddMessage("/ph - статус программы, /gs - текущая зона и город, /aac - принять последний вызов, /aacc [id] - принять вызов от id", "f56342");
            Chat.AddMessage("/clearrob, /scput, /sceject, /shi, /scuff, /sfrisk, /smdc", "f56342");
            Chat.AddMessage("/gs - текущее местоположение маркера на карте", "f56342");
            Thread.Sleep(50);

            var days = GetAllDays();

            if (days != null)
            {
                int totalCallAccepted = 0;
                foreach (var day in days)
                {
                    if (day.date.Date == DateTime.Now.Date)
                    {
                        AmbulanceCalls = day.Calls;
                    }
                    totalCallAccepted += day.Calls.Count;
                }
                string report = $"Всего принято вызовов: {totalCallAccepted}";
                Chat.AddMessage(report);
                Log(report);
            }
        }