JSGXmdsHackerModule.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using CommonAI.Zone.Instance;
  2. using CommonLang;
  3. using CommonLang.Log;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using XmdsCommon.Plugin;
  10. using static CommonAI.ZoneClient.ClientStruct;
  11. using static XmdsCommonServer.Plugin.XmdsVirtual;
  12. namespace XmdsCommonServer.Plugin.JSGXmdsModule
  13. {
  14. public class JSGXmdsHackerModule
  15. {
  16. protected static readonly Logger log = LoggerFactory.GetLogger("JSGXmdsHackerModule");
  17. public static void OnPlayerKillMonster(InstancePlayer attacker, InstanceUnit monster)
  18. {
  19. //玩家属性打印
  20. XmdsVirtual playerVir = (attacker.Virtual as XmdsVirtual);
  21. XmdsUnitProp CurProp = playerVir.MirrorProp;
  22. XmdsUnitProp oldProp = playerVir.GetOriginProp();
  23. log.Info("ID:" + attacker.PlayerUUID + ", 所在场景:" + attacker.Parent.GetSceneID());
  24. log.Info(", 当前血:" + attacker.CurrentHP + ",基础:" + oldProp.MaxAttack + ", " + oldProp.Defence + ", " + oldProp.MaxHP
  25. + ", 攻防血" + CurProp.MaxAttack + ", " + CurProp.Defence + ", " + CurProp.MaxHP + ", 妖:" + CurProp.monsterAtk + ", " + CurProp.monsterDef
  26. + ", 妖比:" + CurProp.monsterAtkPer + ", " + CurProp.monsterDefPer) ;
  27. log.Info("扩展属性1, 增减伤:" + CurProp.AllDmgAdd + ", " + CurProp.AllDmgReduce + ", 玩家增减伤:" + CurProp.PlayerDamageAdd + ", " + CurProp.PlayerDamageReduce
  28. + ", 神器伤:" + CurProp.ArtifactMainPer + ", boss伤害:" + CurProp.ToBossCritRate + ", " + CurProp.ToBossCritDamage + ", 杀意:" + CurProp.KillValuePer
  29. + ", 吸血" + CurProp.NormalAtkLeech + ", " + CurProp.ActiveAtkLeech + ", 怪伤害:" + CurProp.monsterDamageAdd + ", " + CurProp.monsterDamageReduce);
  30. log.Info("扩展属性1, 暴击率:" + CurProp.CritRate + ", 爆伤:" + CurProp.CritDamage + ", 回血:" + CurProp.MaxHPReborn + ", 韧性:" + CurProp.CtrlTimeReduce
  31. + ", CD缩减:" + CurProp.SkillCD + ", 治疗效果:" + CurProp.HealEffect + ", " + CurProp.HealedEffect + ", 移攻速:" + CurProp.MoveSpeed + ", " + CurProp.AttackSpeed + ", 技伤:" + CurProp.SkillDamageAdd);
  32. UnitBuffStatus[] buffStatus = attacker.GetCurrentBuffStatus();
  33. if (buffStatus != null)
  34. {
  35. foreach (UnitBuffStatus buffItem in buffStatus)
  36. {
  37. log.Info("玩家buff:" + buffItem.ToString());
  38. }
  39. }
  40. //检测基本属性是否有异常的,打印一下
  41. float rate1 = oldProp.MaxAttack == 0 ? 1 : (float)(CurProp.MaxAttack) / oldProp.MaxAttack;
  42. float rate2 = oldProp.Defence == 0 ? 1 : CurProp.Defence / oldProp.Defence;
  43. float rate3 = oldProp.MaxHP == 0 ? 1 : CurProp.MaxHP / oldProp.MaxHP;
  44. if(rate1 > 1.2f || rate2 > 1.2f || rate3 > 1.2f)
  45. {
  46. HashMap<int, PropChangeOperation> playerProps = playerVir.GetChangePropMap();
  47. foreach(PropChangeOperation chgProp in playerProps.Values)
  48. {
  49. log.Info("玩家变更属性:" + chgProp.ToString());
  50. }
  51. }
  52. else
  53. {
  54. log.Info("无特别异常属性!");
  55. }
  56. }
  57. }
  58. }