Ejemplo n.º 1
0
        public void RentSpawnCarRoller2(Client client)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(client);

            if (client.HasData("RentVehicle"))
            {
                client.SendNotification("~y~Vous avez déjà loué un véhicule !");
                client.SendChatMessage("~r~Avertissement:~w~ Faite /unrent pour résilier la location !");
                return;
            }

            uint rveh = NAPI.Util.GetHashKey("blista2");

            Vehicle veh = NAPI.Vehicle.CreateVehicle(rveh, new Vector3(-1151.06201171875, -716.578186035156, 20.6585292816162), 311.515930175781f, 0, 0);

            NAPI.Vehicle.SetVehicleNumberPlate(veh, client.Name);
            client.SetIntoVehicle(veh, -1);
            veh.Locked = true;

            client.SendChatMessage("~r~Avertissement::~w~ /lock - Pour bloquer/débloquer votre véhicule");
            client.SendChatMessage("~r~Avertissement:~w~ /motor - Pour démarrer le moteur");

            pInfo.SubMoney(150);
            Database.Update(pInfo);

            EventTriggers.Update_Money(client);

            client.SendNotification("Vous avez payez ~g~150$~w~ pour la location.");

            client.SetData("RentVehicle", veh);
            isMenuOpen = false;
        }
Ejemplo n.º 2
0
        public void CMD_BurnMoney(Client client, double amount)
        {
            if (!client.HasData("ID"))
            {
                return;
            }

            PlayerInfo playerInfo = PlayerHelper.GetPlayerStats(client);

            if (playerInfo == null)
            {
                return;
            }

            bool result = playerInfo.SubMoney(amount);

            Database.Update(playerInfo);

            if (!result)
            {
                return;
            }

            client.SendNotification($"~g~tu as jeté {amount}$ !");
            EventTriggers.Update_Money(client);
        }
Ejemplo n.º 3
0
        public void RentSpawnCarRoller(Client client)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(client);

            if (client.HasData("RentVehicle"))
            {
                client.SendNotification("~y~Du besitzt bereits einen Mietvertrag!");
                client.SendChatMessage("~r~Mietfahrzeug:~w~ Nutze /unrent um deinen Mietvertrag zu kündigen!");
                return;
            }

            uint rveh = NAPI.Util.GetHashKey("faggio2");

            Vehicle veh = NAPI.Vehicle.CreateVehicle(rveh, new Vector3(-1151.06201171875, -716.578186035156, 20.6585292816162), 311.515930175781f, 0, 0);

            NAPI.Vehicle.SetVehicleNumberPlate(veh, client.Name);
            client.SetIntoVehicle(veh, -1);
            veh.Locked = true;

            client.SendChatMessage("~r~Mietfahrzeug:~w~ /lock - Abschliessen & Aufschliessen.");
            client.SendChatMessage("~r~Mietfahrzeug:~w~/motor - Motor starten/abschalten.");

            pInfo.SubMoney(150);
            Database.Update(pInfo);

            EventTriggers.Update_Money(client);

            client.SendNotification("Du hast ~g~150$~w~ für dein Mietfahrzeug gezahlt.");

            client.SetData("RentVehicle", veh);
        }
