From 2c15cd1ba3b2bd6ec52b9b835a4c549a9a46287c Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期四, 23 五月 2019 10:59:18 +0800
Subject: [PATCH] 3335 缥缈仙域优化
---
System/HazyRegion/ClientHazyGrassStage.cs | 33 +++++++++++++++++++++------------
1 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/System/HazyRegion/ClientHazyGrassStage.cs b/System/HazyRegion/ClientHazyGrassStage.cs
index 7f0bfb8..358b94a 100644
--- a/System/HazyRegion/ClientHazyGrassStage.cs
+++ b/System/HazyRegion/ClientHazyGrassStage.cs
@@ -7,7 +7,7 @@
{
static readonly Vector3 PlayerBornPosition1 = new Vector3(19.401f, 4.985f, 5.494f);
- static List<Vector3> s_NpcPositions = new List<Vector3>();
+ static List<int> s_RandomIndexs = new List<int>();
static readonly int s_EnemyNpcId = 40208005;
@@ -29,7 +29,7 @@
{
base.Initialize();
- s_NpcPositions.Clear();
+ s_RandomIndexs.Clear();
s_Sid2NpcIds.Clear();
s_CollectNpcs.Clear();
s_Sid2NpcIndexs.Clear();
@@ -124,7 +124,13 @@
void InitializeNpc()
{
var config = ScriptableObjectLoader.LoadSoHazyMapNpc(ClientDungeonStageUtility.clientMapId);
- s_NpcPositions.AddRange(config.GetNpcPositions());
+ var positions = config.GetNpcPositions();
+
+ s_RandomIndexs.Clear();
+ for (int i = 0; i < positions.Count; i++)
+ {
+ s_RandomIndexs.Add(i);
+ }
var mapId = model.GetGrassMapId(hazyRegionModel.processingIncidentId);
var npcInfos = model.GetGrassNpcInfos(mapId);
@@ -143,8 +149,6 @@
continue;
}
- hasInitializedNpc = true;
-
for (int j = 0; j < count; j++)
{
var index = -1;
@@ -155,12 +159,15 @@
if (jsonInfoIndex != -1)
{
index = npcJsonDatas[jsonInfoIndex].index;
+ npcJsonDatas.RemoveAt(jsonInfoIndex);
}
if (index == -1)
{
break;
}
InitializeNpc(npcId, index);
+
+ s_RandomIndexs.Remove(index);
}
}
}
@@ -172,16 +179,15 @@
for (int j = 0; j < count; j++)
{
- var index = UnityEngine.Random.Range(0, s_NpcPositions.Count);
- InitializeNpc(npcId, index);
+ var index = UnityEngine.Random.Range(0, s_RandomIndexs.Count);
+ InitializeNpc(npcId, s_RandomIndexs[index]);
- hasInitializedNpc = true;
+ s_RandomIndexs.RemoveAt(index);
}
}
if (hasInitializedNpc)
{
- var positions = config.GetNpcPositions();
var enemyPosition = positions[UnityEngine.Random.Range(0, positions.Count)];
if (ClientDungeonStageUtility.clientMapId == HazyGrassModel.FAIRY_CLIENTDATAMAP)
@@ -198,7 +204,12 @@
void InitializeNpc(int npcId, int index)
{
- var position = s_NpcPositions[index];
+ hasInitializedNpc = true;
+
+ var config = ScriptableObjectLoader.LoadSoHazyMapNpc(ClientDungeonStageUtility.clientMapId);
+ var positions = config.GetNpcPositions();
+
+ var position = positions[index];
GA_NpcClientCollect _npc = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientCollect>((uint)npcId,
E_ActorGroup.FuncNpc);
@@ -216,8 +227,6 @@
{
s_NpcCounts[npcId] += 1;
}
-
- s_NpcPositions.RemoveAt(index);
localNpcJsons.Add(new NpcJsonInfo()
{
--
Gitblit v1.8.0