using CommonAI.ZoneClient; using XmdsCommon.Message; using XmdsCommon.Plugin; namespace XmdsCommon.ZoneClient.XmdsClientVirtual { public class XmdsClientVirtual_Pet : XmdsClientVirtual { private PetVisibleDataB2C mData = null; public override void OnInit(ZoneUnit owner) { base.OnInit(owner); if (owner == null || owner.SyncInfo == null || !(owner.SyncInfo.VisibleInfo is PetVisibleDataB2C)) { mLog.Error("XmdsClientVirtual_Pet Init Error"); } else { mData = owner.SyncInfo.VisibleInfo as PetVisibleDataB2C; } } public override void OnDispose(ZoneUnit owner) { mData = null; base.OnDispose(owner); } protected override void MOwner_OnDoEvent(ZoneObject obj, CommonAI.Zone.ObjectEvent e) { if (e is PetBaseInfoChangeEventB2C) { mData.BaseInfo = (e as PetBaseInfoChangeEventB2C).BaseInfo; } base.MOwner_OnDoEvent(obj, e); } public string GetName() { if (mData != null && mData.BaseInfo != null) { return mData.BaseInfo.name; } return null; } /// /// 获得怪物品质. /// /// public byte GetMonsterQcolor() { if (mData != null && mData.BaseInfo != null) { return mData.BaseInfo.QColor; } return 0; } public PetBaseInfo GetBaseInfo() { if (mData != null) { return mData.BaseInfo; } return null; } public XmdsClientVirtual GetMasterVirtual() { if (mData != null && mData.BaseInfo != null) { return GetUnitVirtual(mData.BaseInfo.MasterID); } return null; } /// /// 进阶等级. /// /// public byte GetStateLv() { if (mData != null && mData.BaseInfo != null) { return mData.BaseInfo.StateLv; } return 0; } } }