using CommonAI.Zone.Instance; using CommonLang; using CommonLang.Protocol; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using XmdsCommonServer.Message; using XmdsCommonServer.Plugin.Units; using XmdsServerNode.Node; namespace XmdsServerNode.CheatingDeath { public static class CheatingDeathManager { public static void Init(Properties cfg_prop) { CheatingDeathConfig.Load(cfg_prop); } private const string MOVE_SPEED_CHECKER_KEY = "__MoveSpeedChecker"; /// <summary> /// 玩家进入场景时,绑定反作弊 /// </summary> /// <param name="player"></param> public static void OnPlayerEnter(InstancePlayer player) { if (CheatingDeathConfig.ENABLE_MOVE_SPEED_CHECKER) { var mc = player.GetAttributeAs<MoveSpeedChecker>(MOVE_SPEED_CHECKER_KEY); if (mc == null) { mc = new MoveSpeedChecker(player); player.SetAttribute(MOVE_SPEED_CHECKER_KEY, mc); } } } /// <summary> /// 发送单位异常到服务器 /// </summary> /// <param name="actor"></param> /// <param name="reason"></param> public static void SendPlayerException(InstancePlayer actor, string reason) { var exp = new PlayerExceptionEventB2R(); exp.playerId = actor.PlayerUUID; exp.instanceId = actor.Parent.UUID; exp.reason = reason; actor.queueEvent(exp); } } }