DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
UndergroundAreaLoader.c
См. документацию.
2{
4
5 static void SpawnParentedTriggers(EntityAI parent)
6 {
7 int networkIdLow, networkIdHigh;
8 parent.GetNetworkID(networkIdLow, networkIdHigh);
9
11 if (jsonData && jsonData.Triggers)
12 {
13 foreach (int index, auto data : jsonData.Triggers)
14 {
15 if (data.CustomSpawn)
16 {
17 if (data.ParentNetworkId.Count() == 2 && data.ParentNetworkId[0] == networkIdLow && data.ParentNetworkId[1] == networkIdHigh)
18 SpawnTriggerCarrier(parent, index, data);
19 }
20 }
21 }
22 }
23
24 static void SpawnTriggerCarrier(EntityAI parent, int index, JsonUndergroundAreaTriggerData data)
25 {
26 UndergroundTriggerCarrierBase carrier = UndergroundTriggerCarrierBase.Cast(g_Game.CreateObjectEx("UndergroundTriggerCarrier", data.GetPosition(), ECE_NONE));
27 if (carrier)
28 {
29 carrier.SetParent(parent);
30 carrier.SetIndex(index);
31 carrier.SetOrientation(data.GetOrientation());
32 }
33 }
34}
35
36class JsonUndergroundAreaBreadcrumb
37{
38 vector GetPosition()
39 {
40 return Vector(Position[0],Position[1],Position[2]);
41 }
42
46 float Radius;
47 bool LightLerp; // only used in LinePointFade
48 string Comment;
49
51}
52
58
70{
71 string Comment;
73 string Tag;
75
81 bool UseLinePointFade; // simple fade between points which are defined using existing breadcrumbs array
82 string AmbientSoundType; // type of ambient sound which will be played by sound controller
83 string AmbientSoundSet; // manual playback of ambient sound
84
86
88 {
89 return Vector(Position[0],Position[1],Position[2]);
90 }
91
97 {
98 return Vector(Size[0], Size[1], Size[2]);
99 }
100};
101
102
104{
105 private static string m_Path = "$mission:cfgundergroundtriggers.json";
106
108
110 {
111 if (!FileExist(m_Path))
112 {
113 // We fallback to check in data and notify user file was not found in mission
114 PrintToRPT("[WARNING] :: [UndergroundAreaLoader GetData()] :: file not found in MISSION folder, your path is " + m_Path + " Attempting DATA folder");
115
116 string worldName;
117 g_Game.GetWorldName(worldName);
118 m_Path = string.Format("dz/worlds/%1/ce/cfgundergroundtriggers.json", worldName);
119
120 if (!FileExist(m_Path))
121 {
122 PrintToRPT("[WARNING] :: [UndergroundAreaLoader GetData()] ::file not found in DATA folder, your path is " + m_Path);
123 return null; // Nothing could be read, just end here
124 }
125 }
126
127 string errorMessage;
129 if (!JsonFileLoader<JsonUndergroundTriggers>.LoadFile(m_Path, data, errorMessage))
130 ErrorEx(errorMessage);
131
132 return data;
133 }
134
136 {
137 if (!m_JsonData)
138 {
140 }
141
142 if (!m_JsonData || !m_JsonData.Triggers)
143 {
144 return;
145 }
146
147 foreach (int i, auto data:m_JsonData.Triggers)
148 {
149 if (data.CustomSpawn)
150 continue;
151
152 SpawnTriggerCarrierEx(i, data);
153 }
154 }
155
157 {
158 UndergroundTriggerCarrierBase carrier = UndergroundTriggerCarrierBase.Cast(g_Game.CreateObjectEx("UndergroundTriggerCarrier", data.GetPosition(), ECE_NONE));
159 if (carrier)
160 {
161 carrier.SetIndex(index);
162 carrier.SetOrientation(data.GetOrientation());
163 }
164
165 return carrier;
166 }
167
169 {
170 SpawnTriggerCarrierEx(index, data);
171 }
172
173 //---------------------------------------------------------------------------------------
174 static void SyncDataSend(PlayerIdentity identity)
175 {
176 g_Game.RPCSingleParam(null, ERPCs.RPC_UNDERGROUND_SYNC, new Param1<JsonUndergroundTriggers>(m_JsonData), true, identity);
177 }
178
179 //---------------------------------------------------------------------------------------
180
181 static void OnRPC(ParamsReadContext ctx)
182 {
183 Param1<JsonUndergroundTriggers> data = new Param1< JsonUndergroundTriggers>(null);
184
185 if ( ctx.Read(data) )
186 {
187 m_JsonData = data.param1;
188 }
189 else
190 {
191 ErrorEx("UndergroundAreaLoader datasynced - failed to read");
192 }
193 }
194
195}
const int ECE_NONE
Определения CentralEconomy.c:7
DayZGame g_Game
Определения DayZGame.c:4074
ERPCs
Определения ERPCs.c:2
float EyeAccommodation
Определения UndergroundAreaLoader.c:44
float Radius
Определения UndergroundAreaLoader.c:46
ref BreadcrumbExternalValueController ExternalValueController
Определения UndergroundAreaLoader.c:50
bool LightLerp
Определения UndergroundAreaLoader.c:47
bool UseRaycast
Определения UndergroundAreaLoader.c:45
void BreadcrumbDoorStateController(TStringArray params)
Определения UndergroundAreaLoader.c:63
string Comment
Определения UndergroundAreaLoader.c:48
class BreadcrumbExternalValueController SelectionName
ref array< float > Position
Определения UndergroundAreaLoader.c:43
ref TStringArray Params
Определения UndergroundAreaLoader.c:56
ref array< ref JsonUndergroundAreaBreadcrumb > Breadcrumbs
Определения UndergroundAreaLoader.c:85
ref array< float > Size
Определения UndergroundAreaLoader.c:78
ref array< float > Position
used on map placed objects
Определения UndergroundAreaLoader.c:76
ref TIntArray ParentNetworkId
used for ObjectSpawner/Manual(custom) spawn
Определения UndergroundAreaLoader.c:74
ref array< float > Orientation
Определения UndergroundAreaLoader.c:77
static void SpawnParentedTriggers(EntityAI parent)
Определения UndergroundAreaLoader.c:5
ref array< ref JsonUndergroundAreaTriggerData > Triggers
Определения UndergroundAreaLoader.c:3
static void SpawnTriggerCarrier(EntityAI parent, int index, JsonUndergroundAreaTriggerData data)
Определения UndergroundAreaLoader.c:24
The class that will be instanced (moddable)
Определения gameplay.c:389
proto bool Read(void value_in)
static void SpawnTriggerCarrier(int index, JsonUndergroundAreaTriggerData data)
Определения UndergroundAreaLoader.c:168
static ref JsonUndergroundTriggers m_JsonData
Определения UndergroundAreaLoader.c:107
static UndergroundTriggerCarrierBase SpawnTriggerCarrierEx(int index, JsonUndergroundAreaTriggerData data)
Определения UndergroundAreaLoader.c:156
static void SyncDataSend(PlayerIdentity identity)
Определения UndergroundAreaLoader.c:174
static string m_Path
Определения UndergroundAreaLoader.c:105
static void OnRPC(ParamsReadContext ctx)
Определения UndergroundAreaLoader.c:181
static void SpawnAllTriggerCarriers()
Определения UndergroundAreaLoader.c:135
static JsonUndergroundTriggers GetData()
Определения UndergroundAreaLoader.c:109
void SetIndex(int index)
Определения TriggerCarrierBase.c:10
void SetParent(Object parent)
Определения TriggerCarrierBase.c:16
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения EnConvert.c:119
Serializer ParamsReadContext
Определения gameplay.c:15
proto void PrintToRPT(void var)
Prints content of variable to RPT file (performance warning - each write means fflush!...
enum ShapeType ErrorEx
array< int > TIntArray
Определения EnScript.c:733
class array< Class T > TStringArray
proto bool FileExist(string name)
Check existence of file.
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
vector GetPosition()
Get the world position of the Effect.
Определения Effect.c:473