XmdsClientVirtual_Player.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using CommonAI.Data;
  2. using CommonAI.Zone;
  3. using CommonAI.ZoneClient;
  4. using System.Collections.Generic;
  5. using XmdsCommon.Message;
  6. using XmdsCommon.Plugin;
  7. namespace XmdsCommon.ZoneClient.XmdsClientVirtual
  8. {
  9. public class XmdsClientVirtual_Player : XmdsClientVirtual
  10. {
  11. public delegate void OnStatusChange();
  12. public event OnStatusChange OnUnitLvChange;
  13. //public event OnStatusChange OnPKModeChange; //屏蔽警告
  14. protected PlayerVisibleDataB2C mData = null;
  15. protected string mPlayerUUID = null;
  16. public override void OnInit(ZoneUnit owner)
  17. {
  18. base.OnInit(owner);
  19. mPlayerUUID = owner.PlayerUUID;
  20. mData = owner.SyncInfo.VisibleInfo as PlayerVisibleDataB2C;
  21. (owner.Info.Properties as XmdsUnitProperties).ServerData.AvatarList = new List<XmdsAvatarInfo>(mData.AvatarList);
  22. }
  23. public override void OnDispose(ZoneUnit owner)
  24. {
  25. base.OnDispose(owner);
  26. mData = null;
  27. OnUnitLvChange = null;
  28. mPlayerUUID = null;
  29. }
  30. protected override void MOwner_OnDoEvent(ZoneObject obj, CommonAI.Zone.ObjectEvent e)
  31. {
  32. if (e is XmdsUnitBaseInfoEventB2C)
  33. {
  34. var evt = e as XmdsUnitBaseInfoEventB2C;
  35. int lv = mData.BaseInfo.UnitLv;
  36. mData.BaseInfo = evt.Props;
  37. if (evt.Props.UnitLv != lv)
  38. {
  39. //升级通知.
  40. if (OnUnitLvChange != null)
  41. {
  42. OnUnitLvChange.Invoke();
  43. }
  44. }
  45. }
  46. else if (e is PlayerPKLvChangeEventB2C)
  47. {
  48. var evt = e as PlayerPKLvChangeEventB2C;
  49. mData.UnitPKInfo.CurPKLevel = evt.CurLv;
  50. }
  51. else if (e is PlayerPKValueChangeEventB2C)
  52. {
  53. var evt = e as PlayerPKValueChangeEventB2C;
  54. mData.UnitPKInfo.CurPKValue = evt.CurPKValue;
  55. }
  56. else if (e is TestamentChangeEventB2C)
  57. {
  58. var evt = e as TestamentChangeEventB2C;
  59. mData.BaseInfo.Testament = evt.TestamentID;
  60. }
  61. else if (e is PlayerPKModeChangeEventB2C)
  62. {
  63. PlayerPKModeChangeEventB2C evt = e as PlayerPKModeChangeEventB2C;
  64. mData.UnitPKInfo.CurPKMode = evt.CurMode;
  65. }
  66. base.MOwner_OnDoEvent(obj, e);
  67. }
  68. #region 常用方法.
  69. public PKLevel GetPKLv()
  70. {
  71. return mData.UnitPKInfo.CurPKLevel;
  72. }
  73. public PKInfo GetPKInfo()
  74. {
  75. return mData.UnitPKInfo;
  76. }
  77. public int GetPKValue()
  78. {
  79. if (mData == null) { return 0; }
  80. return mData.UnitPKInfo.CurPKValue;
  81. }
  82. public string GetName()
  83. {
  84. return mData.BaseInfo.name;
  85. }
  86. public int GetServerID()
  87. {
  88. return mData.BaseInfo.ServerID;
  89. }
  90. public string GetGuildID()
  91. {
  92. return mData.BaseInfo.GuildID;
  93. }
  94. public string GetGuildName()
  95. {
  96. return mData.BaseInfo.GuildName;
  97. }
  98. public int GetLv()
  99. {
  100. return mData.BaseInfo.UnitLv;
  101. }
  102. public int GetForceID()
  103. {
  104. return mData.BaseInfo.force;
  105. }
  106. public override string GetPlayerUUID()
  107. {
  108. return mPlayerUUID;
  109. }
  110. public int GetTitleID()
  111. {
  112. return mData.BaseInfo.TitleID;
  113. }
  114. public XmdsUnitBaseInfo GetBaseInfo()
  115. {
  116. return mData.BaseInfo;
  117. }
  118. public bool AllowAutoGuard()
  119. {
  120. if (mData != null)
  121. {
  122. return mData.UnitSceneInfo.AllowAutoGuard;
  123. }
  124. return true;
  125. }
  126. /// <summary>
  127. /// 获得单位特殊状态.
  128. /// </summary>
  129. /// <returns></returns>
  130. public CommonAI.XmdsConstConfig.SpecialState GetSPState()
  131. {
  132. if(mData != null)
  133. {
  134. return mData.BaseInfo.SPState;
  135. }
  136. return CommonAI.XmdsConstConfig.SpecialState.None;
  137. }
  138. #endregion
  139. }
  140. }