Exemplo n.º 1
0
        /// <summary>
        /// Pays a taxi meter fee in a car
        /// </summary>
        /// <param name="payer">Payer</param>
        public void PayTaxiMeterFee(Character payer)
        {
            // Give money to driver
            // Remove taxi meter
            RPVehicle v     = VehicleManager.Instance().GetVehicleForCharacter(payer);
            TaxiMeter meter = GetTaxiMeterForCharacterInTaxi(payer, v.id);

            if (meter == null)
            {
                payer.TriggerEvent("You don't have an active taxi fee in this car");
                return;
            }

            if (v == VehicleManager.Instance().GetVehicleForCharacter(meter.setter))
            {
                if (payer.money < meter.money)
                {
                    payer.SendErrorNotification("You don't have enough money to pay the taxi fee.");
                    return;
                }

                payer.SetMoney(payer.money - meter.money);
                meter.setter.SetMoney(meter.setter.money + meter.money);
                payer.SendSuccessNotification(String.Format("You payed a taxi fee of ${0}", meter.money));
                meter.setter.SendNotification(String.Format("You received taxi fee payment of ${0} from {1}", meter.money, payer.fullName));
                // Destroy the taxi meter
                RemoveTaxiMeterFromCharacterInTaxi(payer, v.id);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// When character enters taxi, this is ran
 /// </summary>
 /// <param name="character">Character</param>
 /// <param name="vehicleHandle">Vehicle handle</param>
 /// <param name="seat">Seat</param>
 private void CharacterEnteredTaxi(Character character, NetHandle vehicleHandle, int seat)
 {
     if (VehicleManager.Instance().DoesVehicleHandleHaveRPVehicle(vehicleHandle))
     {
         RPVehicle vehicle = VehicleManager.Instance().GetVehicleForHandle(vehicleHandle);
         if (IsTaxiMeterSetForCharacterOnCar(character, vehicle.id))
         {
             SetTaxiMeterHUDForCharacter(character, vehicle.id);
         }
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// Stops a taxi meter for character
        /// </summary>
        /// <param name="setter">Setter</param>
        /// <param name="character">Character</param>
        public void StopTaxiMeterForCharacter(Character setter, Character character)
        {
            RPVehicle v     = VehicleManager.Instance().GetVehicleForCharacter(setter);
            TaxiMeter meter = GetTaxiMeterForCharacterInTaxi(character, v.id);

            if (meter == null)
            {
                return;
            }
            GetTaxiMeterForCharacterInTaxi(character, v.id).taxiTimer.Stop();
            setter.SendNotification(String.Format("Taxi meter stopped for {0}", character.fullName));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Sets taxi meter for character
        /// </summary>
        /// <param name="setter">Setter</param>
        /// <param name="character">Character to who the meter is set</param>
        public void SetTaxiMeterForCharacter(Character setter, Character character)
        {
            // Has to be in same car
            // Can't have timer going
            RPVehicle taxiVehicle = VehicleManager.Instance().GetVehicleForCharacter(setter);
            RPVehicle v2          = VehicleManager.Instance().GetVehicleForCharacter(character);

            if (taxiVehicle == null || taxiVehicle.handle.model != (int)API.shared.vehicleNameToModel("Taxi"))
            {
                setter.SendNotification("You have to be in a taxi to set the meter");
                return;
            }

            if (setter.ID == character.ID)
            {
                setter.SendNotification("You can't set the taxi meter on yourself");
                return;
            }

            if (v2 == null || v2.id != taxiVehicle.id)
            {
                setter.SendNotification("Your customer has to be in your the taxi");
                return;
            }

            if (IsTaxiMeterSetForCharacterOnCar(character, taxiVehicle.id))
            {
                setter.SendNotification("This customer already has an active taxi meter");
                return;
            }

            if (!taxiMeters.ContainsKey(taxiVehicle.id))
            {
                taxiMeters[taxiVehicle.id] = new Dictionary <int, TaxiMeter>();
            }

            taxiMeters[taxiVehicle.id][character.ID] = new TaxiMeter(setter.ID, 200, new GTRPTimer(RPTimerEvent, taxiFeeInterval, new KeyValuePair <int, int>(taxiVehicle.id, character.ID), true)); // Starting money
            SetTaxiMeterHUDForCharacter(character, taxiVehicle.id);
            setter.SendNotification(String.Format("Taxi meter set for customer {0}", character.fullName));
            taxiMeters[taxiVehicle.id][character.ID].taxiTimer.Start();
        }