コード例 #1
0
ファイル: vehicleManager.cs プロジェクト: nxxnly/athronsrpg
        public static async Task <vehicleModel> getVehicleModelById(int id, bool db = false)
        {
            vehicleModel veh = new vehicleModel();

            if (db)
            {
                await databaseManager.selectQuery($"SELECT * FROM vehicles WHERE id = '{id}' LIMIT 1", (DbDataReader reader) =>
                {
                    if (reader.HasRows)
                    {
                        veh.id             = (int)reader["id"];
                        veh.owner          = (string)reader["owner"];
                        veh.model          = (string)reader["model"];
                        veh.type           = (type)(int)reader["type"];
                        veh.spawnPosition  = NAPI.Util.FromJson <Vector3>((string)reader["spawnPosition"]);
                        veh.primaryColor   = (int)reader["primaryColor"];
                        veh.secondaryColor = (int)reader["secondaryColor"];
                        veh.numberPlate    = (string)reader["numberPlate"];
                    }
                }).Execute();
            }
            else
            {
                veh = vehicles.Find(vehicle => vehicle.id == id);
            }
            return(veh);
        }
コード例 #2
0
ファイル: vehicleManager.cs プロジェクト: nxxnly/athronsrpg
        public static async Task <List <vehicleModel> > loadAllVehicles()
        {
            List <vehicleModel> vehicleList = new List <vehicleModel>();

            await databaseManager.selectQuery($"SELECT * FROM vehicles", (DbDataReader reader) =>
            {
                if (reader.HasRows)
                {
                    vehicleModel veh   = new vehicleModel();
                    veh.id             = (int)reader["id"];
                    veh.owner          = (string)reader["owner"];
                    veh.model          = (string)reader["model"];
                    veh.kms            = (int)reader["kms"];
                    veh.fuel           = (int)reader["fuel"];
                    veh.type           = (type)(int)reader["type"];
                    veh.spawnPosition  = NAPI.Util.FromJson <Vector3>((string)reader["spawnPosition"]);
                    veh.primaryColor   = (int)reader["primaryColor"];
                    veh.secondaryColor = (int)reader["secondaryColor"];
                    veh.numberPlate    = (string)reader["numberPlate"];

                    vehicleList.Add(veh);
                }
            }).Execute();

            return(vehicleList);
        }
コード例 #3
0
ファイル: vehicleManager.cs プロジェクト: nxxnly/athronsrpg
        public static async Task <List <vehicleModel> > loadAllVehiclesPerPlayer(string username, bool db = false)
        {
            List <vehicleModel> vehicleList = new List <vehicleModel>();

            if (db)
            {
                await databaseManager.selectQuery($"SELECT * FROM vehicles WHERE username = '******'", (DbDataReader reader) =>
                {
                    if (reader.HasRows)
                    {
                        vehicleModel veh = new vehicleModel();
                        veh.id           = (int)reader["id"];
                        veh.owner        = (string)reader["owner"];
                        veh.model        = (string)reader["model"];
                        veh.type         = (type)(int)reader["type"];

                        veh.spawnPosition  = NAPI.Util.FromJson <Vector3>((string)reader["spawnPosition"]);
                        veh.primaryColor   = (int)reader["primaryColor"];
                        veh.secondaryColor = (int)reader["secondaryColor"];
                        veh.numberPlate    = (string)reader["numberPlate"];

                        vehicleList.Add(veh);
                    }
                }).Execute();
            }
            else
            {
                vehicleList = vehicles.FindAll(veh => veh.owner == username);
            }
            return(vehicleList);
        }
コード例 #4
0
ファイル: vehicleManager.cs プロジェクト: nxxnly/athronsrpg
        public static async Task <int> createVehicle(vehicleModel vehicleModel)
        {
            vehicleModel.id = await databaseManager.updateQuery($@"INSERT INTO vehicles (owner, model, type, spawnPosition, primaryColor, secondaryColor, numberPlate, rotation) VALUES ('{vehicleModel.owner}', '{vehicleModel.model}','{(int)vehicleModel.type}','{NAPI.Util.ToJson(vehicleModel.spawnPosition)}', '{vehicleModel.primaryColor}', '{vehicleModel.secondaryColor}', '{vehicleModel.numberPlate}', '{vehicleModel.rotation}')").Execute();

            vehicles.Add(vehicleModel);
            spawnVehicle(vehicleModel);
            return(vehicleModel.id);
        }
コード例 #5
0
ファイル: vehicleManager.cs プロジェクト: nxxnly/athronsrpg
        public async void AddVehicle(Player player, string model, vehicleManager.type type, int color1, int color2, string numberPlate)
        {
            float rotation = 0.0F;

            if (player.Vehicle != null)
            {
                rotation = player.Vehicle.Rotation.Z;
            }
            else
            {
                rotation = player.Heading;
            }
            var vehmodel = new vehicleModel(model, type, color1, color2, numberPlate, rotation, numberPlate);

            vehmodel.spawnPosition = player.Position;

            int id = await createVehicle(vehmodel);

            player.SendChatMessage($"Vehicle with {id} was created at the current position.");
        }
コード例 #6
0
ファイル: vehicleManager.cs プロジェクト: nxxnly/athronsrpg
        public async Task VehicleManagerStartAsync()
        {
            await databaseManager.selectQuery($"SELECT * FROM vehicles", (DbDataReader reader) =>
            {
                if (reader.HasRows)
                {
                    vehicleModel veh   = new vehicleModel();
                    veh.id             = (int)reader["id"];
                    veh.owner          = (string)reader["owner"];
                    veh.model          = (string)reader["model"];
                    veh.type           = (type)(int)reader["type"];
                    veh.days           = (int)(DateTime.Now - (DateTime)reader["creationDate"]).TotalDays;
                    veh.spawnPosition  = NAPI.Util.FromJson <Vector3>((string)reader["spawnPosition"]);
                    veh.primaryColor   = (int)reader["primaryColor"];
                    veh.secondaryColor = (int)reader["secondaryColor"];
                    veh.numberPlate    = (string)reader["numberPlate"];
                    veh.fuel           = (int)reader["fuel"];
                    veh.kms            = (int)reader["kms"];
                    veh.insurances     = (int)reader["insurances"];
                    veh.rotation       = (float)reader["rotation"];
                    veh.locked         = (bool)reader["locked"];


                    vehicles.Add(veh);
                }
            }).Execute();

            foreach (var vehicle in vehicles)
            {
                if (vehicle.type != type.personal)
                {
                    spawnVehicle(vehicle);
                }
            }
            var timer_vehicles = new System.Timers.Timer();

            timer_vehicles.Interval = 15000;
            timer_vehicles.Elapsed += timerVehicle;
            timer_vehicles.Start();
        }
コード例 #7
0
ファイル: vehicleManager.cs プロジェクト: nxxnly/athronsrpg
 public static void spawnVehicle(vehicleModel vehicleModel)
 {
     NAPI.Task.Run(() =>
     {
         Vehicle vehicle = NAPI.Vehicle.CreateVehicle(NAPI.Util.GetHashKey(vehicleModel.model), vehicleModel.spawnPosition, 0f, vehicleModel.primaryColor, vehicleModel.secondaryColor, vehicleModel.numberPlate, 255, false, false);
         vehicle.SetSharedData("invincible", true);
         vehicle.NumberPlate    = vehicleModel.numberPlate;
         vehicle.PrimaryColor   = vehicleModel.primaryColor;
         vehicle.SecondaryColor = vehicleModel.secondaryColor;
         vehicle.Rotation       = new Vector3(0, 0, vehicleModel.rotation);
         vehicle.SetData("id", vehicleModel.id);
         vehicle.SetData("owner", vehicleModel.owner);
         vehicle.SetData("type", vehicleModel.type);
         vehicle.SetData("insurances", vehicleModel.insurances);
         vehicle.SetSharedData("fuel", vehicleModel.type == type.personal ? (float)vehicleModel.fuel : 100.0);
         vehicle.SetSharedData("kms", (float)vehicleModel.kms);
         vehicle.SetSharedData("locked", vehicleModel.locked);
         vehicle.SetData("serverId", last_vehicle_server_id);
         vehicle.SetSharedData("setEngine", false);
         vehicle.EngineStatus = false;
     });
     last_vehicle_server_id++;
 }