Beispiel #1
0
        public void GiveMoney(Client sender, int _Id, int Value)
        {
            var player = db_Accounts.GetPlayerById(_Id);

            if (player != null)
            {
                if (Vector3.Distance(player.position, sender.position) > 3)
                {
                    API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Oyuncu yanınızda olmalı."); return;
                }
                int giverMoney = API.getEntityData(sender, "Money"), takerMoney = API.getEntityData(player, "Money");
                if (Value <= giverMoney)
                {
                    InventoryManager.AddMoneyToPlayer(sender, -1 * Value);
                    InventoryManager.AddMoneyToPlayer(player, Value);

                    //giverMoney -= Value;
                    //takerMoney += Value;
                    //API.setEntityData(sender, "Money", giverMoney);
                    //API.setEntityData(player, "Money", takerMoney);
                    //API.triggerClientEvent(sender, "update_money_display", giverMoney);
                    //API.triggerClientEvent(player, "update_money_display", takerMoney);
                    rpgMgr.Me(sender, " bir miktar para çıkarır ve " + db_Accounts.GetPlayerCharacterName(player) + " adlı kişiye verir.");
                }
                else
                {
                    API.sendChatMessageToPlayer(sender, "~r~Maalesef üzerinizde ~s~" + Value + " ~r~bulunmuyor.");
                }
            }
            else
            {
                API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Oyuncu bulunamadı.");
            }
        }
Beispiel #2
0
 public static void RespawnPlayer(Client sender, bool moneyTaken = true)
 {
     API.shared.setEntityInvincible(sender, false);
     sender.freeze(false);
     API.shared.setEntityData(sender, "Dead", false);
     sender.stopAnimation();
     if (moneyTaken)
     {
         sender.sendChatMessage("~c~(( ~w~Maalesef kurtarılamadınız. ~c~))");
         InventoryManager.AddMoneyToPlayer(sender, -1 * db_Hospital.hospital.RespawnPrice);
     }
     else
     {
         sender.sendChatMessage("~c~(( ~w~Kuratıldınız!. ~c~))");
     }
     sender.position  = db_Hospital.hospital.RespawnPoint;
     sender.dimension = db_Hospital.hospital.RespawnDimension;
 }
Beispiel #3
0
        public static void CompleteAdvertisement(Client sender, string text, bool phone = true)
        {
            if ((phone ? InventoryManager.IsEnougMoneyInBank(sender, 50) : InventoryManager.IsEnoughMoney(sender, 50)))
            {
                if (phone)
                {
                    InventoryManager.AddMoneyToPlayerBank(sender, -50);
                }
                else
                {
                    InventoryManager.AddMoneyToPlayer(sender, -50);
                }

                var _Id = db_Adversitements.Add(new Models.Advertisement(sender.socialClubName, text));
                API.shared.sendChatMessageToPlayer(sender, "~g~[WZNews] ~s~- Reklamınız alındı. Onaylandıktan sonra yayınlanacaktır.");
                RPGManager.SendAllPlayersInFaction(5, $"~g~[WZNews] ((/ro {_Id} | /rr {_Id}))~s~ -[{db_Accounts.GetPlayerCharacterName(sender)}] {text}");
                Admin.AdminCommands.SendMessage($"~g~[WZNews] ((/ro {_Id} | /rr {_Id}))~s~ -[{db_Accounts.GetPlayerCharacterName(sender)}] {text}", 5, 1);
            }
            else
            {
                API.shared.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Bunun için " + (phone ? "bankanızda ": " ") + "en az ~r~50$~s~ paranız olmalı.");
            }
        }
        public void BuyVehicle(Client sender, params object[] args)
        {
            var         shop = db_VehicleShops.Get(Convert.ToInt32(args[0]));
            VehicleHash hash = API.vehicleNameToModel(args[1].ToString());

            var vehPrice = db_VehicleShops.GetPrice(hash);

            if (vehPrice == null)
            {
                API.sendChatMessageToPlayer(sender, "~r~HATA: ~w~Araç bulunamadı."); return;
            }

            if (!InventoryManager.IsEnoughMoney(sender, vehPrice.Price))
            {
                API.sendChatMessageToPlayer(sender, $"~r~HATA: ~w~Bu aracı alabilmek için en az ~g~${vehPrice.Price}~w~ paranız olmalı."); return;
            }

            InventoryManager.AddMoneyToPlayer(sender, -vehPrice.Price);

            var veh = db_Vehicles.CreateVehicle(hash, shop.DeliveryPosition, shop.DeliveryRotation, shop.DeliveryDimension, sender.socialClubName);

            sender.setIntoVehicle(veh.VehicleOnMap, -1);
        }
