#W# Getting things ready for the Virtue system. Added Virtue Tome.
This commit is contained in:
parent
a274b44658
commit
1e2b82b64b
2 changed files with 64 additions and 33 deletions
|
|
@ -3295,6 +3295,15 @@ namespace Server.Mobiles
|
|||
|
||||
public virtual void OnKilledBy( Mobile mob )
|
||||
{
|
||||
if ( mob is PlayerMobile && this.Karma < 0 )
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)mob;
|
||||
int pointsToAward = Math.Abs( this.Karma ) / 1000;
|
||||
if ( pointsToAward < 1 )
|
||||
pointsToAward = 1;
|
||||
pm.VirtuePoints += pointsToAward;
|
||||
pm.SendMessage( 63, "You have gained {0} Virtue Points for vanquishing evil!", pointsToAward );
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDeath( Container c )
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ namespace Server.Mobiles
|
|||
|
||||
private int m_QuestLevel;
|
||||
private string m_MapMarkers;
|
||||
private int m_VirtuePoints;
|
||||
|
||||
#region Getters & Setters
|
||||
|
||||
|
|
@ -278,6 +279,13 @@ namespace Server.Mobiles
|
|||
set{ SetFlag( PlayerFlag.AcceptGuildInvites, value ); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int VirtuePoints
|
||||
{
|
||||
get { return m_VirtuePoints; }
|
||||
set { m_VirtuePoints = value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Auto Arrow Recovery
|
||||
|
|
@ -1824,40 +1832,53 @@ namespace Server.Mobiles
|
|||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_PeacedUntil = reader.ReadDateTime();
|
||||
m_AnkhNextUse = reader.ReadDateTime();
|
||||
m_AllianceMessageHue = reader.ReadEncodedInt();
|
||||
m_GuildMessageHue = reader.ReadEncodedInt();
|
||||
m_QuestLevel = reader.ReadInt();
|
||||
m_MapMarkers = reader.ReadString();
|
||||
|
||||
int rank = reader.ReadEncodedInt();
|
||||
int maxRank = Guilds.RankDefinition.Ranks.Length -1;
|
||||
if( rank > maxRank )
|
||||
rank = maxRank;
|
||||
|
||||
m_GuildRank = Guilds.RankDefinition.Ranks[rank];
|
||||
m_LastOnline = reader.ReadDateTime();
|
||||
m_Profession = reader.ReadEncodedInt();
|
||||
|
||||
if ( reader.ReadBool() )
|
||||
switch ( version )
|
||||
{
|
||||
m_HairModID = reader.ReadInt();
|
||||
m_HairModHue = reader.ReadInt();
|
||||
m_BeardModID = reader.ReadInt();
|
||||
m_BeardModHue = reader.ReadInt();
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
m_VirtuePoints = reader.ReadInt();
|
||||
goto case 0;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
m_PeacedUntil = reader.ReadDateTime();
|
||||
m_AnkhNextUse = reader.ReadDateTime();
|
||||
m_AllianceMessageHue = reader.ReadEncodedInt();
|
||||
m_GuildMessageHue = reader.ReadEncodedInt();
|
||||
m_QuestLevel = reader.ReadInt();
|
||||
m_MapMarkers = reader.ReadString();
|
||||
|
||||
m_NpcGuild = (NpcGuild)reader.ReadInt();
|
||||
m_NpcGuildJoinTime = reader.ReadDateTime();
|
||||
m_NpcGuildGameTime = reader.ReadTimeSpan();
|
||||
m_Camp = reader.ReadDateTime();
|
||||
m_Bedroll = reader.ReadDateTime();
|
||||
m_PermaFlags = reader.ReadStrongMobileList();
|
||||
m_Flags = (PlayerFlag)reader.ReadInt();
|
||||
m_LongTermElapse = reader.ReadTimeSpan();
|
||||
m_ShortTermElapse = reader.ReadTimeSpan();
|
||||
m_GameTime = reader.ReadTimeSpan();
|
||||
int rank = reader.ReadEncodedInt();
|
||||
int maxRank = Guilds.RankDefinition.Ranks.Length -1;
|
||||
if( rank > maxRank )
|
||||
rank = maxRank;
|
||||
|
||||
m_GuildRank = Guilds.RankDefinition.Ranks[rank];
|
||||
m_LastOnline = reader.ReadDateTime();
|
||||
m_Profession = reader.ReadEncodedInt();
|
||||
|
||||
if ( reader.ReadBool() )
|
||||
{
|
||||
m_HairModID = reader.ReadInt();
|
||||
m_HairModHue = reader.ReadInt();
|
||||
m_BeardModID = reader.ReadInt();
|
||||
m_BeardModHue = reader.ReadInt();
|
||||
}
|
||||
|
||||
m_NpcGuild = (NpcGuild)reader.ReadInt();
|
||||
m_NpcGuildJoinTime = reader.ReadDateTime();
|
||||
m_NpcGuildGameTime = reader.ReadTimeSpan();
|
||||
m_Camp = reader.ReadDateTime();
|
||||
m_Bedroll = reader.ReadDateTime();
|
||||
m_PermaFlags = reader.ReadStrongMobileList();
|
||||
m_Flags = (PlayerFlag)reader.ReadInt();
|
||||
m_LongTermElapse = reader.ReadTimeSpan();
|
||||
m_ShortTermElapse = reader.ReadTimeSpan();
|
||||
m_GameTime = reader.ReadTimeSpan();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
StatCap = 200;
|
||||
Skills.Cap = 7000;
|
||||
|
|
@ -1911,7 +1932,8 @@ namespace Server.Mobiles
|
|||
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
writer.Write( (int) 1 ); // version
|
||||
writer.Write( (int) m_VirtuePoints );
|
||||
|
||||
writer.Write( (DateTime) m_PeacedUntil );
|
||||
writer.Write( (DateTime) m_AnkhNextUse );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue