Exemple #1
0
            public async void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                try
                {
                    if (arguments.Count <= 0)
                    {
                        return;
                    }

                    var model = new Model(API.GetHashKey(arguments.ElementAt(0)));

                    if (!model.IsValid || !model.IsVehicle)
                    {
                        return;
                    }

                    var position = entity.Position;
                    var vehicle  = await World.CreateVehicle(model, position.AsVector(), position.Heading);

                    entity.Task.WarpIntoVehicle(vehicle, VehicleSeat.Driver);
                }
                catch (Exception)
                {
                    // Ignored
                }
            }
Exemple #2
0
            public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                if (arguments.Count < 1)
                {
                    Chat.SendLocalMessage("Voice Chat",
                                          Function.Call <float>(Hash.NETWORK_GET_TALKER_PROXIMITY).ToString(CultureInfo.InvariantCulture),
                                          Color.FromArgb(0, 0, 255));

                    return;
                }

                float range;

                try
                {
                    range = float.Parse(arguments.ElementAt(0));
                }
                catch (Exception)
                {
                    range = 0f;
                }

                Function.Call(Hash.NETWORK_CLEAR_VOICE_CHANNEL);
                Function.Call(Hash.NETWORK_SET_TALKER_PROXIMITY, range);

                Chat.SendLocalMessage("Voice Chat", $"Ändrade voicechat proximity till {range}",
                                      Color.FromArgb(0, 0, 255));
            }
Exemple #3
0
            public async Task Down(AtlasPlayer player)
            {
                while (API.GetPlayerSwitchState() != 5)
                {
                    await BaseScript.Delay(100);
                }

                Atlas.AttachTickHandler(OnTick);

                var timestamp = API.GetGameTimer();

                while (timestamp + 3000 > API.GetGameTimer())
                {
                    await BaseScript.Delay(10);
                }

                API.SwitchInPlayer(player.Entity.Id);

                while (API.GetPlayerSwitchState() != 12)
                {
                    await BaseScript.Delay(10);
                }

                Atlas.DetachTickHandler(OnTick);

                API.ClearDrawOrigin();
            }
Exemple #4
0
        public async Task ResetMask(AtlasPlayer player, AtlasCharacter character)
        {
            var equipped = character.Metadata.EquippedMask;

            character.Style.Mask.Current     = equipped?.Item1 ?? 0;
            character.Style.MaskType.Current = equipped?.Item2 ?? 0;

            await character.Style.Commit(player);
        }
Exemple #5
0
            public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                var position = entity.Position;
                var title    = arguments.Count > 1 ? string.Join(" ", arguments.Skip(1)) : "Position";
                var log      =
                    $"[Developer] {title}: new Position({position.X}f, {position.Y}f, {position.Z}f, {position.Heading}f)";

                Logger.Info(log);
            }
Exemple #6
0
            public async void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                if (arguments.Count < 2)
                {
                    return;
                }

                await entity.Task.PlayAnimation(arguments[0], arguments[1], 8f, -8f, -1, AnimationFlags.None, 0);
            }
Exemple #7
0
                public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
                {
                    API.ClearPedTasksImmediately(entity.Id);
                    API.ClearPedSecondaryTask(entity.Id);
                    API.SetNuiFocus(false, false);

                    World.GetAllProps().Where(self => self.IsAttachedTo(Entity.FromHandle(entity.Id))).ToList()
                    .ForEach(self => self.Detach());

                    Chat.SendGlobalMessage("Reload", "Laddade om karaktären!", Color.FromArgb(255, 0, 0));
                }
