Full Version : Kills Deaths System
xmlspawner >>Scripting Support >>Kills Deaths System


<< Prev | Next >>

Asmir02- 02-07-2006
Hello all i need help on playermobile
these are the error i gt when i try to run it
CODE

- Error: Scripts\Mobiles\PlayerMobile.cs: CS1519: (line 2505, column 4) Invalid
token 'if' in class, struct, or interface member declaration
- Error: Scripts\Mobiles\PlayerMobile.cs: CS1519: (line 2505, column 18) Invali
d token '>' in class, struct, or interface member declaration
- Error: Scripts\Mobiles\PlayerMobile.cs: CS1519: (line 2507, column 22) Invali
d token '==' in class, struct, or interface member declaration
- Error: Scripts\Mobiles\PlayerMobile.cs: CS1519: (line 2507, column 44) Invali
d token ')' in class, struct, or interface member declaration
- Error: Scripts\Mobiles\PlayerMobile.cs: CS1519: (line 2508, column 13) Invali
d token '(' in class, struct, or interface member declaration
- Error: Scripts\Mobiles\PlayerMobile.cs: CS0116: (line 2512, column 4) A names
pace does not directly contain members such as fields or methods

here is part i added
CODE

if ( m_Kills > 0 )
  {
   if ( AccessLevel == AccessLevel.Player )
   list.Add( 1060809, "Kills/t0" );      
   }
  }

  if ( m_Deaths > 0 )
  {
   if ( AccessLevel == AccessLevel.Player )
   list.Add( 1060811, "Deaths\t0", );      
   }
  }

here is the full script
CODE

using System;
using System.Collections;
using Server;
using Server.Misc;
using Server.Items;
using Server.Gumps;
using Server.Multis;
using Server.Engines.Help;
using Server.ContextMenus;
using Server.Network;
using Server.Spells;
using Server.Spells.Fifth;
using Server.Spells.Seventh;
using Server.Targeting;
using Server.Engines.Quests;
using Server.Factions;
using Server.Regions;
using Server.Accounting;

using Scripts.ToolBarGump;

namespace Server.Mobiles
{
[Flags]
public enum PlayerFlag // First 16 bits are reserved for default-distro use, start custom flags at 0x00010000
{
 None    = 0x00000000,
 Glassblowing  = 0x00000001,
 Masonry    = 0x00000002,
 SandMining   = 0x00000004,
 StoneMining   = 0x00000008,
 ToggleMiningStone = 0x00000010,
 KarmaLocked   = 0x00000020,
 AutoRenewInsurance = 0x00000040,
 UseOwnFilter  = 0x00000080,
 PublicMyRunUO  = 0x00000100,
 PagingSquelched  = 0x00000200,
 Young    = 0x00000400
}

public enum NpcGuild
{
 None,
 MagesGuild,
 WarriorsGuild,
 ThievesGuild,
 RangersGuild,
 HealersGuild,
 MinersGuild,
 MerchantsGuild,
 TinkersGuild,
 TailorsGuild,
 FishermensGuild,
 BardsGuild,
 BlacksmithsGuild
}

public enum SolenFriendship
{
 None,
 Red,
 Black
}

public class PlayerMobile : Mobile
{
 private class CountAndTimeStamp
 {
  private int m_Count;
  private DateTime m_Stamp;

  public CountAndTimeStamp()
  {
  }

  public DateTime TimeStamp { get{ return m_Stamp; } }
  public int Count
  {
   get { return m_Count; }
   set { m_Count = value; m_Stamp = DateTime.Now; }
  }
 }

 private DesignContext m_DesignContext;
           
           public Xanthos.SafeResContext m_SafeResContext; // <- Xanthos Safe Res change this line only

 private NpcGuild m_NpcGuild;
 private DateTime m_NpcGuildJoinTime;
 private TimeSpan m_NpcGuildGameTime;
 private PlayerFlag m_Flags;
 private int m_StepsTaken;
 private int m_Profession;

 //Kill/death

 private int m_Deaths = 0;
 private int m_Kills = 0;

