grasshopper73
Wanderer
As requested, I updated the race stone at begining of post and here is my dovplayermobile.
dovplayermobile.cs
[code:1]
using System;
using System.IO;
using System.Collections;
using Server;
using Server.Misc;
using Server.Items;
using Server.Gumps;
using Server.Multis;
using Server.Engines.Help;
using Server.Network;
using Server.Mobiles;
namespace Server.Mobiles
{
public enum RaceType
{
None, WildElf, GreyElf, ArcticElf, MountainDwarf, DrowElf, DarkDwarf, HillDwarf, Orc, Centaur
}
public class dovPlayerMobile : PlayerMobile
{
private RaceType m_Race = RaceType.None;
private int m_StrCap = 200;
private int m_DexCap = 200;
private int m_IntCap = 200;
private bool m_InfraVision = false;
public dovPlayerMobile()
{
}
public dovPlayerMobile( Serial s ) : base( s )
{
}
[CommandProperty( AccessLevel.GameMaster )]
public RaceType Race
{
get{ return m_Race; }
set{ m_Race = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public int StrCap
{
get{ return m_StrCap; }
set{ m_StrCap = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public int DexCap
{
get{ return m_DexCap; }
set{ m_DexCap = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public int IntCap
{
get{ return m_IntCap; }
set{ m_IntCap = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public bool InfraVision
{
get{ return m_InfraVision; }
set{ m_InfraVision = value; }
}
public override void OnAfterResurrect()
{
RaceType race = this.Race;
// race switch here
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int)2 );//version
// version 2
writer.Write( (bool)m_InfraVision );
//version 1
writer.Write( (int)m_Race );
writer.Write( (int)m_StrCap );
writer.Write( (int)m_DexCap );
writer.Write( (int)m_IntCap );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
switch( version )
{
case 2:
m_InfraVision = (bool)reader.ReadBool();
goto case 1;
case 1:
m_Race = (RaceType)reader.ReadInt();
m_StrCap = (int)reader.ReadInt();
m_DexCap = (int)reader.ReadInt();
m_IntCap = (int)reader.ReadInt();
goto case 0;
case 0:
break;
}
}
}
}
[/code:1]
dovplayermobile.cs
[code:1]
using System;
using System.IO;
using System.Collections;
using Server;
using Server.Misc;
using Server.Items;
using Server.Gumps;
using Server.Multis;
using Server.Engines.Help;
using Server.Network;
using Server.Mobiles;
namespace Server.Mobiles
{
public enum RaceType
{
None, WildElf, GreyElf, ArcticElf, MountainDwarf, DrowElf, DarkDwarf, HillDwarf, Orc, Centaur
}
public class dovPlayerMobile : PlayerMobile
{
private RaceType m_Race = RaceType.None;
private int m_StrCap = 200;
private int m_DexCap = 200;
private int m_IntCap = 200;
private bool m_InfraVision = false;
public dovPlayerMobile()
{
}
public dovPlayerMobile( Serial s ) : base( s )
{
}
[CommandProperty( AccessLevel.GameMaster )]
public RaceType Race
{
get{ return m_Race; }
set{ m_Race = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public int StrCap
{
get{ return m_StrCap; }
set{ m_StrCap = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public int DexCap
{
get{ return m_DexCap; }
set{ m_DexCap = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public int IntCap
{
get{ return m_IntCap; }
set{ m_IntCap = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public bool InfraVision
{
get{ return m_InfraVision; }
set{ m_InfraVision = value; }
}
public override void OnAfterResurrect()
{
RaceType race = this.Race;
// race switch here
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int)2 );//version
// version 2
writer.Write( (bool)m_InfraVision );
//version 1
writer.Write( (int)m_Race );
writer.Write( (int)m_StrCap );
writer.Write( (int)m_DexCap );
writer.Write( (int)m_IntCap );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
switch( version )
{
case 2:
m_InfraVision = (bool)reader.ReadBool();
goto case 1;
case 1:
m_Race = (RaceType)reader.ReadInt();
m_StrCap = (int)reader.ReadInt();
m_DexCap = (int)reader.ReadInt();
m_IntCap = (int)reader.ReadInt();
goto case 0;
case 0:
break;
}
}
}
}
[/code:1]