Exemple #8
0
            public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                if (arguments.Count < 2)
                {
                    Chat.SendLocalMessage(Title, Usage, Color.FromArgb(255, 0, 0));

                    return;
                }

                int balance;

                try
                {
                    balance = Convert.ToInt32(arguments.ElementAt(1));
                }
                catch (FormatException)
                {
                    Chat.SendLocalMessage(Title, InvalidAmount, Color.FromArgb(255, 0, 0));

                    return;
                }

                switch (arguments.ElementAt(0).ToUpper())
                {
                case "ADD":
                    player.Character.Cash += balance;

                    Chat.SendLocalMessage(Title,
                                          $"{CorrectedCash}{player.Character.Cash})", Color.FromArgb(255, 0, 0));

                    break;

                case "SET":
                    player.Character.Cash = balance;
                    Chat.SendLocalMessage(Title,
                                          $"{CorrectedCash}{player.Character.Cash})", Color.FromArgb(255, 0, 0));

                    break;

                case "REMOVE":
                    player.Character.Cash -= balance;
                    Chat.SendLocalMessage(Title,
                                          $"{CorrectedCash}{player.Character.Cash})", Color.FromArgb(255, 0, 0));

                    break;

                default:
                    Chat.SendLocalMessage(Title,
                                          $"{NotFoundSubcommand}{arguments.ElementAt(0)}", Color.FromArgb(255, 0, 0));

                    break;
                }
            }
Exemple #9
0
                public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
                {
                    var manager = ActionMessageManager.GetModule();

                    manager.Messages.Add(new ActionMessageManager.ActionMessage
                    {
                        Seed    = Seed.Generate(),
                        Sender  = API.GetPlayerServerId(API.PlayerId()),
                        Message = string.Join(" ", arguments)
                    });
                    manager.Commit();
                }
Exemple #10
0
            public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                if (arguments.Count < 1)
                {
                    Chat.SendLocalMessage(Title, Usage, Color.FromArgb(255, 0, 0));

                    return;
                }

                switch (arguments.ElementAt(0).ToUpper())
                {
                case "SET":
                    if (arguments.Count < 3)
                    {
                        Chat.SendLocalMessage(Title, Usage, Color.FromArgb(255,
                                                                           0, 0));

                        return;
                    }

                    var jobName = arguments[1];
                    var jobRole = 0;

                    try
                    {
                        jobRole = int.Parse(arguments[2]);
                    }
                    catch (Exception)
                    {
                        // Ignored
                    }

                    Enum.TryParse <Employment>(jobName, true, out var job);

                    var character = Cache.Character;

                    character.Metadata.Employment     = job;
                    character.Metadata.EmploymentRole = jobRole;

                    Chat.SendLocalMessage(Title,
                                          $"Anställde {character.Fullname} hos {job.ToString()} - {jobRole}",
                                          Color.FromArgb(255, 0, 0));

                    break;

                default:
                    Chat.SendLocalMessage(Title,
                                          $"Kunde inte hitta kommando: {arguments.ElementAt(0)}", Color.FromArgb(255, 0, 0));

                    break;
                }
            }
Exemple #11
0
            public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                StyleManager.GetModule().OpenStyleChange(Cache.Character.Style, "General", 0,
                                                         (type) =>
                {
                    if (type != 0)
                    {
                        return;
                    }

                    Logger.Info($"[Developer] {JsonConvert.SerializeObject(player.Character.Style)}");
                }, "All");
            }
Exemple #12
0
            public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                var vehicle = entity.Vehicle;

                if (vehicle == null)
                {
                    return;
                }

                vehicle.Wash();
                vehicle.Repair();
                vehicle.PlaceOnGround();
            }
Exemple #13
0
            public async void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                var waypoint = World.GetWaypointBlip();

                if (waypoint == null)
                {
                    return;
                }

                var position = waypoint.Position;

                position.Z = World.GetGroundHeight(position) + 1;

                await player.Entity.Teleport(position.ToPosition());
            }
Exemple #14
0
            public async Task Up(AtlasPlayer player)
            {
                var timestamp = API.GetGameTimer();

                Atlas.AttachTickHandler(OnTick);

                player.Sound.Disable();

                API.SwitchOutPlayer(player.Entity.Id, 0, 1);

                while (API.GetPlayerSwitchState() != 5 && timestamp + 15000 > API.GetGameTimer())
                {
                    await BaseScript.Delay(0);
                }

                player.Sound.Enable();

                Atlas.DetachTickHandler(OnTick);
            }