 [CommandProperty( AccessLevel.GameMaster )]
 public int Deaths
 {
  get{ return m_Deaths; }
  set
  {
   m_Deaths = value;
   InvalidateProperties();
  }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int Kills
 {
  get{ return m_Kills; }
  set
  {
   m_Kills = value;
   InvalidateProperties();
  }
 }
 //StartChallenge Sytem
 
 private bool isinchal = false;
 private bool canbechal = true;
 private BaseMount m_TempMount;
 private int m_Wins;
 private int m_Loses;
 
 [CommandProperty( AccessLevel.GameMaster )]
 public int Wins
 {
  get{ return m_Wins; }
  set{ m_Wins = value; }
 }
 
 [CommandProperty( AccessLevel.GameMaster )]
 public int Loses
 {
  get{ return m_Loses; }
  set{ m_Loses = value; }
 }
 
 [CommandProperty( AccessLevel.GameMaster ) ]
 public BaseMount TempMount
 {
  get { return m_TempMount; }
  set { m_TempMount = value; }
 }
 
 [CommandProperty(AccessLevel.Counselor)]
 public bool IsInChallenge
 {
  get{return isinchal;}
  set{isinchal = value;}
 }
 
 [CommandProperty(AccessLevel.Counselor)]
 public bool CanBeChallenged
 {
  get{return canbechal;}
  set{canbechal = value;}
 }
 
 public override bool KeepsItemsOnDeath
 {
  get
  {
   if(isinchal)
    return true;
   return base.KeepsItemsOnDeath;
  }
 }


 //End Challenge System

 //Start Pvp Point System

 private int m_TotalPoints;
 private int m_TotalWins;
 private int m_TotalLoses;
 private int m_TotalResKills;
 private int m_TotalResKilled;
 private Mobile m_LastPwner;
 private Mobile m_LastPwned;
 private DateTime m_ResKillTime;
 private int m_TotalPointsLost;
 private int m_TotalPointsSpent;
 private string m_PvpRank = "Newbie";

 [CommandProperty( AccessLevel.GameMaster )]
 public string PvpRank
 {
  get{ return m_PvpRank; }
  set{ m_PvpRank = value; InvalidateProperties(); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalPoints
 {
  get{ return m_TotalPoints; }
  set{ m_TotalPoints = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalWins
 {
  get{ return m_TotalWins; }
  set{ m_TotalWins = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalLoses
 {
  get{ return m_TotalLoses; }
  set{ m_TotalLoses = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalResKills
 {
  get{ return m_TotalResKills; }
  set{ m_TotalResKills = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalResKilled
 {
  get{ return m_TotalResKilled; }
  set{ m_TotalResKilled = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public Mobile LastPwner
 {
  get{ return m_LastPwner; }
  set{ m_LastPwner = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public Mobile LastPwned
 {
  get{ return m_LastPwned; }
  set{ m_LastPwned = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public TimeSpan ResKillTime
 {
  get
  {
   TimeSpan ts = m_ResKillTime - DateTime.Now;

   if ( ts < TimeSpan.Zero )
    ts = TimeSpan.Zero;

   return ts;
  }
  set
  {
   try{ m_ResKillTime = DateTime.Now + value; }
   catch{}
  }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalPointsLost
 {
  get{ return m_TotalPointsLost; }
  set{ m_TotalPointsLost = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalPointsSpent
 {
  get{ return m_TotalPointsSpent; }
  set{ m_TotalPointsSpent = value; }
 }

 //End Pvp Point System

 [CommandProperty( AccessLevel.GameMaster )]
 public int Profession
 {
  get{ return m_Profession; }
  set{ m_Profession = value; }
 }

 public int StepsTaken
 {
  get{ return m_StepsTaken; }
  set{ m_StepsTaken = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public NpcGuild NpcGuild
 {
  get{ return m_NpcGuild; }
  set{ m_NpcGuild = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public DateTime NpcGuildJoinTime
 {
  get{ return m_NpcGuildJoinTime; }
  set{ m_NpcGuildJoinTime = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public TimeSpan NpcGuildGameTime
 {
  get{ return m_NpcGuildGameTime; }
  set{ m_NpcGuildGameTime = value; }
 }

 public PlayerFlag Flags
 {
  get{ return m_Flags; }
  set{ m_Flags = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool PagingSquelched
 {
  get{ return GetFlag( PlayerFlag.PagingSquelched ); }
  set{ SetFlag( PlayerFlag.PagingSquelched, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool Glassblowing
 {
  get{ return GetFlag( PlayerFlag.Glassblowing ); }
  set{ SetFlag( PlayerFlag.Glassblowing, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool Masonry
 {
  get{ return GetFlag( PlayerFlag.Masonry ); }
  set{ SetFlag( PlayerFlag.Masonry, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool SandMining
 {
  get{ return GetFlag( PlayerFlag.SandMining ); }
  set{ SetFlag( PlayerFlag.SandMining, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool StoneMining
 {
  get{ return GetFlag( PlayerFlag.StoneMining ); }
  set{ SetFlag( PlayerFlag.StoneMining, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool ToggleMiningStone
 {
  get{ return GetFlag( PlayerFlag.ToggleMiningStone ); }
  set{ SetFlag( PlayerFlag.ToggleMiningStone, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool KarmaLocked
 {
  get{ return GetFlag( PlayerFlag.KarmaLocked ); }
  set{ SetFlag( PlayerFlag.KarmaLocked, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool AutoRenewInsurance
 {
  get{ return GetFlag( PlayerFlag.AutoRenewInsurance ); }
  set{ SetFlag( PlayerFlag.AutoRenewInsurance, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool UseOwnFilter
 {
  get{ return GetFlag( PlayerFlag.UseOwnFilter ); }
  set{ SetFlag( PlayerFlag.UseOwnFilter, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool PublicMyRunUO
 {
  get{ return GetFlag( PlayerFlag.PublicMyRunUO ); }
  set{ SetFlag( PlayerFlag.PublicMyRunUO, value ); InvalidateMyRunUO(); }
 }

 public static Direction GetDirection4( Point3D from, Point3D to )
 {
  int dx = from.X - to.X;
  int dy = from.Y - to.Y;

  int rx = dx - dy;
  int ry = dx + dy;

  Direction ret;

  if ( rx >= 0 && ry >= 0 )
   ret = Direction.West;
  else if ( rx >= 0 && ry < 0 )
   ret = Direction.South;
  else if ( rx < 0 && ry < 0 )
   ret = Direction.East;
  else
   ret = Direction.North;

  return ret;
 }

 public override bool OnDroppedItemToWorld( Item item, Point3D location )
 {
  if ( !base.OnDroppedItemToWorld( item, location ) )
   return false;

  BounceInfo bi = item.GetBounce();

  if ( bi != null )
  {
   Type type = item.GetType();

   if ( type.IsDefined( typeof( FurnitureAttribute ), true ) || type.IsDefined( typeof( DynamicFlipingAttribute ), true ) )
   {
    object[] objs = type.GetCustomAttributes( typeof( FlipableAttribute ), true );

    if ( objs != null && objs.Length > 0 )
    {
     FlipableAttribute fp = objs[0] as FlipableAttribute;

     if ( fp != null )
     {
      int[] itemIDs = fp.ItemIDs;

      Point3D oldWorldLoc = bi.m_WorldLoc;
      Point3D newWorldLoc = location;

      if ( oldWorldLoc.X != newWorldLoc.X || oldWorldLoc.Y != newWorldLoc.Y )
      {
       Direction dir = GetDirection4( oldWorldLoc, newWorldLoc );

       if ( itemIDs.Length == 2 )
       {
        switch ( dir )
        {
         case Direction.North:
         case Direction.South: item.ItemID = itemIDs[0]; break;
         case Direction.East:
         case Direction.West: item.ItemID = itemIDs[1]; break;
        }
       }
       else if ( itemIDs.Length == 4 )
       {
        switch ( dir )
        {
         case Direction.South: item.ItemID = itemIDs[0]; break;
         case Direction.East: item.ItemID = itemIDs[1]; break;
         case Direction.North: item.ItemID = itemIDs[2]; break;
         case Direction.West: item.ItemID = itemIDs[3]; break;
        }
       }
      }
     }
    }
   }
  }

  return true;
 }

 public bool GetFlag( PlayerFlag flag )
 {
  return ( (m_Flags & flag) != 0 );
 }

 public void SetFlag( PlayerFlag flag, bool value )
 {
  if ( value )
   m_Flags |= flag;
  else
   m_Flags &= ~flag;
 }

 public DesignContext DesignContext
 {
  get{ return m_DesignContext; }
  set{ m_DesignContext = value; }
 }

 public static void Initialize()
 {
  if ( FastwalkPrevention )
  {
   PacketHandler ph = PacketHandlers.GetHandler( 0x02 );

   ph.ThrottleCallback = new ThrottlePacketCallback( MovementThrottle_Callback );
  }

  EventSink.Login += new LoginEventHandler( OnLogin );
  EventSink.Logout += new LogoutEventHandler( OnLogout );
  EventSink.Connected += new ConnectedEventHandler( EventSink_Connected );
  EventSink.Disconnected += new DisconnectedEventHandler( EventSink_Disconnected );
 }

 public override void OnSkillInvalidated( Skill skill )
 {
  if ( Core.AOS && skill.SkillName == SkillName.MagicResist )
   UpdateResistances();
 }

 public override int GetMaxResistance( ResistanceType type )
 {
  int max = base.GetMaxResistance( type );

  if ( type != ResistanceType.Physical && 60 < max && Spells.Fourth.CurseSpell.UnderEffect( this ) )
   max = 60;

  return max;
 }

 private int m_LastGlobalLight = -1, m_LastPersonalLight = -1;

 public override void OnNetStateChanged()
 {
  m_LastGlobalLight = -1;
  m_LastPersonalLight = -1;
 }

 public override void ComputeBaseLightLevels( out int global, out int personal )
{
if ( null != m_SafeResContext ) m_SafeResContext.Check(); // <- Xanthos Safe Res change this line only
global = LightCycle.ComputeLevelFor( this );

if ( this.LightLevel < 21 && AosAttributes.GetValue( this, AosAttribute.NightSight ) > 0 )
 personal = 21;
else
 personal = this.LightLevel;
}
 public override void CheckLightLevels( bool forceResend )
 {
  NetState ns = this.NetState;

  if ( ns == null )
   return;

  int global, personal;

  ComputeLightLevels( out global, out personal );

  if ( !forceResend )
   forceResend = ( global != m_LastGlobalLight || personal != m_LastPersonalLight );

  if ( !forceResend )
   return;

  m_LastGlobalLight = global;
  m_LastPersonalLight = personal;

  ns.Send( GlobalLightLevel.Instantiate( global ) );
  ns.Send( new PersonalLightLevel( this, personal ) );
 }

 public override int GetMinResistance( ResistanceType type )
 {
  int magicResist = (int)(Skills[SkillName.MagicResist].Value * 10);
  int min = int.MinValue;

  if ( magicResist >= 1000 )
   min = 40 + ((magicResist - 1000) / 50);
  else if ( magicResist >= 400 )
   min = (magicResist - 400) / 15;

  if ( min > MaxPlayerResistance )
   min = MaxPlayerResistance;

  int baseMin = base.GetMinResistance( type );

  if ( min < baseMin )
   min = baseMin;

  return min;
 }

 private static void OnLogin( LoginEventArgs e )
 {
  Mobile from = e.Mobile;

  SacrificeVirtue.CheckAtrophy( from );
  JusticeVirtue.CheckAtrophy( from );
  CompassionVirtue.CheckAtrophy( from );

                 
                 if ( from.AccessLevel == AccessLevel.GameMaster )
  {
   from.SendGump( new ToolBarGump() );
                         }
  if ( from.AccessLevel == AccessLevel.Administrator )
  {
   from.SendGump( new ToolBarGump() );
                         }

  if ( AccountHandler.LockdownLevel > AccessLevel.Player )
  {
   string notice;

   Accounting.Account acct = from.Account as Accounting.Account;

   if ( acct == null || !acct.HasAccess( from.NetState ) )
   {
    if ( from.AccessLevel == AccessLevel.Player )
     notice = "The server is currently under lockdown. No players are allowed to log in at this time.";
    else
     notice = "The server is currently under lockdown. You do not have sufficient access level to connect.";

    Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerStateCallback( Disconnect ), from );
   }
   else if ( from.AccessLevel == AccessLevel.Administrator )
   {
    notice = "The server is currently under lockdown. As you are an administrator, you may change this from the [Admin gump.";
   }
   else
   {
    notice = "The server is currently under lockdown. You have sufficient access level to connect.";
   }

   from.SendGump( new NoticeGump( 1060637, 30720, notice, 0xFFC000, 300, 140, null, null ) );
  }
 }

 private bool m_NoDeltaRecursion;

 public void ValidateEquipment()
 {
  if ( m_NoDeltaRecursion || Map == null || Map == Map.Internal )
   return;

  if ( this.Items == null )
   return;

  m_NoDeltaRecursion = true;
  Timer.DelayCall( TimeSpan.Zero, new TimerCallback( ValidateEquipment_Sandbox ) );
 }

 private void ValidateEquipment_Sandbox()
 {
  try
  {
   if ( Map == null || Map == Map.Internal )
    return;

   ArrayList items = this.Items;

   if ( items == null )
    return;

   bool moved = false;

   int str = this.Str;
   int dex = this.Dex;
   int intel = this.Int;

   #region Factions
   int factionItemCount = 0;
   #endregion

   Mobile from = this;

   for ( int i = items.Count - 1; i >= 0; --i )
   {
    if ( i >= items.Count )
     continue;

    Item item = (Item)items[i];

    if ( item is BaseWeapon )
    {
     BaseWeapon weapon = (BaseWeapon)item;

     bool drop = false;

     if ( dex < weapon.DexRequirement )
      drop = true;
     else if ( str < AOS.Scale( weapon.StrRequirement, 100 - weapon.GetLowerStatReq() ) )
      drop = true;
     else if ( intel < weapon.IntRequirement )
      drop = true;

     if ( drop )
     {
      string name = weapon.Name;

      if ( name == null )
       name = String.Format( "#{0}", weapon.LabelNumber );

      from.SendLocalizedMessage( 1062001, name ); // You can no longer wield your ~1_WEAPON~
      from.AddToBackpack( weapon );
      moved = true;
     }
    }
    else if ( item is BaseArmor )
    {
     BaseArmor armor = (BaseArmor)item;

     bool drop = false;

     if ( !armor.AllowMaleWearer && from.Body.IsMale && from.AccessLevel < AccessLevel.GameMaster )
     {
      drop = true;
     }
     else if ( !armor.AllowFemaleWearer && from.Body.IsFemale && from.AccessLevel < AccessLevel.GameMaster )
     {
      drop = true;
     }
     else
     {
      int strBonus = armor.ComputeStatBonus( StatType.Str ), strReq = armor.ComputeStatReq( StatType.Str );
      int dexBonus = armor.ComputeStatBonus( StatType.Dex ), dexReq = armor.ComputeStatReq( StatType.Dex );
      int intBonus = armor.ComputeStatBonus( StatType.Int ), intReq = armor.ComputeStatReq( StatType.Int );

      if ( dex < dexReq || (dex + dexBonus) < 1 )
       drop = true;
      else if ( str < strReq || (str + strBonus) < 1 )
       drop = true;
      else if ( intel < intReq || (intel + intBonus) < 1 )
       drop = true;
     }

     if ( drop )
     {
      string name = armor.Name;

      if ( name == null )
       name = String.Format( "#{0}", armor.LabelNumber );

      if ( armor is BaseShield )
       from.SendLocalizedMessage( 1062003, name ); // You can no longer equip your ~1_SHIELD~
      else
       from.SendLocalizedMessage( 1062002, name ); // You can no longer wear your ~1_ARMOR~

      from.AddToBackpack( armor );
      moved = true;
     }
    }

    FactionItem factionItem = FactionItem.Find( item );

    if ( factionItem != null )
    {
     bool drop = false;

     Faction ourFaction = Faction.Find( this );

     if ( ourFaction == null || ourFaction != factionItem.Faction )
      drop = true;
     else if ( ++factionItemCount > FactionItem.GetMaxWearables( this ) )
      drop = true;

     if ( drop )
     {
      from.AddToBackpack( item );
      moved = true;
     }
    }
   }

   if ( moved )
    from.SendLocalizedMessage( 500647 ); // Some equipment has been moved to your backpack.
  }
  catch ( Exception e )
  {
   Console.WriteLine( e );
  }
  finally
  {
   m_NoDeltaRecursion = false;
  }
 }

 public override void Delta( MobileDelta flag )
 {
  base.Delta( flag );

  if ( (flag & MobileDelta.Stat) != 0 )
   ValidateEquipment();

  if ( (flag & (MobileDelta.Name | MobileDelta.Hue)) != 0 )
   InvalidateMyRunUO();
 }

 private static void Disconnect( object state )
 {
  NetState ns = ((Mobile)state).NetState;

  if ( ns != null )
   ns.Dispose();
 }

 private static void OnLogout( LogoutEventArgs e )
 {
 }

 private static void EventSink_Connected( ConnectedEventArgs e )
 {
  PlayerMobile pm = e.Mobile as PlayerMobile;

  if ( pm != null )
  {
   pm.m_SessionStart = DateTime.Now;

   if ( pm.m_Quest != null )
    pm.m_Quest.StartTimer();

   pm.BedrollLogout = false;
  }
 }

 private static void EventSink_Disconnected( DisconnectedEventArgs e )
 {
  Mobile from = e.Mobile;
  DesignContext context = DesignContext.Find( from );

  if ( context != null )
  {
   /* Client disconnected
    *  - Remove design context
    *  - Eject all from house
    *  - Restore relocated entities
    */

   // Remove design context
   DesignContext.Remove( from );

   // Eject all from house
   from.RevealingAction();

   foreach ( Item item in context.Foundation.GetItems() )
    item.Location = context.Foundation.BanLocation;

   foreach ( Mobile mobile in context.Foundation.GetMobiles() )
    mobile.Location = context.Foundation.BanLocation;

   // Restore relocated entities
   context.Foundation.RestoreRelocatedEntities();
  }

  PlayerMobile pm = e.Mobile as PlayerMobile;

  if ( pm != null )
  {
   pm.m_GameTime += (DateTime.Now - pm.m_SessionStart);

   if ( pm.m_Quest != null )
    pm.m_Quest.StopTimer();

   pm.m_SpeechLog = null;
                  if ( null != pm.m_SafeResContext ) Xanthos.SafeResContext.Remove( pm ); // <- Xanthos Safe Res change this line only
  }
 }

 public override void RevealingAction()
 {
  if ( m_DesignContext != null )
   return;

  Spells.Sixth.InvisibilitySpell.RemoveTimer( this );

  base.RevealingAction();
 }

 public override void OnSubItemAdded( Item item )
 {
  if ( AccessLevel < AccessLevel.GameMaster && item.IsChildOf( this.Backpack ) )
  {
   int maxWeight = WeightOverloading.GetMaxWeight( this );
   int curWeight = Mobile.BodyWeight + this.TotalWeight;

   if ( curWeight > maxWeight )
    this.SendLocalizedMessage( 1019035, true, String.Format( " : {0} / {1}", curWeight, maxWeight ) );
  }
 }

 public override bool CanBeHarmful( Mobile target, bool message, bool ignoreOurBlessedness )
 {
  if ( m_DesignContext != null || (target is PlayerMobile && ((PlayerMobile)target).m_DesignContext != null) )
   return false;

  if ( (target is BaseVendor && ((BaseVendor)target).IsInvulnerable) || target is PlayerVendor || target is TownCrier )
  {
   if ( message )
   {
    if ( target.Title == null )
     SendMessage( "{0} the vendor cannot be harmed.", target.Name );
    else
     SendMessage( "{0} {1} cannot be harmed.", target.Name, target.Title );
   }

   return false;
  }

  return base.CanBeHarmful( target, message, ignoreOurBlessedness );
 }

 public override bool CanBeBeneficial( Mobile target, bool message, bool allowDead )
 {
  if ( m_DesignContext != null || (target is PlayerMobile && ((PlayerMobile)target).m_DesignContext != null) )
   return false;

  return base.CanBeBeneficial( target, message, allowDead );
 }

 public override bool CheckContextMenuDisplay( IEntity target )
 {
  return ( m_DesignContext == null );
 }

 public override void OnItemAdded( Item item )
 {
  base.OnItemAdded( item );

  if ( item is BaseArmor || item is BaseWeapon )
  {
   Hits=Hits; Stam=Stam; Mana=Mana;
  }

  if ( this.NetState != null )
   CheckLightLevels( false );

  InvalidateMyRunUO();
 }

 public override void OnItemRemoved( Item item )
 {
  base.OnItemRemoved( item );

  if ( item is BaseArmor || item is BaseWeapon )
  {
   Hits=Hits; Stam=Stam; Mana=Mana;
  }

  if ( this.NetState != null )
   CheckLightLevels( false );

  InvalidateMyRunUO();
 }

 public override double ArmorRating
 {
  get
  {
   BaseArmor ar;
   double rating = 0.0;

   ar = NeckArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = HandArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = HeadArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = ArmsArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = LegsArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = ChestArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = ShieldArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   return VirtualArmor + VirtualArmorMod + rating;
  }
 }

 public override int HitsMax
 {
  get
  {
   int strBase;
   int strOffs = GetStatOffset( StatType.Str );

   if ( Core.AOS )
   {
    strBase = this.Str;
    strOffs += AosAttributes.GetValue( this, AosAttribute.BonusHits );
   }
   else
   {
    strBase = this.RawStr;
   }

   return (strBase / 2) + 50 + strOffs;
  }
 }

 public override int StamMax
 {
  get{ return base.StamMax + AosAttributes.GetValue( this, AosAttribute.BonusStam ); }
 }

 public override int ManaMax
 {
  get{ return base.ManaMax + AosAttributes.GetValue( this, AosAttribute.BonusMana ); }
 }

 public override bool Move( Direction d )
 {
  NetState ns = this.NetState;

  if ( ns != null )
  {
   GumpCollection gumps = ns.Gumps;

   for ( int i = 0; i < gumps.Count; ++i )
   {
    if ( gumps[i] is ResurrectGump )
    {
     if ( Alive )
     {
      CloseGump( typeof( ResurrectGump ) );
     }
     else
     {
      SendLocalizedMessage( 500111 ); // You are frozen and cannot move.
      return false;
     }
    }
   }
  }

  TimeSpan speed = ComputeMovementSpeed( d );

  if ( !base.Move( d ) )
   return false;

  m_NextMovementTime += speed;

  return true;
 }

 public override bool CheckMovement( Direction d, out int newZ )
 {
  DesignContext context = m_DesignContext;

  if ( context == null )
   return base.CheckMovement( d, out newZ );

  HouseFoundation foundation = context.Foundation;

  newZ = foundation.Z + HouseFoundation.GetLevelZ( context.Level );

  int newX = this.X, newY = this.Y;
  Movement.Movement.Offset( d, ref newX, ref newY );

  int startX = foundation.X + foundation.Components.Min.X + 1;
  int startY = foundation.Y + foundation.Components.Min.Y + 1;
  int endX = startX + foundation.Components.Width - 1;
  int endY = startY + foundation.Components.Height - 2;

  return ( newX >= startX && newY >= startY && newX < endX && newY < endY && Map == foundation.Map );
 }

 public override bool AllowItemUse( Item item )
 {
  return DesignContext.Check( this );
 }

 public override bool AllowSkillUse( SkillName skill )
{
if ( null != m_SafeResContext ) // <- Xanthos Safe Res change this line only
 return ( DesignContext.Check( this ) && m_SafeResContext.AllowSkillUse( skill )); // <- Xanthos Safe Res change this line only
return DesignContext.Check( this );
}


 private bool m_LastProtectedMessage;
 private int m_NextProtectionCheck = 10;

 public virtual void RecheckTownProtection()
 {
  m_NextProtectionCheck = 10;

  Regions.GuardedRegion reg = this.Region as Regions.GuardedRegion;
  bool isProtected = ( reg != null && !reg.IsDisabled() );

  if ( isProtected != m_LastProtectedMessage )
  {
   if ( isProtected )
    SendLocalizedMessage( 500112 ); // You are now under the protection of the town guards.
   else
    SendLocalizedMessage( 500113 ); // You have left the protection of the town guards.

   m_LastProtectedMessage = isProtected;
  }
 }

 public override void MoveToWorld( Point3D loc, Map map )
 {
  base.MoveToWorld( loc, map );

  RecheckTownProtection();
 }

 public override void SetLocation( Point3D loc, bool isTeleport )
 {
  if ( !isTeleport && AccessLevel == AccessLevel.Player )
  {
   // moving, not teleporting
   int zDrop = ( this.Location.Z - loc.Z );

   if ( zDrop > 20 ) // we fell more than one story
    Hits -= ((zDrop / 20) * 10) - 5; // deal some damage; does not kill, disrupt, etc
  }

  base.SetLocation( loc, isTeleport );

  if ( isTeleport || --m_NextProtectionCheck == 0 )
   RecheckTownProtection();
 }

 public override void GetContextMenuEntries( Mobile from, ArrayList list )
 {
  base.GetContextMenuEntries( from, list );

  if ( from == this )
  {
   if ( m_Quest != null )
    m_Quest.GetContextMenuEntries( list );

   if ( Alive && InsuranceEnabled )
   {
    list.Add( new CallbackEntry( 6201, new ContextCallback( ToggleItemInsurance ) ) );

    if ( AutoRenewInsurance )
     list.Add( new CallbackEntry( 6202, new ContextCallback( CancelRenewInventoryInsurance ) ) );
    else
     list.Add( new CallbackEntry( 6200, new ContextCallback( AutoRenewInventoryInsurance ) ) );
   }

   // TODO: Toggle champ titles

   BaseHouse house = BaseHouse.FindHouseAt( this );

   if ( house != null )
   {
    if ( Alive && house.InternalizedVendors.Count > 0 && house.IsOwner( this ) )
     list.Add( new CallbackEntry( 6204, new ContextCallback( GetVendor ) ) );

    if ( house.IsAosRules )
     list.Add( new CallbackEntry( 6207, new ContextCallback( LeaveHouse ) ) );
   }

   if ( m_JusticeProtectors.Count > 0 )
    list.Add( new CallbackEntry( 6157, new ContextCallback( CancelProtection ) ) );
  }
 }

 private void CancelProtection()
 {
  for ( int i = 0; i < m_JusticeProtectors.Count; ++i )
  {
   Mobile prot = (Mobile)m_JusticeProtectors[i];

   string args = String.Format( "{0}\t{1}", this.Name, prot.Name );

   prot.SendLocalizedMessage( 1049371, args ); // The protective relationship between ~1_PLAYER1~ and ~2_PLAYER2~ has been ended.
   this.SendLocalizedMessage( 1049371, args ); // The protective relationship between ~1_PLAYER1~ and ~2_PLAYER2~ has been ended.
  }

  m_JusticeProtectors.Clear();
 }

 private void ToggleItemInsurance()
 {
  if ( !CheckAlive() )
   return;

  BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
  SendLocalizedMessage( 1060868 ); // Target the item you wish to toggle insurance status on <ESC> to cancel
 }

 private bool CanInsure( Item item )
 {
  if ( item is Container || item is BagOfSending )
   return false;

  if ( item is Spellbook || item is Runebook || item is PotionKeg || item is Sigil )
   return false;

  if ( item.Stackable )
   return false;

  if ( item.LootType == LootType.Cursed )
   return false;

  if ( item.ItemID == 0x204E ) // death shroud
   return false;

  return true;
 }

 private void ToggleItemInsurance_Callback( Mobile from, object obj )
 {
  if ( !CheckAlive() )
   return;

  Item item = obj as Item;

  if ( item == null || !item.IsChildOf( this ) )
  {
   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060871, "", 0x23 ); // You can only insure items that you have equipped or that are in your backpack
  }
  else if ( item.Insured )
  {
   item.Insured = false;

   SendLocalizedMessage( 1060874, "", 0x35 ); // You cancel the insurance on the item

   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060868, "", 0x23 ); // Target the item you wish to toggle insurance status on <ESC> to cancel
  }
  else if ( !CanInsure( item ) )
  {
   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060869, "", 0x23 ); // You cannot insure that
  }
  else if ( item.LootType == LootType.Blessed || item.LootType == LootType.Newbied || item.BlessedFor == from )
  {
   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060870, "", 0x23 ); // That item is blessed and does not need to be insured
   SendLocalizedMessage( 1060869, "", 0x23 ); // You cannot insure that
  }
  else
  {
   if ( !item.PayedInsurance )
   {
    if ( Banker.Withdraw( from, 600 ) )
    {
     SendLocalizedMessage( 1060398, "600" ); // ~1_AMOUNT~ gold has been withdrawn from your bank box.
     item.PayedInsurance = true;
    }
    else
    {
     SendLocalizedMessage( 1061079, "", 0x23 ); // You lack the funds to purchase the insurance
     return;
    }
   }

   item.Insured = true;

   SendLocalizedMessage( 1060873, "", 0x23 ); // You have insured the item

   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060868, "", 0x23 ); // Target the item you wish to toggle insurance status on <ESC> to cancel
  }
 }

 private void AutoRenewInventoryInsurance()
 {
  if ( !CheckAlive() )
   return;

  SendLocalizedMessage( 1060881, "", 0x23 ); // You have selected to automatically reinsure all insured items upon death
  AutoRenewInsurance = true;
 }

 private void CancelRenewInventoryInsurance()
 {
  if ( !CheckAlive() )
   return;

  SendLocalizedMessage( 1061075, "", 0x23 ); // You have cancelled automatically reinsuring all insured items upon death
  AutoRenewInsurance = false;
 }

 // TODO: Champ titles, toggle

 private void GetVendor()
 {
  BaseHouse house = BaseHouse.FindHouseAt( this );

  if ( CheckAlive() && house != null && house.IsOwner( this ) && house.InternalizedVendors.Count > 0 )
  {
   CloseGump( typeof( ReclaimVendorGump ) );
   SendGump( new ReclaimVendorGump( house ) );
  }
 }

 private void LeaveHouse()
 {
  BaseHouse house = BaseHouse.FindHouseAt( this );

  if ( house != null )
   this.Location = house.BanLocation;
 }

 private delegate void ContextCallback();

 private class CallbackEntry : ContextMenuEntry
 {
  private ContextCallback m_Callback;

  public CallbackEntry( int number, ContextCallback callback ) : this( number, -1, callback )
  {
  }

  public CallbackEntry( int number, int range, ContextCallback callback ) : base( number, range )
  {
   m_Callback = callback;
  }

  public override void OnClick()
  {
   if ( m_Callback != null )
    m_Callback();
  }
 }

 public override void OnDoubleClick( Mobile from )
 {
  if ( this == from && !Warmode )
  {
   IMount mount = Mount;

   if ( mount != null && !DesignContext.Check( this ) )
    return;
  }

  base.OnDoubleClick( from );
 }

 public override void DisplayPaperdollTo( Mobile to )
 {
  if ( DesignContext.Check( this ) )
   base.DisplayPaperdollTo( to );
 }

 private static bool m_NoRecursion;

 public override bool CheckEquip( Item item )
 {
  if ( !base.CheckEquip( item ) )
   return false;

  #region Factions
  FactionItem factionItem = FactionItem.Find( item );

  if ( factionItem != null )
  {
   Faction faction = Faction.Find( this );

   if ( faction == null )
   {
    SendLocalizedMessage( 1010371 ); // You cannot equip a faction item!
    return false;
   }
   else if ( faction != factionItem.Faction )
   {
    SendLocalizedMessage( 1010372 ); // You cannot equip an opposing faction's item!
    return false;
   }
   else
   {
    int maxWearables = FactionItem.GetMaxWearables( this );

    for ( int i = 0; i < Items.Count; ++i )
    {
     Item equiped = (Item)Items[i];

     if ( item != equiped && FactionItem.Find( equiped ) != null )
     {
      if ( --maxWearables == 0 )
      {
       SendLocalizedMessage( 1010373 ); // You do not have enough rank to equip more faction items!
       return false;
      }
     }
    }
   }
  }
  #endregion

  if ( this.AccessLevel < AccessLevel.GameMaster && item.Layer != Layer.Mount && this.HasTrade )
  {
   BounceInfo bounce = item.GetBounce();

   if ( bounce != null )
   {
    if ( bounce.m_Parent is Item )
    {
     Item parent = (Item) bounce.m_Parent;

     if ( parent == this.Backpack || parent.IsChildOf( this.Backpack ) )
      return true;
    }
    else if ( bounce.m_Parent == this )
    {
     return true;
    }
   }

   SendLocalizedMessage( 1004042 ); // You can only equip what you are already carrying while you have a trade pending.
   return false;
  }

  return true;
 }

 public override bool CheckTrade( Mobile to, Item item, SecureTradeContainer cont, bool message, bool checkItems, int plusItems, int plusWeight )
 {
  int msgNum = 0;

  if ( cont == null )
  {
   if ( to.Holding != null )
    msgNum = 1062727; // You cannot trade with someone who is dragging something.
   else if ( this.HasTrade )
    msgNum = 1062781; // You are already trading with someone else!
   else if ( to.HasTrade )
    msgNum = 1062779; // That person is already involved in a trade
  }

  if ( msgNum == 0 )
  {
   if ( cont != null )
   {
    plusItems += cont.TotalItems;
    plusWeight += cont.TotalWeight;
   }

   if ( this.Backpack == null || !this.Backpack.CheckHold( this, item, false, checkItems, plusItems, plusWeight ) )
    msgNum = 1004040; // You would not be able to hold this if the trade failed.
   else if ( to.Backpack == null || !to.Backpack.CheckHold( to, item, false, checkItems, plusItems, plusWeight ) )
    msgNum = 1004039; // The recipient of this trade would not be able to carry this.
   else
    msgNum = CheckContentForTrade( item );
  }

  if ( msgNum != 0 )
  {
   if ( message )
    this.SendLocalizedMessage( msgNum );

   return false;
  }

  return true;
 }

 private static int CheckContentForTrade( Item item )
 {
  if ( item is TrapableContainer && ((TrapableContainer)item).TrapType != TrapType.None )
   return 1004044; // You may not trade trapped items.

  if ( SkillHandlers.StolenItem.IsStolen( item ) )
   return 1004043; // You may not trade recently stolen items.

  if ( item is Container )
  {
   foreach ( Item subItem in item.Items )
   {
    int msg = CheckContentForTrade( subItem );

    if ( msg != 0 )
     return msg;
   }
  }

  return 0;
 }

 public override bool CheckNonlocalDrop( Mobile from, Item item, Item target )
 {
  if ( !base.CheckNonlocalDrop( from, item, target ) )
   return false;

  if ( from.AccessLevel >= AccessLevel.GameMaster )
   return true;

  Container pack = this.Backpack;
  if ( from == this && this.HasTrade && ( target == pack || target.IsChildOf( pack ) ) )
  {
   BounceInfo bounce = item.GetBounce();

   if ( bounce != null && bounce.m_Parent is Item )
   {
    Item parent = (Item) bounce.m_Parent;

    if ( parent == pack || parent.IsChildOf( pack ) )
     return true;
   }

   SendLocalizedMessage( 1004041 ); // You can't do that while you have a trade pending.
   return false;
  }

  return true;
 }

 protected override void OnLocationChange( Point3D oldLocation )
 {
  CheckLightLevels( false );

  DesignContext context = m_DesignContext;

  if ( context == null || m_NoRecursion )
   return;

  m_NoRecursion = true;

  HouseFoundation foundation = context.Foundation;

  int newX = this.X, newY = this.Y;
  int newZ = foundation.Z + HouseFoundation.GetLevelZ( context.Level );

  int startX = foundation.X + foundation.Components.Min.X + 1;
  int startY = foundation.Y + foundation.Components.Min.Y + 1;
  int endX = startX + foundation.Components.Width - 1;
  int endY = startY + foundation.Components.Height - 2;

  if ( newX >= startX && newY >= startY && newX < endX && newY < endY && Map == foundation.Map )
  {
   if ( Z != newZ )
    Location = new Point3D( X, Y, newZ );

   m_NoRecursion = false;
   return;
  }

  Location = new Point3D( foundation.X, foundation.Y, newZ );
  Map = foundation.Map;

  m_NoRecursion = false;
 }

 public override bool OnMoveOver( Mobile m )
 {
  if ( m is BaseCreature && !((BaseCreature)m).Controled )
   return false;

  return base.OnMoveOver( m );
 }

 protected override void OnMapChange( Map oldMap )
 {
  if ( (Map != Faction.Facet && oldMap == Faction.Facet) || (Map == Faction.Facet && oldMap != Faction.Facet) )
   InvalidateProperties();

  DesignContext context = m_DesignContext;

  if ( context == null || m_NoRecursion )
   return;

  m_NoRecursion = true;

  HouseFoundation foundation = context.Foundation;

  if ( Map != foundation.Map )
   Map = foundation.Map;

  m_NoRecursion = false;
 }

 public override void OnDamage( int amount, Mobile from, bool willKill )
 {
  int disruptThreshold;

  if ( !Core.AOS )
   disruptThreshold = 0;
  else if ( from != null && from.Player )
   disruptThreshold = 18;
  else
   disruptThreshold = 25;

  if ( amount > disruptThreshold )
  {
   BandageContext c = BandageContext.GetContext( this );

   if ( c != null )
    c.Slip();
  }

  WeightOverloading.FatigueOnDamage( this, amount );

  base.OnDamage( amount, from, willKill );
 }

 public static int ComputeSkillTotal( Mobile m )
 {
  int total = 0;

  for ( int i = 0; i < m.Skills.Length; ++i )
   total += m.Skills[i].BaseFixedPoint;

  return ( total / 10 );
 }

     public override void Resurrect()
     {
  bool wasAlive = this.Alive;

  base.Resurrect();

  if ( this.Alive && !wasAlive )
{
 Xanthos.SafeResContext.Add( this ); // <- Xanthos Safe Res change this line only
}
 }

 private Mobile m_InsuranceAward;
 private int m_InsuranceCost;
 private int m_InsuranceBonus;

 public override bool OnBeforeDeath()
 {
  m_InsuranceCost = 0;
  m_InsuranceAward = base.FindMostRecentDamager( false );

  if ( m_InsuranceAward is BaseCreature )
  {
   Mobile master = ((BaseCreature)m_InsuranceAward).GetMaster();

   if ( master != null )
    m_InsuranceAward = master;
  }

  if ( m_InsuranceAward != null && (!m_InsuranceAward.Player || m_InsuranceAward == this) )
   m_InsuranceAward = null;

  if ( m_InsuranceAward is PlayerMobile )
   ((PlayerMobile)m_InsuranceAward).m_InsuranceBonus = 0;

  Mobile kill = FindMostRecentDamager( false );
  if ( kill is PlayerMobile )
  {
   PlayerMobile killer = (PlayerMobile)kill;
   
   if ( PvpPointSystem.EnablePointSystem == true )
    PvpPointSystem.GivePoints( this, killer );

   if ( PvpPointSystem.EnableRankSystem == true )
    PvpPointSystem.CheckTitle( this, killer );
  }

  return base.OnBeforeDeath();
 }

 private bool CheckInsuranceOnDeath( Item item )
 {
  if ( InsuranceEnabled && item.Insured )
  {
   if ( AutoRenewInsurance )
   {
    int cost = ( m_InsuranceAward == null ? 600 : 300 );

    if ( Banker.Withdraw( this, cost ) )
    {
     m_InsuranceCost += cost;
     item.PayedInsurance = true;
    }
    else
    {
     SendLocalizedMessage( 1061079, "", 0x23 ); // You lack the funds to purchase the insurance
     item.PayedInsurance = false;
     item.Insured = false;
    }
   }
   else
   {
    item.PayedInsurance = false;
    item.Insured = false;
   }

   if ( m_Insuranc

ArteGordon- 02-07-2006
Im not sure where you put this code

CODE

if ( m_Kills > 0 )
 {
  if ( AccessLevel == AccessLevel.Player )
  list.Add( 1060809, "Kills/t0" );      
  }
 }

 if ( m_Deaths > 0 )
 {
  if ( AccessLevel == AccessLevel.Player )
  list.Add( 1060811, "Deaths\t0", );      
  }
 }


but it is not in the correct place. You want to add this to a method like

QUOTE

  public override void GetProperties( ObjectPropertyList list )
  {

  base.GetProperties( list );

// add the code somewhere in this method

  if ( Map == Faction.Facet )
  {
    PlayerState pl = PlayerState.Find( this );

    if ( pl != null )
    {
    Faction faction = pl.Faction;

    if ( faction.Commander == this )
      list.Add( 1042733, faction.Definition.PropName ); // Commanding Lord of the ~1_FACTION_NAME~
    else if ( pl.Sheriff != null )
      list.Add( 1042734, "{0}\t{1}", pl.Sheriff.Definition.FriendlyName, faction.Definition.PropName ); // The Sheriff of  ~1_CITY~, ~2_FACTION_NAME~
    else if ( pl.Finance != null )
      list.Add( 1042735, "{0}\t{1}", pl.Finance.Definition.FriendlyName, faction.Definition.PropName ); // The Finance Minister of ~1_CITY~, ~2_FACTION_NAME~
    else if ( pl.MerchantTitle != MerchantTitle.None )
      list.Add( 1060776, "{0}\t{1}", MerchantTitles.GetInfo( pl.MerchantTitle ).Title, faction.Definition.PropName ); // ~1_val~, ~2_val~
    else
      list.Add( 1060776, "{0}\t{1}", pl.Rank.Title, faction.Definition.PropName ); // ~1_val~, ~2_val~
    }
  }
  }

Asmir02- 02-07-2006
ok i did what you told me but i figured out that i coded it wrong but i still get some errors
the errors
CODE

- Error: Scripts\Mobiles\PlayerMobile.cs: CS0116: (line 2538, column 4) A name
pace does not directly contain members such as fields or methods
- Error: Scripts\Mobiles\PlayerMobile.cs: CS1022: (line 2549, column 4) Type o
namespace definition, or end-of-file expected
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

here is the part of the script that im working on
CODE

public override void GetProperties( ObjectPropertyList list )
 {
  base.GetProperties( list );

  if ( m_Kills > 0 )
  {
   if ( AccessLevel == AccessLevel.Player )
   {
   list.Add( 1060660, "Kills\t{0}", m_Kills );      
   }
   else
   }
   if ( AccessLevel == AccessLevel.Player )
    list.Add( 1060660, "Deaths\t0" );
   }
  }

  if ( m_Deaths > 0 )
  {
   if ( AccessLevel == AccessLevel.Player )
   {
    list.Add( 1060660, "Deaths\t{0}", m_Deaths );
   }
   else
   }
   if ( AccessLevel == AccessLevel.Player )
    list.Add( 1060660, "Deaths\t0" );
   }
  }
 
  if (AccessLevel > AccessLevel.Player)
    {
     string color = "";
     switch ( AccessLevel )
     {
     case AccessLevel.Counselor: color = "#00BFFF"; break; //Deep Sky Blue
     case AccessLevel.GameMaster: color = "#FF0000"; break; //Red
     case AccessLevel.Seer: color = "#00FF00"; break; //Green
     case AccessLevel.Administrator: color = "#FFD700"; break; //Gold
     }
    list.Add( 1060658, "{0}\t{1}", "Staff", String.Format("<BASEFONT COLOR={0}>{1}", color, AccessLevel) );
    }  

  if ( Map == Faction.Facet )
  {
   PlayerState pl = PlayerState.Find( this );

   if ( pl != null )
   {
    Faction faction = pl.Faction;

    if ( faction.Commander == this )
     list.Add( 1042733, faction.Definition.PropName ); // Commanding Lord of the ~1_FACTION_NAME~
    else if ( pl.Sheriff != null )
     list.Add( 1042734, "{0}\t{1}", pl.Sheriff.Definition.FriendlyName, faction.Definition.PropName ); // The Sheriff of  ~1_CITY~, ~2_FACTION_NAME~
    else if ( pl.Finance != null )
     list.Add( 1042735, "{0}\t{1}", pl.Finance.Definition.FriendlyName, faction.Definition.PropName ); // The Finance Minister of ~1_CITY~, ~2_FACTION_NAME~
    else if ( pl.MerchantTitle != MerchantTitle.None )
     list.Add( 1060776, "{0}\t{1}", MerchantTitles.GetInfo( pl.MerchantTitle ).Title, faction.Definition.PropName ); // ~1_val~, ~2_val~
    else
     list.Add( 1060776, "{0}\t{1}", pl.Rank.Title, faction.Definition.PropName ); // ~1_val~, ~2_val~
   }
  }
 }


ArteGordon- 02-07-2006
this is wrong

QUOTE

  if ( m_Kills > 0 )
  {
  if ( AccessLevel == AccessLevel.Player )
  {
  list.Add( 1060660, "Kills\t{0}", m_Kills );     
  }
  else
  }
  if ( AccessLevel == AccessLevel.Player )
    list.Add( 1060660, "Deaths\t0" );
  }
  }

  if ( m_Deaths > 0 )
  {
  if ( AccessLevel == AccessLevel.Player )
  {
    list.Add( 1060660, "Deaths\t{0}", m_Deaths );
  }
  else
  }
  if ( AccessLevel == AccessLevel.Player )
    list.Add( 1060660, "Deaths\t0" );
  }
  }
 


you need to move some brackets around so that it looks like this

QUOTE

  if ( m_Kills > 0 )
  {
  if ( AccessLevel == AccessLevel.Player )
  {
  list.Add( 1060660, "Kills\t{0}", m_Kills );     
  }
  else
  if ( AccessLevel == AccessLevel.Player )
  {
    list.Add( 1060660, "Deaths\t0" );
  }
  }

  if ( m_Deaths > 0 )
  {
  if ( AccessLevel == AccessLevel.Player )
  {
    list.Add( 1060660, "Deaths\t{0}", m_Deaths );
  }
  else
  if ( AccessLevel == AccessLevel.Player )
  {
    list.Add( 1060660, "Deaths\t0" );
  }
  }

Asmir02- 02-07-2006
ok now there is no errors i did what you said and still dont work i trying changing number it still dont show kill/death under players name
here is the part that i fixxed
CODE

if ( m_TotKills > 0 )
    {
     if ( AccessLevel == AccessLevel.Player )
     {
     list.Add( 1060662, "Kills\t{0}", m_TotKills );    
    }
     else
    if ( AccessLevel == AccessLevel.Player )
     {
       list.Add( 1060662, "Deaths\t0" );
    }
    }

    if ( m_TotDeaths > 0 )
    {
     if ( AccessLevel == AccessLevel.Player )
     {
        list.Add( 1060663, "Deaths\t{0}", m_TotDeaths );
     }
     else
     if ( AccessLevel == AccessLevel.Player )
     {
       list.Add( 1060663, "Deaths\t0" );
     }
    }

here is my script
CODE

using System;
using System.Collections;
using Server;
using Server.Misc;
using Server.Items;
using Server.Gumps;
using Server.Multis;
using Server.Engines.Help;
using Server.ContextMenus;
using Server.Network;
using Server.Spells;
using Server.Spells.Fifth;
using Server.Spells.Seventh;
using Server.Targeting;
using Server.Engines.Quests;
using Server.Factions;
using Server.Regions;
using Server.Accounting;

using Scripts.ToolBarGump;

namespace Server.Mobiles
{
[Flags]
public enum PlayerFlag // First 16 bits are reserved for default-distro use, start custom flags at 0x00010000
{
 None    = 0x00000000,
 Glassblowing  = 0x00000001,
 Masonry    = 0x00000002,
 SandMining   = 0x00000004,
 StoneMining   = 0x00000008,
 ToggleMiningStone = 0x00000010,
 KarmaLocked   = 0x00000020,
 AutoRenewInsurance = 0x00000040,
 UseOwnFilter  = 0x00000080,
 PublicMyRunUO  = 0x00000100,
 PagingSquelched  = 0x00000200,
 Young    = 0x00000400
}

public enum NpcGuild
{
 None,
 MagesGuild,
 WarriorsGuild,
 ThievesGuild,
 RangersGuild,
 HealersGuild,
 MinersGuild,
 MerchantsGuild,
 TinkersGuild,
 TailorsGuild,
 FishermensGuild,
 BardsGuild,
 BlacksmithsGuild
}

public enum SolenFriendship
{
 None,
 Red,
 Black
}

public class PlayerMobile : Mobile
{
 private class CountAndTimeStamp
 {
  private int m_Count;
  private DateTime m_Stamp;

  public CountAndTimeStamp()
  {
  }

  public DateTime TimeStamp { get{ return m_Stamp; } }
  public int Count
  {
   get { return m_Count; }
   set { m_Count = value; m_Stamp = DateTime.Now; }
  }
 }

 private DesignContext m_DesignContext;
           
           public Xanthos.SafeResContext m_SafeResContext; // <- Xanthos Safe Res change this line only

 private NpcGuild m_NpcGuild;
 private DateTime m_NpcGuildJoinTime;
 private TimeSpan m_NpcGuildGameTime;
 private PlayerFlag m_Flags;
 private int m_StepsTaken;
 private int m_Profession;

 //Kill/death

 private int m_TotKills = 0;
 private int m_TotDeaths = 0;
 
 [CommandProperty( AccessLevel.GameMaster )]
 public int TotKills
 {
  get{ return m_TotKills; }
  set
  {
   m_TotKills = value;
   InvalidateProperties();
  }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotDeaths
 {
  get{ return m_TotDeaths; }
  set
  {
   m_TotDeaths = value;
   InvalidateProperties();
  }
 }

 
 //StartChallenge Sytem
 
 private bool isinchal = false;
 private bool canbechal = true;
 private BaseMount m_TempMount;
 private int m_Wins;
 private int m_Loses;
 
 [CommandProperty( AccessLevel.GameMaster )]
 public int Wins
 {
  get{ return m_Wins; }
  set{ m_Wins = value; }
 }
 
 [CommandProperty( AccessLevel.GameMaster )]
 public int Loses
 {
  get{ return m_Loses; }
  set{ m_Loses = value; }
 }
 
 [CommandProperty( AccessLevel.GameMaster ) ]
 public BaseMount TempMount
 {
  get { return m_TempMount; }
  set { m_TempMount = value; }
 }
 
 [CommandProperty(AccessLevel.Counselor)]
 public bool IsInChallenge
 {
  get{return isinchal;}
  set{isinchal = value;}
 }
 
 [CommandProperty(AccessLevel.Counselor)]
 public bool CanBeChallenged
 {
  get{return canbechal;}
  set{canbechal = value;}
 }
 
 public override bool KeepsItemsOnDeath
 {
  get
  {
   if(isinchal)
    return true;
   return base.KeepsItemsOnDeath;
  }
 }


 //End Challenge System

 //Start Pvp Point System

 private int m_TotalPoints;
 private int m_TotalWins;
 private int m_TotalLoses;
 private int m_TotalResKills;
 private int m_TotalResKilled;
 private Mobile m_LastPwner;
 private Mobile m_LastPwned;
 private DateTime m_ResKillTime;
 private int m_TotalPointsLost;
 private int m_TotalPointsSpent;
 private string m_PvpRank = "Newbie";

 [CommandProperty( AccessLevel.GameMaster )]
 public string PvpRank
 {
  get{ return m_PvpRank; }
  set{ m_PvpRank = value; InvalidateProperties(); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalPoints
 {
  get{ return m_TotalPoints; }
  set{ m_TotalPoints = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalWins
 {
  get{ return m_TotalWins; }
  set{ m_TotalWins = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalLoses
 {
  get{ return m_TotalLoses; }
  set{ m_TotalLoses = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalResKills
 {
  get{ return m_TotalResKills; }
  set{ m_TotalResKills = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalResKilled
 {
  get{ return m_TotalResKilled; }
  set{ m_TotalResKilled = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public Mobile LastPwner
 {
  get{ return m_LastPwner; }
  set{ m_LastPwner = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public Mobile LastPwned
 {
  get{ return m_LastPwned; }
  set{ m_LastPwned = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public TimeSpan ResKillTime
 {
  get
  {
   TimeSpan ts = m_ResKillTime - DateTime.Now;

   if ( ts < TimeSpan.Zero )
    ts = TimeSpan.Zero;

   return ts;
  }
  set
  {
   try{ m_ResKillTime = DateTime.Now + value; }
   catch{}
  }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalPointsLost
 {
  get{ return m_TotalPointsLost; }
  set{ m_TotalPointsLost = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public int TotalPointsSpent
 {
  get{ return m_TotalPointsSpent; }
  set{ m_TotalPointsSpent = value; }
 }

 //End Pvp Point System

 [CommandProperty( AccessLevel.GameMaster )]
 public int Profession
 {
  get{ return m_Profession; }
  set{ m_Profession = value; }
 }

 public int StepsTaken
 {
  get{ return m_StepsTaken; }
  set{ m_StepsTaken = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public NpcGuild NpcGuild
 {
  get{ return m_NpcGuild; }
  set{ m_NpcGuild = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public DateTime NpcGuildJoinTime
 {
  get{ return m_NpcGuildJoinTime; }
  set{ m_NpcGuildJoinTime = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public TimeSpan NpcGuildGameTime
 {
  get{ return m_NpcGuildGameTime; }
  set{ m_NpcGuildGameTime = value; }
 }

 public PlayerFlag Flags
 {
  get{ return m_Flags; }
  set{ m_Flags = value; }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool PagingSquelched
 {
  get{ return GetFlag( PlayerFlag.PagingSquelched ); }
  set{ SetFlag( PlayerFlag.PagingSquelched, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool Glassblowing
 {
  get{ return GetFlag( PlayerFlag.Glassblowing ); }
  set{ SetFlag( PlayerFlag.Glassblowing, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool Masonry
 {
  get{ return GetFlag( PlayerFlag.Masonry ); }
  set{ SetFlag( PlayerFlag.Masonry, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool SandMining
 {
  get{ return GetFlag( PlayerFlag.SandMining ); }
  set{ SetFlag( PlayerFlag.SandMining, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool StoneMining
 {
  get{ return GetFlag( PlayerFlag.StoneMining ); }
  set{ SetFlag( PlayerFlag.StoneMining, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool ToggleMiningStone
 {
  get{ return GetFlag( PlayerFlag.ToggleMiningStone ); }
  set{ SetFlag( PlayerFlag.ToggleMiningStone, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool KarmaLocked
 {
  get{ return GetFlag( PlayerFlag.KarmaLocked ); }
  set{ SetFlag( PlayerFlag.KarmaLocked, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool AutoRenewInsurance
 {
  get{ return GetFlag( PlayerFlag.AutoRenewInsurance ); }
  set{ SetFlag( PlayerFlag.AutoRenewInsurance, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool UseOwnFilter
 {
  get{ return GetFlag( PlayerFlag.UseOwnFilter ); }
  set{ SetFlag( PlayerFlag.UseOwnFilter, value ); }
 }

 [CommandProperty( AccessLevel.GameMaster )]
 public bool PublicMyRunUO
 {
  get{ return GetFlag( PlayerFlag.PublicMyRunUO ); }
  set{ SetFlag( PlayerFlag.PublicMyRunUO, value ); InvalidateMyRunUO(); }
 }

 public static Direction GetDirection4( Point3D from, Point3D to )
 {
  int dx = from.X - to.X;
  int dy = from.Y - to.Y;

  int rx = dx - dy;
  int ry = dx + dy;

  Direction ret;

  if ( rx >= 0 && ry >= 0 )
   ret = Direction.West;
  else if ( rx >= 0 && ry < 0 )
   ret = Direction.South;
  else if ( rx < 0 && ry < 0 )
   ret = Direction.East;
  else
   ret = Direction.North;

  return ret;
 }

 public override bool OnDroppedItemToWorld( Item item, Point3D location )
 {
  if ( !base.OnDroppedItemToWorld( item, location ) )
   return false;

  BounceInfo bi = item.GetBounce();

  if ( bi != null )
  {
   Type type = item.GetType();

   if ( type.IsDefined( typeof( FurnitureAttribute ), true ) || type.IsDefined( typeof( DynamicFlipingAttribute ), true ) )
   {
    object[] objs = type.GetCustomAttributes( typeof( FlipableAttribute ), true );

    if ( objs != null && objs.Length > 0 )
    {
     FlipableAttribute fp = objs[0] as FlipableAttribute;

     if ( fp != null )
     {
      int[] itemIDs = fp.ItemIDs;

      Point3D oldWorldLoc = bi.m_WorldLoc;
      Point3D newWorldLoc = location;

      if ( oldWorldLoc.X != newWorldLoc.X || oldWorldLoc.Y != newWorldLoc.Y )
      {
       Direction dir = GetDirection4( oldWorldLoc, newWorldLoc );

       if ( itemIDs.Length == 2 )
       {
        switch ( dir )
        {
         case Direction.North:
         case Direction.South: item.ItemID = itemIDs[0]; break;
         case Direction.East:
         case Direction.West: item.ItemID = itemIDs[1]; break;
        }
       }
       else if ( itemIDs.Length == 4 )
       {
        switch ( dir )
        {
         case Direction.South: item.ItemID = itemIDs[0]; break;
         case Direction.East: item.ItemID = itemIDs[1]; break;
         case Direction.North: item.ItemID = itemIDs[2]; break;
         case Direction.West: item.ItemID = itemIDs[3]; break;
        }
       }
      }
     }
    }
   }
  }

  return true;
 }

 public bool GetFlag( PlayerFlag flag )
 {
  return ( (m_Flags & flag) != 0 );
 }

 public void SetFlag( PlayerFlag flag, bool value )
 {
  if ( value )
   m_Flags |= flag;
  else
   m_Flags &= ~flag;
 }

 public DesignContext DesignContext
 {
  get{ return m_DesignContext; }
  set{ m_DesignContext = value; }
 }

 public static void Initialize()
 {
  if ( FastwalkPrevention )
  {
   PacketHandler ph = PacketHandlers.GetHandler( 0x02 );

   ph.ThrottleCallback = new ThrottlePacketCallback( MovementThrottle_Callback );
  }

  EventSink.Login += new LoginEventHandler( OnLogin );
  EventSink.Logout += new LogoutEventHandler( OnLogout );
  EventSink.Connected += new ConnectedEventHandler( EventSink_Connected );
  EventSink.Disconnected += new DisconnectedEventHandler( EventSink_Disconnected );
 }

 public override void OnSkillInvalidated( Skill skill )
 {
  if ( Core.AOS && skill.SkillName == SkillName.MagicResist )
   UpdateResistances();
 }

 public override int GetMaxResistance( ResistanceType type )
 {
  int max = base.GetMaxResistance( type );

  if ( type != ResistanceType.Physical && 60 < max && Spells.Fourth.CurseSpell.UnderEffect( this ) )
   max = 60;

  return max;
 }

 private int m_LastGlobalLight = -1, m_LastPersonalLight = -1;

 public override void OnNetStateChanged()
 {
  m_LastGlobalLight = -1;
  m_LastPersonalLight = -1;
 }

 public override void ComputeBaseLightLevels( out int global, out int personal )
{
if ( null != m_SafeResContext ) m_SafeResContext.Check(); // <- Xanthos Safe Res change this line only
global = LightCycle.ComputeLevelFor( this );

if ( this.LightLevel < 21 && AosAttributes.GetValue( this, AosAttribute.NightSight ) > 0 )
 personal = 21;
else
 personal = this.LightLevel;
}
 public override void CheckLightLevels( bool forceResend )
 {
  NetState ns = this.NetState;

  if ( ns == null )
   return;

  int global, personal;

  ComputeLightLevels( out global, out personal );

  if ( !forceResend )
   forceResend = ( global != m_LastGlobalLight || personal != m_LastPersonalLight );

  if ( !forceResend )
   return;

  m_LastGlobalLight = global;
  m_LastPersonalLight = personal;

  ns.Send( GlobalLightLevel.Instantiate( global ) );
  ns.Send( new PersonalLightLevel( this, personal ) );
 }

 public override int GetMinResistance( ResistanceType type )
 {
  int magicResist = (int)(Skills[SkillName.MagicResist].Value * 10);
  int min = int.MinValue;

  if ( magicResist >= 1000 )
   min = 40 + ((magicResist - 1000) / 50);
  else if ( magicResist >= 400 )
   min = (magicResist - 400) / 15;

  if ( min > MaxPlayerResistance )
   min = MaxPlayerResistance;

  int baseMin = base.GetMinResistance( type );

  if ( min < baseMin )
   min = baseMin;

  return min;
 }

 private static void OnLogin( LoginEventArgs e )
 {
  Mobile from = e.Mobile;

  SacrificeVirtue.CheckAtrophy( from );
  JusticeVirtue.CheckAtrophy( from );
  CompassionVirtue.CheckAtrophy( from );

                 
                 if ( from.AccessLevel == AccessLevel.GameMaster )
  {
   from.SendGump( new ToolBarGump() );
                         }
  if ( from.AccessLevel == AccessLevel.Administrator )
  {
   from.SendGump( new ToolBarGump() );
                         }

  if ( AccountHandler.LockdownLevel > AccessLevel.Player )
  {
   string notice;

   Accounting.Account acct = from.Account as Accounting.Account;

   if ( acct == null || !acct.HasAccess( from.NetState ) )
   {
    if ( from.AccessLevel == AccessLevel.Player )
     notice = "The server is currently under lockdown. No players are allowed to log in at this time.";
    else
     notice = "The server is currently under lockdown. You do not have sufficient access level to connect.";

    Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerStateCallback( Disconnect ), from );
   }
   else if ( from.AccessLevel == AccessLevel.Administrator )
   {
    notice = "The server is currently under lockdown. As you are an administrator, you may change this from the [Admin gump.";
   }
   else
   {
    notice = "The server is currently under lockdown. You have sufficient access level to connect.";
   }

   from.SendGump( new NoticeGump( 1060637, 30720, notice, 0xFFC000, 300, 140, null, null ) );
  }
 }

 private bool m_NoDeltaRecursion;

 public void ValidateEquipment()
 {
  if ( m_NoDeltaRecursion || Map == null || Map == Map.Internal )
   return;

  if ( this.Items == null )
   return;

  m_NoDeltaRecursion = true;
  Timer.DelayCall( TimeSpan.Zero, new TimerCallback( ValidateEquipment_Sandbox ) );
 }

 private void ValidateEquipment_Sandbox()
 {
  try
  {
   if ( Map == null || Map == Map.Internal )
    return;

   ArrayList items = this.Items;

   if ( items == null )
    return;

   bool moved = false;

   int str = this.Str;
   int dex = this.Dex;
   int intel = this.Int;

   #region Factions
   int factionItemCount = 0;
   #endregion

   Mobile from = this;

   for ( int i = items.Count - 1; i >= 0; --i )
   {
    if ( i >= items.Count )
     continue;

    Item item = (Item)items[i];

    if ( item is BaseWeapon )
    {
     BaseWeapon weapon = (BaseWeapon)item;

     bool drop = false;

     if ( dex < weapon.DexRequirement )
      drop = true;
     else if ( str < AOS.Scale( weapon.StrRequirement, 100 - weapon.GetLowerStatReq() ) )
      drop = true;
     else if ( intel < weapon.IntRequirement )
      drop = true;

     if ( drop )
     {
      string name = weapon.Name;

      if ( name == null )
       name = String.Format( "#{0}", weapon.LabelNumber );

      from.SendLocalizedMessage( 1062001, name ); // You can no longer wield your ~1_WEAPON~
      from.AddToBackpack( weapon );
      moved = true;
     }
    }
    else if ( item is BaseArmor )
    {
     BaseArmor armor = (BaseArmor)item;

     bool drop = false;

     if ( !armor.AllowMaleWearer && from.Body.IsMale && from.AccessLevel < AccessLevel.GameMaster )
     {
      drop = true;
     }
     else if ( !armor.AllowFemaleWearer && from.Body.IsFemale && from.AccessLevel < AccessLevel.GameMaster )
     {
      drop = true;
     }
     else
     {
      int strBonus = armor.ComputeStatBonus( StatType.Str ), strReq = armor.ComputeStatReq( StatType.Str );
      int dexBonus = armor.ComputeStatBonus( StatType.Dex ), dexReq = armor.ComputeStatReq( StatType.Dex );
      int intBonus = armor.ComputeStatBonus( StatType.Int ), intReq = armor.ComputeStatReq( StatType.Int );

      if ( dex < dexReq || (dex + dexBonus) < 1 )
       drop = true;
      else if ( str < strReq || (str + strBonus) < 1 )
       drop = true;
      else if ( intel < intReq || (intel + intBonus) < 1 )
       drop = true;
     }

     if ( drop )
     {
      string name = armor.Name;

      if ( name == null )
       name = String.Format( "#{0}", armor.LabelNumber );

      if ( armor is BaseShield )
       from.SendLocalizedMessage( 1062003, name ); // You can no longer equip your ~1_SHIELD~
      else
       from.SendLocalizedMessage( 1062002, name ); // You can no longer wear your ~1_ARMOR~

      from.AddToBackpack( armor );
      moved = true;
     }
    }

    FactionItem factionItem = FactionItem.Find( item );

    if ( factionItem != null )
    {
     bool drop = false;

     Faction ourFaction = Faction.Find( this );

     if ( ourFaction == null || ourFaction != factionItem.Faction )
      drop = true;
     else if ( ++factionItemCount > FactionItem.GetMaxWearables( this ) )
      drop = true;

     if ( drop )
     {
      from.AddToBackpack( item );
      moved = true;
     }
    }
   }

   if ( moved )
    from.SendLocalizedMessage( 500647 ); // Some equipment has been moved to your backpack.
  }
  catch ( Exception e )
  {
   Console.WriteLine( e );
  }
  finally
  {
   m_NoDeltaRecursion = false;
  }
 }

 public override void Delta( MobileDelta flag )
 {
  base.Delta( flag );

  if ( (flag & MobileDelta.Stat) != 0 )
   ValidateEquipment();

  if ( (flag & (MobileDelta.Name | MobileDelta.Hue)) != 0 )
   InvalidateMyRunUO();
 }

 private static void Disconnect( object state )
 {
  NetState ns = ((Mobile)state).NetState;

  if ( ns != null )
   ns.Dispose();
 }

 private static void OnLogout( LogoutEventArgs e )
 {
 }

 private static void EventSink_Connected( ConnectedEventArgs e )
 {
  PlayerMobile pm = e.Mobile as PlayerMobile;

  if ( pm != null )
  {
   pm.m_SessionStart = DateTime.Now;

   if ( pm.m_Quest != null )
    pm.m_Quest.StartTimer();

   pm.BedrollLogout = false;
  }
 }

 private static void EventSink_Disconnected( DisconnectedEventArgs e )
 {
  Mobile from = e.Mobile;
  DesignContext context = DesignContext.Find( from );

  if ( context != null )
  {
   /* Client disconnected
    *  - Remove design context
    *  - Eject all from house
    *  - Restore relocated entities
    */

   // Remove design context
   DesignContext.Remove( from );

   // Eject all from house
   from.RevealingAction();

   foreach ( Item item in context.Foundation.GetItems() )
    item.Location = context.Foundation.BanLocation;

   foreach ( Mobile mobile in context.Foundation.GetMobiles() )
    mobile.Location = context.Foundation.BanLocation;

   // Restore relocated entities
   context.Foundation.RestoreRelocatedEntities();
  }

  PlayerMobile pm = e.Mobile as PlayerMobile;

  if ( pm != null )
  {
   pm.m_GameTime += (DateTime.Now - pm.m_SessionStart);

   if ( pm.m_Quest != null )
    pm.m_Quest.StopTimer();

   pm.m_SpeechLog = null;
                  if ( null != pm.m_SafeResContext ) Xanthos.SafeResContext.Remove( pm ); // <- Xanthos Safe Res change this line only
  }
 }

 public override void RevealingAction()
 {
  if ( m_DesignContext != null )
   return;

  Spells.Sixth.InvisibilitySpell.RemoveTimer( this );

  base.RevealingAction();
 }

 public override void OnSubItemAdded( Item item )
 {
  if ( AccessLevel < AccessLevel.GameMaster && item.IsChildOf( this.Backpack ) )
  {
   int maxWeight = WeightOverloading.GetMaxWeight( this );
   int curWeight = Mobile.BodyWeight + this.TotalWeight;

   if ( curWeight > maxWeight )
    this.SendLocalizedMessage( 1019035, true, String.Format( " : {0} / {1}", curWeight, maxWeight ) );
  }
 }

 public override bool CanBeHarmful( Mobile target, bool message, bool ignoreOurBlessedness )
 {
  if ( m_DesignContext != null || (target is PlayerMobile && ((PlayerMobile)target).m_DesignContext != null) )
   return false;

  if ( (target is BaseVendor && ((BaseVendor)target).IsInvulnerable) || target is PlayerVendor || target is TownCrier )
  {
   if ( message )
   {
    if ( target.Title == null )
     SendMessage( "{0} the vendor cannot be harmed.", target.Name );
    else
     SendMessage( "{0} {1} cannot be harmed.", target.Name, target.Title );
   }

   return false;
  }

  return base.CanBeHarmful( target, message, ignoreOurBlessedness );
 }

 public override bool CanBeBeneficial( Mobile target, bool message, bool allowDead )
 {
  if ( m_DesignContext != null || (target is PlayerMobile && ((PlayerMobile)target).m_DesignContext != null) )
   return false;

  return base.CanBeBeneficial( target, message, allowDead );
 }

 public override bool CheckContextMenuDisplay( IEntity target )
 {
  return ( m_DesignContext == null );
 }

 public override void OnItemAdded( Item item )
 {
  base.OnItemAdded( item );

  if ( item is BaseArmor || item is BaseWeapon )
  {
   Hits=Hits; Stam=Stam; Mana=Mana;
  }

  if ( this.NetState != null )
   CheckLightLevels( false );

  InvalidateMyRunUO();
 }

 public override void OnItemRemoved( Item item )
 {
  base.OnItemRemoved( item );

  if ( item is BaseArmor || item is BaseWeapon )
  {
   Hits=Hits; Stam=Stam; Mana=Mana;
  }

  if ( this.NetState != null )
   CheckLightLevels( false );

  InvalidateMyRunUO();
 }

 public override double ArmorRating
 {
  get
  {
   BaseArmor ar;
   double rating = 0.0;

   ar = NeckArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = HandArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = HeadArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = ArmsArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = LegsArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = ChestArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   ar = ShieldArmor as BaseArmor;
   if ( ar != null )
    rating += ar.ArmorRatingScaled;

   return VirtualArmor + VirtualArmorMod + rating;
  }
 }

 public override int HitsMax
 {
  get
  {
   int strBase;
   int strOffs = GetStatOffset( StatType.Str );

   if ( Core.AOS )
   {
    strBase = this.Str;
    strOffs += AosAttributes.GetValue( this, AosAttribute.BonusHits );
   }
   else
   {
    strBase = this.RawStr;
   }

   return (strBase / 2) + 50 + strOffs;
  }
 }

 public override int StamMax
 {
  get{ return base.StamMax + AosAttributes.GetValue( this, AosAttribute.BonusStam ); }
 }

 public override int ManaMax
 {
  get{ return base.ManaMax + AosAttributes.GetValue( this, AosAttribute.BonusMana ); }
 }

 public override bool Move( Direction d )
 {
  NetState ns = this.NetState;

  if ( ns != null )
  {
   GumpCollection gumps = ns.Gumps;

   for ( int i = 0; i < gumps.Count; ++i )
   {
    if ( gumps[i] is ResurrectGump )
    {
     if ( Alive )
     {
      CloseGump( typeof( ResurrectGump ) );
     }
     else
     {
      SendLocalizedMessage( 500111 ); // You are frozen and cannot move.
      return false;
     }
    }
   }
  }

  TimeSpan speed = ComputeMovementSpeed( d );

  if ( !base.Move( d ) )
   return false;

  m_NextMovementTime += speed;

  return true;
 }

 public override bool CheckMovement( Direction d, out int newZ )
 {
  DesignContext context = m_DesignContext;

  if ( context == null )
   return base.CheckMovement( d, out newZ );

  HouseFoundation foundation = context.Foundation;

  newZ = foundation.Z + HouseFoundation.GetLevelZ( context.Level );

  int newX = this.X, newY = this.Y;
  Movement.Movement.Offset( d, ref newX, ref newY );

  int startX = foundation.X + foundation.Components.Min.X + 1;
  int startY = foundation.Y + foundation.Components.Min.Y + 1;
  int endX = startX + foundation.Components.Width - 1;
  int endY = startY + foundation.Components.Height - 2;

  return ( newX >= startX && newY >= startY && newX < endX && newY < endY && Map == foundation.Map );
 }

 public override bool AllowItemUse( Item item )
 {
  return DesignContext.Check( this );
 }

 public override bool AllowSkillUse( SkillName skill )
{
if ( null != m_SafeResContext ) // <- Xanthos Safe Res change this line only
 return ( DesignContext.Check( this ) && m_SafeResContext.AllowSkillUse( skill )); // <- Xanthos Safe Res change this line only
return DesignContext.Check( this );
}


 private bool m_LastProtectedMessage;
 private int m_NextProtectionCheck = 10;

 public virtual void RecheckTownProtection()
 {
  m_NextProtectionCheck = 10;

  Regions.GuardedRegion reg = this.Region as Regions.GuardedRegion;
  bool isProtected = ( reg != null && !reg.IsDisabled() );

  if ( isProtected != m_LastProtectedMessage )
  {
   if ( isProtected )
    SendLocalizedMessage( 500112 ); // You are now under the protection of the town guards.
   else
    SendLocalizedMessage( 500113 ); // You have left the protection of the town guards.

   m_LastProtectedMessage = isProtected;
  }
 }

 public override void MoveToWorld( Point3D loc, Map map )
 {
  base.MoveToWorld( loc, map );

  RecheckTownProtection();
 }

 public override void SetLocation( Point3D loc, bool isTeleport )
 {
  if ( !isTeleport && AccessLevel == AccessLevel.Player )
  {
   // moving, not teleporting
   int zDrop = ( this.Location.Z - loc.Z );

   if ( zDrop > 20 ) // we fell more than one story
    Hits -= ((zDrop / 20) * 10) - 5; // deal some damage; does not kill, disrupt, etc
  }

  base.SetLocation( loc, isTeleport );

  if ( isTeleport || --m_NextProtectionCheck == 0 )
   RecheckTownProtection();
 }

 public override void GetContextMenuEntries( Mobile from, ArrayList list )
 {
  base.GetContextMenuEntries( from, list );

  if ( from == this )
  {
   if ( m_Quest != null )
    m_Quest.GetContextMenuEntries( list );

   if ( Alive && InsuranceEnabled )
   {
    list.Add( new CallbackEntry( 6201, new ContextCallback( ToggleItemInsurance ) ) );

    if ( AutoRenewInsurance )
     list.Add( new CallbackEntry( 6202, new ContextCallback( CancelRenewInventoryInsurance ) ) );
    else
     list.Add( new CallbackEntry( 6200, new ContextCallback( AutoRenewInventoryInsurance ) ) );
   }

   // TODO: Toggle champ titles

   BaseHouse house = BaseHouse.FindHouseAt( this );

   if ( house != null )
   {
    if ( Alive && house.InternalizedVendors.Count > 0 && house.IsOwner( this ) )
     list.Add( new CallbackEntry( 6204, new ContextCallback( GetVendor ) ) );

    if ( house.IsAosRules )
     list.Add( new CallbackEntry( 6207, new ContextCallback( LeaveHouse ) ) );
   }

   if ( m_JusticeProtectors.Count > 0 )
    list.Add( new CallbackEntry( 6157, new ContextCallback( CancelProtection ) ) );
  }
 }

 private void CancelProtection()
 {
  for ( int i = 0; i < m_JusticeProtectors.Count; ++i )
  {
   Mobile prot = (Mobile)m_JusticeProtectors[i];

   string args = String.Format( "{0}\t{1}", this.Name, prot.Name );

   prot.SendLocalizedMessage( 1049371, args ); // The protective relationship between ~1_PLAYER1~ and ~2_PLAYER2~ has been ended.
   this.SendLocalizedMessage( 1049371, args ); // The protective relationship between ~1_PLAYER1~ and ~2_PLAYER2~ has been ended.
  }

  m_JusticeProtectors.Clear();
 }

 private void ToggleItemInsurance()
 {
  if ( !CheckAlive() )
   return;

  BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
  SendLocalizedMessage( 1060868 ); // Target the item you wish to toggle insurance status on <ESC> to cancel
 }

 private bool CanInsure( Item item )
 {
  if ( item is Container || item is BagOfSending )
   return false;

  if ( item is Spellbook || item is Runebook || item is PotionKeg || item is Sigil )
   return false;

  if ( item.Stackable )
   return false;

  if ( item.LootType == LootType.Cursed )
   return false;

  if ( item.ItemID == 0x204E ) // death shroud
   return false;

  return true;
 }

 private void ToggleItemInsurance_Callback( Mobile from, object obj )
 {
  if ( !CheckAlive() )
   return;

  Item item = obj as Item;

  if ( item == null || !item.IsChildOf( this ) )
  {
   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060871, "", 0x23 ); // You can only insure items that you have equipped or that are in your backpack
  }
  else if ( item.Insured )
  {
   item.Insured = false;

   SendLocalizedMessage( 1060874, "", 0x35 ); // You cancel the insurance on the item

   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060868, "", 0x23 ); // Target the item you wish to toggle insurance status on <ESC> to cancel
  }
  else if ( !CanInsure( item ) )
  {
   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060869, "", 0x23 ); // You cannot insure that
  }
  else if ( item.LootType == LootType.Blessed || item.LootType == LootType.Newbied || item.BlessedFor == from )
  {
   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060870, "", 0x23 ); // That item is blessed and does not need to be insured
   SendLocalizedMessage( 1060869, "", 0x23 ); // You cannot insure that
  }
  else
  {
   if ( !item.PayedInsurance )
   {
    if ( Banker.Withdraw( from, 600 ) )
    {
     SendLocalizedMessage( 1060398, "600" ); // ~1_AMOUNT~ gold has been withdrawn from your bank box.
     item.PayedInsurance = true;
    }
    else
    {
     SendLocalizedMessage( 1061079, "", 0x23 ); // You lack the funds to purchase the insurance
     return;
    }
   }

   item.Insured = true;

   SendLocalizedMessage( 1060873, "", 0x23 ); // You have insured the item

   BeginTarget( -1, false, TargetFlags.None, new TargetCallback( ToggleItemInsurance_Callback ) );
   SendLocalizedMessage( 1060868, "", 0x23 ); // Target the item you wish to toggle insurance status on <ESC> to cancel
  }
 }

 private void AutoRenewInventoryInsurance()
 {
  if ( !CheckAlive() )
   return;

  SendLocalizedMessage( 1060881, "", 0x23 ); // You have selected to automatically reinsure all insured items upon death
  AutoRenewInsurance = true;
 }

 private void CancelRenewInventoryInsurance()
 {
  if ( !CheckAlive() )
   return;

  SendLocalizedMessage( 1061075, "", 0x23 ); // You have cancelled automatically reinsuring all insured items upon death
  AutoRenewInsurance = false;
 }

 // TODO: Champ titles, toggle

 private void GetVendor()
 {
  BaseHouse house = BaseHouse.FindHouseAt( this );

  if ( CheckAlive() && house != null && house.IsOwner( this ) && house.InternalizedVendors.Count > 0 )
  {
   CloseGump( typeof( ReclaimVendorGump ) );
   SendGump( new ReclaimVendorGump( house ) );
  }
 }

 private void LeaveHouse()
 {
  BaseHouse house = BaseHouse.FindHouseAt( this );

  if ( house != null )
   this.Location = house.BanLocation;
 }

 private delegate void ContextCallback();

 private class CallbackEntry : ContextMenuEntry
 {
  private ContextCallback m_Callback;

  public CallbackEntry( int number, ContextCallback callback ) : this( number, -1, callback )
  {
  }

  public CallbackEntry( int number, int range, ContextCallback callback ) : base( number, range )
  {
   m_Callback = callback;
  }

  public override void OnClick()
  {
   if ( m_Callback != null )
    m_Callback();
  }
 }

 public override void OnDoubleClick( Mobile from )
 {
  if ( this == from && !Warmode )
  {
   IMount mount = Mount;

   if ( mount != null && !DesignContext.Check( this ) )
    return;
  }

  base.OnDoubleClick( from );
 }

 public override void DisplayPaperdollTo( Mobile to )
 {
  if ( DesignContext.Check( this ) )
   base.DisplayPaperdollTo( to );
 }

 private static bool m_NoRecursion;

 public override bool CheckEquip( Item item )
 {
  if ( !base.CheckEquip( item ) )
   return false;

  #region Factions
  FactionItem factionItem = FactionItem.Find( item );

  if ( factionItem != null )
  {
   Faction faction = Faction.Find( this );

   if ( faction == null )
   {
    SendLocalizedMessage( 1010371 ); // You cannot equip a faction item!
    return false;
   }
   else if ( faction != factionItem.Faction )
   {
    SendLocalizedMessage( 1010372 ); // You cannot equip an opposing faction's item!
    return false;
   }
   else
   {
    int maxWearables = FactionItem.GetMaxWearables( this );

    for ( int i = 0; i < Items.Count; ++i )
    {
     Item equiped = (Item)Items[i];

     if ( item != equiped && FactionItem.Find( equiped ) != null )
     {
      if ( --maxWearables == 0 )
      {
       SendLocalizedMessage( 1010373 ); // You do not have enough rank to equip more faction items!
       return false;
      }
     }
    }
   }
  }
  #endregion

  if ( this.AccessLevel < AccessLevel.GameMaster && item.Layer != Layer.Mount && this.HasTrade )
  {
   BounceInfo bounce = item.GetBounce();

   if ( bounce != null )
   {
    if ( bounce.m_Parent is Item )
    {
     Item parent = (Item) bounce.m_Parent;

     if ( parent == this.Backpack || parent.IsChildOf( this.Backpack ) )
      return true;
    }
    else if ( bounce.m_Parent == this )
    {
     return true;
    }
   }

   SendLocalizedMessage( 1004042 ); // You can only equip what you are already carrying while you have a trade pending.
   return false;
  }

  return true;
 }

 public override bool CheckTrade( Mobile to, Item item, SecureTradeContainer cont, bool message, bool checkItems, int plusItems, int plusWeight )
 {
  int msgNum = 0;

  if ( cont == null )
  {
   if ( to.Holding != null )
    msgNum = 1062727; // You cannot trade with someone who is dragging something.
   else if ( this.HasTrade )
    msgNum = 1062781; // You are already trading with someone else!
   else if ( to.HasTrade )
    msgNum = 1062779; // That person is already involved in a trade
  }

  if ( msgNum == 0 )
  {
   if ( cont != null )
   {
    plusItems += cont.TotalItems;
    plusWeight += cont.TotalWeight;
   }

   if ( this.Backpack == null || !this.Backpack.CheckHold( this, item, false, checkItems, plusItems, plusWeight ) )
    msgNum = 1004040; // You would not be able to hold this if the trade failed.
   else if ( to.Backpack == null || !to.Backpack.CheckHold( to, item, false, checkItems, plusItems, plusWeight ) )
    msgNum = 1004039; // The recipient of this trade would not be able to carry this.
   else
    msgNum = CheckContentForTrade( item );
  }

  if ( msgNum != 0 )
  {
   if ( message )
    this.SendLocalizedMessage( msgNum );

   return false;
  }

  return true;
 }

 private static int CheckContentForTrade( Item item )
 {
  if ( item is TrapableContainer && ((TrapableContainer)item).TrapType != TrapType.None )
   return 1004044; // You may not trade trapped items.

  if ( SkillHandlers.StolenItem.IsStolen( item ) )
   return 1004043; // You may not trade recently stolen items.

  if ( item is Container )
  {
   foreach ( Item subItem in item.Items )
   {
    int msg = CheckContentForTrade( subItem );

    if ( msg != 0 )
     return msg;
   }
  }

  return 0;
 }

 public override bool CheckNonlocalDrop( Mobile from, Item item, Item target )
 {
  if ( !base.CheckNonlocalDrop( from, item, target ) )
   return false;

  if ( from.AccessLevel >= AccessLevel.GameMaster )
   return true;

  Container pack = this.Backpack;
  if ( from == this && this.HasTrade && ( target == pack || target.IsChildOf( pack ) ) )
  {
   BounceInfo bounce = item.GetBounce();

   if ( bounce != null && bounce.m_Parent is Item )
   {
    Item parent = (Item) bounce.m_Parent;

    if ( parent == pack || parent.IsChildOf( pack ) )
     return true;
   }

   SendLocalizedMessage( 1004041 ); // You can't do that while you have a trade pending.
   return false;
  }

  return true;
 }

 protected override void OnLocationChange( Point3D oldLocation )
 {
  CheckLightLevels( false );

  DesignContext context = m_DesignContext;

  if ( context == null || m_NoRecursion )
   return;

  m_NoRecursion = true;

  HouseFoundation foundation = context.Foundation;

  int newX = this.X, newY = this.Y;
  int newZ = foundation.Z + HouseFoundation.GetLevelZ( context.Level );

  int startX = foundation.X + foundation.Components.Min.X + 1;
  int startY = foundation.Y + foundation.Components.Min.Y + 1;
  int endX = startX + foundation.Components.Width - 1;
  int endY = startY + foundation.Components.Height - 2;

  if ( newX >= startX && newY >= startY && newX < endX && newY < endY && Map == foundation.Map )
  {
   if ( Z != newZ )
    Location = new Point3D( X, Y, newZ );

   m_NoRecursion = false;
   return;
  }

  Location = new Point3D( foundation.X, foundation.Y, newZ );
  Map = foundation.Map;

  m_NoRecursion = false;
 }

 public override bool OnMoveOver( Mobile m )
 {
  if ( m is BaseCreature && !((BaseCreature)m).Controled )
   return false;

  return base.OnMoveOver( m );
 }

 protected override void OnMapChange( Map oldMap )
 {
  if ( (Map != Faction.Facet && oldMap == Faction.Facet) || (Map == Faction.Facet && oldMap != Faction.Facet) )
   InvalidateProperties();

  DesignContext context = m_DesignContext;

  if ( context == null || m_NoRecursion )
   return;

  m_NoRecursion = true;

  HouseFoundation foundation = context.Foundation;

  if ( Map != foundation.Map )
   Map = foundation.Map;

  m_NoRecursion = false;
 }

 public override void OnDamage( int amount, Mobile from, bool willKill )
 {
  int disruptThreshold;

  if ( !Core.AOS )
   disruptThreshold = 0;
  else if ( from != null && from.Player )
   disruptThreshold = 18;
  else
   disruptThreshold = 25;

  if ( amount > disruptThreshold )
  {
   BandageContext c = BandageContext.GetContext( this );

   if ( c != null )
    c.Slip();
  }

  WeightOverloading.FatigueOnDamage( this, amount );

  base.OnDamage( amount, from, willKill );
 }

 public static int ComputeSkillTotal( Mobile m )
 {
  int total = 0;

  for ( int i = 0; i < m.Skills.Length; ++i )
   total += m.Skills[i].BaseFixedPoint;

  return ( total / 10 );
 }

     public override void Resurrect()
     {
  bool wasAlive = this.Alive;

  base.Resurrect();

  if ( this.Alive && !wasAlive )
{
 Xanthos.SafeResContext.Add( this ); // <- Xanthos Safe Res change this line only
}
 }

 private Mobile m_InsuranceAward;
 private int m_InsuranceCost;
 private int m_InsuranceBonus;

 public override bool OnBeforeDeath()
 {
  m_InsuranceCost = 0;
  m_InsuranceAward = base.FindMostRecentDamager( false );

  if ( m_InsuranceAward is BaseCreature )
  {
   Mobile master = ((BaseCreature)m_InsuranceAward).GetMaster();

   if ( master != null )
    m_InsuranceAward = master;
  }

  if ( m_InsuranceAward != null && (!m_InsuranceAward.Player || m_InsuranceAward == this) )
   m_InsuranceAward = null;

  if ( m_InsuranceAward is PlayerMobile )
   ((PlayerMobile)m_InsuranceAward).m_InsuranceBonus = 0;

  Mobile kill = FindMostRecentDamager( false );
  if ( kill is PlayerMobile )
  {
   PlayerMobile killer = (PlayerMobile)kill;
   
   if ( PvpPointSystem.EnablePointSystem == true )
    PvpPointSystem.GivePoints( this, killer );

   if ( PvpPointSystem.EnableRankSystem == true )
    PvpPointSystem.CheckTitle( this, killer );
  }

  return base.OnBeforeDeath();
 }

 private bool CheckInsuranceOnDeath( Item item )
 {
  if ( InsuranceEnabled && item.Insured )
  {
   if ( AutoRenewInsurance )
   {
    int cost = ( m_InsuranceAward == null ? 600 : 300 );

    if ( Banker.Withdraw( this, cost ) )
    {
     m_InsuranceCost += cost;
     item.PayedInsurance = true;
    }
    else
    {
     SendLocalizedMessage( 1061079, "", 0x23 ); // You lack the funds to purchase the insurance
     item.PayedInsurance = false;
     item.Insured = false;
    }
   }
   else
   {
    item.PayedInsurance = false;
    item.Insured = false;
   }

   if ( m_InsuranceAward != null )
   {
    if ( Banker.Deposit( m_InsuranceAward, 300 ) )
    {
     if ( m_InsuranceAward is PlayerMobile )
      ((PlayerMobile)m_InsuranceAward).m_InsuranceBonus += 300;
    }
   }

   return true;
  }

  return false;
 }

 public override DeathMoveResult GetParentMoveResultFor( Item item )
 {
  if ( CheckInsuranceOnDeath( item ) )
   return D
ArteGordon- 02-08-2006
I would suggest that you change that code to look like this

CODE

  if (AccessLevel == AccessLevel.Player)
  {
   if (m_Kills > 0)
    list.Add(1060660, "Kills\t{0}", m_Kills);
   else
    list.Add(1060660, "Deaths\t0");

   if (m_Deaths > 0)
    list.Add(1060661, "Deaths\t{0}", m_Deaths);
   else
    list.Add(1060661, "Deaths\t0");
  }


it is a bit simpler and it also uses different clilocs for kills and deaths. You cannot use the same cliloc number more than once in a list.

Asmir02- 02-08-2006
ty so much for helping i have fixed it what was wrong was my system that i used heeh sorry for the trouble