示例#1
0
        public static async void TdSelTest(BasePlayer player)
        {
            _td1?.Dispose();
            _td2?.Dispose();

            _td1 = new TextDraw(new Vector2(220, 120), "E")
            {
                Selectable   = true,
                UseBox       = true,
                BackColor    = Color.Green,
                BoxColor     = Color.Blue,
                Alignment    = TextDrawAlignment.Right,
                IsApplyFixes = true,
                Proportional = true,
                Shadow       = 3,
                Font         = TextDrawFont.Pricedown,
                Outline      = 2,
                ForeColor    = Color.White,
                Width        = 400f,
                Height       = 400f
            };
            _td2 = new PlayerTextDraw(player, new Vector2(220, 180), "Q")
            {
                Selectable   = true,
                UseBox       = true,
                BackColor    = Color.Green,
                BoxColor     = Color.Blue,
                Alignment    = TextDrawAlignment.Right,
                IsApplyFixes = true,
                Proportional = true,
                Shadow       = 3,
                Font         = TextDrawFont.Pricedown,
                Outline      = 2,
                ForeColor    = Color.White,
                Width        = 400f,
                Height       = 400f
            };

            _td1.Show(player);
            _td2.Show();

            await Task.Delay(5);

            player.SelectTextDraw(Color.Red);

            player.ClickTextDraw += (sender, args) =>
            {
                player.SendClientMessage($"Selected TD: {_td1 == args.TextDraw}");
            };
            player.ClickPlayerTextDraw += (sender, args) =>
            {
                player.SendClientMessage($"Selected PTD: {_td2 == args.PlayerTextDraw}");
            };
            player.CancelClickTextDraw += (sender, args) =>
            {
                player.SendClientMessage("Canceled TD selection");
            };
        }
 public void CreateTextDraw()
 {
     THealth = new PlayerTextDraw(this);
     TArmour = new PlayerTextDraw(this);
     Stats   = new PlayerTextDraw(this);
     TdRank  = new PlayerTextDraw(this);
     TextDrawPlayer.CreateTDHealth(THealth);
     TextDrawPlayer.CreateTDArmour(TArmour);
     TextDrawPlayer.CreateTDStats(Stats);
     TextDrawPlayer.CreateTDRank(TdRank);
 }
示例#3
0
        internal bool OnPlayerClickPlayerTextDraw(int playerid, int playertextid)
        {
            GtaPlayer player = GtaPlayer.FindOrCreate(playerid);

            OnPlayerClickPlayerTextDraw(player,
                                        new ClickPlayerTextDrawEventArgs(player, playertextid == PlayerTextDraw.InvalidId
                    ? null
                    : PlayerTextDraw.FindOrCreate(player, playertextid)));

            return(true);
        }
 /// <summary>
 ///     Registers the events this PlayerTextDrawController wants to listen to.
 /// </summary>
 /// <param name="gameMode">The running GameMode.</param>
 public virtual void RegisterEvents(BaseMode gameMode)
 {
     gameMode.PlayerClickPlayerTextDraw += (sender, args) => args.PlayerTextDraw?.OnClick(args);
     gameMode.PlayerCleanup             += (sender, args) =>
     {
         var player = sender as BasePlayer;
         foreach (var textdraw in PlayerTextDraw.Of(player).ToArray())
         {
             textdraw.Dispose();
         }
     };
 }
 public static void CreateTDRank(PlayerTextDraw rank)
 {
     rank.Position     = new Vector2(607.000000, 402.000000);
     rank.Text         = "Noob";
     rank.Font         = TextDrawFont.Normal;
     rank.LetterSize   = new Vector2(0.337500, 1.249999);
     rank.Outline      = 1;
     rank.Alignment    = TextDrawAlignment.Right;
     rank.ForeColor    = -1;
     rank.BackColor    = 255;
     rank.Proportional = true;
 }
 public static void CreateTDStats(PlayerTextDraw stats)
 {
     stats.Position     = new Vector2(638.000000, 433.000000);
     stats.Text         = "";
     stats.Font         = TextDrawFont.Slim;
     stats.LetterSize   = new Vector2(0.279166, 1.350000);
     stats.Outline      = 1;
     stats.Alignment    = TextDrawAlignment.Right;
     stats.ForeColor    = -1;
     stats.BackColor    = 255;
     stats.Proportional = true;
 }
 public static void CreateTDArmour(PlayerTextDraw armour)
 {
     armour.Position     = new Vector2(578.000000, 44.000000);
     armour.Text         = "0";
     armour.Font         = TextDrawFont.Slim;
     armour.LetterSize   = new Vector2(0.241666, 0.899999);
     armour.Outline      = 1;
     armour.Alignment    = TextDrawAlignment.Center;
     armour.ForeColor    = -1;
     armour.BackColor    = 255;
     armour.Proportional = true;
 }
 public static void CreateTDHealth(PlayerTextDraw health)
 {
     health.Position     = new Vector2(578.000000, 66.000000);
     health.Text         = "100";
     health.Font         = TextDrawFont.Slim;
     health.LetterSize   = new Vector2(0.241666, 0.899999);
     health.Outline      = 1;
     health.Alignment    = TextDrawAlignment.Center;
     health.ForeColor    = -1;
     health.BackColor    = 255;
     health.Proportional = true;
 }
