Esempio n. 1
0
        public void ServerHandleHit(long casterID, int effectID, string hitAction, int actionPriority, bool isKnock, Vector3 toPos, bool isManage, int oldManageState, int uniqueID)
        {
            if (isManage)
            {
                this.owner.CheckCancelManage(casterID, oldManageState, true);
            }
            Effect effect = DataReader <Effect> .Get(effectID);

            if (effect == null)
            {
                return;
            }
            bool flag = XUtility.StartsWith(hitAction, "float");

            if (this.owner.IsSuspended != flag)
            {
                this.owner.IsSuspended = flag;
            }
            if (isKnock)
            {
                if (this.IsOpenLog)
                {
                    Debug.LogError("Fuck1");
                }
                if (!this.owner.IsHitMoving)
                {
                    this.owner.IsHitMoving = true;
                }
                Action <Vector3, Vector3> callback = null;
                if (isManage)
                {
                    callback = delegate(Vector3 pos, Vector3 dir)
                    {
                        GlobalBattleNetwork.Instance.SendEndKnock(this.owner.ID, pos, dir, uniqueID);
                    };
                }
                if (effect.hitMove != null && effect.hitMove.get_Count() > 1)
                {
                    Debuger.Error(string.Concat(new object[]
                    {
                        "hitMove 1: ",
                        this.ownerActor.FixTransform.get_position().x - toPos.x,
                        "  ",
                        this.ownerActor.FixTransform.get_position().z - toPos.z
                    }), new object[0]);
                    ActorParent arg_1CC_0 = this.ownerActor;
                    Vector3     vector    = new Vector3(this.ownerActor.FixTransform.get_position().x - toPos.x, 0f, this.ownerActor.FixTransform.get_position().z - toPos.z);
                    arg_1CC_0.ServerPlayHitMove(hitAction, vector.get_normalized(), XUtility.DistanceNoY(toPos, this.ownerActor.FixTransform.get_position()), effect.hitMove.get_Item(1), effect.hitstraight, actionPriority, callback);
                }
                else
                {
                    Debuger.Error(string.Concat(new object[]
                    {
                        "hitMove 2: ",
                        this.ownerActor.FixTransform.get_position().x - toPos.x,
                        "  ",
                        this.ownerActor.FixTransform.get_position().z - toPos.z
                    }), new object[0]);
                    ActorParent arg_2CF_0 = this.ownerActor;
                    Vector3     vector2   = new Vector3(this.ownerActor.FixTransform.get_position().x - toPos.x, 0f, this.ownerActor.FixTransform.get_position().z - toPos.z);
                    arg_2CF_0.ServerPlayHitMove(hitAction, vector2.get_normalized(), XUtility.DistanceNoY(toPos, this.ownerActor.FixTransform.get_position()), 0f, effect.hitstraight, actionPriority, callback);
                }
            }
            else
            {
                object  arg_338_0 = "hitMove 3: ";
                Vector3 vector3   = new Vector3(this.ownerActor.FixTransform.get_position().x - toPos.x, 0f, this.ownerActor.FixTransform.get_position().z - toPos.z);
                Debuger.Error(arg_338_0 + vector3.get_normalized(), new object[0]);
                this.ownerActor.ServerPlayHit(hitAction, effect.hitstraight, actionPriority, false);
            }
        }