Ejemplo n.º 4
0
        internal PartAnimation(PartAnimation copyFromAnimation)
        {
            EventTrigger        = copyFromAnimation.EventTrigger;
            RotationSet         = copyFromAnimation.RotationSet;
            RotCenterSet        = copyFromAnimation.RotCenterSet;
            CurrentEmissivePart = copyFromAnimation.CurrentEmissivePart;
            AnimationId         = copyFromAnimation.AnimationId;
            ResetEmissives      = copyFromAnimation.ResetEmissives;
            EmissiveIds         = copyFromAnimation.EmissiveIds;

            //Unique Animation ID
            _uid = Guid.NewGuid();

            TypeSet          = copyFromAnimation.TypeSet;
            Muzzle           = copyFromAnimation.Muzzle;
            MoveToSetIndexer = copyFromAnimation.MoveToSetIndexer;
            NumberOfMoves    = copyFromAnimation.NumberOfMoves;
            System           = copyFromAnimation.System;
            SubpartId        = copyFromAnimation.SubpartId;
            MotionDelay      = copyFromAnimation.MotionDelay;
            DoesLoop         = copyFromAnimation.DoesLoop;
            DoesReverse      = copyFromAnimation.DoesReverse;
            TriggerOnce      = copyFromAnimation.TriggerOnce;
            _currentMove     = 0;
            MovesPivotPos    = copyFromAnimation.MovesPivotPos;
            FinalPos         = copyFromAnimation.FinalPos;
            HomePos          = copyFromAnimation.HomePos;
            HasMovement      = copyFromAnimation.HasMovement;
            EmissiveParts    = copyFromAnimation.EmissiveParts;
            EventIdLookup    = copyFromAnimation.EventIdLookup;
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Deletes any trigger in the schedule which effect name is
        /// contained within the given <paramref name="effectNames"/>.
        /// </summary>
        public void DeleteTriggers(IEnumerable <string> effectNames)
        {
            foreach (var program in Programs)
            {
                //Make a copy such that we do not modify the collection while looping
                var triggersCopy = program.Triggers.ToList();

                foreach (var trigger in program.Triggers)
                {
                    if (effectNames.Contains(trigger.EffectName))
                    {
                        triggersCopy.Remove(triggersCopy.FirstOrDefault(triggerCopy => triggerCopy.EffectName == trigger.EffectName));
                    }
                }

                program.Triggers = triggersCopy;
            }

            var eventTriggersCopy = EventTriggers.ToList();

            foreach (var trigger in EventTriggers)
            {
                if (effectNames.Contains(trigger.EffectName))
                {
                    eventTriggersCopy.Remove(eventTriggersCopy.FirstOrDefault(triggerCopy => triggerCopy.EffectName == trigger.EffectName));
                }
            }

            EventTriggers = eventTriggersCopy;
        }
Ejemplo n.º 6
0
        internal void PlayParticleEvent(EventTriggers eventTrigger, bool active, double distance, HashSet <string> muzzles)
        {
            if (ParticleEvents.ContainsKey(eventTrigger))
            {
                for (int i = 0; i < ParticleEvents[eventTrigger].Length; i++)
                {
                    var particle = ParticleEvents[eventTrigger][i];

                    if (active && particle.Restart && particle.Triggered)
                    {
                        continue;
                    }

                    var obb = particle.MyDummy.Entity.PositionComp.WorldAABB;
                    //var inView = Comp.Session.Camera.IsInFrustum(ref obb);

                    var canPlay = true;
                    if (muzzles != null)
                    {
                        for (int j = 0; j < particle.MuzzleNames.Length; j++)
                        {
                            if (particle.MuzzleNames[j] == "Any" || muzzles.Contains(particle.MuzzleNames[j]))
                            {
                                canPlay = true;
                                break;
                            }
                        }
                    }
                    else
                    {
                        canPlay = true;
                    }

                    if (!canPlay)
                    {
                        return;
                    }

                    if (active && !particle.Playing && distance <= particle.Distance)
                    {
                        particle.PlayTick = Comp.Session.Tick + particle.StartDelay;
                        Comp.Session.Av.ParticlesToProcess.Add(particle);
                        particle.Playing   = true;
                        particle.Triggered = true;
                    }
                    else if (!active)
                    {
                        if (particle.Playing)
                        {
                            particle.Stop = true;
                        }

                        particle.Triggered = false;
                    }
                }
            }
        }
Ejemplo n.º 7
0
 // Inherited
 public override void Clear()
 {
     Layering.Clear();
     EventTriggers.Clear();
     ExitTriggers.Clear();
     NPCObjects.Clear();
     Overlaps.Clear();
     TileSwitches.Clear();
     CollisionSwitches.Clear();
 }
Ejemplo n.º 8
0
        public void OnPlayerBuyVehicle1(Client client)
        {
            int client_id = client.GetData("ID");

            PlayerInfo     pInfo = PlayerHelper.GetPlayerStats(client);
            PlayerVehicles pVeh  = PlayerHelper.GetpVehiclesStats(client);

            if (client.HasData("PersonalVehicle"))
            {
                client.SendChatMessage("Du besitzt bereits zu viele Fahrzeuge!");
                return;
            }

            if (pInfo.money >= 12500)
            {
                uint    hash = NAPI.Util.GetHashKey("issi2");
                Vehicle veh  = NAPI.Vehicle.CreateVehicle(hash, new Vector3(-21.45006, -1676.862, 29.16188), 108.823f, 0, 0);
                NAPI.Vehicle.SetVehicleNumberPlate(veh, client.Name);
                client.SetIntoVehicle(veh, -1);

                veh.Locked         = true;
                pVeh               = new PlayerVehicles();
                pVeh._id           = client_id;
                pVeh.carslot      += 1;
                pVeh.carmodel      = "issi2";
                pVeh.last_location = new double[] { veh.Position.X, veh.Position.Y, veh.Position.Z };
                pVeh.last_rotation = veh.Rotation.Z;


                //TUNES
                pVeh.Color1 = 0; pVeh.Color2 = 0; pVeh.spoilers = -1; pVeh.fbumber = -1; pVeh.rbumber = -1; pVeh.sskirt = -1; pVeh.exhaust = -1; pVeh.frame = -1;
                pVeh.grill  = -1; pVeh.roof = -1; pVeh.motortuning = -1; pVeh.brakes = -1; pVeh.transmission = -1; pVeh.turbo = -1; pVeh.fwheels = -1; pVeh.bwheels = -1;
                pVeh.window = -1; pVeh.suspension = -1;

                NAPI.Vehicle.SetVehiclePrimaryColor(veh, pVeh.Color1); NAPI.Vehicle.SetVehicleSecondaryColor(veh, pVeh.Color2); NAPI.Vehicle.SetVehicleMod(veh, 0, pVeh.spoilers);
                NAPI.Vehicle.SetVehicleMod(veh, 1, pVeh.fbumber); NAPI.Vehicle.SetVehicleMod(veh, 2, pVeh.rbumber); NAPI.Vehicle.SetVehicleMod(veh, 3, pVeh.sskirt);
                NAPI.Vehicle.SetVehicleMod(veh, 4, pVeh.exhaust); NAPI.Vehicle.SetVehicleMod(veh, 5, pVeh.frame); NAPI.Vehicle.SetVehicleMod(veh, 6, pVeh.grill); NAPI.Vehicle.SetVehicleMod(veh, 10, pVeh.roof);
                NAPI.Vehicle.SetVehicleMod(veh, 11, pVeh.motortuning); NAPI.Vehicle.SetVehicleMod(veh, 12, pVeh.brakes); NAPI.Vehicle.SetVehicleMod(veh, 13, pVeh.transmission);
                NAPI.Vehicle.SetVehicleMod(veh, 18, pVeh.turbo); NAPI.Vehicle.SetVehicleMod(veh, 23, pVeh.fwheels); NAPI.Vehicle.SetVehicleMod(veh, 24, pVeh.bwheels); //MOTORAD
                NAPI.Vehicle.SetVehicleWindowTint(veh, pVeh.window); NAPI.Vehicle.SetVehicleMod(veh, 15, pVeh.suspension);

                client.SetData("PersonalVehicle", veh);

                pInfo.SubMoney(12500);
                Database.Update(pInfo);
                Database.Upsert(pVeh);

                EventTriggers.Update_Money(client);
            }
            else
            {
                client.SendChatMessage("[~y~Autohaus~w~] Du hast nicht genügend Bargeld bei dir!");
            }
        }
Ejemplo n.º 9
0
        public void CMD_GiveMoney(Client client, Client player, double amount)
        {
            if (!client.HasData("ID"))
            {
                return;
            }

            PlayerInfo playerInfo = PlayerHelper.GetPlayerStats(client);
            PlayerInfo pInfo      = PlayerHelper.GetPlayerStats(player);

            if (pInfo == null)
            {
                client.SendNotification($"Le joueur {player.Name} n'a pas pu être trouvé.");
                return;
            }


            PlayerInfo otherInfo = Database.GetById <PlayerInfo>(pInfo._id);

            if (otherInfo == null)
            {
                Console.WriteLine($"{pInfo.vorname} {pInfo.nachname} n'a pas de table PlayerInfo!");
                return;
            }

            bool result = playerInfo.SubMoney(amount);

            if (!result)
            {
                client.SendNotification("~r~Vous ne possédez pas cet argent!");
                return;
            }

            otherInfo.AddMoney(amount);

            Database.Update(otherInfo);
            Database.Update(playerInfo);

            client.SendNotification($"Vous avez donné au joueur { player.Name} ~g~{amount}$ ~w~avec succes!");
            player.SendNotification($"Vous avez reçu ~g~{amount}~w~ de {client.Name} !");
            EventTriggers.Update_Money(client);

            Client other_player = NAPI.Player.GetPlayerFromName(player.Name);

            if (other_player == null)
            {
                return;
            }

            EventTriggers.Update_Money(other_player);
        }
Ejemplo n.º 10
0
        public void CMD_GiveMoney(Client client, Client player, double amount)
        {
            if (!client.HasData("ID"))
            {
                return;
            }

            PlayerInfo playerInfo = PlayerHelper.GetPlayerStats(client);
            PlayerInfo pInfo      = PlayerHelper.GetPlayerStats(player);

            if (pInfo == null)
            {
                client.SendNotification($"Spieler {player.Name} konnte nicht gefunden werden.");
                return;
            }


            PlayerInfo otherInfo = Database.GetById <PlayerInfo>(pInfo._id);

            if (otherInfo == null)
            {
                Console.WriteLine($"{pInfo.vorname} {pInfo.nachname} besitzt keine PlayerInfo Tabelle!");
                return;
            }

            bool result = playerInfo.SubMoney(amount);

            if (!result)
            {
                client.SendNotification("~r~Dieses Geld besitzt du nicht!");
                return;
            }

            otherInfo.AddMoney(amount);

            Database.Update(otherInfo);
            Database.Update(playerInfo);

            client.SendNotification($"Du hast dem Spieler {player.Name} erfolgreich ~g~{amount}$ ~w~gegeben!");
            player.SendNotification($"Du hast ~g~{amount}~w~ von {client.Name} erhalten!");
            EventTriggers.Update_Money(client);

            Client other_player = NAPI.Player.GetPlayerFromName(player.Name);

            if (other_player == null)
            {
                return;
            }

            EventTriggers.Update_Money(other_player);
        }
Ejemplo n.º 11
0
        public void CMD_Money(Client client)
        {
            PlayerInfo playerInfo = PlayerHelper.GetPlayerStats(client);

            if (playerInfo == null)
            {
                Console.WriteLine("Spieler Statistiken konnten nicht gefunden werden.");
                return;
            }

            client.SendNotification($"Dein Guthaben beträgt: ~g~{playerInfo.money}$");
            client.SendNotification($"Dein Bankguthaben beträgt: ~g~{playerInfo.bank}$");

            EventTriggers.Update_Money(client);
        }
Ejemplo n.º 12
0
        public void CMD_Money(Client client)
        {
            PlayerInfo playerInfo = PlayerHelper.GetPlayerStats(client);

            if (playerInfo == null)
            {
                Console.WriteLine("Les statistiques des joueurs sont introuvables.");
                return;
            }

            client.SendNotification($"Votre solde est de: ~g~{playerInfo.money}$");
            client.SendNotification($"Votre solde bancaire est de: ~g~{playerInfo.bank}$");

            EventTriggers.Update_Money(client);
        }
Ejemplo n.º 13
0
        public static void FinishLogin(Client client)
        {
            int client_id = client.GetData("ID");

            PlayerInfo     playerInfo = PlayerHelper.GetPlayerStats(client);
            PlayerVehicles pVeh       = PlayerHelper.GetpVehiclesStats(client);

            //Database.Update(playerInfo);
            playerInfo.Update();

            EventTriggers.Update_Money(client);
            EventTriggers.Update_Bank(client);
            EventTriggers.Update_Wanteds(client);

            NAPI.Player.SetPlayerName(client, playerInfo.vorname + "" + playerInfo.nachname);

            if (playerInfo.wantedlevel >= 1)
            {
                NAPI.Player.SetPlayerNametagColor(client, 249, 27, 27);
            }

            if (playerInfo.temp_location == null)
            {
                client.Position = playerInfo.GetLastPlayerLocation();
            }
            else
            {
                client.Position = playerInfo.GetLastTempLocation();
                client.SendChatMessage("~r~Du sitzt noch " + playerInfo.jailtime);
                client.Freeze(true);
            }

            if (playerInfo.cuff == 1)
            {
                client.SendChatMessage("~r~Du hast Offlineflucht begangen und sitzt nun 10 Minuten länger im Gefängnis!");
                playerInfo.cuff = 0;
                playerInfo.Update();
            }

            PlayerData.ResetClothes(client);

            PlayerVehicles.GetLastCarPosition(client);
            //client.SendNotification("~g~Erfolgreich eingeloggt!");

            NAPI.ClientEvent.TriggerClientEvent(client, "LoginUnFreeze");
            NAPI.ClientEvent.TriggerClientEvent(client, "CameraDestroy");
            return;
        }
Ejemplo n.º 14
0
        public void CMD_UnRent(Client client)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(client);

            Vehicle rent = client.GetData("RentVehicle");

            if (client.HasData("RentVehicle"))
            {
                if (client.IsInVehicle)
                {
                    if (client.Position.DistanceTo2D(rent.Position) <= 0.1)
                    {
                        if (NAPI.Vehicle.GetVehicleHealth(client) >= 800)
                        {
                            Vehicle RentVehicle = client.GetData("RentVehicle");
                            RentVehicle.Delete();
                            client.SendChatMessage("Dein Mietvertrag wurde gekündigt. Du erhälst ~g~75$~w~ zurück!");
                            client.SendNotification("Du hast ~g~75$~w~ erhalten.");
                            client.ResetData("RentVehicle");
                            pInfo.AddMoney(75);
                            Database.Update(pInfo);
                            EventTriggers.Update_Money(client);
                        }
                        else if (NAPI.Vehicle.GetVehicleHealth(client) <= 800)
                        {
                            Vehicle RentVehicle = client.GetData("RentVehicle");
                            RentVehicle.Delete();
                            client.SendChatMessage("Dein Fahrzeug hat zu viele beschädigungen. Du erhälst kein Geld zurück!");
                            client.ResetData("RentVehicle");
                        }
                    }
                    else
                    {
                        client.SendNotification("Du befindest dich nicht auf dem Roller!");
                    }
                }
                else
                {
                    client.SendNotification("Du befindest dich nicht auf dem Roller!");
                }
            }
            else //if (client.HasData("RentVehicle") == false)
            {
                client.SendNotification("~r~Du besitzt kein Mietfahrzeug!");
            }
        }