示例#9
0
        internal bool OnPlayerClickPlayerTextDraw(int playerid, int playertextid)
        {
            var player = BasePlayer.FindOrCreate(playerid);

            var clicked = playertextid == PlayerTextDraw.InvalidId ? null : PlayerTextDraw.Find(player, playertextid);

            if (playertextid != TextDraw.InvalidId && clicked == null)
            {
                return(true);
            }

            OnPlayerClickPlayerTextDraw(player, new ClickPlayerTextDrawEventArgs(player, clicked));

            return(true);
        }
示例#10
0
        /// <inheritdoc />
        public static bool PlayerTextDrawSetPosition(BasePlayer player, PlayerTextDraw textdraw, Vector2 position)
        {
            if (player == null)
            {
                throw new ArgumentNullException(nameof(player));
            }

            if (textdraw == null)
            {
                throw new ArgumentNullException(nameof(textdraw));
            }

            var success = Internal.PlayerTextDrawSetPosition(player.Id, textdraw.Id, position.X, position.Y);

            return(success);
        }
示例#11
0
        /// <inheritdoc />
        public bool PlayerTextDrawSetPosition(EntityId player, PlayerTextDraw textdraw, Vector2 position)
        {
            if (!player.IsOfType(SampEntities.PlayerType))
            {
                throw new InvalidEntityArgumentException(nameof(player), SampEntities.PlayerType);
            }

            int id = textdraw.Entity / SampLimits.MaxPlayers;

            if (id == NativePlayerTextDraw.InvalidId)
            {
                throw new EntityCreationException();
            }

            var success = _native.PlayerTextDrawSetPosition(player, id, position.X, position.Y);

            return(success);
        }
示例#12
0
        /// <summary>
        ///     Registers the events this PlayerTextDrawController wants to listen to.
        /// </summary>
        /// <param name="gameMode">The running GameMode.</param>
        public void RegisterEvents(BaseMode gameMode)
        {
            gameMode.PlayerClickPlayerTextDraw += (sender, args) =>
            {
                PlayerTextDraw textdraw = args.PlayerTextDraw;

                if (textdraw != null)
                {
                    textdraw.OnClick(args);
                }
            };
            gameMode.PlayerCleanup += (sender, args) =>
            {
                var player = sender as GtaPlayer;
                foreach (var textdraw in PlayerTextDraw.All.Where(o => o.Owner == player))
                {
                    textdraw.Dispose();
                }
            };
        }
示例#13
0
 public static void SetPosition(this PlayerTextDraw playerTextDraw, Vector2 position)
 {
     YSF.Internal.PlayerTextDrawSetPos(playerTextDraw.Owner.Id, playerTextDraw.Id, position.X, position.Y);
 }
 /// <summary>
 ///     Registers types this PlayerTextDrawController requires the system to use.
 /// </summary>
 public virtual void RegisterTypes()
 {
     PlayerTextDraw.Register <PlayerTextDraw>();
 }
示例#15
0
 public void HealthBar(PlayerTextDraw bar, float value)
 {
     bar.Text = $"{value:F0}";
     bar.Show();
 }
示例#16
0
 /// <summary>
 ///     Initializes a new instance of the ClickPlayerTextDrawEventArgs class.
 /// </summary>
 /// <param name="player">The player.</param>
 /// <param name="playerTextDraw">The player text draw.</param>
 public ClickPlayerTextDrawEventArgs(GtaPlayer player, PlayerTextDraw playerTextDraw)
 {
     Player         = player;
     PlayerTextDraw = playerTextDraw;
 }
 /// <summary>
 ///     Initializes a new instance of the ClickPlayerTextDrawEventArgs class.
 /// </summary>
 /// <param name="player">The player.</param>
 /// <param name="playerTextDraw">The player text draw.</param>
 public ClickPlayerTextDrawEventArgs(BasePlayer player, PlayerTextDraw playerTextDraw)
 {
     Player = player;
     PlayerTextDraw = playerTextDraw;
 }