public void OnStatsQuery( Mobile beholder, Mobile beheld ) { if ( beholder != beheld && Contains( beholder ) && beholder.Map == beheld.Map && Utility.InUpdateRange( beholder, beheld ) ) { if ( !beholder.CanSee( beheld ) ) beholder.Send( new MobileStatusCompact( beheld.CanBeRenamedBy( beholder ), beheld ) ); beholder.Send( new MobileAttributesN( beheld ) ); } }
public void Add( Mobile m ) { PartyMemberInfo mi = this[m]; if ( mi == null ) { m_Members.Add( new PartyMemberInfo( m ) ); m.Party = this; Packet memberList = Packet.Acquire( new PartyMemberList( this ) ); Packet attrs = Packet.Acquire( new MobileAttributesN( m ) ); for ( int i = 0; i < m_Members.Count; ++i ) { Mobile f = m_Members[i].Mobile; f.Send( memberList ); if ( f != m ) { f.Send( new MobileStatusCompact( m.CanBeRenamedBy( f ), m ) ); f.Send( attrs ); f.Send( new DisplayWaypoint( m, WaypointType.PartyMember, false, 1062613, m.Name ) ); m.Send( new MobileStatusCompact( f.CanBeRenamedBy( m ), f ) ); m.Send( new MobileAttributesN( f ) ); m.Send( new DisplayWaypoint( f, WaypointType.PartyMember, false, 1062613, f.Name ) ); } } Packet.Release( memberList ); Packet.Release( attrs ); } }
public void Add( Mobile m ) { PartyMemberInfo mi = this[m]; if ( mi == null ) { m_Members.Add( new PartyMemberInfo( m ) ); m.Party = this; Packet memberList = Packet.Acquire( new PartyMemberList( this ) ); Packet attrs = Packet.Acquire( new MobileAttributesN( m ) ); for ( int i = 0; i < m_Members.Count; ++i ) { Mobile f = ((PartyMemberInfo)m_Members[i]).Mobile; f.Send( memberList ); if ( f != m ) { f.Send( new MobileStatusCompact( m.CanBeRenamedBy( f ), m ) ); f.Send( attrs ); m.Send( new MobileStatusCompact( f.CanBeRenamedBy( m ), f ) ); m.Send( new MobileAttributesN( f ) ); } } Packet.Release( memberList ); Packet.Release( attrs ); } }
public MobileStatusExtended( Mobile m, NetState ns ) : base(0x11) { string name = m.Name; if ( name == null ) name = ""; bool sendMLExtended = (Core.ML && ns != null && ns.SupportsExpansion( Expansion.ML )); this.EnsureCapacity( sendMLExtended ? 91 : 88 ); m_Stream.Write( (int) m.Serial ); m_Stream.WriteAsciiFixed( name, 30 ); m_Stream.Write( (short) m.Hits ); m_Stream.Write( (short) m.HitsMax ); m_Stream.Write( m.CanBeRenamedBy( m ) ); m_Stream.Write( (byte)(sendMLExtended ? 0x05 : Core.AOS ? 0x04 : 0x03) ); // type m_Stream.Write( m.Female ); m_Stream.Write( (short) m.Str ); m_Stream.Write( (short) m.Dex ); m_Stream.Write( (short) m.Int ); m_Stream.Write( (short) m.Stam ); m_Stream.Write( (short) m.StamMax ); m_Stream.Write( (short) m.Mana ); m_Stream.Write( (short) m.ManaMax ); m_Stream.Write( (int) m.TotalGold ); m_Stream.Write( (short) (Core.AOS ? m.PhysicalResistance : (int)(m.ArmorRating + 0.5)) ); m_Stream.Write( (short) (Mobile.BodyWeight + m.TotalWeight) ); if( sendMLExtended ) { m_Stream.Write( (short)m.MaxWeight ); m_Stream.Write( (byte)(m.Race.RaceID + 1)); // Would be 0x00 if it's a non-ML enabled account but... } m_Stream.Write( (short) m.StatCap ); m_Stream.Write( (byte) m.Followers ); m_Stream.Write( (byte) m.FollowersMax ); if ( Core.AOS ) { m_Stream.Write( (short) m.FireResistance ); // Fire m_Stream.Write( (short) m.ColdResistance ); // Cold m_Stream.Write( (short) m.PoisonResistance ); // Poison m_Stream.Write( (short) m.EnergyResistance ); // Energy m_Stream.Write( (short) m.Luck ); // Luck IWeapon weapon = m.Weapon; int min = 0, max = 0; if ( weapon != null ) weapon.GetStatusDamage( m, out min, out max ); m_Stream.Write( (short) min ); // Damage min m_Stream.Write( (short) max ); // Damage max m_Stream.Write( (int) m.TithingPoints ); } }
public MobileStatus( Mobile beholder, Mobile beheld, NetState ns ) : base(0x11) { //string name = beheld.Name; string name = beheld.GetNameUseBy(beholder); if ( name == null ) name = ""; bool sendMLExtended = (Core.ML && ns != null && ns.SupportsExpansion( Expansion.ML )); this.EnsureCapacity( 43 + (beholder == beheld ? (sendMLExtended ? 48 : 45) : 0) ); m_Stream.Write( beheld.Serial ); m_Stream.WriteAsciiFixed( name, 30 ); if ( beholder == beheld ) WriteAttr( beheld.Hits, beheld.HitsMax ); else WriteAttrNorm( beheld.Hits, beheld.HitsMax ); m_Stream.Write( beheld.CanBeRenamedBy( beholder ) ); if ( beholder == beheld ) { m_Stream.Write( (byte)(sendMLExtended ? 0x05 : Core.AOS ? 0x04 : 0x03) ); // type m_Stream.Write( beheld.Female ); m_Stream.Write( (short) beheld.Str ); m_Stream.Write( (short) beheld.Dex ); m_Stream.Write( (short) beheld.Int ); WriteAttr( beheld.Stam, beheld.StamMax ); WriteAttr( beheld.Mana, beheld.ManaMax ); m_Stream.Write( (int) beheld.TotalGold ); m_Stream.Write( (short) (Core.AOS ? beheld.PhysicalResistance : (int)(beheld.ArmorRating + 0.5)) ); m_Stream.Write( (short) (Mobile.BodyWeight + beheld.TotalWeight) ); if( sendMLExtended ) { m_Stream.Write( (short)beheld.MaxWeight ); m_Stream.Write( (byte)(beheld.Race.RaceID + 1) ); // Would be 0x00 if it's a non-ML enabled account but... } m_Stream.Write( (short) beheld.StatCap ); m_Stream.Write( (byte) beheld.Followers ); m_Stream.Write( (byte) beheld.FollowersMax ); if ( Core.AOS ) { m_Stream.Write( (short) beheld.FireResistance ); // Fire m_Stream.Write( (short) beheld.ColdResistance ); // Cold m_Stream.Write( (short) beheld.PoisonResistance ); // Poison m_Stream.Write( (short) beheld.EnergyResistance ); // Energy m_Stream.Write( (short) beheld.Luck ); // Luck IWeapon weapon = beheld.Weapon; int min = 0, max = 0; if ( weapon != null ) weapon.GetStatusDamage( beheld, out min, out max ); m_Stream.Write( (short) min ); // Damage min m_Stream.Write( (short) max ); // Damage max m_Stream.Write( (int) beheld.TithingPoints ); } } else { m_Stream.Write( (byte) 0x00 ); } }
public void Add( Mobile m ) { PartyMemberInfo mi = this[m]; if ( mi == null ) { m_Members.Add( new PartyMemberInfo( m ) ); m.Party = this; Packet memberList = Packet.Acquire( new PartyMemberList( this ) ); Packet attrs = Packet.Acquire( new MobileAttributesN( m ) ); for ( int i = 0; i < m_Members.Count; ++i ) { Mobile f = ((PartyMemberInfo)m_Members[i]).Mobile; f.Send( memberList ); if ( f != m ) { f.Send( new MobileStatusCompact( m.CanBeRenamedBy( f ), m ) ); f.Send( attrs ); m.Send( new MobileStatusCompact( f.CanBeRenamedBy( m ), f ) ); m.Send( new MobileAttributesN( f ) ); #region GeNova: KR Support for (int i2 = 0; i2 < m_Members.Count; ++i2) { Mobile f2 = ((PartyMemberInfo)m_Members[i2]).Mobile; if (f2.NetState != null && f2.NetState.IsKRClient) f2.NetState.Send(new DisplayWaypoint(f.Serial, f.X, f.Y, f.Z, f.Map.MapID, 2, f.Name)); } #endregion } } Packet.Release( memberList ); Packet.Release( attrs ); } }
public MobileStatus( Mobile beholder, Mobile beheld ) : base(0x11) { string name = beheld.Name; if ( name == null ) name = ""; byte type = 0x0; if ( beholder == beheld ) type = 0x6; int size = 0; bool isEnhancedClient = beholder.Client != null && beholder.Client.Version.IsEnhanced; if ( type == 0 ) size = 43; else if ( isEnhancedClient ) size = 149; else size = 121; this.EnsureCapacity( size ); m_Stream.Write( beheld.Serial ); m_Stream.WriteAsciiFixed( name, 30 ); if ( type > 0x0 ) WriteAttr( beheld.Hits, beheld.HitsMax ); else WriteAttrNorm( beheld.Hits, beheld.HitsMax ); m_Stream.Write( beheld.CanBeRenamedBy( beholder ) ); m_Stream.Write( type ); if ( type > 0x0 ) { m_Stream.Write( beheld.Female ); m_Stream.Write( (short) beheld.Str ); m_Stream.Write( (short) beheld.Dex ); m_Stream.Write( (short) beheld.Int ); WriteAttr( beheld.Stam, beheld.StamMax ); WriteAttr( beheld.Mana, beheld.ManaMax ); m_Stream.Write( (int) beheld.TotalGold ); m_Stream.Write( (short) beheld.PhysicalResistance ); m_Stream.Write( (short) ( Mobile.BodyWeight + beheld.TotalWeight ) ); m_Stream.Write( (short) beheld.GetMaxWeight() ); m_Stream.Write( (byte) ( beheld.Race.RaceID + 1 ) ); // Would be 0x00 if it's a non-ML enabled account but... m_Stream.Write( (short) beheld.StatCap ); m_Stream.Write( (byte) beheld.Followers ); m_Stream.Write( (byte) beheld.FollowersMax ); m_Stream.Write( (short) beheld.FireResistance ); // Fire m_Stream.Write( (short) beheld.ColdResistance ); // Cold m_Stream.Write( (short) beheld.PoisonResistance ); // Poison m_Stream.Write( (short) beheld.EnergyResistance ); // Energy m_Stream.Write( (short) beheld.Luck ); // Luck IWeapon weapon = beheld.Weapon; int min = 0, max = 0; if ( weapon != null ) weapon.GetStatusDamage( beheld, out min, out max ); m_Stream.Write( (short) min ); // Damage min m_Stream.Write( (short) max ); // Damage max m_Stream.Write( (int) beheld.TithingPoints ); if ( type >= 0x6 ) { m_Stream.Write( (short) beheld.GetMaxResistance( ResistanceType.Physical ) ); m_Stream.Write( (short) beheld.GetMaxResistance( ResistanceType.Fire ) ); m_Stream.Write( (short) beheld.GetMaxResistance( ResistanceType.Cold ) ); m_Stream.Write( (short) beheld.GetMaxResistance( ResistanceType.Poison ) ); m_Stream.Write( (short) beheld.GetMaxResistance( ResistanceType.Energy ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.DefendChance ) ); m_Stream.Write( (short) 45 ); // Max dci m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.AttackChance ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.WeaponSpeed ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.WeaponDamage ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.LowerRegCost ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.SpellDamage ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.CastRecovery ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.CastSpeed ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.LowerManaCost ) ); if ( isEnhancedClient ) { m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.RegenHits ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.RegenStam ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.RegenMana ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.ReflectPhysical ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.EnhancePotions ) ); m_Stream.Write( (short) beheld.GetStatOffset( StatType.Str ) ); m_Stream.Write( (short) beheld.GetStatOffset( StatType.Dex ) ); m_Stream.Write( (short) beheld.GetStatOffset( StatType.Int ) ); m_Stream.Write( (short) 0 ); m_Stream.Write( (short) 0 ); m_Stream.Write( (short) 0 ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.BonusHits ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.BonusStam ) ); m_Stream.Write( (short) beheld.GetMagicalAttribute( MagicalAttribute.BonusMana ) ); } } } }
public void Add( Mobile m ) { PartyMemberInfo mi = this[m]; if ( mi == null ) { m_Members.Add( new PartyMemberInfo( m ) ); m.Party = this; Packet memberList = new PartyMemberList( this ); Packet attrs = new MobileAttributesN( m ); for ( int i = 0; i < m_Members.Count; ++i ) { Mobile f = ((PartyMemberInfo)m_Members[i]).Mobile; f.Send( memberList ); if (! f.HasGump( typeof( PartyRadarGump))) { PartyRadarGump pr = new PartyRadarGump( f, m ); f.SendGump( pr ); // Custom Radar Gump GumpTimer gumpTimer = new GumpTimer( f, m ); gumpTimer.Start(); GumpTimer gumpTimerT = new GumpTimer( m, f ); gumpTimerT.Start(); } if ( f != m ) { f.Send( new MobileStatusCompact( m.CanBeRenamedBy( f ), m ) ); f.Send( attrs ); m.Send( new MobileStatusCompact( f.CanBeRenamedBy( m ), f ) ); m.Send( new MobileAttributesN( f ) ); } } } }