Beispiel #1
0
        private void Despawn(IRpcEvent e, int vehicleNetId)
        {
            if (API.NetworkDoesNetworkIdExist(vehicleNetId))
            {
                var citVeh = new CitizenFX.Core.Vehicle(API.NetToVeh(vehicleNetId));
                citVeh.Delete();
            }

            this.Tracked.Remove(this.Tracked.FirstOrDefault(v => v.NetId == vehicleNetId));
            this.Rpc.Event(VehicleEvents.Despawn).Trigger(vehicleNetId);
        }
Beispiel #2
0
        private void Despawn(ICommunicationMessage e, int vehicleNetId)
        {
            if (API.NetworkDoesNetworkIdExist(vehicleNetId))
            {
                var citVeh = new CitizenFX.Core.Vehicle(API.NetToVeh(vehicleNetId));
                citVeh.Delete();
            }

            this.Tracked.Remove(this.Tracked.FirstOrDefault(v => v.NetId == vehicleNetId));
            this.Comms.Event(VehicleEvents.Despawn).ToServer().Emit(vehicleNetId);
        }
Beispiel #3
0
        private void SaveTracked()
        {
            foreach (var trackedVehicle in this.Tracked)
            {
                if (!API.NetworkDoesNetworkIdExist(trackedVehicle.NetId))
                {
                    this.Despawn(null, trackedVehicle.NetId);
                    continue;
                }
                var vehicleHandle = API.NetToVeh(trackedVehicle.NetId);

                if (!API.DoesEntityExist(vehicleHandle))
                {
                    this.Despawn(null, trackedVehicle.NetId);
                    continue;
                }
                var citVeh = new CitizenFX.Core.Vehicle(vehicleHandle);
                var netId  = API.NetworkGetNetworkIdFromEntity(citVeh.Handle);

                switch (trackedVehicle.Type.VehicleType().Name)
                {
                case "Car":
                    //var car = (Car)vehicle; // TODO: explicit converter
                    //Add car specific props...
                    var car = citVeh.ToVehicle <Car>();
                    car.Id             = trackedVehicle.Id;
                    car.TrackingUserId = this.User.Id;
                    car.NetId          = netId;

                    this.Rpc.Event(VehicleEvents.SaveCar).Trigger(car);
                    break;

                default:
                    var vehicle = citVeh.ToVehicle <Car>();
                    vehicle.Id             = trackedVehicle.Id;
                    vehicle.TrackingUserId = this.User.Id;
                    vehicle.NetId          = netId;

                    this.Rpc.Event($"igicore:vehicles:save:{trackedVehicle.Type.VehicleType().Name}")
                    .Trigger(vehicle);
                    break;
                }
            }
        }