Exemple #1
0
        protected override void OnUse(Ped playerped, DBVehicle dbVehicle, MyPlayer myPlayer)
        {
            // Any erfordert eine Delegate vom Typ Predicate, das als Parameter ein Objekt vom Typ der zugegriffenen Liste hat und Boolean als Rückgabetyp erwartet
            if (playerped.IsInAnyVehicle(false) && dbVehicle.tankful < 99)
            {
                Game.DisplaySubtitle("~h~Seller:~s~ Hey Sir, Please drive to a gas pump and then leave the car", 1000);
                return;
            }

            if (refuelPoints.Any(r => r.IsInRange(playerped.Position)) && dbVehicle.tankful < 99) // Wir checken, ob eines der refuelPoints Items innerhalb des Radius zum Spieler und dessen Auto ist
            {
                Game.DisplayHelp("Go to a tank column and press [E]");
                if (Game.IsKeyDown(Keys.E))
                {
                    dbVehicle.tankful = maxTankful;
                    DBVehicleManager.UpdateVehicle(dbVehicle, maxTankful);
                    Game.DisplayHelp("Wait, your vehicle is being refueled ... ");
                    Game.DisplaySubtitle("~h~Seller: ~b~Please wait", 4000);
                    GameFiber.Sleep(4000);
                    Game.DisplayHelp("Your vehicle has now a full tank!");
                    if (myPlayer.playerMoney >= 500)
                    {
                        myPlayer.playerMoney -= 500;
                    }
                    Game.DisplaySubtitle("~h~Seller: ~g~Thank you for your visit", 12000);
                }
            }

            base.OnUse(playerped, dbVehicle, myPlayer);
        }
Exemple #2
0
 public bool PlayerIsDriving(Ped playerPed, DBVehicle dbVehicle)
 {
     if (playerPed.IsInAnyVehicle(false))
     {
         Main(playerPed, dbVehicle);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #3
0
 public bool TryUse(Ped playerped, DBVehicle dbVehicle, MyPlayer myPlayer)
 {
     if (playerped.IsAlive && dbVehicle != null)
     {
         OnUse(playerped, dbVehicle, myPlayer);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #4
0
        protected override void Main(Ped playerPed, DBVehicle dbVehicle)
        {
            Vehicle vehicle = playerPed.CurrentVehicle;

            if (dbVehicle.tankful <= 0)
            {
                vehicle.FuelTankHealth = 5.0f;
                return;
            }

            if (vehicle.Speed >= 1 && vehicle.Speed <= 20 && dbVehicle.tankful > 0)
            {
                float lostFuelPerSecond = 0.008f;
                float petrolStatus      = dbVehicle.tankful -= lostFuelPerSecond * Game.FrameTime;
                dbVehicle.tankful = petrolStatus;
            }
            else if (vehicle.Speed >= 21 && vehicle.Speed <= 30 && dbVehicle.tankful > 0)
            {
                float lostFuelPerSecond = 0.05f;
                float petrolStatus      = dbVehicle.tankful -= lostFuelPerSecond * Game.FrameTime;
                dbVehicle.tankful = petrolStatus;
            }
            else if (vehicle.Speed >= 31 && vehicle.Speed <= 45 && dbVehicle.tankful > 0)
            {
                float lostFuelPerSecond = 0.07f;
                HungerFactory.lostLifePerSecond = 0.006f;
                float petrolStatus = dbVehicle.tankful -= lostFuelPerSecond * Game.FrameTime;
                dbVehicle.tankful = petrolStatus;
            }
            else if (vehicle.Speed >= 45 && dbVehicle.tankful > 0)
            {
                float lostFuelPerSecond = 0.1f;
                HungerFactory.lostLifePerSecond = 0.009f;
                float petrolStatus = dbVehicle.tankful -= lostFuelPerSecond * Game.FrameTime;
                dbVehicle.tankful = petrolStatus;
            }
            base.Main(playerPed, dbVehicle);
        }
Exemple #5
0
 protected virtual void Main(Ped playerPed, DBVehicle dbVehicle)
 {
 }
Exemple #6
0
        public static void changeSpeedoTexture(DBVehicle dbVehicle)
        {
            var speedoMeter               = textureList.Find(x => x.name == "SpeedoMeter");
            var speedoMeterNeedle01       = textureList.Find(x => x.name == "SpeedoMeterNeedle01");
            var speedoMeterNeedle02       = textureList.Find(x => x.name == "SpeedoMeterNeedle02");
            var speedoMeterHighLight      = textureList.Find(x => x.name == "SpeedoMeterHighLight");
            var speedoMeterNormalLight    = textureList.Find(x => x.name == "SpeedoMeterNormalLight");
            var speedoMeterBattery        = textureList.Find(x => x.name == "SpeedoMeterBattery");
            var speedoMeterBrake          = textureList.Find(x => x.name == "SpeedoMeterBrake");
            var speedoMeterFuel           = textureList.Find(x => x.name == "SpeedoMeterFuel");
            var speedoMeterIndicatorLeft  = textureList.Find(x => x.name == "SpeedoMeterIndicatorLeft");
            var speedoMeterIndicatorRight = textureList.Find(x => x.name == "SpeedoMeterIndicatorRight");

            if (speedoMeter != null && dbVehicle.cVehicle != null && dbVehicle.cVehicle.IsValid())
            {
                var speed = dbVehicle.cVehicle.Speed * 3.6;
                if (speed > 280)
                {
                    //280 ist die Speedogrenze
                    speed = 280;
                }
                //0.9051 Winkelmultiplikator
                speedoMeterNeedle01.rotate = Convert.ToSingle(speed * 0.9051f);

                speedoMeterNeedle02.rotate = Convert.ToSingle(dbVehicle.tankful * 1.49f);

                speedoMeterBattery.setOptional = (dbVehicle.cVehicle.IsEngineOn ? false : true);
                speedoMeterFuel.setOptional    = (dbVehicle.tankful > 10 ? false : true);
                bool BrakeEnable = (dbVehicle.cVehicle.Metadata.BrakeEnable != null && dbVehicle.cVehicle.Metadata.BrakeEnable ? true : false);
                speedoMeterBrake.setOptional = BrakeEnable;

                bool IndicatorLeft = (dbVehicle.cVehicle.Metadata.IndicatorLeft != null && dbVehicle.cVehicle.Metadata.IndicatorLeft ? true : false);
                if (IndicatorLeft)
                {
                    speedoMeterIndicatorLeft.setOptional = (blinkStatus ? false : true);
                }
                else
                {
                    speedoMeterIndicatorLeft.setOptional = IndicatorLeft;
                }
                bool IndicatorRight = (dbVehicle.cVehicle.Metadata.IndicatorRight != null && dbVehicle.cVehicle.Metadata.IndicatorRight ? true : false);
                if (IndicatorRight)
                {
                    speedoMeterIndicatorRight.setOptional = (blinkStatus ? false : true);
                }
                else
                {
                    speedoMeterIndicatorRight.setOptional = IndicatorRight;
                }

                unsafe
                {
                    bool lightsOn    = false;
                    bool highbeamsOn = false;
                    NativeFunction.CallByName <bool>("GET_VEHICLE_LIGHTS_STATE", dbVehicle.cVehicle, &lightsOn, &highbeamsOn);

                    speedoMeterHighLight.setOptional   = (highbeamsOn ? true : false);
                    speedoMeterNormalLight.setOptional = (lightsOn ? true : false);
                }
            }
        }
Exemple #7
0
        protected override void OnUse(Ped playerped, DBVehicle dbVehicle, MyPlayer myPlayer)
        {
            if (EatPoint.Any(r => r.IsInRange(playerped.Position)))
            {
                NativeFunction.CallByName <uint>("SET_VEHICLE_DOOR_OPEN", vehicle, 5, false, false);
                Ped[] ped       = playerped.GetNearbyPeds(1);
                Ped   burgerPed = ped[0];
                if (myPlayer.playerLife >= 80 && !eaten)
                {
                    if (!answer)
                    {
                        Game.DisplayHelp("Give an answer by pressing Key 1 or 2");
                        Game.DisplaySubtitle("~y~Burgermen~s~: Unfortunately I have no more food, Check back soon ~b~officer", 1000);
                        NotificationManager.addNotification("~b~Your~s~ answers:\n\n1 - No problem, i come again later\n2 - Make your job properly!");
                    }
                    if (answer)
                    {
                        if (goodAnswer)
                        {
                            goodAnswer = false;
                            Game.DisplaySubtitle("~b~You~s~: No problem, they do a good job! i'll be back later", 4000);
                            GameFiber.Sleep(4000);
                            Game.DisplaySubtitle("~y~Burgermen~s~: Thank you for your understanding! You're a good officer", 10000);
                            if (PlayerAuthenticate.isLogged)
                            {
                                ExperienceManager.UpdateExp(5, "Good Behavior");
                            }

                            GameFiber.Sleep(10000);
                        }
                        else if (badAnswer)
                        {
                            badAnswer = false;
                            Game.DisplaySubtitle("~b~You~s~: Make their job properly Sir! I need my food ... !!", 4000);
                            GameFiber.Sleep(4000);
                            Game.DisplaySubtitle("~y~Burgermen~s~: I can not hear it! .. i .. i ... I quit my job!!!", 15000);
                            Vehicle[] _vehicle = burgerPed.GetNearbyVehicles(1);
                            _vehicle[0].LockStatus     = VehicleLockStatus.Unlocked;
                            _vehicle[0].FuelTankHealth = 500.0f;
                            burgerPed.Tasks.EnterVehicle(_vehicle[0], 5000, -1).WaitForCompletion();
                            _vehicle[0].LockStatus = VehicleLockStatus.Locked;
                            NativeFunction.CallByName <uint>("START_VEHICLE_HORN", vehicle, 5000, 0, true);
                            burgerPed.Dismiss();
                            GameFiber.Sleep(10000);
                            GameFiber.Yield();
                        }
                    }

                    if (Game.IsKeyDown(Keys.D1))
                    {
                        answer     = true;
                        goodAnswer = true;
                    }
                    else if (Game.IsKeyDown(Keys.D2))
                    {
                        answer    = true;
                        badAnswer = true;
                    }
                    return;
                }

                if (playerped.IsInAnyVehicle(false))
                {
                    Game.DisplaySubtitle("~y~Burgermen~s~: Officer " + PlayerAuthenticate.onlineUsername + ", please get out of the vehicle I can not understand you", 1000);
                    return;
                }

                if (!menuSelection && !eaten)
                {
                    Vector3 directionFromPlayerToPed = (playerped.Position - burgerPed.Position);
                    directionFromPlayerToPed.Normalize();
                    float heading = MathHelper.ConvertDirectionToHeading(directionFromPlayerToPed);
                    burgerPed.Heading = heading;
                    Game.DisplayHelp("Give an answer by pressing Key 1 or 2");
                    Game.DisplaySubtitle("~y~Burgermen~s~: Nice to see you, what do you want to buy ?", 1000);
                    NotificationManager.addNotification("~b~Choose a key ~s~for your food:\n\n1 - Burger with cheese\n" + "2 - HotDog with a drink");
                    GameFiber.Yield();
                }

                if (Game.IsKeyDown(Keys.D1))
                {
                    menuSelection = true;
                    Game.DisplaySubtitle("~y~Burgermen~s~: Okay, you want a burger. ~g~Good choice i prepare it ", 5000);
                    GameFiber.Sleep(5000);
                    eaten = true;
                    Game.DisplaySubtitle("~y~Burgermen~s~: Thank you for your visit ~b~Officer " + PlayerAuthenticate.onlineUsername + "~s~, Here your food, ~p~Bon Appetit ", 9000);
                    myPlayer.playerLife = 100;
                    HungerManager.UpdatePlayerLife(myPlayer);
                    GameFiber.Yield();
                }
                else if (Game.IsKeyDown(Keys.D2))
                {
                    menuSelection = true;
                    Game.DisplaySubtitle("~y~Burgermen~s~: I cook a hotdog for you. I prepare it one moment please", 5000);
                    GameFiber.Sleep(5000);
                    eaten = true;
                    Game.DisplaySubtitle("~y~Burgermen~s~: Thank you for your visit ~b~Officer " + PlayerAuthenticate.onlineUsername + "~s~, Here your food, ~p~Bon Appetit ", 9000);
                    myPlayer.playerLife = 100;
                    HungerManager.UpdatePlayerLife(myPlayer);
                    GameFiber.Yield();
                }
            }
            else
            {
                eaten = false;
            }
            base.OnUse(playerped, dbVehicle, myPlayer);
        }
Exemple #8
0
 protected virtual void OnUse(Ped playerped, DBVehicle dbVehicle, MyPlayer myPlayer)
 {
 }
Exemple #9
0
        public static DBVehicle GetRandomVehicle(string currentVehiclePlate)
        {
            DBVehicle dbVehicle = new DBVehicle(currentVehiclePlate, 100f);

            return(dbVehicle);
        }