Beispiel #5
0
        public RPGElements()
        {
            API.onPlayerDeath += API_onPlayerDeath;
            var taxes = db_Vehicles.GetVehicleTaxes();

            Task.Run(async() =>
            {
                API.consoleOutput("Player Task Başladı.");
                baslangic:
                try
                {
                    foreach (var itemPlayer in API.getAllPlayers())
                    {
                        if (API.shared.getEntityData(itemPlayer, "LOGGED_IN") != null && API.shared.getEntityData(itemPlayer, "LOGGED_IN") == true)
                        {
                            float _Hunger       = Convert.ToSingle(API.getEntityData(itemPlayer, "Hunger"));
                            float _Thirsty      = Convert.ToSingle(API.getEntityData(itemPlayer, "Thirsty"));
                            int _playingMinutes = Convert.ToInt32(API.getEntityData(itemPlayer, "playingMinutes"));
                            _playingMinutes++;
                            if (_playingMinutes % 60 == 0)
                            {
                                #region Salary
                                int _salary = FactionManager.GetPlayerFaction(itemPlayer) > 0 ? (int)(((((_playingMinutes / 60) * 10) + 750) * SalaryMultiplier) * (FactionManager.GetPlayerRank(itemPlayer).RankLevel * 0.1f + 1)) : (int)((((_playingMinutes / 60) * 10) + 750) * SalaryMultiplier);
                                API.sendChatMessageToPlayer(itemPlayer, "~g~Maaşınız " + _salary + " hesabınıza eklendi.");
                                InventoryManager.AddMoneyToPlayer(itemPlayer, _salary);
                                #endregion
                            }
                            API.setEntityData(itemPlayer, "playingMinutes", _playingMinutes);

                            if (API.getEntityData(itemPlayer, "Jailed") == false)
                            {
                                #region HungerThirsty
                                if (_Thirsty <= 5 || _Hunger <= 5)
                                {
                                    itemPlayer.health -= 19;
                                }
                                else
                                {
                                    API.setEntityData(itemPlayer, "Hunger", _Hunger - 1);
                                    if (_playingMinutes % 2 == 0)
                                    {
                                        API.setEntityData(itemPlayer, "Thirsty", _Thirsty - 1f);
                                    }
                                }
                                API.triggerClientEvent(itemPlayer, "update_hungerthirsty", _Hunger, _Thirsty);
                                #endregion
                            }
                            else
                            {
                                //JAILED SITUATION
                                #region JailTime
                                int?jailTime = API.getEntityData(itemPlayer, "JailedTime");
                                if (jailTime != null)
                                {
                                    if (jailTime <= 0)
                                    {
                                        itemPlayer.position  = db_Arrests.currentArrests.Item1.FirstOrDefault().Position;
                                        itemPlayer.dimension = db_Arrests.currentArrests.Item1.FirstOrDefault().Dimension;
                                        API.setEntityData(itemPlayer, "Jailed", false);
                                    }
                                    else
                                    {
                                        jailTime--;
                                        API.setEntityData(itemPlayer, "JailedTime", jailTime);
                                    }
                                }
                                #endregion
                            }
                            db_Accounts.SavePlayerAccount(itemPlayer);
                        }
                    }
                }
                catch (Exception ex)
                {
                    API.shared.consoleOutput(LogCat.Fatal, ex.ToString());
                    goto Outside;
                }

                Outside:
                await Task.Delay(60000);
                goto baslangic;
            });

            Task.Run(async() =>
            {
                API.consoleOutput("Vehicle Task Başladı.");
                baslangic:
                #region Weather&Time
                API.setTime(DateTime.Now.Hour, DateTime.Now.Minute);

                try
                {
                    if (DateTime.Now.Minute == 0)
                    {
                        Random rnd = new Random();
                        if (rnd.Next(0, 100) < 5)
                        {
                            API.setWeather(11); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 7)
                        {
                            API.setWeather(4); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 7)
                        {
                            API.setWeather(5); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 7)
                        {
                            API.setWeather(7); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 8)
                        {
                            API.setWeather(6); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 10)
                        {
                            API.setWeather(9); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 10)
                        {
                            API.setWeather(10); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 15)
                        {
                            API.setWeather(12); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 15)
                        {
                            API.setWeather(8); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 20)
                        {
                            API.setWeather(3); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 25)
                        {
                            API.setWeather(1); goto OutOfWeatherTime;
                        }
                        if (rnd.Next(0, 100) < 25)
                        {
                            API.setWeather(2); goto OutOfWeatherTime;
                        }

                        API.setWeather(0);
                    }
                }
                catch (Exception ex)
                {
                    API.consoleOutput(LogCat.Warn, "Weather Error: " + ex.ToString());
                    goto OutOfWeatherTime;
                }

                #endregion

                OutOfWeatherTime:


                foreach (var itemVeh in db_Vehicles.currentVehList.Items)
                {
                    if (itemVeh.IsBlockedForTax == false && itemVeh.PastMinutes % 60 == 0)
                    {
                        if (itemVeh.JobId > 0 || itemVeh.FactionId > 0)
                        {
                            continue;
                        }
                        var _vehTax  = taxes.Find(x => x.VehicleName == itemVeh.VehicleModelId);
                        itemVeh.Tax += (_vehTax.TaxPerHour);
                        if (itemVeh.Tax >= _vehTax.MaxTax)
                        {
                            itemVeh.IsBlockedForTax = true;
                        }
                    }

                    if (!String.IsNullOrEmpty(itemVeh.RentedPlayerSocialClubId))
                    {
                        if ((DateTime.Now - itemVeh.RentedTime).Hours >= 5 && API.shared.getVehicleOccupants(itemVeh.VehicleOnMap).Length <= 0)
                        {
                            db_Vehicles.RemoveVehicle(itemVeh.VehicleId);
                        }
                    }

                    itemVeh.PastMinutes++;
                }
                db_Vehicles.SaveChanges();
                //API.consoleOutput("__________________________Minute Task____________________");
                await Task.Delay(60000);
                goto baslangic;
            });

            Task.Run(async() =>
            {
                foreach (var itemPlayer in db_Accounts.GetOfflineUserDatas())
                {
                    var _player = db_Accounts.IsPlayerOnline(itemPlayer.socialClubName);
                    if (_player != null)
                    {
                        if (!String.IsNullOrEmpty(API.getEntityData(_player, "BankAccount")))
                        {
                            int _pastBankMinutes = API.getEntityData(_player, "PastBankMinutes");
                            if (_pastBankMinutes % 60 == 0)
                            {
                                int _bankMoney    = API.getEntityData(_player, "BankMoney");
                                _bankMoney       += (int)(_bankMoney * 0.01f);
                                _pastBankMinutes -= 60;
                                API.setEntityData(_player, "PastBankMinutes", _pastBankMinutes);
                                API.setEntityData(_player, "BankMoney", _bankMoney);
                            }
                        }
                    }
                    else
                    {
                        itemPlayer.PastBankMinutes++;
                        if (itemPlayer.PastBankMinutes % 60 == 0)
                        {
                            itemPlayer.BankMoney       += (int)(itemPlayer.BankMoney * 0.01f);
                            itemPlayer.PastBankMinutes -= 60;
                        }
                        db_Accounts.SaveOfflineUserData(itemPlayer.socialClubName, itemPlayer);
                    }
                }

                await Task.Delay(60000);
            });
        }
