protected override void OnTick() { Party p = Party.Get(m_Mobile); if (p == null) { return; } m_Mobile.SendLocalizedMessage(1005437); // You have rejoined the party. m_Mobile.Send(new PartyMemberList(p)); Packet message = new MessageLocalizedAffix(Serial.MinusOne, -1, MessageType.Label, 0x3B2, 3, 1008087, "", AffixType.Prepend | AffixType.System, m_Mobile.Name, ""); Packet attrs = new MobileAttributesN(m_Mobile); foreach (PartyMemberInfo mi in p.Members) { Mobile m = mi.Mobile; if (m != m_Mobile) { m.Send(message); m.Send(new MobileStatusCompact(m_Mobile.CanBeRenamedBy(m), m_Mobile)); m.Send(attrs); m_Mobile.Send(new MobileStatusCompact(m.CanBeRenamedBy(m_Mobile), m)); m_Mobile.Send(new MobileAttributesN(m)); } } }
public void TestMessageLocalizedAffix() { Serial serial = (Serial)0x1024; var graphic = 0x100; var messageType = MessageType.Label; var hue = 1024; var font = 3; var number = 150000; var name = "Stuff"; var args = "Arguments"; var affixType = AffixType.System; var affix = "Affix"; var expected = new MessageLocalizedAffix( serial, graphic, messageType, hue, font, number, name, affixType, affix, args ).Compile(); var ns = PacketTestUtilities.CreateTestNetState(); ns.SendMessageLocalizedAffix( serial, graphic, messageType, hue, font, number, name, affixType, affix, args ); var result = ns.SendPipe.Reader.TryRead(); AssertThat.Equal(result.Buffer[0].AsSpan(0), expected); }
public void TestMessageLocalizedAffix() { Serial serial = 0x1; var graphic = 0x100; var messageType = MessageType.Label; var hue = 1024; var font = 3; var number = 150000; var name = "Stuff"; var args = "Arguments"; var affixType = AffixType.System; var affix = "Affix"; var data = new MessageLocalizedAffix( serial, graphic, messageType, hue, font, number, name, affixType, affix, args ).Compile(); Span <byte> expectedData = stackalloc byte[52 + affix.Length + args.Length * 2]; var pos = 0; expectedData.Write(ref pos, (byte)0xCC); // Packet ID expectedData.Write(ref pos, (ushort)expectedData.Length); // Length expectedData.Write(ref pos, serial); expectedData.Write(ref pos, (ushort)graphic); expectedData.Write(ref pos, (byte)messageType); expectedData.Write(ref pos, (ushort)hue); expectedData.Write(ref pos, (ushort)font); expectedData.Write(ref pos, number); expectedData.Write(ref pos, (byte)affixType); expectedData.WriteAsciiFixed(ref pos, name, 30); expectedData.WriteAsciiNull(ref pos, affix); expectedData.WriteBigUniNull(ref pos, args); AssertThat.Equal(data, expectedData); }