Пример #1
0
 public static void ExitHouse(HouseInfoGlobalData h)
 {
     MenuList.HideMenu();
     User.SetVirtualWorld(0);
     User.Teleport(new Vector3(h.x, h.y, h.z));
     //SetEntityCoords(GetPlayerPed(-1), ToFloat(Convert.ToInt32(h.x)), ToFloat(Convert.ToInt32(h.y)), ToFloat(Convert.ToInt32(h.z)), true, false, false, true);
 }
Пример #2
0
        public static async void EnterHouse(HouseInfoGlobalData h)
        {
            if ((int)await Client.Sync.Data.Get(100000 + h.id, "pin") > 0)
            {
                if (User.IsAdmin(4))
                {
                    Notification.SendWithTime($"~g~Пароль: ~s~{(int) await Client.Sync.Data.Get(100000 + h.id, "pin")}");
                }

                int pass = Convert.ToInt32(await Menu.GetUserInput("Пароль", null, 5));
                if (pass == h.pin)
                {
                    MenuList.HideMenu();
                    User.SetVirtualWorld(h.id);
                    User.Teleport(new Vector3(h.int_x, h.int_y, h.int_z));
                }
                else
                {
                    Notification.SendWithTime("~r~Вы не верно ввели пароль");
                }
            }
            else
            {
                MenuList.HideMenu();
                User.SetVirtualWorld(h.id);
                User.Teleport(new Vector3(h.int_x, h.int_y, h.int_z));
            }
            //SetEntityCoords(GetPlayerPed(-1), ToFloat(Convert.ToInt32(h.int_x)), ToFloat(Convert.ToInt32(h.int_y)), ToFloat(Convert.ToInt32(h.int_z)), true, false, false, true);
        }
Пример #3
0
        public static async void MenuEnterHouse(HouseInfoGlobalData h)
        {
            h = await GetAllData(h.id);

            if (h.id == 0)
            {
                Notification.SendWithTime("~r~Произошла ошибка, попробуйте еще раз");
                return;
            }

            if (h.is_buy)
            {
                if (h.int_x == 0)
                {
                    MenuList.ShowHouseOutExMenu(h);
                }
                else
                {
                    MenuList.ShowHouseOutMenu(h);
                }
            }
            else
            {
                MenuList.ShowHouseBuyMenu(h);
            }
        }
Пример #4
0
        public static void AddHouseGlobalDataList(dynamic data)
        {
            Debug.WriteLine("START LOAD HOUSES");

            HouseGlobalDataList.Clear();

            /*for (int i = 0; i < HouseWater.Length / 4; i++)
             * {
             *  var pos = new Vector3((float) HouseWater[i, 0], (float) HouseWater[i, 1], (float) HouseWater[i, 2]);
             *  Checkpoint.Create(pos, 1.4f, "house:water");
             *  Marker.Create(pos, 1f, 1f, Marker.Blue.R, Marker.Blue.G, Marker.Blue.B, Marker.Blue.A);
             * }*/

            for (int i = 0; i < HouseInts.Length / 3; i++)
            {
                var pos = new Vector3((float)HouseInts[i, 0], (float)HouseInts[i, 1], (float)HouseInts[i, 2]);
                Checkpoint.Create(pos, 1.4f, "house");
                Marker.Create(pos, 1f, 1f, Marker.Blue.R, Marker.Blue.G, Marker.Blue.B, Marker.Blue.A);
            }

            var localData = (IList <Object>)data;

            foreach (var item in localData)
            {
                try
                {
                    var hInfo     = new HouseInfoGlobalData();
                    var localItem = (IDictionary <String, Object>)item;

                    foreach (var property in typeof(HouseInfoGlobalData).GetProperties())
                    {
                        property.SetValue(hInfo, localItem[property.Name], null);
                    }

                    var blip = World.CreateBlip(new Vector3(hInfo.x, hInfo.y, hInfo.z));
                    blip.Sprite = (BlipSprite)40;
                    //blip.Name = hInfo.is_buy ? "Купленное жильё" : "Свободное жильё";
                    //blip.Name = "";
                    blip.Color        = hInfo.is_buy ? (BlipColor)59 : (BlipColor)69;
                    blip.IsShortRange = true;
                    blip.Scale        = 0.4f; //86

                    HouseBlipList.Add(hInfo.id.ToString(), blip);
                    Checkpoint.Create(blip.Position, 1.4f, "house");
                    Marker.Create(blip.Position, 1f, 1f, Marker.Blue.R, Marker.Blue.G, Marker.Blue.B, Marker.Blue.A);

                    HouseGlobalDataList.Add(hInfo);
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.ToString(), "");
                    throw;
                }
            }

            Main.FinishLoad();

            Debug.WriteLine($"FINISH LOAD HOUSES ({HouseGlobalDataList.Count})");
        }
Пример #5
0
        public static async void MenuExitHouse(HouseInfoGlobalData h)
        {
            h = await GetAllData(h.id);

            if (User.GetPlayerVirtualWorld() == h.id)
            {
                MenuList.ShowHouseInMenu(h);
            }
        }
Пример #6
0
        public static async Task <HouseInfoGlobalData> GetAllData(int id)
        {
            var data = await Client.Sync.Data.GetAll(100000 + id);

            if (data == null)
            {
                return(new HouseInfoGlobalData());
            }

            var hData     = new HouseInfoGlobalData();
            var localData = (IDictionary <String, Object>)data;

            foreach (var property in typeof(HouseInfoGlobalData).GetProperties())
            {
                property.SetValue(hData, localData[property.Name], null);
            }

            return(hData);
        }
Пример #7
0
        public static void LoadHouse(DataRow row)
        {
            var housesObj = new HouseInfoGlobalData()
            {
                id        = (int)row["id"],
                address   = (string)row["address"],
                price     = (int)row["price"],
                name_user = (string)row["name_user"],
                id_user   = (int)row["id_user"],
                is_buy    = (bool)row["is_buy"],
                pin       = (int)row["pin"],
                x         = (float)row["x"],
                y         = (float)row["y"],
                z         = (float)row["z"],
                int_x     = (float)row["int_x"],
                int_y     = (float)row["int_y"],
                int_z     = (float)row["int_z"],
                pid2      = (int)row["pid2"],
                pid3      = (int)row["pid3"],
                pid4      = (int)row["pid4"],
                pid5      = (int)row["pid5"],
                pid6      = (int)row["pid6"],
                pid7      = (int)row["pid7"],
                pid8      = (int)row["pid8"],
                pid9      = (int)row["pid9"],
                pid10     = (int)row["pid10"]
            };

            foreach (var property in typeof(HouseInfoGlobalData).GetProperties())
            {
                Server.Sync.Data.Reset(100000 + housesObj.id, property.Name);
                Server.Sync.Data.Set(100000 + housesObj.id, property.Name, property.GetValue(housesObj, null));
            }

            HouseGlobalDataList.Add(housesObj);
            MaxHouses++;
        }
Пример #8
0
        public static async void SellHouse(HouseInfoGlobalData h)
        {
            if (Screen.LoadingPrompt.IsActive)
            {
                Notification.SendWithTime(Lang.GetTextToPlayer("_lang_34"));
                return;
            }

            Client.Sync.Data.ShowSyncMessage = false;
            Screen.LoadingPrompt.Show("Обработка запроса, подождите");

            await User.GetAllData();

            var hData = await GetAllData(h.id);

            var playerId = User.GetServerId();

            if (hData.id == 0)
            {
                Notification.SendWithTime(Lang.GetTextToPlayer("_lang_35"));
                return;
            }

            if (hData.id_user != User.Data.id)
            {
                //Notification.SendWithTime("~r~Сожителям запрещено продавать дом");
                //return;
            }

            if (User.Data.id_house == 0)
            {
                Notification.SendWithTime("~r~У Вас нет недвижимости");
                return;
            }

            Client.Sync.Data.Set(playerId, "id_house", 0);

            await Delay(200);

            if (await Client.Sync.Data.Get(playerId, "id_house") != 0)
            {
                Notification.SendWithTime(Lang.GetTextToPlayer("_lang_32"));
                return;
            }

            var nalog = hData.price * (100 - Coffer.GetNalog()) / 100;

            User.AddMoney(nalog);
            Coffer.RemoveMoney(nalog);

            Main.SaveLog("BuySellHouse", $"[SELL] {User.Data.id} {User.Data.rp_name} | {nalog} | {User.Data.id_house}");

            User.Data.id_house = 0;
            Notification.SendWithTime($"~g~{Coffer.GetNalog()}%\n~s~Получено: ~g~${nalog:#,#}");

            if (User.Data.reg_status != 3)
            {
                Client.Sync.Data.Set(playerId, "reg_time", 28);
                Client.Sync.Data.Set(playerId, "reg_status", 1);
            }

            TriggerServerEvent("ARP:UpdateHouseInfo", "", 0, 0, hData.id);

            User.SaveAccount();
            MenuList.HideMenu();
            await User.GetAllData();

            Screen.LoadingPrompt.Hide();
            Client.Sync.Data.ShowSyncMessage = true;
        }
Пример #9
0
        public static async void BuyHouse(HouseInfoGlobalData h)
        {
            await User.GetAllData();

            var hData = await GetAllData(h.id);

            var playerId = User.GetServerId();

            if (hData.id == 0)
            {
                Notification.SendWithTime(Lang.GetTextToPlayer("_lang_35"));
                return;
            }

            if (hData.id_user != 0)
            {
                Notification.SendWithTime("~r~Недвижимость уже куплена");
                return;
            }

            if (User.Data.id_house != 0)
            {
                Notification.SendWithTime("~r~У Вас уже есть недвижимость");
                return;
            }

            if (User.GetMoneyWithoutSync() < hData.price)
            {
                Notification.SendWithTime(Lang.GetTextToPlayer("_lang_2"));
                return;
            }

            Client.Sync.Data.Set(playerId, "id_house", hData.id);

            await Delay(200);

            if (await Client.Sync.Data.Get(playerId, "id_house") == 0)
            {
                Notification.SendWithTime(Lang.GetTextToPlayer("_lang_32"));
                return;
            }

            User.RemoveMoney(hData.price);
            Coffer.AddMoney(hData.price);

            User.Data.id_house = hData.id;

            Main.SaveLog("BuySellHouse", $"[BUY] {User.Data.id} {User.Data.rp_name} | {hData.price} | {User.Data.id_house}");


            Notification.SendWithTime("~g~Поздравляем с покупкой недвижимости");

            if (User.Data.reg_status != 3)
            {
                Client.Sync.Data.Set(playerId, "reg_time", 372);
                Client.Sync.Data.Set(playerId, "reg_status", 2);
            }

            TriggerServerEvent("ARP:UpdateHouseInfo", User.Data.rp_name, User.Data.id, 1, hData.id);

            User.SaveAccount();
            MenuList.HideMenu();

            await Delay(10000);

            await User.GetAllData();
        }