Ejemplo n.º 15
0
        public void OnPlayerBuyVehicle1(Client client)
        {
            int client_id = client.GetData("ID");

            PlayerInfo     pInfo = PlayerHelper.GetPlayerStats(client);
            PlayerVehicles pVeh  = PlayerHelper.GetpVehiclesStats(client);

            if (client.HasData("PersonalVehicle"))
            {
                client.SendChatMessage("Du besitzt bereits zu viele Fahrzeuge!");
                return;
            }

            if (pInfo.money >= 12500)
            {
                uint    hash = NAPI.Util.GetHashKey("issi2");
                Vehicle veh  = NAPI.Vehicle.CreateVehicle(hash, new Vector3(-21.45006, -1676.862, 29.16188), 108.823f, 0, 0);
                NAPI.Vehicle.SetVehicleNumberPlate(veh, client.Name);
                client.SetIntoVehicle(veh, -1);

                veh.Locked         = true;
                pVeh               = new PlayerVehicles();
                pVeh._id           = client_id;
                pVeh.carslot      += 1;
                pVeh.carmodel      = "issi2";
                pVeh.last_location = new double[] { veh.Position.X, veh.Position.Y, veh.Position.Z };
                pVeh.last_rotation = veh.Rotation.Z;

                LoadTunes(client, veh, pVeh);

                client.SetData("PersonalVehicle", veh);
                veh.SetData("ID", client_id);

                pInfo.SubMoney(12500);
                Database.Update(pInfo);
                Database.Upsert(pVeh);

                EventTriggers.Update_Money(client);
            }
            else
            {
                client.SendChatMessage("[~y~Autohaus~w~] Du hast nicht genügend Bargeld bei dir!");
            }
        }
