コード例 #1
0
    public static void SendUpdateEffect(long casterID, List <EffectTargetInfo> targetInfos, int effectID, int uniqueID)
    {
        BattleAction_UpdateEffect battleAction_UpdateEffect = new BattleAction_UpdateEffect();

        battleAction_UpdateEffect.casterId = casterID;
        battleAction_UpdateEffect.targets.AddRange(targetInfos);
        battleAction_UpdateEffect.effectId = effectID;
        battleAction_UpdateEffect.uniqueId = (long)uniqueID;
        EventDispatcher.BroadcastAsync <BattleAction_UpdateEffect, bool>(BattleActionEvent.UpdateEffect, battleAction_UpdateEffect, false);
    }
コード例 #2
0
 protected void CheckHitException(BattleAction_UpdateEffect data, List <long> clientManageEntityIDs)
 {
     for (int i = 0; i < clientManageEntityIDs.get_Count(); i++)
     {
         bool flag = false;
         int  num  = 0;
         for (int j = 0; j < data.targets.get_Count(); j++)
         {
             if (data.targets.get_Item(j).targetId == clientManageEntityIDs.get_Item(i))
             {
                 flag = true;
                 break;
             }
             num++;
         }
         if (!flag && num == data.targets.get_Count())
         {
             Debuger.Error("Can't find: " + clientManageEntityIDs.get_Item(i) + "======================================", new object[0]);
         }
     }
     Debuger.Error("======================================", new object[0]);
 }
コード例 #3
0
        protected void DrawServerRange(BattleAction_UpdateEffect data)
        {
            if (this.owner.Actor.FixTransform == null)
            {
                return;
            }
            Effect effect = DataReader <Effect> .Get(data.effectId);

            GameObject gameObject = GameObject.Find("ServerEffectPainter");

            if (gameObject == null)
            {
                gameObject = new GameObject();
                gameObject.set_name("ServerEffectPainter");
            }
            gameObject.get_transform().set_position(new Vector3(data.pos.x * 0.01f, this.owner.Actor.FixTransform.get_position().y, data.pos.y * 0.01f));
            gameObject.get_transform().set_forward(new Vector3(data.vector.x, 0f, data.vector.y));
            XPoint xPoint = new XPoint
            {
                position = gameObject.get_transform().get_position(),
                rotation = gameObject.get_transform().get_rotation()
            };
            XPoint       theFixBasePoint = xPoint.ApplyOffset(effect.offset).ApplyOffset(effect.offset2).ApplyForwardFix(effect.forwardFixAngle);
            GraghMessage graghMessage    = null;
            GraghMessage graghMessage2   = null;
            bool         flag            = true;

            if (effect.range.get_Count() > 2)
            {
                int num = Mathf.Abs(effect.range.get_Item(0));
                if (num != 1)
                {
                    if (num == 2)
                    {
                        graghMessage = new GraghMessage(theFixBasePoint, GraghShape.Rect, 0f, 0f, (float)effect.range.get_Item(1) * 0.01f, (float)effect.range.get_Item(2) * 0.01f);
                    }
                }
                else
                {
                    graghMessage = new GraghMessage(theFixBasePoint, GraghShape.Sector, (float)effect.range.get_Item(1) * 0.01f, (float)effect.range.get_Item(2), 0f, 0f);
                }
            }
            if (effect.range2.get_Count() > 2)
            {
                if (effect.range2.get_Item(0) < 0)
                {
                    flag = false;
                }
                int num = Mathf.Abs(effect.range2.get_Item(0));
                if (num != 1)
                {
                    if (num == 2)
                    {
                        graghMessage2 = new GraghMessage(theFixBasePoint, GraghShape.Rect, 0f, 0f, (float)effect.range2.get_Item(1) * 0.01f, (float)effect.range2.get_Item(2) * 0.01f);
                    }
                }
                else
                {
                    graghMessage2 = new GraghMessage(theFixBasePoint, GraghShape.Sector, (float)effect.range2.get_Item(1) * 0.01f, (float)effect.range2.get_Item(2), 0f, 0f);
                }
            }
            if (graghMessage != null)
            {
                graghMessage.DrawShape(Color.get_black());
            }
            if (graghMessage2 != null)
            {
                if (flag)
                {
                    graghMessage2.DrawShape(Color.get_black());
                }
                else
                {
                    graghMessage2.DrawShape(Color.get_black());
                }
            }
        }
