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); }
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]); }
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()); } } }
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); }