Exemple #15
0
            public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                if (arguments.Count < 1)
                {
                    return;
                }

                var argument = arguments[0];

                foreach (var item in Items)
                {
                    if (item.Key != argument.ToLower())
                    {
                        continue;
                    }

                    ItemHelper.Give(InventoryManager.GetModule().GetContainer("pockets_inventory"),
                                    (InventoryItem)Activator.CreateInstance(item.Value));

                    Chat.SendLocalMessage("Föremål", $"Gav dig x1 utav `{item.Key}`...", Color.FromArgb(0, 255, 0));
                    break;
                }
            }
Exemple #16
0
            public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
            {
                if (arguments.Count < 1)
                {
                    Chat.SendLocalMessage("Session", $"{Session.LastSession}", Color.FromArgb(0, 0, 255));

                    return;
                }

                int id;

                try
                {
                    id = int.Parse(arguments.ElementAt(0));
                }
                catch (Exception)
                {
                    id = 0;
                }

                Session.Join(id);

                Chat.SendLocalMessage("Session", $"Anslöt till session #{id}", Color.FromArgb(0, 0, 255));
            }
 public void Draw(SpriteBatch spriteBatch)
 {
     AtlasPlayer.Draw(spriteBatch);
 }
Exemple #18
0
 public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
 {
     entity.Vehicle?.Delete();
 }
        public virtual void SetAnimation()
        {
            IHasInput hasInput = _sprite as IHasInput;


            if (IsMeleeAttacking && _sprite.Mover.IsMovingRight)
            {
                AtlasPlayer.Play(_actions["MeleeRight"]);
            }
            else if (IsMeleeAttacking && _sprite.Mover.IsMovingLeft)
            {
                AtlasPlayer.Play(_actions["MeleeLeft"]);
            }
            else if (IsRangedAttacking && _sprite.Mover.IsMovingRight)
            {
                AtlasPlayer.Play(_actions["RangedRight"]);
            }
            else if (IsRangedAttacking && _sprite.Mover.IsMovingLeft)
            {
                AtlasPlayer.Play(_actions["RangedLeft"]);
            }
            else if (IsBlocking && _sprite.Mover.IsMovingRight)
            {
                AtlasPlayer.Play(_actions["BlockRight"]);
            }
            else if (IsBlocking && _sprite.Mover.IsMovingLeft)
            {
                AtlasPlayer.Play(_actions["BlockLeft"]);
            }
            else if (_sprite.Mover.Velocity.Y < 0)
            {
                AtlasPlayer.Play(_actions["Jump"]);
            }
            else if (_sprite.Mover.Velocity.X > 0 || _sprite.Mover.Velocity.X < 0)
            {
                if (_sprite.Mover.Velocity.Y < 0)
                {
                    AtlasPlayer.Play(_actions["Jump"]);
                }
                else if (_sprite.Mover.Velocity.X > 0)
                {
                    AtlasPlayer.Play(_actions["WalkRight"]);
                }
                else
                {
                    AtlasPlayer.Play(_actions["WalkLeft"]);
                }
            }
            else if (_sprite.Mover.Velocity.X == 0 && _sprite.Mover.Velocity.Y == 0)
            {
                if (_sprite.Mover.IsMovingLeft && !_sprite.Mover.IsMovingRight)
                {
                    AtlasPlayer.Play(_actions["WalkLeft"]);
                    AtlasPlayer.Stop();
                }
                else if (!_sprite.Mover.IsMovingLeft && _sprite.Mover.IsMovingRight)
                {
                    AtlasPlayer.Play(_actions["WalkRight"]);
                    AtlasPlayer.Stop();
                }
                else
                {
                    AtlasPlayer.Play(_actions["WalkRight"]);
                    AtlasPlayer.Stop();
                }
            }
        }
Exemple #20
0
 public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
 {
     EventSystem.GetModule().Send("report:create", player.Name, player.Character.Fullname,
                                  string.Join(" ", arguments));
 }
Exemple #21
0
        public static async Task Commit(this Style style, AtlasPlayer player, bool overrideStyle = true)
        {
            var hash = style.Sex.Current == style.Sex.Minimum
                ? API.GetHashKey("mp_m_freemode_01")
                : API.GetHashKey("mp_f_freemode_01");

            if (Game.PlayerPed.Model.Hash != hash)
            {
                var model = new Model(hash);

                if (model.IsInCdImage && model.IsValid)
                {
                    await player.CommitModel(model);

                    var ped = Game.PlayerPed.Handle;

                    player.Entity.SetDefaultStyle();
                    player.Entity.Id             = ped;
                    player.Entity.AnimationQueue = new AnimationQueue(ped);

                    Session.Join(Session.LastSession);

                    await BaseScript.Delay(10);
                }
            }

            var handle = player.Entity.Id;

            API.SetPedHeadBlendData(handle, style.Face.Current, style.Face.Current, style.Face.Current,
                                    style.Skin.Current,
                                    style.Skin.Current, style.Skin.Current, style.Sex.Current == 0 ? 1f : 0f, 1f, 1f, true);
            API.SetPedHairColor(handle, style.HairColorPrimary.Current, style.HairColorSecondary.Current);
            API.SetPedHeadOverlay(handle, 3, style.Wrinkles.Current, style.WrinklesThickness.Current / 10f);
            API.SetPedHeadOverlay(handle, 1, style.Beard.Current,
                                  style.BeardSize.Current / 10f);
            API.SetPedEyeColor(handle, style.EyeColor.Current);
            API.SetPedHeadOverlay(handle, 2, style.Eyebrows.Current, style.EyebrowsThickness.Current / 10f);
            API.SetPedHeadOverlay(handle, 4, style.Makeup.Current, style.MakeupThickness.Current / 10f);
            API.SetPedHeadOverlay(handle, 8, style.Lipstick.Current, style.LipstickThickness.Current / 10f);
            API.SetPedComponentVariation(handle, 2, style.Hair.Current, style.HairThickness.Current, 2);
            API.SetPedHeadOverlayColor(handle, 1, 1, style.BeardColorPrimary.Current,
                                       style.BeardColorSecondary.Current);
            API.SetPedHeadOverlayColor(handle, 2, 1, style.EyebrowsColorPrimary.Current, style.EyebrowsColorSecondary.Current);
            API.SetPedHeadOverlayColor(handle, 4, 1, style.Makeup.Current, style.MakeupThickness.Current);
            API.SetPedHeadOverlayColor(handle, 8, 1, style.LipstickColorPrimary.Current,
                                       style.LipstickColorSecondary.Current);
            API.SetPedHeadOverlay(handle, 5, style.Blush.Current, style.BlushThickness.Current / 10f);
            API.SetPedHeadOverlayColor(handle, 5, 2, style.BlushPrimaryColor.Current,
                                       style.BlushSecondaryColor.Current);
            API.SetPedHeadOverlay(handle, 6, style.Complexion.Current,
                                  style.ComplexionThickness.Current / 10f);
            API.SetPedHeadOverlay(handle, 7, style.Sunburn.Current, style.SunburnThickness.Current / 10f);
            API.SetPedHeadOverlay(handle, 9, style.Freckles.Current,
                                  style.FrecklesThickness.Current / 10f);
            API.SetPedHeadOverlay(handle, 10, style.ChestHair.Current, style.ChestHairType.Current / 10f);
            API.SetPedHeadOverlayColor(handle, 10, 1, style.ChestHairPrimaryColor.Current,
                                       style.ChestHairSecondaryColor.Current);

            if (style.EarAccessories.Current == -1)
            {
                API.ClearPedProp(handle, 2);
            }
            else
            {
                API.SetPedPropIndex(handle, 2, style.EarAccessories.Current, style.EarAccessoriesType.Current, true);
            }

            API.SetPedComponentVariation(handle, 8, style.Shirt.Current, style.ShirtType.Current, 2);
            API.SetPedComponentVariation(handle, 11, style.Torso.Current, style.TorsoType.Current, 2);
            API.SetPedComponentVariation(handle, 3, style.Body.Current, style.BodyType.Current, 2);
            API.SetPedComponentVariation(handle, 10, style.Decals.Current, style.DecalsType.Current, 2);
            API.SetPedComponentVariation(handle, 4, style.Pants.Current, style.PantsType.Current, 2);
            API.SetPedComponentVariation(handle, 6, style.Shoes.Current, style.ShoesType.Current, 2);
            API.SetPedComponentVariation(handle, 1, style.Mask.Current, style.MaskType.Current, 2);
            API.SetPedComponentVariation(handle, 9, style.BodyArmor.Current, style.BodyArmorColor.Current, 2);
            API.SetPedComponentVariation(handle, 7, style.Neck.Current, style.NeckType.Current, 2);
            API.SetPedComponentVariation(handle, 5, style.Bag.Current, style.BagColor.Current, 2);

            if (style.Head.Current == -1)
            {
                API.ClearPedProp(handle, 0);
            }
            else
            {
                API.SetPedPropIndex(handle, 0, style.Head.Current, style.HeadType.Current, true);
            }

            if (style.Glasses.Current == -1)
            {
                API.ClearPedProp(handle, 1);
            }
            else
            {
                API.SetPedPropIndex(handle, 1, style.Glasses.Current, style.GlassesType.Current, true);
            }

            if (style.Watch.Current == -1)
            {
                API.ClearPedProp(handle, 6);
            }
            else
            {
                API.SetPedPropIndex(handle, 6, style.Watch.Current, style.WatchType.Current, true);
            }

            if (style.Wristband.Current == -1)
            {
                API.ClearPedProp(handle, 7);
            }
            else
            {
                API.SetPedPropIndex(handle, 7, style.Wristband.Current, style.WristbandType.Current, true);
            }

            if (overrideStyle)
            {
                player.Character.Style = style;
            }

            style.Update(player);
        }