Beispiel #6
0
        public void BuyItem(Client sender, params object[] args)
        {
            //args = [shopid] [gameItemId] [index]
            var _Shop = db_Shops.GetShop(Convert.ToInt32(args[0]));

            if (_Shop == null)
            {
                API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Satıcı bulunamadı."); return;
            }

            var _saleItem = _Shop.SaleItemList.FirstOrDefault(x => x.GameItemId == Convert.ToInt32(args[1]));

            if (_Shop == null)
            {
                API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu eşya bu satıcıda satılmıyor."); return;
            }

            int index = Convert.ToInt32(args[2]);

            if (!InventoryManager.IsEnoughMoney(sender, _saleItem.Price))
            {
                API.sendChatMessageToPlayer(sender, $"Bunu alabilmek için en az ~r~{_saleItem.Price}$ ~s~paranız olmalı."); return;
            }


            var buyedItem     = db_Items.GetItemById(_saleItem.GameItemId);
            int missionNumber = (API.hasEntityData(sender, "Mission") ? API.getEntityData(sender, "Mission") : 0);

            switch (buyedItem.Type)
            {
            case ItemType.Phone:
                if (InventoryManager.AddItemToPlayerInventory(sender, new Models.ClientItem
                {
                    ItemId = buyedItem.ID,
                    Count = 1,
                    Equipped = false,
                    SpecifiedValue = API.toJson(new SpecifiedValuePhone {
                        Applications = new List <Application> {
                            Application.GPS
                        }, AutoInternetPay = false, Balance = 0, FlightMode = false, PhoneOperator = null, Contacts = new Dictionary <string, string>(), Frequence = -1, InternetBalance = 0, PhoneNumber = null,
                    })
                }))
                {
                    InventoryManager.AddMoneyToPlayer(sender, -1 * _Shop.SaleItemList[index].Price);
                    #region AboutMission

                    if (missionNumber == 2)
                    {
                        Clients.ClientManager.RemoveMissionMarker(sender);
                        API.setEntityData(sender, "Mission", 3);
                        UserManager.TriggerUserMission(sender);
                    }

                    #endregion
                    return;
                }
                break;

            case ItemType.Skin:
                if (InventoryManager.AddItemToPlayerInventory(sender, new ClientItem {
                    ItemId = buyedItem.ID, Count = 1, Equipped = false
                }))
                {
                    InventoryManager.AddMoneyToPlayer(sender, -1 * _Shop.SaleItemList[index].Price);
                    return;
                }
                break;

            case ItemType.Weapon:
                var _inventory = (Inventory)API.getEntityData(sender, "inventory");

                if (Convert.ToInt32(buyedItem.Value_2) < 1 || _inventory.ItemList.Any(x => x.ItemId == 302 && x.SpecifiedValue == sender.socialClubName || Convert.ToInt32(buyedItem.Value_2) == 4))
                {
                    if (InventoryManager.AddItemToPlayerInventory(sender, new ClientItem {
                        ItemId = buyedItem.ID, Count = 1, Equipped = false
                    }))
                    {
                        InventoryManager.AddMoneyToPlayer(sender, -1 * _Shop.SaleItemList[index].Price);
                    }
                }
                else
                {
                    API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Buradan alışveriş yapmak için kendinize ait bir silah ruhsatına ihtiyacınız var.");
                }

                return;

            default:
                if (InventoryManager.AddItemToPlayerInventory(sender, new ClientItem {
                    ItemId = buyedItem.ID, Count = 1, Equipped = false
                }))
                {
                    InventoryManager.AddMoneyToPlayer(sender, -1 * _Shop.SaleItemList[index].Price);
                    #region AboutMission
                    if (missionNumber == 1 && buyedItem.Type >= ItemType.Mask && buyedItem.Type <= ItemType.Tops)
                    {
                        Clients.ClientManager.RemoveMissionMarker(sender);
                        API.setEntityData(sender, "Mission", 2);
                        UserManager.TriggerUserMission(sender);
                    }
                    #endregion
                    return;
                }
                break;
            }
            API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu eşya için envanterinizde daha fazla yer bulunmuyor.");
        }
Beispiel #7
0
        public void Fuel(Client sender, string commandParam)
        {
            string[] splitted = commandParam.Split(' ');

            if (splitted.Length > 1)
            {
                float requestedFuel = Convert.ToSingle(splitted[1]);
                if ("doldur".StartsWith(splitted[0].ToLower()))
                {
                    #region doldur


                    var _vehicle = db_Vehicles.FindNearestVehicle(sender.position);
                    if (sender.isInVehicle)
                    {
                        API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Bunun için motoru kapayıp arabadan inmelisiniz."); return;
                    }
                    if (Vector3.Distance(_vehicle.VehicleOnMap.position, sender.position) < 4 || sender.currentWeapon == WeaponHash.PetrolCan)
                    {
                        if (_vehicle.VehicleOnMap.engineStatus == false)
                        {
                            foreach (var itemGas in db_GasStations.CurrentGasStations.Item1)
                            {
                                if (Vector3.Distance(sender.position, itemGas.Position) < 2)
                                {
                                    //Models.Business business = null;
                                    //if (itemGas.BusinessId != null)
                                    //{
                                    //    business = db_Businesses.currentBusiness[(int)itemGas.BusinessId];
                                    //    if (business != null)
                                    //    {
                                    //        if (business.IsClosed)
                                    //        {
                                    //            API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu işyeri şu anda hizmet veremiyor.");
                                    //            return;
                                    //        }
                                    //    }
                                    //}


                                    #region PetrolCan

                                    if (sender.currentWeapon == WeaponHash.PetrolCan)
                                    {
                                        if (!InventoryManager.IsEnoughMoney(sender, (int)(requestedFuel * itemGas.PricePerUnit)))
                                        {
                                            API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Bu kadar alabilmek için paranız yetersiz."); return;
                                        }
                                        if (itemGas.MaxGasInStock < requestedFuel)
                                        {
                                            API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu benzin istasyonunda yeterli benzin bulunmuyor."); return;
                                        }
                                        if (API.getPlayerWeaponAmmo(sender, WeaponHash.PetrolCan) + (int)requestedFuel > 50)
                                        {
                                            API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bidonunuz daha fazla benzin alamıyor."); return;
                                        }
                                        InventoryManager.AddMoneyToPlayer(sender, -1 * (int)(requestedFuel * itemGas.PricePerUnit));
                                        API.shared.setPlayerWeaponAmmo(sender, WeaponHash.PetrolCan, API.getPlayerWeaponAmmo(sender, WeaponHash.PetrolCan) + (int)requestedFuel);
                                        return;
                                    }


                                    #endregion



                                    if (_vehicle.Fuel + requestedFuel > 100)
                                    {
                                        API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu araç daha fazla benzin alamaz. Boş alan:~y~" + (100 - _vehicle.Fuel) + "%"); return;
                                    }

                                    if (itemGas.GasInStock >= requestedFuel)
                                    {
                                        int money = API.getEntityData(sender, "Money");
                                        if (money >= requestedFuel * itemGas.PricePerUnit)
                                        {
                                            money         -= Convert.ToInt32(requestedFuel * itemGas.PricePerUnit);
                                            _vehicle.Fuel += requestedFuel;
                                            try
                                            {
                                                //if (business != null && (business.VaultMoney + requestedFuel * itemGas.PricePerUnit) <= itemGas.MaxGasInStock)
                                                //{
                                                //    business.VaultMoney += (int)(requestedFuel * itemGas.PricePerUnit);
                                                //}
                                                //else
                                                //{
                                                //    business.VaultMoney = business.MaxVaultMoney;
                                                //}
                                            }
                                            catch (Exception)
                                            {
                                            }

                                            API.setEntityData(sender, "Money", money);
                                            API.triggerClientEvent(sender, "update_money_display", money);
                                            API.sendNotificationToPlayer(sender, "~r~-" + Convert.ToInt32(requestedFuel * itemGas.PricePerUnit) + "$");
                                            itemGas.GasInStock -= requestedFuel;
                                            db_GasStations.Update(itemGas);
                                        }
                                        else
                                        {
                                            API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~" + (int)requestedFuel + " litre alabilmek için " + (requestedFuel * itemGas.PricePerUnit) + "$' a ihtiyacınız var.");
                                        }
                                    }
                                    else
                                    {
                                        API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu benzinlikte yeterli benzin stoğu kalmamış.");
                                    }
                                    return;
                                }
                            }
                        }
                        else
                        {
                            API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Bunun için önce aracın motorunu kapamalısınız.");
                        }
                    }
                    else
                    {
                        API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Aracınızı da getirmelisiniz."); return;
                    }
                    API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Yakınlarda benzin istasyonu yok.");
                    #endregion
                }
            }
            else
            {
                if (commandParam.ToLower().StartsWith("fiyat"))
                #region fiyat
                {
                    int   _Index = 0, _NearestIndex = 0;
                    float lastDistance = float.MaxValue;
                    foreach (var item in db_GasStations.CurrentGasStations.Item1)
                    {
                        float dist = Vector3.Distance(sender.position, item.Position);
                        if (dist < lastDistance)
                        {
                            _NearestIndex = _Index;
                        }
                        lastDistance = dist;
                        _Index++;
                    }
                    API.sendChatMessageToPlayer(sender, "~y~Buradaki benzin fiyatı ~s~1% ~y~başına ~s~" + db_GasStations.CurrentGasStations.Item1[_NearestIndex].PricePerUnit + "$");
                }
                else
                if (commandParam.ToLower().StartsWith("doldur"))
                {
                    API.sendChatMessageToPlayer(sender, "~s~/benzin doldur ~y~[litre]");
                }
                #endregion

                if ("bidondandoldur".StartsWith(commandParam.ToLower()))
                {
                    #region Bidondandoldur
                    if (sender.currentWeapon != WeaponHash.PetrolCan)
                    {
                        API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Elinize benzin bidonu almalısınız."); return;
                    }
                    if (API.getPlayerWeaponAmmo(sender, WeaponHash.PetrolCan) <= 0)
                    {
                        API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Elinizdeki bidonda hiç benzin yok."); return;
                    }
                    var _vehicle = db_Vehicles.FindNearestVehicle(sender.position);
                    if (Vector3.Distance(_vehicle.VehicleOnMap.position, sender.position) < 3)
                    {
                        if (!_vehicle.IsLocked)
                        {
                            if (_vehicle.VehicleOnMap.engineStatus == true)
                            {
                                API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Önce aracın motorunu kapatın."); return;
                            }
                            //benzini doldurma işlemi
                            _vehicle.Fuel += API.getPlayerWeaponAmmo(sender, WeaponHash.PetrolCan);
                            API.setPlayerWeaponAmmo(sender, WeaponHash.PetrolCan, 0);
                            rpgMgr.Me(sender, $" adlı kişi elindeki benzin bidonu ile {_vehicle.VehicleModelId} model araca benzin doldurur.");
                        }
                        else
                        {
                            API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu araç kilitli!");
                        }
                        return;
                    }
                    API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Yakınınızda bir araç olmalı.");
                    #endregion
                }
            }
        }
        public void RepairVehicleOnJob(Client sender, string type)
        {
            if ("basla".StartsWith(type.ToLower()))
            {
                #region Basla
                if (API.getEntityData(sender, "JobId") != 3)
                {
                    API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Doğru meslekte değilsiniz."); return;
                }
                if (API.hasEntityData(sender, JOB_ON))
                {
                    API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Zaten mesleğe başlamışsınız.");
                }
                var _vehicle = db_Vehicles.FindNearestVehicle(sender.position);
                if (_vehicle == null)
                {
                    return;
                }
                if (Vector3.Distance(sender.position, _vehicle.VehicleOnMap.position) < 2)
                {
                    if (_vehicle.JobId == 3)
                    {
                        API.setEntityData(sender, JOB_ON, -1);
                        var loadingPoint = Jobs.db_Jobs.currentJobsList.FirstOrDefault(x => x.Item1.JobId == 3).Item1.TakingPosition;
                        API.setEntityData(sender.vehicle, "JOB_VEHICLE_OWNERID", API.getEntityData(sender, "ID"));
                        API.triggerClientEvent(sender, "create_marker", loadingPoint.X, loadingPoint.Y, loadingPoint.Z - 1);
                        API.sendChatMessageToPlayer(sender, "~y~Yük alma noktasına gidip ~s~((/kamyon yukal)) ~y~komutunu kullanabilirsiniz.");
                    }
                    else
                    {
                        API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Meslek kamyonunda olmalısınız.");
                    }
                    return;
                }

                #endregion
            }
            else
            if ("yukal".StartsWith(type.ToLower()))
            {
                #region yukal
                if (API.getEntityData(sender, "JobId") != 3)
                {
                    API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Doğru meslekte değilsiniz."); return;
                }
                if (API.hasEntityData(sender, JOB_ON) && API.getEntityData(sender, JOB_ON) != -1)
                {
                    API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Zaten mesleğe başlamışsınız."); return;
                }

                var _vehicle = db_Vehicles.FindNearestVehicle(sender.position);
                if (_vehicle == null)
                {
                    return;
                }
                if (Vector3.Distance(sender.position, _vehicle.VehicleOnMap.position) < 2)
                {
                    if (_vehicle.JobId == 3)
                    {
                        if (Vector3.Distance(sender.position, db_Jobs.currentJobsList.FirstOrDefault(x => x.Item1.JobId == 3).Item1.TakingPosition) < 3)
                        {
                            API.setEntityData(sender.vehicle, JOB_VEHICLE, API.getEntityData(sender, "ID"));
                            List <string> names        = new List <string>();
                            List <string> descriptions = new List <string>();
                            foreach (var item in db_KamyonJob.CurrentDeliveryPoints.Item1)
                            {
                                names.Add("(" + item.ID + ")" + item.Name + " | " + item.CompletedValue + (item.Type == Models.DeliveryType.Money ? "$" : "Metal"));
                                descriptions.Add("Uzaklık: " + Vector3.Distance(sender.position, item.DeliveryPoint));
                            }
                            API.triggerClientEvent(sender, "open_kamyon_selector", names.Count, names.ToArray(), descriptions.ToArray());
                            return;
                        }
                        else
                        {
                            API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Yük alma noktasında değilsiniz.");
                        }
                    }
                    else
                    {
                        API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Meslek kamyonunda olmalısınız.");
                    }
                    return;
                }

                #endregion
            }
            else
            if ("bitir".StartsWith(type.ToLower()))
            {
                #region bitir
                if (API.hasEntityData(sender, JOB_ON))
                {
                    if (API.getEntityData(sender, JOB_ON) != 0)
                    {
                        API.triggerClientEvent(sender, "remove_marker");
                        API.resetEntityData(sender, JOB_ON);
                    }
                    else
                    {
                        if (Vector3.Distance(sender.position, db_Jobs.currentJobsList.FirstOrDefault(x => x.Item1.JobId == 3).Item1.TakingPosition) < 6)
                        {
                            var _vehicle = db_Vehicles.FindNearestVehicle(sender.position);
                            if (_vehicle == null)
                            {
                                return;
                            }
                            if (Vector3.Distance(sender.position, _vehicle.VehicleOnMap.position) < 2)
                            {
                                if (API.getEntityData(_vehicle.VehicleOnMap, JOB_VEHICLE) == API.getEntityData(sender, "ID"))
                                {
                                    API.triggerClientEvent(sender, "remove_marker");
                                    if (API.hasEntityData(sender, JOB_MONEY))
                                    {
                                        API.resetEntityData(sender, JOB_ON);
                                        JobManager.PlayerJobComplete(sender, 3);
                                        int savedMoney = (API.hasEntityData(sender, JOB_MONEY) ? API.getEntityData(sender, JOB_MONEY) : 0);
                                        InventoryManager.AddMoneyToPlayer(sender, savedMoney);
                                        API.resetEntityData(sender, JOB_MONEY);
                                        API.sendNotificationToPlayer(sender, "~g~$" + savedMoney + " ~s~kazandınız.");
                                    }
                                    if (API.hasEntityData(sender, JOB_METALPART))
                                    {
                                        API.resetEntityData(sender, JOB_ON);
                                        int savedMetalPart = API.getEntityData(sender, JOB_METALPART);
                                        JobManager.PlayerJobComplete(sender, 3);
                                        InventoryManager.AddMetalPartsToPlayer(sender, savedMetalPart);
                                        API.resetEntityData(sender, JOB_METALPART);
                                        API.sendNotificationToPlayer(sender, "~y~$" + savedMetalPart + " ~s~ adet metal parça kazandınız.");
                                    }

                                    db_Vehicles.Respawn(_vehicle.VehicleId);

                                    // API.sendChatMessageToPlayer(sender, "~y~Paranizi almak için ~s~(( /kamyon paramial ))");
                                }
                                else
                                {
                                    API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu mesleğe başladığınız araç değil!");
                                }
                            }
                        }
                        else
                        {
                            if (type.ToLower().Split(' ').LastOrDefault() == "onayla")
                            {
                                API.triggerClientEvent(sender, "remove_marker");
                                API.resetEntityData(sender, JOB_ON);
                                API.resetEntityData(sender, JOB_MONEY);
                            }
                            else
                            {
                                API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Mesleğinizi teslim etmeden bitirseniz paranızı alamayacaksınız.\nYine de bitirmek için (( ~y~/kamyon bitir [onayla]~s~))\n ~y~Yükü aldığınız oktaya geldiğinizde ~s~/kamyoncu bitir ~y~komutunu kullanabilirsiniz.");
                            }
                        }
                    }
                }
                else
                {
                    API.sendChatMessageToPlayer(sender, "~r~Zaten mesleğe başlamamışsınız.");
                }
                #endregion
            }
            else
            if ("paramial".StartsWith(type.ToLower()))
            {
                #region paramial
                if ((API.hasEntityData(sender, JOB_MONEY) || API.hasEntityData(sender, JOB_METALPART)) && !API.hasEntityData(sender, JOB_ON))
                {
                    foreach (var item in db_Jobs.currentJobsList)
                    {
                        if (item.Item1.JobId == 3 && item.Item1.Dimension == sender.dimension && Vector3.Distance(sender.position, item.Item1.Position) < item.Item1.Range)
                        {
                            if (API.hasEntityData(sender, JOB_MONEY))
                            {
                                API.shared.consoleOutput("SAVED MONEY: " + API.getEntityData(sender, JOB_MONEY));
                                int savedMoney  = (API.hasEntityData(sender, JOB_MONEY) ? API.getEntityData(sender, JOB_MONEY) : 0);
                                int playerMoney = API.getEntityData(sender, "Money");
                                playerMoney += savedMoney;
                                API.setEntityData(sender, "Money", playerMoney);
                                API.resetEntityData(sender, JOB_MONEY);
                                API.triggerClientEvent(sender, "update_money_display", playerMoney);
                                API.sendNotificationToPlayer(sender, "~g~$" + savedMoney + " ~s~kazandınız.");
                                return;
                            }
                            if (API.hasEntityData(sender, JOB_METALPART))
                            {
                                int savedMetalPart = API.getEntityData(sender, JOB_METALPART);
                                var _inventory     = (Inventory)API.getEntityData(sender, "inventory");
                                _inventory.MetalParts += savedMetalPart;
                                API.setEntityData(sender, "inventory", _inventory);
                                API.resetEntityData(sender, JOB_METALPART);
                                API.sendNotificationToPlayer(sender, "~y~$" + savedMetalPart + " ~s~ adet metal parça kazandınız.");
                                return;
                            }
                        }
                    }
                }
                else
                {
                    API.sendNotificationToPlayer(sender, "~y~Önce mesainizi bitirmelisiniz.");
                    return;
                }
                API.sendChatMessageToPlayer(sender, "~y~Önce işi aldığınız yere gitmelisiniz.");
                #endregion
            }
        }
