⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 character.cs

📁 网络游戏征服的服务端部分完整源码 VC编译 绝少的源码 有兴趣的可以
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;

namespace CO_Full_Server
{
	/// <summary>
	/// Summary description for Character.
	/// </summary>
	public enum ClassType : int
	{
		InternTrojan = 0x0a,
		Trojan,
		VeteranTrojan,
		TigerTrojan,
		DragonTrojan,
		TrojanMaster,

		InternArcher = 0x28,
		Archer,
		EagleArcher,
		TigerArcher,
		ArcherMaster,

		InternWarrior = 0x14,
		Warrior,
		BrassWarrior,
		SilverWarrior,
		GoldWarrior,
		WarriorMaster,

		InternTaoist = 0x64,
		Taoist,
		WaterTaoist = 0x84,
		WaterWizard,
		WaterMaster,
		WaterSaint,
		FireTaoist = 0x8e,
		FireWizard,
		FireMaster,
		FireSaint
	}

	public enum InventoryLoc : int
	{
		Character = 0,
		TwinCity,
		PhoenixCastle,
		ApeCity,
		DesertCity,
		BirdIsland,
		StoneCity,
		Market
	}
	public struct Location
	{
		public int X;
		public int Y;
		public Location(int x, int y)
		{
			X = x;
			Y = y;
		}
	}

	//public delegate void DefenseChanged(object sender, EventArgs e);
	public class Character : object, IEntity
	{
		private string m_Name = "";
		private uint m_CharID = 0;
		private string m_Guild;
		private int m_GuildPosition;
		private ClassType m_Class;
		private int m_Level;
		private int m_CurrentExp;
		private int m_Strength;
		private int m_Vitality;
		private int m_Dexterity;
		private int m_Mana;
		private int m_MaxHP;
		private int m_MiscHPBonus;
		private int m_CurrentHP;
		private int m_MaxMP;
		private int m_CurrentMP;
		private int m_PKPoints;
		private int m_StatPoints;
		private long m_Money;
		private int m_Defense;
		private int m_MDefense;
		private World.Maps m_Map;
		private int m_MinAttack;
		private int m_MaxAttack;
		//TODO: Skills must be specified as per the Visio diagram
		private Equipment m_Equipment;
		private Inventory m_Inventory;
		private Inventory m_TCWarehouse;
		private Inventory m_PCWarehouse;
		private Inventory m_ACWarehouse;
		private Inventory m_DCWarehouse;
		private Inventory m_BIWarehouse;
		private Inventory m_SCWarehouse;
		private Inventory m_MarketWarehouse;
		private Location m_CurrentLoc;
		private int m_Model;
		private string m_Spouse = "None";
		//public event EventHandler DefenseChanged;
		//public event EventHandler MaxHPChanged;


		public Character()
		{
			m_Guild = "";
			m_GuildPosition = -1;
			m_Class = (ClassType)(-1);
			m_Name = "";
			m_Level = 0;
			m_CurrentExp = 0;
			m_Strength = 0;
			m_Vitality = 0;
			m_Dexterity = 0;
			m_Mana = 0;
			m_MaxHP = 0;
			m_CurrentHP = 0;
			m_MaxMP = 0;
			m_CurrentMP = 0;
			m_Money = 0;
			m_Defense = 0;
			m_MDefense = 0;
			m_MaxHP = 0;
			m_MiscHPBonus = 0;
			CalcMaxHP();
			CalcAttack();
			m_Equipment = null;
			m_Inventory = null;
			m_TCWarehouse = null;
			m_PCWarehouse = null;
			m_ACWarehouse = null;
			m_DCWarehouse = null;
			m_BIWarehouse = null;
			m_SCWarehouse = null;
			m_MarketWarehouse = null;
			m_CurrentLoc.X = 0;
			m_CurrentLoc.Y = 0;
		}

		#region Accessors
		public string Name
		{
			get
			{
				return m_Name;
			}
			set
			{
				m_Name = value;
			}
		}

		public int Defense
		{
			get
			{
				return m_Defense;
			}
			set
			{
				m_Defense = value;
			}
		}

		public int MDefense
		{
			get
			{
				return m_MDefense;
			}
			set
			{
				m_MDefense = value;
			}
		}

		public Location CurrentLoc
		{
			get
			{
				return m_CurrentLoc;
			}
			set
			{
				m_CurrentLoc.X = ((Location)(value)).X;
				m_CurrentLoc.Y = ((Location)(value)).Y;
			}
		}

		public World.Maps Map
		{
			set
			{
				m_Map = value;
			}
			get 
			{
				return m_Map;
			}
		}

		public string Spouse
		{
			set
			{
				m_Spouse = value;
			}
			get
			{
				return m_Spouse;
			}
		}

		public int StatPoints
		{
			set
			{
				m_StatPoints = value;
			}
			get
			{
				return m_StatPoints;
			}
		}

		public int Level
		{
			set
			{
				m_Level = value;
			}
			get
			{
				return m_Level;
			}
		}

		public uint CharID
		{
			set
			{
				m_CharID = value;
			}
			get
			{
				return m_CharID;
			}
		}

		public int Model
		{
			set
			{
				m_Model = value;
			}
			get
			{
				return m_Model;
			}
		}

		public int MaxAttack
		{
			get
			{
				return m_MaxAttack;
			}
		}

		public int MinAttack
		{
			get
			{
				return m_MinAttack;
			}
		}

		public long Money
		{
			set
			{
				m_Money = value;
			}
			get
			{
				return m_Money;
			}
		}

		public int Exp
		{
			set
			{
				m_CurrentExp = value;
			}
			get 
			{
				return m_CurrentExp;
			}
		}

		public int Strength
		{
			set
			{
				m_Strength = value;
				CalcAttack();
			}
			get
			{
				return m_Strength;
			}
		}

		public int Vitality
		{
			set
			{
				m_Vitality = value;
				CalcMaxHP();
			}
			get
			{
				return m_Vitality;
			}
		}
		public int Dexterity
		{
			set 
			{
				m_Dexterity = value;
				CalcMaxHP();
			}
			get 
			{
				return m_Dexterity;
			}
		}

		public int Mana
		{
			set
			{
				m_Mana = value;
			}
			get
			{
				return m_Mana;
			}
		}
		public int HP
		{
			set 
			{
				m_CurrentHP = value;
			}
			get
			{
				return m_CurrentHP;
			}
		}

		public int MP
		{
			set 
			{
				m_CurrentMP = value;
			}
			get
			{
				return m_CurrentMP;
			}
		}
		public int PKPoints
		{
			set
			{
				m_PKPoints = value;
			}
			get 
			{
				return m_PKPoints;
			}
		}
		
		public int MaxHP
		{
			get
			{
				return m_MaxHP;
			}
			set
			{
				m_MaxHP = value;
			}
		}
		public ClassType Class
		{
			set 
			{
				m_Class = value;
			}
			get
			{
				return m_Class;
			}
		}
		#endregion

		private void CalcMaxHP()
		{
			m_MaxHP = 24 * m_Vitality + 3 * m_Mana + m_Dexterity * 3 + m_Strength * 3;
			switch (m_Class)
			{
				case ClassType.Trojan:
					m_MaxHP = Convert.ToInt32(m_MaxHP * 1.05f);
					break;
				case ClassType.VeteranTrojan:
					m_MaxHP = Convert.ToInt32(m_MaxHP * 1.08f);
					break;
				case ClassType.TigerTrojan:
					m_MaxHP = Convert.ToInt32(m_MaxHP * 1.10f);
					break;
				case ClassType.DragonTrojan:
					m_MaxHP = Convert.ToInt32(m_MaxHP * 1.12f);
					break;
				case ClassType.TrojanMaster:
					m_MaxHP = Convert.ToInt32(m_MaxHP * 1.15f);
					break;
			}
			m_MaxHP += m_MiscHPBonus;
		}

		private void CalcAttack()
		{
			int BaseAttack = 0;
			BaseAttack = m_Strength;
			m_MaxAttack = BaseAttack;
			m_MinAttack = BaseAttack;

		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -