Пример #1
0
        public static void SaveAccount(Client player)
        {
            if (!Character.ContainsKey(player))
            {
                return;
            }

            using (var ctx = new ContextFactory().Create())
            {
                int       characterId = Character[player].Id;
                Character character   = ctx.Characters.First(x => x.Id == characterId);

                character.Name = player.name;

                character.Gender     = Character[player].Gender;
                character.Job        = Character[player].Job;
                character.Money      = Character[player].Money;
                character.Bank       = Character[player].Bank;
                character.Level      = Character[player].Level;
                character.Experience = Character[player].Experience;

                character.PositionX = player.position.X;
                character.PositionY = player.position.Y;
                character.PositionZ = player.position.Z;
                character.RotationZ = player.rotation.Z;

                character.PlayedTime += (DateTime.Now - Character[player].LastLogin).TotalSeconds;
                character.LastLogin   = DateTime.Now;

                foreach (var vehicle in Character[player].Vehicles.ToList())
                {
                    // Getting vehicle data
                    float fuel     = API.shared.getVehicleFuelLevel(vehicle.Vehicle);
                    var   position = API.shared.getEntityPosition(vehicle.Vehicle);
                    var   rotation = API.shared.getEntityRotation(vehicle.Vehicle);

                    int vehicleId = vehicle.Id;
                    CharacterVehicle characterVehicle = ctx.CharacterVehicle.FirstOrDefault(x => x.Id == vehicleId);

                    if (characterVehicle == null)
                    {
                        characterVehicle = new CharacterVehicle {
                            Model = vehicle.Model, PositionX = vehicle.PositionX, PositionY = vehicle.PositionY, PositionZ = vehicle.PositionZ, RotationX = vehicle.RotationX, RotationY = vehicle.RotationY, RotationZ = vehicle.RotationZ, Color1 = vehicle.Color1, Color2 = vehicle.Color2, Price = vehicle.Price, Fuel = vehicle.Fuel, CreatedAt = DateTime.Now
                        };
                        character.Vehicles.Add(characterVehicle);
                    }

                    characterVehicle.PositionX = position.X;
                    characterVehicle.PositionY = position.Y;
                    characterVehicle.PositionZ = position.Z;
                    characterVehicle.RotationX = rotation.X;
                    characterVehicle.RotationY = rotation.Y;
                    characterVehicle.RotationZ = rotation.Z;

                    characterVehicle.Fuel = (int)fuel;

                    if (API.shared.doesEntityExist(vehicle.Vehicle))
                    {
                        API.shared.deleteEntity(vehicle.Vehicle);
                    }
                }

                ctx.SaveChangesAsync();
            }
        }
Пример #2
0
        public void Dealership_ClientEvent(Client player, string event_name, params object[] args)
        {
            switch (event_name)
            {
            case "RequestDealershipBuyMenu":
            {
                if (!player.hasData("DealershipVehicle_ID"))
                {
                    return;
                }

                DealershipVehicle vehicle = player.getData("DealershipVehicle_ID");
                player.triggerEvent("Dealership_PurchaseMenu", API.toJson(new { vehicle.Price }));
                break;
            }

            case "VehiclePurchase":
            {
                if (!player.hasData("DealershipVehicle_ID"))
                {
                    return;
                }

                int color1 = (int)args[0];
                int color2 = (int)args[1];

                Dealership        dealership = player.getData("Dealership_ID");
                DealershipVehicle vehicle    = player.getData("DealershipVehicle_ID");

                if (Player.Data.Character[player].Vehicles.Count >= 3)
                {
                    API.sendChatMessageToPlayer(player, $"~r~ERRO: ~s~Você pode ter apenas 3 veículos.");
                    return;
                }

                else if (vehicle.Price > Player.Data.Character[player].Money)
                {
                    API.sendChatMessageToPlayer(player, $"~r~ERRO: ~s~Você não tem dinheiro suficiente.");
                    return;
                }

                var veh = API.shared.createVehicle(vehicle.Model, new Vector3(dealership.VehicleSpawn.X, dealership.VehicleSpawn.Y, dealership.VehicleSpawn.Z), new Vector3(0.0, 0.0, 0.0), color1, color2);
                veh.engineStatus = false;
                API.shared.setPlayerIntoVehicle(player, veh, -1);

                player.resetData("Dealership_ID");
                player.resetData("DealershipVehicle_ID");
                player.triggerEvent("OnExitDealershipVehicle");

                player.giveMoney(-vehicle.Price);
                player.sendNotification("", $"Você comprou um ~g~{veh.displayName}~s~.");

                CharacterVehicle characterVehicle = new CharacterVehicle
                {
                    Character = Player.Data.Character[player],
                    Vehicle   = veh,
                    Price     = vehicle.Price,
                    Model     = vehicle.Model,
                    Color1    = color1,
                    Color2    = color2,
                    Fuel      = 100,
                    PositionX = veh.position.X,
                    PositionY = veh.position.Y,
                    PositionZ = veh.position.Z,
                    RotationX = 0.0f,
                    RotationY = 0.0f,
                    RotationZ = 0.0f,
                    CreatedAt = DateTime.Now
                };

                Player.Data.Character[player].Vehicles.Add(characterVehicle);
                break;
            }
            }
        }
 private void Awake()
 {
     _characterVehicle = GetComponent <CharacterVehicle>();
 }
 protected virtual void Awake()
 {
     _characterVehicle = GetComponent <CharacterVehicle>();
 }