XmdsClientVirtual_Pet.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using CommonAI.ZoneClient;
  2. using XmdsCommon.Message;
  3. using XmdsCommon.Plugin;
  4. namespace XmdsCommon.ZoneClient.XmdsClientVirtual
  5. {
  6. public class XmdsClientVirtual_Pet : XmdsClientVirtual
  7. {
  8. private PetVisibleDataB2C mData = null;
  9. public override void OnInit(ZoneUnit owner)
  10. {
  11. base.OnInit(owner);
  12. if (owner == null || owner.SyncInfo == null || !(owner.SyncInfo.VisibleInfo is PetVisibleDataB2C))
  13. {
  14. mLog.Error("XmdsClientVirtual_Pet Init Error");
  15. }
  16. else
  17. {
  18. mData = owner.SyncInfo.VisibleInfo as PetVisibleDataB2C;
  19. }
  20. }
  21. public override void OnDispose(ZoneUnit owner)
  22. {
  23. mData = null;
  24. base.OnDispose(owner);
  25. }
  26. protected override void MOwner_OnDoEvent(ZoneObject obj, CommonAI.Zone.ObjectEvent e)
  27. {
  28. if (e is PetBaseInfoChangeEventB2C)
  29. {
  30. mData.BaseInfo = (e as PetBaseInfoChangeEventB2C).BaseInfo;
  31. }
  32. base.MOwner_OnDoEvent(obj, e);
  33. }
  34. public string GetName()
  35. {
  36. if (mData != null && mData.BaseInfo != null)
  37. {
  38. return mData.BaseInfo.name;
  39. }
  40. return null;
  41. }
  42. /// <summary>
  43. /// 获得怪物品质.
  44. /// </summary>
  45. /// <returns></returns>
  46. public byte GetMonsterQcolor()
  47. {
  48. if (mData != null && mData.BaseInfo != null)
  49. {
  50. return mData.BaseInfo.QColor;
  51. }
  52. return 0;
  53. }
  54. public PetBaseInfo GetBaseInfo()
  55. {
  56. if (mData != null)
  57. {
  58. return mData.BaseInfo;
  59. }
  60. return null;
  61. }
  62. public XmdsClientVirtual GetMasterVirtual()
  63. {
  64. if (mData != null && mData.BaseInfo != null)
  65. {
  66. return GetUnitVirtual(mData.BaseInfo.MasterID);
  67. }
  68. return null;
  69. }
  70. /// <summary>
  71. /// 进阶等级.
  72. /// </summary>
  73. /// <returns></returns>
  74. public byte GetStateLv()
  75. {
  76. if (mData != null && mData.BaseInfo != null)
  77. {
  78. return mData.BaseInfo.StateLv;
  79. }
  80. return 0;
  81. }
  82. }
  83. }