Exemple #22
0
        public static void Update(this Style style, AtlasPlayer player)
        {
            var handle = player.Entity.Id;

            style.Sex.Maximum                     = 1;
            style.Face.Maximum                    = 45;
            style.Skin.Maximum                    = 45;
            style.Wrinkles.Maximum                = API.GetNumHeadOverlayValues(3) - 1;
            style.WrinklesThickness.Maximum       = 10;
            style.Beard.Maximum                   = API.GetNumHeadOverlayValues(1) - 1;
            style.BeardSize.Maximum               = 10;
            style.BeardColorPrimary.Maximum       = API.GetNumHairColors() - 1;
            style.BeardColorSecondary.Maximum     = API.GetNumHairColors() - 1;
            style.Hair.Maximum                    = API.GetNumberOfPedDrawableVariations(handle, 2) - 1;
            style.HairThickness.Maximum           = API.GetNumberOfPedTextureVariations(handle, 2, style.Hair.Current) - 1;
            style.HairColorPrimary.Maximum        = API.GetNumHairColors() - 1;
            style.HairColorSecondary.Maximum      = API.GetNumHairColors() - 1;
            style.EyeColor.Maximum                = 31;
            style.Eyebrows.Maximum                = API.GetNumHeadOverlayValues(2) - 1;
            style.EyebrowsThickness.Maximum       = 10;
            style.EyebrowsColorPrimary.Maximum    = API.GetNumHairColors() - 1;
            style.EyebrowsColorSecondary.Maximum  = API.GetNumHairColors() - 1;
            style.Makeup.Maximum                  = API.GetNumHairColors() - 1;
            style.MakeupThickness.Maximum         = 10;
            style.MakeupColorPrimary.Maximum      = API.GetNumHairColors() - 1;
            style.MakeupColorSecondary.Maximum    = API.GetNumHairColors() - 1;
            style.Lipstick.Maximum                = API.GetNumHeadOverlayValues(8) - 1;
            style.LipstickThickness.Maximum       = 10;
            style.LipstickColorPrimary.Maximum    = API.GetNumHairColors() - 1;
            style.LipstickColorSecondary.Maximum  = API.GetNumHairColors() - 1;
            style.Blush.Maximum                   = API.GetNumHeadOverlayValues(5) - 1;
            style.BlushThickness.Maximum          = 10;
            style.BlushPrimaryColor.Maximum       = API.GetNumHairColors() - 1;
            style.BlushSecondaryColor.Maximum     = API.GetNumHairColors() - 1;
            style.Complexion.Maximum              = API.GetNumHeadOverlayValues(6) - 1;
            style.ComplexionThickness.Maximum     = 10;
            style.Sunburn.Maximum                 = API.GetNumHeadOverlayValues(7) - 1;
            style.SunburnThickness.Maximum        = 10;
            style.Freckles.Maximum                = API.GetNumHeadOverlayValues(9) - 1;
            style.FrecklesThickness.Maximum       = 10;
            style.ChestHair.Maximum               = API.GetNumHeadOverlayValues(10) - 1;
            style.ChestHairType.Maximum           = 10;
            style.ChestHairPrimaryColor.Maximum   = API.GetNumHairColors() - 1;
            style.ChestHairSecondaryColor.Maximum = API.GetNumHairColors() - 1;
            style.EarAccessories.Maximum          = API.GetNumberOfPedPropDrawableVariations(handle, 1) - 1;
            style.EarAccessoriesType.Maximum      =
                API.GetNumberOfPedPropTextureVariations(handle, 1, style.EarAccessories.Current) - 1;
            style.Shirt.Maximum          = API.GetNumberOfPedDrawableVariations(handle, 8) - 1;
            style.ShirtType.Maximum      = API.GetNumberOfPedTextureVariations(handle, 8, style.Shirt.Current) - 1;
            style.Torso.Maximum          = API.GetNumberOfPedDrawableVariations(handle, 11) - 1;
            style.TorsoType.Maximum      = API.GetNumberOfPedTextureVariations(handle, 11, style.Torso.Current) - 1;
            style.Decals.Maximum         = API.GetNumberOfPedDrawableVariations(handle, 10) - 1;
            style.DecalsType.Maximum     = API.GetNumberOfPedTextureVariations(handle, 10, style.Decals.Current) - 1;
            style.Body.Maximum           = API.GetNumberOfPedDrawableVariations(handle, 3) - 1;
            style.BodyType.Maximum       = 10;
            style.Pants.Maximum          = API.GetNumberOfPedDrawableVariations(handle, 4) - 1;
            style.PantsType.Maximum      = API.GetNumberOfPedTextureVariations(handle, 4, style.Pants.Current) - 1;
            style.Shoes.Maximum          = API.GetNumberOfPedDrawableVariations(handle, 6) - 1;
            style.ShoesType.Maximum      = API.GetNumberOfPedTextureVariations(handle, 6, style.Shoes.Current) - 1;
            style.Mask.Maximum           = API.GetNumberOfPedDrawableVariations(handle, 1) - 1;
            style.MaskType.Maximum       = API.GetNumberOfPedTextureVariations(handle, 1, style.Mask.Current) - 1;
            style.BodyArmor.Maximum      = API.GetNumberOfPedDrawableVariations(handle, 9) - 1;
            style.BodyArmorColor.Maximum =
                API.GetNumberOfPedTextureVariations(handle, 9, style.BodyArmor.Current) - 1;
            style.Neck.Maximum          = API.GetNumberOfPedDrawableVariations(handle, 7) - 1;
            style.NeckType.Maximum      = API.GetNumberOfPedTextureVariations(handle, 7, style.Neck.Current) - 1;
            style.Bag.Maximum           = API.GetNumberOfPedDrawableVariations(handle, 5) - 1;
            style.BagColor.Maximum      = API.GetNumberOfPedTextureVariations(handle, 5, style.Bag.Current) - 1;
            style.Head.Maximum          = API.GetNumberOfPedPropDrawableVariations(handle, 0) - 1;
            style.HeadType.Maximum      = API.GetNumberOfPedPropTextureVariations(handle, 0, style.Head.Current) - 1;
            style.Glasses.Maximum       = API.GetNumberOfPedPropDrawableVariations(handle, 1) - 1;
            style.GlassesType.Maximum   = API.GetNumberOfPedPropTextureVariations(handle, 1, style.Glasses.Current) - 1;
            style.Watch.Maximum         = API.GetNumberOfPedPropDrawableVariations(handle, 6) - 1;
            style.WatchType.Maximum     = API.GetNumberOfPedPropTextureVariations(handle, 6, style.Watch.Current) - 1;
            style.Wristband.Maximum     = API.GetNumberOfPedPropDrawableVariations(handle, 7) - 1;
            style.WristbandType.Maximum =
                API.GetNumberOfPedPropTextureVariations(handle, 7, style.Wristband.Current) - 1;
        }
        public async Task Attach(AtlasPlayer player)
        {
            while (IsAttached)
            {
                await BaseScript.Delay(100);
            }

            IsAttached = true;

            World.GetAllProps()
            .Where(self =>
                   self.Model.Hash == API.GetHashKey("prop_police_id_text") ||
                   self.Model.Hash == API.GetHashKey("prop_police_id_board")).ToList().ForEach(self => self.Delete());

            var textHash = API.GetHashKey("prop_police_id_text");
            var board    = API.CreateObject(API.GetHashKey("prop_police_id_board"), 1, 1, 1, false, false, false);
            var text     = API.CreateObject(textHash, 1, 1, 1, false, false, false);

            API.AttachEntityToEntity(board, player.Entity.Id, API.GetPedBoneIndex(API.GetPlayerPed(-1), 58868),
                                     0.12f, 0.24f,
                                     0.0f, 5.0f, 0.0f, 70.0f, true, true, false, false, 2, true);
            API.AttachEntityToEntity(text, player.Entity.Id, API.GetPedBoneIndex(API.GetPlayerPed(-1), 58868),
                                     0.12f, 0.24f,
                                     0.0f, 5.0f, 0.0f, 70.0f, true, true, false, false, 2, true);

            var handle = CreateScaleformHandle("ID_Text", textHash);
            var movie  = API.RequestScaleformMovie("MUGSHOT_BOARD_01");

            while (!API.HasScaleformMovieLoaded(movie))
            {
                await BaseScript.Delay(10);
            }

            while (API.HasScaleformMovieLoaded(movie) && IsAttached)
            {
                API.PushScaleformMovieFunction(movie, "SET_BOARD");
                API.PushScaleformMovieFunctionParameterString(player.Character.Surname);
                API.PushScaleformMovieFunctionParameterString(player.Character.Name);
                API.PushScaleformMovieFunctionParameterString(player.Character.DateOfBirth);
                API.PushScaleformMovieFunctionParameterString(
                    $"SEK {player.Character.BankAccount.Balance + player.Character.Cash}");
                API.PopScaleformMovieFunctionVoid();
                API.SetTextRenderId(handle);

                Function.Call((Hash)0x40332D115A898AF5, movie, true);

                API.SetUiLayer(4);

                Function.Call((Hash)0xc6372ecd45d73bcd, movie, true);

                API.DrawScaleformMovie(movie, 0.4f, 0.35f, 0.8f, 0.75f, 255, 255, 255, 255, 255);
                API.SetTextRenderId(API.GetDefaultScriptRendertargetRenderId());

                Function.Call((Hash)0x40332D115A898AF5, movie, false);

                await BaseScript.Delay(0);
            }

            API.DeleteEntity(ref board);
            API.DeleteEntity(ref text);

            IsAttached = false;
        }