Ejemplo n.º 16
0
        private void lstEventTriggers_Click(object sender, int row, int col)
        {
            try
            {
                switch (col)
                {
                case EventTriggersList.Enabled:
                    bool enabled = (bool)lstEventTriggers[row][col][0];

                    if (enabled)
                    {
                        EventTriggers[row].Enable();
                    }
                    else
                    {
                        EventTriggers[row].Disable();
                    }

                    SaveSettings();

                    break;

                case EventTriggersList.Delete:
                    EventTriggers.RemoveAt(row);
                    RefreshEventTriggerList();

                    SaveSettings();

                    break;

                default:
                    PrintEventTrigger(EventTriggers[row]);

                    break;
                }
            }
            catch (Exception ex)
            {
                Util.LogError(ex);
            }
        }
Ejemplo n.º 17
0
        void btnEventTriggerAdd_Click(object sender, MVControlEventArgs e)
        {
            try
            {
                EventTrigger trigger = new EventTrigger(
                    (string)chcEventTriggerEvent.Data[chcEventTriggerEvent.Selected],
                    (Webhook)chcEventsWebhook.Data[chcEventsWebhook.Selected],
                    edtEventsMessage.Text,
                    true);

                EventTriggers.Add(trigger);

                RefreshEventTriggerList();
                SaveSettings();
            }
            catch (Exception ex)
            {
                Util.WriteToChat("Error adding new EventTrigger: " + ex.Message);
                Util.LogError(ex);
            }
        }
Ejemplo n.º 18
0
        public void CMD_DelAkte(Client client, Client player)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(player);

            if (!FraktionSystem.HasRank(client, 1))
            {
                client.SendNotification("~r~Du gehörst nicht zur LSPD!");
                return;
            }

            if (!client.HasData("onduty"))
            {
                client.SendNotification("~r~Du befindest dich nicht im Dienst!");
                return;
            }

            if (player == null)
            {
                client.SendNotification("Spieler wurde nicht gefunden!");
                return;
            }

            if (client.Name == player.Name)
            {
                client.SendNotification("~r~Du kannst dich nicht selber angeben!");
                return;
            }

            if (pInfo.wantedlevel > 4)
            {
                client.SendNotification("Dieser Spieler hat zu viele Wanteds!");
                return;
            }

            pInfo.wantedlevel = 0;
            client.SendNotification($"[~b~LSPD~w~]: Du hast die Akte von {player.Name} ~r~gelöscht~w~!");
            player.SendChatMessage($"[~b~LSPD~w~]: ~b~{client.Name}~w~ hat deine Akte ~r~gelöscht~w~!");
            pInfo.Update();
            EventTriggers.Update_Wanteds(player);
        }
Ejemplo n.º 19
0
        public void CMD_SetWanted(Client client, Client player, int wanteds)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(player);

            if (!FraktionSystem.HasRank(client, 1))
            {
                client.SendNotification("~r~Du gehörst nicht zur LSPD!");
                return;
            }

            if (!client.HasData("onduty"))
            {
                client.SendNotification("~r~Du befindest dich nicht im Dienst!");
                return;
            }

            if (player == null)
            {
                client.SendNotification("Spieler wurde nicht gefunden!");
                return;
            }

            if (client.Name == player.Name)
            {
                client.SendNotification("~r~Du kannst dich nicht selber angeben!");
                return;
            }

            if (wanteds > 6)
            {
                client.SendChatMessage("Du kannst nicht mehr als 6 Wanteds verteilen!");
                return;
            }

            pInfo.wantedlevel += wanteds;
            client.SendNotification($"[~b~LSPD~w~]: Du hast ~r~{player.Name}~w~ erfolgreich ~r~{wanteds} Wanteds~w~ gegeben!");
            player.SendChatMessage($"[~b~LSPD~w~]: ~b~{client.Name}~w~ hat dir ~r~{wanteds} Wanteds~w~ gegeben!");
            pInfo.Update();
            EventTriggers.Update_Wanteds(player);
        }
Ejemplo n.º 20
0
        public void CMD_RemoveWanted(Client client, Client player, int wanteds)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(player);

            if (!FraktionSystem.HasRank(client, 1))
            {
                client.SendNotification("~r~Du gehörst nicht zur LSPD!");
                return;
            }

            if (!client.HasData("onduty"))
            {
                client.SendNotification("~r~Du befindest dich nicht im Dienst!");
                return;
            }

            if (player == null)
            {
                client.SendNotification("Spieler wurde nicht gefunden!");
                return;
            }

            if (client.Name == player.Name)
            {
                client.SendNotification("~r~Du kannst dich nicht selber angeben!");
                return;
            }

            if (pInfo.wantedlevel - wanteds <= 0)
            {
                client.SendChatMessage("Du kannst dem Spieler nicht weniger als 0 Wanteds geben!");
                return;
            }

            pInfo.wantedlevel -= wanteds;
            client.SendNotification($"~g~[POLICE]:~w~ Du hast ~r~{player.Name}~w~ erfolgreich ~r~{wanteds} Wanteds~w~ abgezogen!");
            player.SendChatMessage($"~g~[POLICE]: ~b~{client.Name}~w~ hat dir ~r~{wanteds} Wanteds~w~ abgezogen!");
            pInfo.Update();
            EventTriggers.Update_Wanteds(player);
        }
Ejemplo n.º 21
0
        public static void FinishLogin(Client client)
        {
            int client_id = client.GetData("ID");

            PlayerInfo     playerInfo    = PlayerHelper.GetPlayerStats(client);
            PlayerClothes  playerClothes = PlayerHelper.GetPlayerClothes(client);
            PlayerVehicles pVeh          = PlayerHelper.GetpVehiclesStats(client);

            //Database.Update(playerInfo);
            playerInfo.Update();

            EventTriggers.Update_Money(client);
            EventTriggers.Update_Bank(client);
            EventTriggers.Update_Wanteds(client);

            NAPI.Player.SetPlayerName(client, playerInfo.vorname + "" + playerInfo.nachname);

            if (playerInfo.wantedlevel >= 1)
            {
                NAPI.Player.SetPlayerNametagColor(client, 249, 27, 27);
            }

            if (playerInfo.cuff == 1)
            {
                client.SendNotification("~r~Suite à l'évasion tentée, vous recevez 5 minutes de prison supplémentaires.");
                playerInfo.jailtime += 300000;
                playerInfo.cuff      = 0;
                playerInfo.jail      = 1;
                playerInfo.Update();
            }

            PlayerVehicles.GetLastCarPosition(client);
            //client.SendNotification("~g~Erfolgreich eingeloggt!");

            NAPI.ClientEvent.TriggerClientEvent(client, "LoginUnFreeze");
            NAPI.ClientEvent.TriggerClientEvent(client, "CameraDestroy");

            PlayerData.Respawn(client);
            return;
        }
Ejemplo n.º 22
0
        public void CMD_SetWanted(Client client, Client player, int wanteds)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(player);

            if (!FraktionSystem.HasRank(client, 1))
            {
                client.SendNotification("~r~Vous n'appartenez pas à la LSPD!");
                return;
            }

            if (!client.HasData("onduty"))
            {
                client.SendNotification("~r~Vous n'êtes pas en service!");
                return;
            }

            if (player == null)
            {
                client.SendNotification("Le joueur n'a pas été trouvé!");
                return;
            }

            if (client.Name == player.Name)
            {
                client.SendNotification("~r~Vous ne pouvez pas vous spécifier!");
                return;
            }

            if (wanteds > 6)
            {
                client.SendChatMessage("Vous ne pouvez pas distribuer plus de 6 Wanted!");
                return;
            }

            pInfo.wantedlevel += wanteds;
            client.SendNotification($"[~b~LSPD~w~]: Le joueur ~r~{player.Name}~w~ vous à donné  ~r~{wanteds} recherche~w~ !");
            player.SendChatMessage($"[~b~LSPD~w~]: ~b~{client.Name}~w~ est recherché ~r~{wanteds} ~w~ !");
            pInfo.Update();
            EventTriggers.Update_Wanteds(player);
        }
Ejemplo n.º 23
0
        public void CMD_DelAkte(Client client, Client player)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(player);

            if (!FraktionSystem.HasRank(client, 1))
            {
                client.SendNotification("~r~Vous n'appartenez pas à la LSPD!");
                return;
            }

            if (!client.HasData("onduty"))
            {
                client.SendNotification("~r~Vous n'êtes pas de service!");
                return;
            }

            if (player == null)
            {
                client.SendNotification("Le joueur n'a pas été trouvé!");
                return;
            }

            if (client.Name == player.Name)
            {
                client.SendNotification("~r~Vous ne pouvez pas vous spécifier!");
                return;
            }

            if (pInfo.wantedlevel > 4)
            {
                client.SendNotification("Ce joueur a trop de souhaits!");
                return;
            }

            pInfo.wantedlevel = 0;
            client.SendNotification($"[~b~LSPD~w~]: Vous avez supprimé le dossier de { player.Name} ~r~~w~!");
            player.SendChatMessage($"[~b~LSPD~w~]: ~b~{client.Name}~w~ à supprimer ton dossier ~r~~w~!");
            pInfo.Update();
            EventTriggers.Update_Wanteds(player);
        }
Ejemplo n.º 24
0
        public void CMD_RemoveWanted(Client client, Client player, int wanteds)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(player);

            if (!FraktionSystem.HasRank(client, 1))
            {
                client.SendNotification("~r~Vous n'appartenez pas à la LSPD!");
                return;
            }

            if (!client.HasData("onduty"))
            {
                client.SendNotification("~r~Vous n'êtes pas en service!");
                return;
            }

            if (player == null)
            {
                client.SendNotification("Le joueur n'a pas été trouvé!");
                return;
            }

            if (client.Name == player.Name)
            {
                client.SendNotification("~r~Vous ne pouvez pas vous spécifier!");
                return;
            }

            if (pInfo.wantedlevel - wanteds <= 0)
            {
                client.SendChatMessage("Vous ne pouvez pas donner au joueur pas moins de 0 Wanted!");
                return;
            }

            pInfo.wantedlevel -= wanteds;
            client.SendNotification($"[~b~LSPD~w~]: Vous avez enlevé un recherche à ~r~{player.Name}~w~ il à ~r~{wanteds} recherche~w~!");
            player.SendChatMessage($"[~b~LSPD~w~]: ~b~{client.Name}~w~ a vous ~r~{wanteds} recherche~w~ abgezogen!");
            pInfo.Update();
            EventTriggers.Update_Wanteds(player);
        }
Ejemplo n.º 25
0
        public void OnPlayerEinzahlung(Client client, int summe)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(client);

            if (pInfo.money < summe)
            {
                client.SendChatMessage("~r~Du hast nicht genung Bargeld!");
                client.TriggerEvent("BankResult", 0);
                return;
            }
            else
            {
                pInfo.money -= summe;
                pInfo.bank  += summe;
                client.SendChatMessage($"~w~Du hast ~g~${summe} ~w~auf dein Konto eingezahlt!");
                client.SendChatMessage($"~w~Neuer Kontostand: ~g~${pInfo.bank}~w~ | Bargeld: ~g~${pInfo.money}");
                client.TriggerEvent("BankResult", 1);
                Database.Upsert(pInfo);

                EventTriggers.Update_Money(client);
                EventTriggers.Update_Bank(client);
            }
        }
Ejemplo n.º 26
0
        public void OnPlayerEinzahlung(Client client, int summe)
        {
            PlayerInfo pInfo = PlayerHelper.GetPlayerStats(client);

            if (pInfo.money < summe)
            {
                client.SendChatMessage("~r~Vous n'avez pas assez d'argent!");
                client.TriggerEvent("BankResult", 0);
                return;
            }
            else
            {
                pInfo.money -= summe;
                pInfo.bank  += summe;
                client.SendChatMessage($"~w~Vous avez déposé ~g~${summe} ~w~sur votre compte");
                client.SendChatMessage($"~w~Nouveau solde du compte ~g~${pInfo.bank}~w~ | trésorerie: ~g~${pInfo.money}");
                client.TriggerEvent("BankResult", 1);
                Database.Upsert(pInfo);

                EventTriggers.Update_Money(client);
                EventTriggers.Update_Bank(client);
            }
        }
Ejemplo n.º 27
0
        public void CMD_setmoney(Client client, Client player, double amount)
        {
            if (!client.HasData("ID"))
            {
                return;
            }

            PlayerInfo playerInfo = PlayerHelper.GetPlayerStats(client);
            PlayerInfo pInfo      = PlayerHelper.GetPlayerStats(player);

            if (!AdminSystem.HasRank(client, 2))
            {
                client.SendNotification("~r~Vous n'avez aucune autorisation!");
                return;
            }

            client.SendNotification($"Vous avez donné à ~y~{player.Name}~w~  ~g~{amount}$~w~ $!");
            player.SendNotification($"Vous avez obtenu ~g~{amount}$~w~ ");

            pInfo.AddMoney(amount);

            Database.Update(pInfo);
            EventTriggers.Update_Money(player);
        }
