| Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB216_tagMCStartCustomSceneResult.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/FakePlayer/FakePlayerController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/FakePlayer/FakePlayerManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/FakePlayer/GA_FakePlayer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/FakePlayer/PartialMapnpcConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/HazyRegion/HazyRegionAutoSettingWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/HazyRegion/HazyRegionModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB216_tagMCStartCustomSceneResult.cs
@@ -16,8 +16,6 @@ var package = vNetPack as HB216_tagMCStartCustomSceneResult; ClientDungeonStageUtility.ReceiveStartCustomDungeonResult(package); GA_Hero.startAutoHazyRegion = true; if (package.MapID != 0) GA_Hero.startAutoHazyRegion = true; } } Fight/FakePlayer/FakePlayerController.cs
@@ -24,7 +24,6 @@ public bool IsDone; private GA_FakePlayer m_Player; private int currentMoveToNpc = 0; public E_BehaviourType BehaviourType { get; private set; } public float m_WaitingTime = 0; public float m_RandomIdelTime = 0; @@ -69,19 +68,15 @@ m_Duration = FakePlayerManager.EachPlayerLastTime; BehaviourType = data.behaviourType; currentMoveToNpc = 0; // 从已经刷出的NPC中随机出生位置 Vector3 _bornPos = GetRandomNpcPosition(); if (_bornPos == Vector3.zero) var _randomDir = new Vector3(Random.Range(-1f, -.3f), 0, Random.Range(-.9f, .9f)); if (Random.Range(1, 3) == 1) { // 如果没有已经刷出的,从该地图的所有npc中取最近的 _bornPos = GetCloserNpcPosition(); _randomDir = new Vector3(Random.Range(.3f, 1f), 0, Random.Range(-.9f, .9f)); } if (_bornPos == Vector3.zero) { _bornPos = FakePlayerManager.LastStandPos; } var _randomDir = new Vector3(Random.Range(-.5f, .5f), 0, Random.Range(-.5f, .5f)); _bornPos = _bornPos + _randomDir; GActor.TryGetValidPos(_bornPos, ref _bornPos); @@ -122,11 +117,22 @@ case 1:// 等待站立的随机时间结束 if (Time.time > m_WaitingTime) { var _nextPosition = GetRandomNpcPosition(); Vector3 _nextPosition = Vector3.zero; bool fight = false; if (Random.Range(0, 3) == 1) { fight = true; _nextPosition = GetFightNpcPosition(); } else _nextPosition = GetCloserNpcPosition(); if (_nextPosition == Vector3.zero) { fight = false; _nextPosition = GetCloserNpcPosition(); } if (_nextPosition == Vector3.zero) { m_Step = 0; @@ -134,6 +140,7 @@ else { m_Player.MoveToPosition(_nextPosition, 1); if (fight) BehaviourType = E_BehaviourType.Fight; m_Step = 2; } } @@ -147,6 +154,17 @@ } } } else if (BehaviourType == E_BehaviourType.Fight) { if (m_Player != null) { if (m_Player.IsIdle()) { if (!m_Player.PlaySkill()) BehaviourType = E_BehaviourType.MoveBeTweenNpc; } } } m_DurationEscapeTime += Time.deltaTime; if(m_DurationEscapeTime > m_Duration || m_Player.Pos.x == 10000) @@ -155,38 +173,28 @@ } } private Vector3 GetNextNpcPosition() { var _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcFunc); if (_list == null || _list.Count == 0) { return Vector3.zero; } GActorNpcNoFight _npc; for (int i = 0; i < _list.Count; ++i) { _npc = _list[i] as GActorNpcNoFight; if (_npc == null || _npc.NpcConfig.NPCID == currentMoveToNpc) { continue; } currentMoveToNpc = _npc.NpcConfig.NPCID; return _npc.Pos; } return Vector3.zero; } private Vector3 GetRandomNpcPosition() { var _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcFunc); if (_list == null || _list.Count == 0) { return Vector3.zero; _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcFightNorm); if (_list == null || _list.Count == 0) return Vector3.zero; } var _random = Random.Range(0, _list.Count - 1); var _random = Random.Range(0, _list.Count); return _list[_random].Pos; } private Vector3 GetFightNpcPosition() { var _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcFightNorm); if (_list == null || _list.Count == 0) return Vector3.zero; var _random = Random.Range(0, _list.Count); return _list[_random].Pos; } @@ -195,6 +203,7 @@ var _mapID = PlayerDatas.Instance.baseData.MapID; var _mapNpcs = mapnpcConfig.GetNpcList(_mapID); var _list = new List<int>(_mapNpcs.Keys); /* _list.Sort((n1, n2) => { var _d1 = MathUtility.DistanceSqrtXZ(PlayerDatas.Instance.hero.Pos, @@ -212,7 +221,14 @@ return _mapNpcs[_list[i]]; } } return Vector3.zero; */ if (_list == null || _list.Count == 0) { return Vector3.zero; } var _random = Random.Range(0, _list.Count); return _mapNpcs[_list[_random]]; } } Fight/FakePlayer/FakePlayerManager.cs
@@ -5,9 +5,6 @@ { public static bool Start = false; public static Vector3 LastStandPos; public static int LastFindNPC; public static FuncConfigConfig gemTypeConfig = FuncConfigConfig.Get("FakePlayer"); // 等级限制 private static int m_LevelLimit = int.Parse(gemTypeConfig.Numerical1); Fight/FakePlayer/GA_FakePlayer.cs
@@ -147,4 +147,94 @@ { return false; } private int m_ComAtkIndex; private int m_AtkCount; public bool PlaySkill() { m_AtkCount++; Skill _skill = null; if (m_AtkCount == 1) { int skillID = ActorInfo.Job == 1 ? 50000 : 55000; _skill = SkillMgr.Get(skillID); } else if (m_AtkCount == 4) { m_AtkCount = 0; return false; } if (_skill == null) { if (m_ComAtkIndex > JobSetup.ComAtkIdList.Length - 1) { m_ComAtkIndex = 0; } int _comSkillId = JobSetup.ComAtkIdList[m_ComAtkIndex]; _skill = SkillMgr.Get(_comSkillId); m_ComAtkIndex += 1; } SkillMgr.CastSkill(ServerInstID, _skill.id); if (_skill.skillInfo.config.Skillactmark > 0 && _skill.skillInfo.config.Skillactmark < 20) { switch (_skill.skillInfo.config.Skillactmark) { case 10: Play(GAStaticDefine.State_Attack1Hash, 0); break; case 11: Play(GAStaticDefine.State_Attack2Hash, 0); break; case 12: Play(GAStaticDefine.State_Attack3Hash, 0); break; case 13: Play(GAStaticDefine.State_Attack4Hash, 0); break; } } else { switch (_skill.skillInfo.config.Skillactmark) { case 21: Play(GAStaticDefine.State_Skill21, 0); break; case 22: Play(GAStaticDefine.State_Skill22, 0); break; case 23: Play(GAStaticDefine.State_Skill23, 0); break; case 24: Play(GAStaticDefine.State_Skill24, 0); break; case 25: Play(GAStaticDefine.State_Skill25, 0); break; case 26: Play(GAStaticDefine.State_Skill26, 0); break; case 27: Play(GAStaticDefine.State_Skill27, 0); break; case 28: Play(GAStaticDefine.State_Skill28, 0); break; case 29: Play(GAStaticDefine.State_Skill29, 0); break; case 99: Play(GAStaticDefine.State_RollHash, 0); break; } } return true; } } Fight/FakePlayer/PartialMapnpcConfig.cs
@@ -13,10 +13,10 @@ } Vector3 _npcPos = GAStaticDefine.GetClientPostionFromHex(HexPosNPCRefreshAreaChaseArea); var position = new Vector3(_npcPos.x, 0, _npcPos.y); if (!mapNpcIDict[MapID].ContainsKey(NPCID) && NPCType == (int)E_NpcType.Func) { mapNpcIDict[MapID].Add(NPCID, _npcPos); mapNpcIDict[MapID].Add(NPCID, position); } } System/HazyRegion/HazyRegionAutoSettingWin.cs
@@ -47,7 +47,7 @@ if (PlayerDatas.Instance.baseData.VIPLv >= 3) { model.auto = !model.auto; LocalSave.SetBool("HazyRegionAutoSetting",model.auto); LocalSave.SetBool("HazyRegionAutoSetting" + PlayerDatas.Instance.PlayerId, model.auto); } else { System/HazyRegion/HazyRegionModel.cs
@@ -249,7 +249,7 @@ autoOpenLimitLevel = int.Parse(funcConfig.Numerical1); int.TryParse(funcConfig.Numerical2, out autoOpenLimitTimes); auto = LocalSave.GetBool("HazyRegionAutoSetting", false); auto = LocalSave.GetBool("HazyRegionAutoSetting" + PlayerDatas.Instance.PlayerId, false); } public bool TryGetIncident(int id, out Incident incident)