Exemple #24
0
 public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
 {
     player.Character.Revive(entity.Position);
 }
Exemple #25
0
 public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
 {
     Chat.SendGlobalMessage(player.Character.Fullname, string.Join(" ", arguments),
                            Color.FromArgb(50, 50, 255));
 }
Exemple #26
0
 public void On(AtlasPlayer player, AtlasEntity entity, List <string> arguments)
 {
     Chat.SendLocalMessage("Status",
                           $"Det är just nu {AtlasPlugin.OnlinePlayers}/{AtlasPlugin.MaximumPlayers} spelare anslutna.",
                           Color.FromArgb(150, 150, 255));
 }
Exemple #27
0
        public async Task Load(AtlasPlayer player)
        {
            API.DoScreenFadeOut(0);

            Atlas.DiscordRichPresence.Status = player.Character.Fullname;
            Atlas.DiscordRichPresence.Commit();

            var transition = new LoadTransition();

            if (!player.Character.MarkedAsRegistered)
            {
                API.StopPlayerSwitch();
            }

            var character = player.Character;
            var position  = !character.MarkedAsRegistered
                ? CharacterExtensions.RegistrationPosition
                : character.Metadata.LastPosition ?? CharacterExtensions.DefaultPosition;

            if (position == character.Metadata.LastPosition)
            {
                position.Y += 1f;
            }

            character.Revive(position);

            try
            {
                var ped    = Cache.Entity.Id;
                var health = character.Health;

                if (health > API.GetEntityMaxHealth(ped))
                {
                    health = API.GetEntityMaxHealth(ped);
                }

                API.SetEntityHealth(ped, health);
                API.SetPedArmour(ped, character.Shield);
            }
            catch (Exception)
            {
                // Dunno
            }

            var inventories = InventoryManager.GetModule();
            var required    = new InventoryContainer[]
            {
                new EquipmentInventory(new InventoryContainerBase
                {
                    Seed       = "equipment_inventory",
                    Name       = "Utrustning",
                    SlotAmount = 5
                }),
                new PocketsInventory(new InventoryContainerBase
                {
                    Seed       = "pockets_inventory",
                    Name       = "Fickor",
                    SlotAmount = 20
                }),
                new ProximityInventory(new InventoryContainerBase
                {
                    Seed       = "proximity_inventory",
                    Name       = "Omgivning",
                    SlotAmount = 20
                })
            };

            foreach (var entry in required)
            {
                if (character.Metadata.Inventories.All(self => self.Seed != entry.Seed))
                {
                    inventories.RegisterContainer(entry);
                    character.Metadata.Inventories.Add(entry);

                    entry.CallRegistration();
                }
                else
                {
                    var created = entry;

                    switch (entry.Seed.ToUpper())
                    {
                    case "EQUIPMENT_INVENTORY":
                        created = new EquipmentInventory(
                            character.Metadata.Inventories.FirstOrDefault(
                                self => self.Seed == "equipment_inventory"));

                        break;

                    case "POCKETS_INVENTORY":
                        created = new PocketsInventory(
                            character.Metadata.Inventories.FirstOrDefault(
                                self => self.Seed == "pockets_inventory"));

                        break;

                    case "PROXIMITY_INVENTORY":
                        created = new ProximityInventory(
                            character.Metadata.Inventories.FirstOrDefault(
                                self => self.Seed == "proximity_inventory"));
                        created.Slots = new InventoryItem[created.SlotAmount];

                        break;

                    default:
                        Logger.Info($"[Inventory] Could not find default required inventory {entry.Seed}");

                        break;
                    }

                    inventories.RegisterContainer(created);
                    created.CallRegistration();
                }
            }

            inventories.Registry.ForEach(self => self.RefreshItemClassifications());

            await player.Character.Load();

            Session.Join(player.Character.MarkedAsRegistered ? 1 : 100 + API.GetPlayerServerId(API.PlayerId()));

            await SafeTeleport.Teleport(player.Entity.Id, position);

            if (player.Character.MarkedAsRegistered)
            {
                await transition.Wait();

                API.DoScreenFadeIn(5000);

                await transition.Down(player);
            }
            else
            {
                await player.Character.PostLoad();
            }

            if (API.IsScreenFadedOut() && !API.IsScreenFadingOut())
            {
                API.DoScreenFadeIn(5000);
            }

            player.EnableHud();
        }
 public override void SetAnimation()
 {
     AtlasPlayer.Play(_actions["SingleAction"]);
 }
 public void Update(GameTime gameTime)
 {
     AtlasPlayer.Update(gameTime);
 }