Ejemplo n.º 28
0
        public void CMD_setmoney(Client client, Client player, double amount)
        {
            if (!client.HasData("ID"))
            {
                return;
            }

            PlayerInfo playerInfo = PlayerHelper.GetPlayerStats(client);
            PlayerInfo pInfo      = PlayerHelper.GetPlayerStats(player);

            if (!AdminSystem.HasRank(client, 2))
            {
                client.SendNotification("~r~Du hast dazu keine Berechtigung!");
                return;
            }

            client.SendNotification($"Du hast dem Spieler ~y~{player.Name}~w~ erfolgreich ~g~{amount}$~w~ gegeben!");
            player.SendNotification($"Du hast ~g~{amount}$~w~ erhalten!");

            pInfo.AddMoney(amount);

            Database.Update(pInfo);
            EventTriggers.Update_Money(player);
        }
Ejemplo n.º 29
0
        public void OnPlayerUberweisungAttempt(Client client, string name, int summe)
        {
            if (!client.HasData("ID"))
            {
                return;
            }

            Client player = NAPI.Pools.GetAllPlayers().Find(x => x.Name == name);

            PlayerInfo playerInfo = PlayerHelper.GetPlayerStats(client);
            PlayerInfo pInfo      = PlayerHelper.GetPlayerStats(player);
            PlayerInfo otherInfo  = Database.GetById <PlayerInfo>(pInfo._id);

            string spielername = pInfo.vorname + pInfo.nachname;

            /*if (name)
             * {
             *  client.SendChatMessage("[~g~BANK~w~] Diese Person existiert nicht!");
             *  client.TriggerEvent("BankResult", 0);
             *  return;
             * }*/

            if (spielername == null)
            {
                client.SendChatMessage("[~g~BANK~w~] Diese Person existiert nicht!");
                client.TriggerEvent("BankResult", 0);
                return;
            }

            if (summe <= 0)
            {
                client.SendChatMessage("[~g~BANK~w~] Dein Betrag ist zu klein!");
                client.TriggerEvent("BankResult", 0);
                return;
            }
            else if (playerInfo.bank < summe)
            {
                client.SendChatMessage("[~g~BANK~w~] Dein Guthaben reicht nicht aus!");
                client.TriggerEvent("BankResult", 0);
                return;
            }
            if (client.Name == player.Name)
            {
                client.SendChatMessage($"[~g~BANK~w~] Du kannst dir nicht selber Geld Überweisen!");
                client.TriggerEvent("BankResult", 0);
                return;
            }
            else
            {
                client.SendChatMessage($"[~g~BANK~w~] Du hast {otherInfo.vorname}{otherInfo.nachname} ~g~{summe}$~w~ überwiesen!");
                player.SendChatMessage($"[~g~BANK~w~] {playerInfo.vorname}{playerInfo.nachname} hat dir ~g~{summe}$~w~ überwiesen.");

                playerInfo.bank -= summe;
                otherInfo.bank  += summe;

                Database.Update(playerInfo);
                EventTriggers.Update_Bank(client);

                Database.Update(otherInfo);
                EventTriggers.Update_Bank(player);
            }
        }
