DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
PluginLocalProfile.c
См. документацию.
2{
7
15
16 override string GetFileName()
17 {
19 }
20
21 override void OnInit()
22 {
23 super.OnInit();
24
26 }
27
29 {
30 TStringArray file_content = GetFileContent();
31
32 string line_content = "";
33 string param_name = "";
34 string param_value = "";
35 TStringArray param_content;
36 int pos_sep = -1;
37
38 for ( int i = 0; i < file_content.Count(); ++i )
39 {
40 line_content = file_content.Get(i);
41
42 param_content = ParseTextToParameter(line_content);
43
44 if ( param_content.Count() == 0 )
45 {
46 PrintString(GetFileName()+"("+i.ToString()+"): Error in config -> Maybe missing '=' !");
47 return false;
48 }
49
50 param_name = param_content.Get(0);
51 param_value = param_content.Get(1);
52
53 //{{name = apple, damage = 0.5, quantity = 2},{name = banana, damage = 0.5, quantity = 2}}
54
55 TStringArray array_items = new TStringArray;
56 ParseTextToArray(param_value, array_items);
57 //{name = apple, damage = 0.5, quantity = 2}
58 //{name = banana, damage = 0.5, quantity = 2}
59
60 TStringArray array_content_raw = new TStringArray;
61
62 if ( array_items.Count() > 0 )
63 {
64 m_ConfigParamsArray.Set(param_name, array_items);
65
66 for ( int j = 0; j < array_items.Count(); ++j )
67 {
68 string array_content = array_items.Get(j);
69 //{name = apple, damage = 0.5, quantity = 2}
70
71 array_content_raw.Clear();
72
73 ParseTextToArray(array_content, array_content_raw);
74 //name = apple
75 //damage = 0.5
76 //quantity = 2
77
78 if ( array_content_raw.Count() > 0 )
79 {
80 if ( !m_ConfigParamsArrayInArray.Contains(param_name) )
81 {
83 }
84
85 array<ref map<string, string>> params_in_array = m_ConfigParamsArrayInArray.Get(param_name);
87
88 for ( int k = 0; k < array_content_raw.Count(); ++k )
89 {
90 string params = array_content_raw.Get(k);
92
93 if ( p.Count() == 2 )
94 {
95 parameters.Set(p.Get(0), p.Get(1));
96 }
97 }
98
99 params_in_array.Insert(parameters);
100 }
101 }
102 }
103 else
104 {
105 m_ConfigParams.Set(param_name, param_value);
106 }
107 }
108
109 return true;
110 }
111
113 {
114 ClearFileNoSave();
115
116 int i;
117 int j;
118 int k;
119
120 string variable_name;
121 string variable_value;
122 string text;
123 TStringArray variable_array;
124
125 for ( i = 0; i < m_ConfigParams.Count(); ++i)
126 {
127 variable_name = m_ConfigParams.GetKey(i);
128 variable_value = m_ConfigParams.GetElement(i);
129
130 text = variable_name + " = " + variable_value;
131
132 AddNewLineNoSave(text);
133 }
134
135 for ( i = 0; i < m_ConfigParamsArray.Count(); ++i)
136 {
137 variable_name = m_ConfigParamsArray.GetKey(i);
138 variable_array = m_ConfigParamsArray.GetElement(i);
139
140 if ( m_ConfigParamsArrayInArray.Contains(variable_name) )
141 {
142 continue;
143 }
144
145 text = variable_name + " = {";
146
147 for ( j = 0; j < variable_array.Count(); ++j )
148 {
149 if ( j > 0 )
150 {
151 text += ",";
152 }
153
154 text += variable_array.Get(j);
155 }
156
157 text += "}";
158
159 AddNewLineNoSave(text);
160 }
161
162 for ( i = 0; i < m_ConfigParamsArrayInArray.Count(); ++i)
163 {
164 variable_name = m_ConfigParamsArrayInArray.GetKey(i);
165 array<ref map<string, string>> variable_param = m_ConfigParamsArrayInArray.GetElement(i);
166
167 text = variable_name + " = {";
168
169 if ( variable_param != NULL )
170 {
171 for ( j = 0; j < variable_param.Count(); ++j )
172 {
173 if ( j > 0 )
174 {
175 text += ",";
176 }
177 text += "{";
178
179 map<string, string> params = variable_param.Get(j);
180 for ( k = 0; k < params.Count(); ++k )
181 {
182 if ( k > 0 )
183 {
184 text += ",";
185 }
186
187 string param_name = params.GetKey(k);
188 string param_value = params.GetElement(k);
189
190 text += param_name+"="+param_value;
191 }
192
193 text += "}";
194 }
195 }
196
197 text += "}";
198
199 AddNewLineNoSave(text);
200 }
201
202 SaveFile();
203 }
204
205 bool IsTextArray(string text)
206 {
207 if ( text.Length() > 0 && text.Substring(0, 1) == "{" )
208 {
209 if ( text.Substring(text.Length() - 1, 1) == "}" )
210 {
211 return true;
212 }
213 }
214
215 return false;
216 }
217
219 {
220 TStringArray ret = new TStringArray;
221
222 int pos = text.IndexOf("=");
223
224 if ( pos > 0 )
225 {
226 string param_name = text.Substring(0, pos).Trim();
227 int pos_end = text.Length() - pos;
228 string param_value = text.Substring(pos + 1, pos_end - 1).Trim();
229
230 int lenght = param_value.Length();
231 if (lenght > 1 && param_value.Substring(0, 1) == "\"" && param_value.Substring(lenght - 1, 1) == "\"" )
232 {
233 param_value = param_value.Substring(1, lenght - 2);
234 }
235
236 ret.Insert(param_name);
237 ret.Insert(param_value);
238 }
239
240 return ret;
241 }
242
244 {
245 if ( !IsTextArray(text) )
246 {
247 return NULL;
248 }
249
250 text = text.Substring(1, text.Length() - 2);
251
252 int pos_array_start = text.IndexOf("{");
253 int pos_array_end = text.IndexOf("}");
254
255 if ( pos_array_start > -1 && pos_array_end > -1 )
256 {
257 while ( true )
258 {
259 string array_value = text.Substring(pos_array_start , pos_array_end - pos_array_start + 1 );
260 ret.Insert(array_value);
261
262 pos_array_start = text.IndexOfFrom(pos_array_end, "{");
263 pos_array_end = text.IndexOfFrom(pos_array_start, "}");
264
265 if ( pos_array_start == -1 )
266 {
267 break;
268 }
269 }
270 }
271 else
272 {
273 text.Split(",", ret);
274 }
275
276 return ret;
277 }
278
280 {
281 TStringArray array_items = new TStringArray;
282 ParseTextToArray(text, array_items);
283
285
287
288 for ( int i = 0; i < array_items.Count(); ++i )
289 {
290 string param = array_items.Get(i);
291 TStringArray t_param = ParseTextToParameter(param);
292
293 string param_name = t_param.Get(0);
294 string param_value = t_param.Get(1);
295
296 ret_param.Set(param_name, param_value);
297 }
298
299 ret.Insert(ret_param);
300
301 return ret;
302 }
303
304 string LoadParameter(string param_name)
305 {
306 string ret_value = STRING_EMPTY;
307
308 if ( m_ConfigParams.Contains(param_name) )
309 {
310 ret_value = m_ConfigParams.Get(param_name);
311 }
312
313 return ret_value;
314 }
315
317 {
318 if ( m_ConfigParamsArray.Contains(param_name) )
319 {
320 return m_ConfigParamsArray.Get(param_name);
321 }
322
323 return NULL;
324 }
325
326 string LoadSubParameter(string param_name, int sub_array_index, string sub_param_name)
327 {
328 string ret_value = STRING_EMPTY;
331
332 if ( m_ConfigParamsArrayInArray.Contains(param_name) )
333 {
334 sub_arrays = m_ConfigParamsArrayInArray.Get(param_name);
335
336 if ( sub_arrays != NULL )
337 {
338 if ( sub_array_index < sub_arrays.Count() )
339 {
340 param = sub_arrays.Get(sub_array_index);
341
342 if ( param.Contains(sub_param_name) )
343 {
344 ret_value = param.Get(sub_param_name);
345 }
346 }
347 }
348 }
349
350 return ret_value;
351 }
352
353 void SaveParameter(string param_name, string value, bool save_in_file = true)
354 {
355 if ( param_name == "" || param_name == "scene_editor_scene" )
356 {
357 Log("SaveParameter: "+param_name+" = "+value, "");
358 }
359
360 m_ConfigParams.Set(param_name, value);
361
362 if ( save_in_file )
363 {
365 }
366 }
367
368 void SaveParameterArray(string param_name, TStringArray value, bool save_in_file = true)
369 {
370 m_ConfigParamsArray.Set(param_name, value);
371
372 if ( save_in_file )
373 {
375 }
376 }
377
378 void SaveSubParameterInArray(string param_name, int sub_array_index, string sub_param_name, string sub_param_value, bool save_in_file = true)
379 {
380 array<ref map<string, string>> sub_arrays = m_ConfigParamsArrayInArray.Get(param_name);
381 map<string, string> sub_parameter = sub_arrays.Get(sub_array_index);
382 sub_parameter.Set(sub_param_name, sub_param_value);
383
384 if ( save_in_file )
385 {
387 }
388 }
389
390 void RenameParameter(string old_name, string new_name, bool save_in_file = true)
391 {
392 if ( m_ConfigParams.Contains(old_name) )
393 {
394 m_ConfigParams.ReplaceKey(old_name, new_name);
395
396 if ( save_in_file )
397 {
399 }
400 }
401 }
402
403 void RenameParameterArray(string old_name, string new_name, bool save_in_file = true)
404 {
405 if ( m_ConfigParamsArray.Contains(old_name) )
406 {
407 m_ConfigParamsArray.ReplaceKey(old_name, new_name);
408
409 if ( save_in_file )
410 {
412 }
413 }
414 }
415
416 void RemoveParameter(string name, bool save_in_file = true)
417 {
418 m_ConfigParams.Remove(name);
419
420 if ( save_in_file )
421 {
423 }
424 }
425
426 void RemoveParameterArray(string name, bool save_in_file = true)
427 {
429
430 if ( save_in_file )
431 {
433 }
434 }
435
436 void SetParameterString(string name, string value, bool save_in_file = true)
437 {
438 string s = "\""+value+"\"";
439 SaveParameter(name, s, save_in_file);
440 }
441
442 void SetParameterInt(string name, int value, bool save_in_file = true)
443 {
444 SaveParameter(name, value.ToString(), save_in_file);
445 }
446
447 void SetParameterFloat(string name, float value, bool save_in_file = true)
448 {
449 SaveParameter(name, value.ToString(), save_in_file);
450 }
451
452 void SetParameterBool(string name, bool value, bool save_in_file = true)
453 {
454 SaveParameter(name, value.ToString(), save_in_file);
455 }
456
457 void SetParameterArray(string name, TStringArray value, bool save_in_file = true)
458 {
459 SaveParameterArray(name, value, save_in_file);
460 }
461
462 void SetSubParameterInArray(string param_name, int sub_array_index, string sub_param_name, string sub_param_value, bool save_in_file = true)
463 {
464 SaveSubParameterInArray(param_name, sub_array_index, sub_param_name, sub_param_value, save_in_file);
465 }
466
468 {
469 string loaded_param = LoadParameter(name);
470 string ret_value = STRING_EMPTY;
471
472 if ( loaded_param != "" )
473 {
474 TStringArray arr = new TStringArray;
475 loaded_param.Split("\"", arr);
476 if ( arr.Count() > 0 )
477 {
478 ret_value = arr.Get(0);
479 }
480 }
481 else
482 {
483 SetParameterString(name, ret_value);
484 }
485
486 return ret_value;
487 }
488
490 {
491 string loaded_param = LoadParameter(name);
492 int ret_value = 0;
493
494 if ( loaded_param != "" )
495 {
496 ret_value = loaded_param.ToInt();
497 }
498 else
499 {
500 SetParameterInt(name, ret_value);
501 }
502
503 return ret_value;
504 }
505
507 {
508 string loaded_param = LoadParameter(name);
509 float ret_value = 0;
510
511 if ( loaded_param != "" )
512 {
513 ret_value = loaded_param.ToFloat();
514 }
515 else
516 {
517 SetParameterFloat(name, ret_value);
518 }
519
520 return ret_value;
521 }
522
524 {
525 string loaded_param = LoadParameter(name);
526 bool ret_value = false;
527
528 if ( loaded_param != "" )
529 {
530 int v = loaded_param.ToInt();
531 if ( v == 1 )
532 {
533 ret_value = true;
534 }
535 }
536 else
537 {
538 SetParameterBool(name, ret_value);
539 }
540
541 return ret_value;
542 }
543
545 {
546 TStringArray ret_value;
547
548 if ( m_ConfigParamsArray.Contains(name) )
549 {
550 ret_value = m_ConfigParamsArray.Get(name);
551 }
552 else
553 {
554 ret_value = new TStringArray;
555 SetParameterArray(name, ret_value);
556 }
557
558 return ret_value;
559 }
560
561 string GetSubParameterInArrayString(string param_name, int sub_array_index, string sub_param_name)
562 {
563 string loaded_param = LoadSubParameter(param_name, sub_array_index, sub_param_name);
564 string ret_value = STRING_EMPTY;
565
566 TStringArray arr = new TStringArray;
567
568 if ( loaded_param != "" )
569 {
570 arr.Clear();
571 loaded_param.Split("\"", arr);
572 ret_value = arr.Get(1);
573 }
574
575 return ret_value;
576 }
577
578 TStringArray GetAllSubParametersInArrayString(string param_name, string sub_param_name)
579 {
580 TStringArray ret_value = NULL;
581
582 if ( m_ConfigParamsArrayInArray.Contains(param_name) )
583 {
584 ret_value = new TStringArray;
585
586 array<ref map<string, string>> arrays_in_parameter = m_ConfigParamsArrayInArray.Get(param_name);
587
588 for ( int i = 0; i < arrays_in_parameter.Count(); ++i )
589 {
590 map<string, string> sub_parameter = arrays_in_parameter.Get(i);
591
592 string sub_param = STRING_EMPTY;
593
594 if ( sub_parameter.Contains(sub_param_name) )
595 {
596 sub_param = sub_parameter.Get(sub_param_name);
597 }
598
599 ret_value.Insert(sub_param);
600 }
601 }
602
603 return ret_value;
604 }
605}
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
map
Определения ControlsXboxNew.c:4
class LogTemplates Log(string message, LogTemplateID template_id=0)
Creates debug log (optional) from LogTemplate which are registred.
Определения LogTemplates.c:75
TStringArray ParseTextToArray(string text, out TStringArray ret)
Определения PluginLocalProfile.c:243
void SaveConfigToFile()
Определения PluginLocalProfile.c:112
array< ref map< string, string > > ParseTextArrayToParameters(string text)
Определения PluginLocalProfile.c:279
TStringArray LoadParameterArray(string param_name)
Определения PluginLocalProfile.c:316
void SetParameterString(string name, string value, bool save_in_file=true)
Определения PluginLocalProfile.c:436
override string GetFileName()
Определения PluginLocalProfile.c:16
ref map< string, ref array< ref map< string, string > > > m_ConfigParamsArrayInArray
Определения PluginLocalProfile.c:6
bool IsTextArray(string text)
Определения PluginLocalProfile.c:205
void SetParameterBool(string name, bool value, bool save_in_file=true)
Определения PluginLocalProfile.c:452
void LoadConfigFile()
Определения PluginConfigHandler.c:22
void SaveParameterArray(string param_name, TStringArray value, bool save_in_file=true)
Определения PluginLocalProfile.c:368
override void OnInit()
Определения PluginLocalProfile.c:21
void SetSubParameterInArray(string param_name, int sub_array_index, string sub_param_name, string sub_param_value, bool save_in_file=true)
Определения PluginLocalProfile.c:462
bool GetParameterBool(string name)
Определения PluginLocalProfile.c:523
TStringArray GetAllSubParametersInArrayString(string param_name, string sub_param_name)
Определения PluginLocalProfile.c:578
float GetParameterFloat(string name)
Определения PluginLocalProfile.c:506
void RenameParameterArray(string old_name, string new_name, bool save_in_file=true)
Определения PluginLocalProfile.c:403
TStringArray ParseTextToParameter(string text)
Определения PluginLocalProfile.c:218
void SaveParameter(string param_name, string value, bool save_in_file=true)
Определения PluginLocalProfile.c:353
void SetParameterFloat(string name, float value, bool save_in_file=true)
Определения PluginLocalProfile.c:447
TStringArray GetParameterArray(string name)
Определения PluginLocalProfile.c:544
bool LoadConfigFile()
Определения PluginLocalProfile.c:28
ref map< string, string > m_ConfigParams
Определения PluginLocalProfile.c:3
void RemoveParameterArray(string name, bool save_in_file=true)
Определения PluginLocalProfile.c:426
void RenameParameter(string old_name, string new_name, bool save_in_file=true)
Определения PluginLocalProfile.c:390
string LoadParameter(string param_name)
Определения PluginLocalProfile.c:304
string LoadSubParameter(string param_name, int sub_array_index, string sub_param_name)
Определения PluginLocalProfile.c:326
void RemoveParameter(string name, bool save_in_file=true)
Определения PluginLocalProfile.c:416
void SetParameterInt(string name, int value, bool save_in_file=true)
Определения PluginLocalProfile.c:442
int GetParameterInt(string name)
Определения PluginLocalProfile.c:489
void SaveSubParameterInArray(string param_name, int sub_array_index, string sub_param_name, string sub_param_value, bool save_in_file=true)
Определения PluginLocalProfile.c:378
void SetParameterArray(string name, TStringArray value, bool save_in_file=true)
Определения PluginLocalProfile.c:457
string GetSubParameterInArrayString(string param_name, int sub_array_index, string sub_param_name)
Определения PluginLocalProfile.c:561
void PluginLocalProfile()
Определения PluginLocalProfile.c:8
string GetParameterString(string name)
Определения PluginLocalProfile.c:467
ref map< string, ref TStringArray > m_ConfigParamsArray
Определения PluginLocalProfile.c:4
ref map< string, ref map< string, string > > m_ConfigParamsInArray
Определения PluginLocalProfile.c:5
override string GetFileName()
Определения PluginAdditionalInfo.c:4
DEPRECATED.
Определения PluginAdditionalInfo.c:3
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
string ToString()
Определения EnConvert.c:3
proto string ToString(bool simple=true)
const string CFG_FILE_USER_PROFILE
Определения constants.c:241
array< string > TStringArray
Определения EnScript.c:685
void PrintString(string s)
Helper for printing out string expression. Example: PrintString("Hello " + var);.
Определения EnScript.c:345
const string STRING_EMPTY
Определения constants.c:54
proto native int Length()
Returns length of string.
proto string Trim()
Returns trimmed string with removed leading and trailing whitespaces.
proto string Get(int index)
Gets n-th character from string.
static proto string ToString(void var, bool type=false, bool name=false, bool quotes=true)
Return string representation of variable.
proto native int ToInt()
Converts string to integer.
proto void Insert(int index, string input)
Inserts a string into the n-th index, increasing the string length by the size of the input.
proto native float ToFloat()
Converts string to float.
void Split(string sample, out array< string > output)
Splits string into array of strings separated by 'sample'.
Определения EnString.c:396
proto string Substring(int start, int len)
Substring of 'str' from 'start' position 'len' number of characters.
proto native int IndexOfFrom(int start, string sample)
Finds 'sample' in 'str' from 'start' position. Returns -1 when not found.
proto native int IndexOf(string sample)
Finds 'sample' in 'str'. Returns -1 when not found.