コード例 #4
0
        public void UpdateEffect(BattleAction_UpdateEffect data, bool isServerData)
        {
            if (data.casterId == this.owner.ID && isServerData && this.owner.Actor)
            {
                this.DrawServerRange(data);
            }
            Debuger.Error(string.Concat(new object[]
            {
                "effectId:",
                data.effectId,
                " uniqueId: ",
                data.uniqueId,
                " casterId: ",
                data.casterId,
                " \nneedManageTargets: ",
                data.needManageTargets.get_Count(),
                " data.targets.Count: ",
                data.targets.get_Count(),
                " pos:(",
                data.pos.x,
                ",",
                data.pos.y,
                ") vector:(",
                data.vector.x,
                ",",
                data.vector.y
            }), new object[0]);
            List <long> list = new List <long>();

            for (int i = 0; i < data.needManageTargets.get_Count(); i++)
            {
                if (data.needManageTargets.get_Item(i).managerId == EntityWorld.Instance.EntSelf.ID)
                {
                    Debuger.Error(string.Concat(new object[]
                    {
                        "===============11111111111111111111111111==============: ",
                        data.effectId,
                        " ",
                        data.needManageTargets.get_Item(i).managerId == this.owner.ID
                    }), new object[0]);
                    list.AddRange(data.needManageTargets.get_Item(i).managedIds);
                    break;
                }
                Debuger.Error("===============00000000000000000000000000==============: " + data.effectId, new object[0]);
            }
            Debuger.Error("=============================: " + this.owner.GetType(), new object[0]);
            for (int j = 0; j < data.needManageTargets.get_Count(); j++)
            {
                Debuger.Error("manager: " + data.needManageTargets.get_Item(j).managerId, new object[0]);
            }
            for (int k = 0; k < list.get_Count(); k++)
            {
                Debuger.Error("clientManageEntityIDs: " + list.get_Item(k), new object[0]);
            }
            for (int l = 0; l < data.targets.get_Count(); l++)
            {
                Debuger.Error(string.Concat(new object[]
                {
                    "AllTargets: ",
                    data.targets.get_Item(l).targetId,
                    " ",
                    data.targets.get_Item(l).hitAction
                }), new object[0]);
            }
            for (int m = 0; m < data.targets.get_Count(); m++)
            {
                if (data.targets.get_Item(m).targetId == this.owner.ID)
                {
                    if (data.targets.get_Item(m).isParry)
                    {
                        Debug.Log("isParry!!!");
                        if (this.owner.Actor)
                        {
                            this.owner.Actor.PlayParryFx();
                        }
                    }
                    else if (this.owner.Actor)
                    {
                        Debuger.Error(string.Concat(new object[]
                        {
                            "Handle Hit: ",
                            data.targets.get_Item(m).knocked,
                            " ",
                            new Vector3(data.targets.get_Item(m).toPos.x * 0.01f, this.owner.Actor.FixTransform.get_position().y, data.targets.get_Item(m).toPos.y * 0.01f),
                            " ",
                            data.targets.get_Item(m).mgrSn
                        }), new object[0]);
                        this.owner.GetSkillManager().ServerHandleHit(data.casterId, data.effectId, data.targets.get_Item(m).hitAction, data.targets.get_Item(m).curAniPri, data.targets.get_Item(m).knocked, new Vector3(data.targets.get_Item(m).toPos.x * 0.01f, this.owner.Actor.FixTransform.get_position().y, data.targets.get_Item(m).toPos.y * 0.01f), list.Contains(data.targets.get_Item(m).targetId), data.targets.get_Item(m).oldManageState, data.targets.get_Item(m).mgrSn);
                    }
                    else
                    {
                        EntityParent arg_5F5_0 = this.owner;
                        Vector3      vector    = new Vector3(data.targets.get_Item(m).toPos.x * 0.01f - this.owner.Pos.x, 0f, data.targets.get_Item(m).toPos.y * 0.01f - this.owner.Pos.z);
                        arg_5F5_0.Dir  = vector.get_normalized();
                        this.owner.Pos = PosDirUtility.ToTerrainPoint(data.targets.get_Item(m).toPos, this.owner.CurFloorStandardHeight);
                        if (list.Contains(data.targets.get_Item(m).targetId))
                        {
                            GlobalBattleNetwork.Instance.SendEndKnock(data.targets.get_Item(m).targetId, this.owner.Pos, this.owner.Dir, data.targets.get_Item(m).mgrSn);
                        }
                    }
                    break;
                }
            }
            this.CheckHitException(data, list);
        }