Ejemplo n.º 30
0
        internal void EventTriggerStateChanged(EventTriggers state, bool active, HashSet <string> muzzles = null)
        {
            var session = Comp.Session;
            var canPlay = !session.DedicatedServer && session.SyncBufferedDistSqr >= Vector3D.DistanceSquared(session.CameraPos, MyPivotPos);

            switch (state)
            {
            case EventTriggers.StopFiring:
            case EventTriggers.PreFire:
            case EventTriggers.Firing:
                if (AnimationsSet.ContainsKey(state))
                {
                    var  addToFiring = AnimationsSet.ContainsKey(EventTriggers.StopFiring) && state == EventTriggers.Firing;
                    uint delay       = 0;
                    if (active)
                    {
                        if (state == EventTriggers.StopFiring)
                        {
                            // Fix this properly
                            var stopLen = 0u;
                            System.WeaponAnimationLengths.TryGetValue(EventTriggers.StopFiring, out stopLen);
                            Timings.ShootDelayTick = stopLen + session.Tick;
                            if (LastEvent == EventTriggers.Firing || LastEvent == EventTriggers.PreFire)
                            {
                                if (CurLgstAnimPlaying != null && CurLgstAnimPlaying.Running)
                                {
                                    delay = CurLgstAnimPlaying.Reverse ? (uint)CurLgstAnimPlaying.CurrentMove : (uint)((CurLgstAnimPlaying.NumberOfMoves - 1) - CurLgstAnimPlaying.CurrentMove);
                                    Timings.ShootDelayTick += delay;
                                }
                            }
                        }
                    }

                    for (int i = 0; i < AnimationsSet[state].Length; i++)
                    {
                        var animation = AnimationsSet[state][i];

                        if (active && !animation.Running && (animation.Muzzle == "Any" || (muzzles != null && muzzles.Contains(animation.Muzzle))))
                        {
                            if (animation.TriggerOnce && animation.Triggered)
                            {
                                continue;
                            }
                            animation.Triggered = true;

                            if (CurLgstAnimPlaying == null || CurLgstAnimPlaying.EventTrigger != state || animation.NumberOfMoves > CurLgstAnimPlaying.NumberOfMoves)
                            {
                                CurLgstAnimPlaying = animation;
                            }

                            if (animation.Muzzle != "Any" && addToFiring)
                            {
                                _muzzlesFiring.Add(animation.Muzzle);
                            }

                            animation.StartTick = session.Tick + animation.MotionDelay + delay;
                            Comp.Session.AnimationsToProcess.Add(animation);
                            animation.Running = true;
                            //animation.Paused = Comp.ResettingSubparts;
                            animation.CanPlay = canPlay;

                            if (animation.DoesLoop)
                            {
                                animation.Looping = true;
                            }
                        }
                        else if (active && animation.DoesLoop)
                        {
                            animation.Looping = true;
                        }
                        else if (!active)
                        {
                            animation.Looping   = false;
                            animation.Triggered = false;
                        }
                    }
                    if (active && state == EventTriggers.StopFiring)
                    {
                        _muzzlesFiring.Clear();
                    }
                }
                break;

            case EventTriggers.StopTracking:
            case EventTriggers.Tracking:
                if (AnimationsSet.ContainsKey(state))
                {
                    var oppositeEvnt = state == EventTriggers.Tracking ? EventTriggers.StopTracking : EventTriggers.Tracking;
                    //if (active) LastEvent = state;
                    for (int i = 0; i < AnimationsSet[state].Length; i++)
                    {
                        var animation = AnimationsSet[state][i];
                        if (active && !animation.Running)
                        {
                            if (animation.TriggerOnce && animation.Triggered)
                            {
                                continue;
                            }
                            animation.Triggered = true;

                            if (CurLgstAnimPlaying == null || CurLgstAnimPlaying.EventTrigger != state || animation.NumberOfMoves > CurLgstAnimPlaying.NumberOfMoves)
                            {
                                CurLgstAnimPlaying = animation;
                            }

                            PartAnimation animCheck;
                            animation.Running = true;
                            //animation.Paused = Comp.ResettingSubparts;
                            animation.CanPlay = canPlay;
                            string opEvent = "";
                            if (animation.EventIdLookup.TryGetValue(oppositeEvnt, out opEvent) && AnimationLookup.TryGetValue(opEvent, out animCheck) && animCheck.Running)
                            {
                                animCheck.Reverse = true;

                                if (!animation.DoesLoop)
                                {
                                    animation.Running = false;
                                }
                                else
                                {
                                    animation.StartTick = Comp.Session.Tick + (uint)animCheck.CurrentMove + animation.MotionDelay;
                                    Comp.Session.AnimationsToProcess.Add(animation);
                                }
                            }
                            else
                            {
                                Comp.Session.AnimationsToProcess.Add(animation);
                                animation.StartTick = session.Tick + animation.MotionDelay;
                            }

                            if (animation.DoesLoop)
                            {
                                animation.Looping = true;
                            }
                        }
                        else if (active && animation.DoesLoop)
                        {
                            animation.Looping = true;
                        }
                        else if (!active)
                        {
                            animation.Looping   = false;
                            animation.Triggered = false;
                        }
                    }
                }
                break;

            case EventTriggers.TurnOn:
            case EventTriggers.TurnOff:
                if (active && AnimationsSet.ContainsKey(state))
                {
                    var oppositeEvnt = state == EventTriggers.TurnOff ? EventTriggers.TurnOn : EventTriggers.TurnOff;

                    if ((state == EventTriggers.TurnOn && !Comp.State.Value.Online) || state == EventTriggers.TurnOff && Comp.State.Value.Online)
                    {
                        return;
                    }

                    //LastEvent = state;
                    for (int i = 0; i < AnimationsSet[state].Length; i++)
                    {
                        var animation = AnimationsSet[state][i];
                        if (!animation.Running)
                        {
                            if (CurLgstAnimPlaying == null || CurLgstAnimPlaying.EventTrigger != state || animation.NumberOfMoves > CurLgstAnimPlaying.NumberOfMoves)
                            {
                                CurLgstAnimPlaying = animation;
                            }

                            PartAnimation animCheck;
                            animation.Running = true;
                            animation.CanPlay = true;
                            //animation.Paused = Comp.ResettingSubparts;
                            string eventName;
                            if (animation.EventIdLookup.TryGetValue(oppositeEvnt, out eventName) && AnimationLookup.TryGetValue(eventName, out animCheck))
                            {
                                if (animCheck.Running)
                                {
                                    animCheck.Reverse = true;
                                    animation.Running = false;
                                }
                                else
                                {
                                    session.ThreadedAnimations.Enqueue(animation);
                                }
                            }
                            else
                            {
                                session.ThreadedAnimations.Enqueue(animation);
                            }

                            animation.StartTick = session.Tick + animation.MotionDelay;
                            if (state == EventTriggers.TurnOff)
                            {
                                animation.StartTick += Timings.OffDelay;
                            }
                        }
                        else
                        {
                            animation.Reverse = false;
                        }
                    }
                }
                break;

            case EventTriggers.EmptyOnGameLoad:
            case EventTriggers.Overheated:
            case EventTriggers.OutOfAmmo:
            case EventTriggers.BurstReload:
            case EventTriggers.Reloading:
                if (AnimationsSet.ContainsKey(state))
                {
                    //if (active) LastEvent = state;
                    for (int i = 0; i < AnimationsSet[state].Length; i++)
                    {
                        var animation = AnimationsSet[state][i];
                        if (active && !animation.Running)
                        {
                            if (animation.TriggerOnce && animation.Triggered)
                            {
                                continue;
                            }
                            animation.Triggered = true;

                            if (CurLgstAnimPlaying == null || CurLgstAnimPlaying.EventTrigger != state || animation.NumberOfMoves > CurLgstAnimPlaying.NumberOfMoves)
                            {
                                CurLgstAnimPlaying = animation;
                            }

                            animation.StartTick = session.Tick + animation.MotionDelay;
                            session.ThreadedAnimations.Enqueue(animation);

                            animation.Running = true;
                            animation.CanPlay = canPlay;
                            //animation.Paused = Comp.ResettingSubparts;

                            if (animation.DoesLoop)
                            {
                                animation.Looping = true;
                            }
                        }
                        else if (active && animation.DoesLoop)
                        {
                            animation.Looping = true;
                        }
                        else if (!active)
                        {
                            animation.Looping   = false;
                            animation.Triggered = false;
                        }
                    }
                }
                break;
            }
            if (active)
            {
                LastEvent = state;
            }
        }