Beispiel #9
0
        public static void OnBuildingBuySelected(Client sender, int buildingId, int index)
        {
            var _building = db_Buildings.GetBuilding(buildingId);
            var floor     = _building.Floors[index];

            switch (floor.Type)
            {
            case Models.FloorType.House:
                #region _house
                var _house = db_Houses.GetHouse(floor.TypedObjectId);
                if (_house.IsSelling)
                {
                    #region CancelSelling
                    if (_house.OwnerSocialClubName == sender.socialClubName)
                    {
                        _house.IsSelling = false;
                        API.shared.sendChatMessageToPlayer(sender, "~g~Eviniz artık satılık değil!");

                        return;
                    }
                    #endregion

                    #region satinal
                    {
                        int money = API.shared.getEntityData(sender, "Money");
                        if (_house.Price <= money)
                        {
                            if (!String.IsNullOrEmpty(_house.OwnerSocialClubName))
                            {
                                var sellerPlayer = db_Accounts.IsPlayerOnline(_house.OwnerSocialClubName);
                                if (sellerPlayer != null)
                                {
                                    #region payment
                                    if (InventoryManager.IsEnoughMoney(sender, _house.Price))
                                    {
                                        InventoryManager.AddMoneyToPlayer(sender, -1 * _house.Price);
                                        InventoryManager.AddMoneyToPlayerBank(sellerPlayer, (int)(_house.Price * 0.98));
                                    }
                                    else
                                    if (InventoryManager.IsEnougMoneyInBank(sender, _house.Price))
                                    {
                                        InventoryManager.AddMoneyToPlayerBank(sender, -1 * _house.Price);
                                        InventoryManager.AddMoneyToPlayerBank(sellerPlayer, (int)(_house.Price * 0.98));
                                    }
                                    else
                                    {
                                        API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Üzerinizde veya benka hesabınızda bu kadar para bulunmuyor.");
                                        return;
                                    }
                                    #endregion

                                    _house.IsSelling           = false;
                                    _house.OwnerSocialClubName = sender.socialClubName;
                                    API.shared.sendChatMessageToPlayer(sender, "~g~Tebrikler! ~s~Satışta olan eviniz başarıyla satıldı.");
                                    db_Houses.UpdateHouse(_house);
                                }
                                else
                                {
                                    var sellerOfflinePlayer = db_Accounts.GetOfflineUserDatas(_house.OwnerSocialClubName);

                                    #region payment
                                    if (InventoryManager.IsEnoughMoney(sender, _house.Price))
                                    {
                                        InventoryManager.AddMoneyToPlayer(sender, -1 * _house.Price);
                                        InventoryManager.AddMoneyToOfflinePlayerBank(sellerOfflinePlayer.socialClubName, (int)(_house.Price * 0.98f));
                                    }
                                    else
                                    if (InventoryManager.IsEnougMoneyInBank(sender, _house.Price))
                                    {
                                        InventoryManager.AddMoneyToPlayerBank(sender, -1 * _house.Price);
                                        InventoryManager.AddMoneyToOfflinePlayerBank(sellerOfflinePlayer.socialClubName, (int)(_house.Price * 0.98f));
                                    }
                                    else
                                    {
                                        API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Üzerinizde veya benka hesabınızda bu kadar para bulunmuyor.");
                                        return;
                                    }

                                    #endregion

                                    _house.OwnerSocialClubName = sender.socialClubName;
                                    db_Accounts.SaveOfflineUserData(sellerOfflinePlayer.socialClubName, sellerOfflinePlayer);
                                    HouseMarkerColor hmc = new Models.HouseMarkerColor();
                                    // var _house = db_Houses.GetHouse(_house.HouseId);
                                    // _house.MarkerOnMap.color = new Color(hmc.NormalColor.Red, hmc.NormalColor.Green, hmc.NormalColor.Blue, 255);
                                    _house.IsSelling = false;
                                    db_Houses.UpdateHouse(_house);
                                }

                                return;
                            }
                            else
                            {
                                _house.OwnerSocialClubName = sender.socialClubName;

                                if (!_house.IsInBuilding)
                                {
                                    HouseMarkerColor hmc = new Models.HouseMarkerColor();
                                    _house.MarkerOnMap.color = new Color(hmc.NormalColor.Red, hmc.NormalColor.Green, hmc.NormalColor.Blue, 255);
                                    _house.IsSelling         = false;
                                }
                                db_Houses.SaveChanges();
                                money           -= _house.Price;
                                _house.IsSelling = false;
                                API.shared.triggerClientEvent(sender, "update_money_display", money);
                                API.shared.sendNotificationToPlayer(sender, "~g~Hayırlı olsun.\n~s~ Yeni bir ev satın aldınız. ");
                            }
                            db_Houses.UpdateHouse(_house);
                        }
                        else
                        {
                            API.shared.sendChatMessageToPlayer(sender, "~y~Bu evi almak için paranız en az " + _house.Price + " olmalı.");
                        }
                        return;
                    }

                    #endregion
                }
                #endregion
                break;

            case Models.FloorType.Business:
                break;

            case Models.FloorType.Warehouse:
                break;

            default:
                break;
            }
        }
Beispiel #10
0
        public void AcceptSellTrade(Client sender)
        {
            if (API.shared.hasEntityData(sender, SELL_KEY))
            {
                TradeSellModel _trade = (TradeSellModel)API.shared.getEntityData(sender, SELL_KEY);
                if (!InventoryManager.IsEnoughMoney(sender, _trade.OfferedPrice))
                {
                    API.shared.sendChatMessageToPlayer(sender, $"~r~UYARI: ~s~Bu alışveriş için en az ~r~{_trade.OfferedPrice}$ ~s~paranız olmalı."); API.shared.resetEntityData(sender, SELL_KEY); return;
                }

                switch (_trade.Type)
                {
                case SellType.vehicle:
                    #region vehicle
                    var sellerPlayer = db_Accounts.IsPlayerOnline(_trade.SellerSocialClubID);
                    if (sellerPlayer != null)
                    {
                        if (VehicleManager.SetVehicleOwner(_trade.SellingObjId, sender.socialClubName))
                        {
                            InventoryManager.AddMoneyToPlayer(sellerPlayer, _trade.OfferedPrice);
                            InventoryManager.AddMoneyToPlayer(sender, -1 * _trade.OfferedPrice);
                            API.shared.sendChatMessageToPlayer(sellerPlayer, "~y~Alışveriş başarılı bir şekilde gerçekleşti.");
                            API.shared.sendChatMessageToPlayer(sender, "~y~Alışveriş başarılı bir şekilde gerçekleşti. ~s~((/araclarim)) ~y~yazarak yeni aracınızı görebilirsiniz.");
                        }
                        else
                        {
                            API.shared.sendChatMessageToPlayer(sender, "~y~Satılacak araç bulunamadı!");
                            API.shared.sendChatMessageToPlayer(sellerPlayer, "~y~Satılacak araç bulunamadı!");
                        }
                    }
                    else
                    {
                        API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Satışı yapan oyuncu oyunda değil.");
                        API.shared.resetEntityData(sender, SELL_KEY);
                    }
                    #endregion
                    break;

                case SellType.house:
                    #region house
                    var hSellerPlayer = db_Accounts.IsPlayerOnline(_trade.SellerSocialClubID);
                    if (hSellerPlayer != null)
                    {
                        if (HouseManager.SetHouseOwner(_trade.SellingObjId, _trade.BuyerSocialClubID))
                        {
                            InventoryManager.AddMoneyToPlayer(hSellerPlayer, _trade.OfferedPrice);
                            InventoryManager.AddMoneyToPlayer(sender, -1 * _trade.OfferedPrice);
                            API.shared.sendChatMessageToPlayer(hSellerPlayer, "~y~Alışveriş başarılı bir şekilde gerçekleşti.");
                            API.shared.sendChatMessageToPlayer(sender, "~y~Alışveriş başarılı bir şekilde gerçekleşti.");
                        }
                        else
                        {
                            API.shared.sendChatMessageToPlayer(sender, "~y~Satılacak ev bulunamadı!");
                            API.shared.sendChatMessageToPlayer(hSellerPlayer, "~y~Satılacak ev bulunamadı!");
                        }
                    }
                    else
                    {
                        API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Satışı yapan oyuncu oyunda değil.");
                        API.shared.resetEntityData(sender, SELL_KEY);
                    }
                    #endregion
                    break;

                case SellType.metalparts:
                    #region metalpart
                    var mSellerPlayer = db_Accounts.IsPlayerOnline(_trade.SellerSocialClubID);
                    if (mSellerPlayer != null)
                    {
                        InventoryManager.AddMetalPartsToPlayer(sender, _trade.SellingObjId);
                        InventoryManager.AddMetalPartsToPlayer(mSellerPlayer, -1 * _trade.SellingObjId);
                        InventoryManager.AddMoneyToPlayer(sender, -1 * _trade.OfferedPrice);
                        InventoryManager.AddMoneyToPlayer(mSellerPlayer, _trade.OfferedPrice);
                        API.shared.sendChatMessageToPlayer(mSellerPlayer, "~y~Alışveriş başarılı bir şekilde gerçekleşti.");
                        API.shared.sendChatMessageToPlayer(sender, "~y~Alışveriş başarılı bir şekilde gerçekleşti.");
                    }
                    else
                    {
                        API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Satışı yapan oyuncu oyunda değil.");
                        API.shared.resetEntityData(sender, SELL_KEY);
                    }
                    #endregion
                    break;

                default:
                    break;
                }
            }
        }