Exemple #1
0
            public override void Execute()
            {
                if (!Options.CurrentOptions.QueueLastTarget)
                {
                    UOC.SystemMessage(Strings.Target_queue_is_not_enabled___);
                    return;
                }

                object nextTarget = Engine.LastTargetQueue.Peek()?.Object;

                switch (nextTarget)
                {
                case string targetAlias:
                    MsgCommands.HeadMsg(string.Format(Strings.Next_Target___0_, targetAlias),
                                        Engine.Player?.Serial);
                    break;

                case int targetSerial:
                {
                    Mobile entity = Engine.Mobiles.GetMobile(targetSerial);

                    MsgCommands.HeadMsg(
                        string.Format(Strings.Next_Target___0_,
                                      $"0x{targetSerial:x} - {entity?.Name ?? "Unknown"}"), Engine.Player?.Serial);
                    break;
                }
                }
            }
Exemple #2
0
        public void SetLastTarget(Entity m)
        {
            Engine.Player.LastTargetSerial = m.Serial;

            if (!UOMath.IsMobile(m.Serial))
            {
                return;
            }

            MsgCommands.HeadMsg("[Target]", m.Serial);
            MsgCommands.HeadMsg($"Target: {m.Name?.Trim() ?? "Unknown"}");
            Engine.SendPacketToClient(new ChangeCombatant(m.Serial));
        }
Exemple #3
0
        public void SetLastTarget(Entity m)
        {
            Engine.Player.LastTargetSerial = m.Serial;

            if (!UOMath.IsMobile(m.Serial))
            {
                return;
            }

            if (!MacroManager.QuietMode)
            {
                MsgCommands.HeadMsg(Options.CurrentOptions.LastTargetMessage, m.Serial);
            }

            MsgCommands.HeadMsg($"Target: {m.Name?.Trim() ?? "Unknown"}");
            Engine.SendPacketToClient(new ChangeCombatant(m.Serial));
        }
Exemple #4
0
        private static void OnLocalizedText(PacketReader reader)
        {
            JournalEntry journalEntry = new JournalEntry
            {
                Serial     = reader.ReadInt32(),
                ID         = reader.ReadInt16(),
                SpeechType = (JournalSpeech)reader.ReadByte(),
                SpeechHue  = reader.ReadInt16(),
                SpeechFont = reader.ReadInt16(),
                Cliloc     = reader.ReadInt32(),
                Name       = reader.ReadString(30),
                Arguments  = reader.ReadUnicodeString((int)reader.Size - 50)
                             .Split(new[] { '\t' }, StringSplitOptions.RemoveEmptyEntries)
            };

            journalEntry.Text = Cliloc.GetLocalString(journalEntry.Cliloc, journalEntry.Arguments);

            if (journalEntry.SpeechType == JournalSpeech.Label)
            {
                if (Engine.Player?.LastTargetSerial == journalEntry.Serial)
                {
                    MsgCommands.HeadMsg(Options.CurrentOptions.LastTargetMessage, journalEntry.Serial);
                }

                if (Engine.Player?.EnemyTargetSerial == journalEntry.Serial)
                {
                    MsgCommands.HeadMsg(Options.CurrentOptions.EnemyTargetMessage, journalEntry.Serial);
                }

                if (Engine.Player?.FriendTargetSerial == journalEntry.Serial)
                {
                    MsgCommands.HeadMsg(Options.CurrentOptions.FriendTargetMessage, journalEntry.Serial);
                }
            }

            Engine.Journal.Write(journalEntry);
            JournalEntryAddedEvent?.Invoke(journalEntry);
        }