DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
EnScript.c
См. документацию.
1
8
10class Class
11{
23 proto native external bool IsInherited(typename type);
24
37 proto native owned external string ClassName();
38
39 string GetDebugName() { return ClassName(); }
40
52 proto native external typename Type();
53
64 proto external static typename StaticType();
65
73 static typename StaticGetType(typename t)
74 {
75 return t;
76 }
77
78 proto external string ToString();
79
94 proto static Class Cast(Class from);
95
110 proto static bool CastTo(out Class to, Class from);
111
113 private proto static bool SafeCastType(Class type, out Class to, Class from);
114};
115
118{
119};
120
123{
124};
125
127typedef int[] TypeID;
128
131{
132 private void ~ScriptModule();
133
139 proto volatile int Call(Class inst, string function, void parm);
140
146 proto volatile int CallFunction(Class inst, string function, out void returnVal, void parm);
147 proto volatile int CallFunctionParams(Class inst, string function, out void returnVal, Class parms);
148 proto native void Release();
149
160 static proto native ScriptModule LoadScript(ScriptModule parentModule, string scriptFile, bool listing);
161};
162
163//main script module (contains script.c and this file)
164//ScriptModule g_Script;
165
167{
168 private void EnScript() {}
169 private void ~EnScript() {}
170
188 static proto int GetClassVar(Class inst, string varname,int index, out void result);
189
211 static proto int SetClassVar(Class inst, string varname, int index, void input);
212
222 static proto int SetVar(out void var, string value);
223
230 static proto void Watch(void var, int flags);
231};
232
233
234
253proto void Sort(void param_array[], int num);
254proto void reversearray(void param_array);
255proto void copyarray(void destArray, void srcArray);
256
287proto int ParseStringEx(inout string input, string token);
288
307proto int ParseString(string input, out string tokens[]);
308
318proto native int KillThread(Class owner, string name);
319
323proto volatile void Idle();
324
336proto owned string ThreadFunction(Class owner, string name, int backtrace, out int linenumber);
337
339string String(string s)
340{
341 return s;
342}
343
345void PrintString(string s)
346{
347 Print(s);
348}
349
350class array<Class T>
351{
356 proto native int Count();
361 proto native void Clear();
365 proto void Set(int n, T value);
370 proto int Find(T value);
374
375 proto T Get(int n);
383 proto int Insert(T value);
394 proto int InsertAt(T value, int index);
425 void InsertAll(notnull array<T> from)
426 {
427 for ( int i = 0; i < from.Count(); i++ )
428 {
429 Insert( from.Get(i) );
430 }
431 }
432
438 proto native void Remove(int index);
445 proto native void RemoveOrdered(int index);
451 proto native void Resize(int newSize);
452
457 proto native void Reserve(int newSize);
458
463 proto native void Swap(notnull array<T> other);
464
468 proto native void Sort(bool reverse = false);
473
474 proto int Copy(notnull array<T> from);
475 proto int Init(T init[]);
476
477 void RemoveItem(T value)
478 {
479 int remove_index = Find(value);
480
481 if ( remove_index >= 0 )
482 {
483 RemoveOrdered(remove_index);
484 }
485 }
486
488 {
489 int remove_index = Find(value);
490
491 if ( remove_index >= 0 )
492 {
493 Remove(remove_index);
494 }
495 }
496
497 bool IsValidIndex( int index )
498 {
499 return ( index > -1 && index < Count() );
500 }
501
502 /*
503 T GetChecked( int index )
504 {
505 if( IsValidIndex( index ) )
506 return Get( index );
507 else
508 return null;
509 }
510 */
511
523 void Debug()
524 {
525 Print(string.Format("Array count: %1", Count()));
526 for (int i = 0; i < Count(); i++)
527 {
528 T item = Get(i);
529 Print(string.Format("[%1] => %2", i, item));
530 }
531 }
532
543 {
544 if ( Count() > 0 )
545 {
546 return Math.RandomInt(0, Count());
547 }
548
549 return -1;
550 }
551
562 {
563 return Get(GetRandomIndex());
564 }
565
566 void SwapItems(int item1_index, int item2_index)
567 {
568 T item1 = Get(item1_index);
569 Set(item1_index, Get(item2_index));
570 Set(item2_index, item1);
571 }
572
574 {
575 for (int i = 0; i < other.Count(); i++)
576 {
577 T item = other.Get(i);
578 Insert(item);
579 }
580 }
581
582 void Invert()
583 {
584 int left = 0;
585 int right = Count() - 1;
586 if (right > 0)
587 {
588 while (left < right)
589 {
590 T temp = Get(left);
591 Set(left++, Get(right));
592 Set(right--, temp);
593 }
594 }
595 }
596
610 int MoveIndex(int curr_index, int move_number)
611 {
612 int count = Count();
613 int new_index = curr_index;
614
615 if ( move_number > 0 )
616 {
617 new_index = curr_index + move_number;
618 }
619
620 if ( move_number < 0 )
621 {
622 new_index = curr_index - move_number;
623
624 if ( new_index < 0 )
625 {
626 if ( new_index <= -count )
627 {
628 new_index = (new_index % count);
629 }
630
631 new_index = new_index + count;
632 }
633 }
634
635 if ( new_index >= count )
636 {
637 new_index = (new_index % count);
638 }
639
640 // move_number is 0
641 return new_index;
642 }
643
645 {
646 for (int i = 0; i < Count(); i++)
647 {
649 }
650 }
651
665 {
666 if (Count() != pOtherArray.Count())
667 {
668 ErrorEx("arrays are not the same size");
669 return -1;
670 }
671
672 for (int i = 0; i < pOtherArray.Count(); ++i)
673 {
674 if (Get(i) != pOtherArray.Get(i))
675 {
676 return i;
677 }
678 }
679
680 return -1;
681 }
682};
683
684//force these to compile so we can link C++ methods to them
694
695class set<Class T>
696{
697 proto native int Count();
698 proto native void Clear();
703 proto int Find(T value);
704 proto T Get(int n);
712 proto int Insert(T value);
723 proto int InsertAt(T value, int index);
729 proto native void Remove(int index);
730 proto int Copy(set<T> from);
731 proto native void Swap(set<T> other);
732 proto int Init(T init[]);
733
734 void InsertSet(set<T> other)
735 {
736 int count = other.Count();
737 for (int i = 0; i < count; i++)
738 {
739 T item = other[i];
740 Insert(item);
741 }
742 }
743
744 void RemoveItem(T value)
745 {
746 int remove_index = Find(value);
747 if (remove_index >= 0)
748 {
749 Remove(remove_index);
750 }
751 }
752
753 void RemoveItems(set<T> other)
754 {
755 int count = other.Count();
756 for (int i = 0; i < count; i++)
757 {
758 T item = other[i];
759 RemoveItem(item);
760 }
761 }
762
763 void Debug()
764 {
765 Print(string.Format("Set count: %1", Count()));
766 for (int i = 0; i < Count(); i++)
767 {
768 T item = Get(i);
769 Print(string.Format("[%1] => %2", i, item));
770 }
771 }
772};
773
774//force these to compile so we can link C++ methods to them
775typedef set<string> TStringSet;
776typedef set<float> TFloatSet;
777typedef set<int> TIntSet;
778typedef set<Class> TClassSet;
779typedef set<Managed> TManagedSet;
780typedef set<ref Managed> TManagedRefSet;
781typedef set<typename> TTypenameSet;
782
783typedef int MapIterator;
800class map<Class TKey,Class TValue>
801{
806 proto native int Count();
807
811 proto native void Clear();
820 proto TValue Get(TKey key);
831 proto bool Find(TKey key, out TValue val);
841 proto TValue GetElement(int index);
851 proto TKey GetKey(int i);
856 proto void Set(TKey key, TValue value);
860 proto void Remove(TKey key);
867 proto void RemoveElement(int i);
871 proto bool Contains(TKey key);
880 proto bool Insert(TKey key, TValue value);
881 proto int Copy(map<TKey,TValue> from);
882
884 {
885 array<TKey> keys = new array<TKey>;
886 for (int i = 0; i < Count(); i++)
887 {
888 keys.Insert( GetKey( i ) );
889 }
890 return keys;
891 }
892
894 {
895 array<TValue> elements = new array<TValue>;
896 for (int i = 0; i < Count(); i++)
897 {
898 elements.Insert( GetElement( i ) );
899 }
900 return elements;
901 }
902
903 bool ReplaceKey(TKey old_key, TKey new_key)
904 {
905 if (Contains(old_key))
906 {
907 Set(new_key, Get(old_key));
908 Remove(old_key);
909 return true;
910 }
911 return false;
912 }
913
914 TKey GetKeyByValue(TValue value)
915 {
916 TKey ret;
917 for (int i = 0; i < Count(); i++)
918 {
919 if (GetElement(i) == value)
920 {
921 ret = GetKey(i);
922 break;
923 }
924 }
925
926 return ret;
927 }
928
929 bool GetKeyByValueChecked(TValue value, out TKey key)
930 {
931 for (int i = 0; i < Count(); i++)
932 {
933 if (GetElement(i) == value)
934 {
935 key = GetKey(i);
936 return true;
937 }
938 }
939 return false;
940 }
941
942 proto native MapIterator Begin();
943 proto native MapIterator End();
944 proto native MapIterator Next(MapIterator it);
947};
948
957
966
975
984
993
1002
void Remove(Object object)
Определения ActionTargets.c:207
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
map
Определения ControlsXboxNew.c:4
DisplayElementBase GetElement(eDisplayElements element_id)
Определения DisplayStatus.c:95
enum MagnumStableStateID init
override float Get()
Определения PlayerStatBase.c:134
void Set(T value, string system="")
Определения PlayerStatBase.c:85
@ Count
Определения RandomGeneratorSyncManager.c:8
Super root of all classes in Enforce script.
Определения EnScript.c:11
TODO doc.
Определения EnScript.c:118
Определения EnMath.c:7
TODO doc.
Определения EnScript.c:123
Module containing compiled scripts.
Определения EnScript.c:131
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto void Print(void var)
Prints content of variable to console/log.
enum ShapeType ErrorEx
proto int ParseString(string input, out string tokens[])
Parses string into array of tokens returns number of tokens.
map< Managed, int > TManagedIntMap
Определения EnScript.c:986
proto native void Sort(bool reverse=false)
map< Managed, Class > TManagedClassMap
Определения EnScript.c:988
map< typename, float > TTypeNameFloatMap
Определения EnScript.c:976
proto int ParseStringEx(inout string input, string token)
Parses one token from input string. Result is put into token string, and type of token is returned....
proto int Insert(T value)
static proto int SetClassVar(Class inst, string varname, int index, void input)
Dynamic write to variable by its name.
void InsertAll(notnull array< T > from)
Inserts all elements from array.
Определения EnScript.c:425
proto void Sort(void param_array[], int num)
Sorts static array of integers(ascendically) / floats(ascendically) / strings(alphabetically)
set< int > TIntSet
Определения EnScript.c:777
array< typename > TTypenameArray
Определения EnScript.c:693
static proto int SetVar(out void var, string value)
Sets variable value by value in string.
array< float > TFloatArray
Определения EnScript.c:686
proto int Init(T init[])
set< Class > TClassSet
Определения EnScript.c:778
map< Class, vector > TClassVectorMap
Определения EnScript.c:974
void Debug()
Определения EnScript.c:763
map< Class, typename > TClassTypenameMap
Определения EnScript.c:973
int MoveIndex(int curr_index, int move_number)
Returns a index in array moved by specific number.
Определения EnScript.c:610
proto void RemoveElement(int i)
array< TKey > GetKeyArray()
Определения EnScript.c:883
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
proto native void Clear()
map< ref Managed, Managed > TManagedRefManagedMap
Определения EnScript.c:998
proto int Insert(T value)
array< string > TStringArray
Определения EnScript.c:685
static proto int GetClassVar(Class inst, string varname, int index, out void result)
Dynamic read of variable value by its name.
void SwapItems(int item1_index, int item2_index)
Определения EnScript.c:566
map< int, Class > TIntClassMap
Определения EnScript.c:952
proto native MapIterator End()
map< Class, float > TClassFloatMap
Определения EnScript.c:967
proto void Set(int n, T value)
map< string, vector > TStringVectorMap
Определения EnScript.c:965
proto native int KillThread(Class owner, string name)
Kills thread.
proto native owned external string ClassName()
Returns name of class-type.
map< int, string > TIntStringMap
Определения EnScript.c:951
map< int, float > TIntFloatMap
Определения EnScript.c:949
proto owned string ThreadFunction(Class owner, string name, int backtrace, out int linenumber)
Debug function. Returns current function on stack of the thread.
proto native external bool IsInherited(typename type)
Returns true when instance is of the type, or inherited one.
proto native void RemoveOrdered(int index)
proto void Remove(TKey key)
array< Managed > TManagedArray
Определения EnScript.c:690
void RemoveItem(T value)
Определения EnScript.c:744
map< ref Managed, vector > TManagedRefVectorMap
Определения EnScript.c:1001
void RemoveItemUnOrdered(T value)
Определения EnScript.c:487
bool IsValidIndex(int index)
Определения EnScript.c:497
int MapIterator
Определения EnScript.c:783
proto TValue Get(TKey key)
map< ref Managed, float > TManagedRefFloatMap
Определения EnScript.c:994
array< vector > TVectorArray
Определения EnScript.c:692
proto int Find(T value)
array< ref Managed > TManagedRefArray
Определения EnScript.c:691
void PrintString(string s)
Helper for printing out string expression. Example: PrintString("Hello " + var);.
Определения EnScript.c:345
proto TKey GetIteratorKey(MapIterator it)
map< ref Managed, ref Managed > TManagedRefManagedRefMap
Определения EnScript.c:999
proto native void Swap(notnull array< T > other)
proto volatile int CallFunctionParams(Class inst, string function, out void returnVal, Class parms)
proto T Get(int n)
void ~EnScript()
Определения EnScript.c:169
array< int > TIntArray
Определения EnScript.c:687
proto int InsertAt(T value, int index)
map< Class, Class > TClassClassMap
Определения EnScript.c:970
static proto native ScriptModule LoadScript(ScriptModule parentModule, string scriptFile, bool listing)
Do load script and create ScriptModule for it.
proto int Copy(notnull array< T > from)
int GetRandomIndex()
Returns a random index of array. If Count is 0, return index is -1 .
Определения EnScript.c:542
array< Class > TClassArray
Определения EnScript.c:689
map< Class, int > TClassIntMap
Определения EnScript.c:968
proto void copyarray(void destArray, void srcArray)
proto bool Contains(TKey key)
static proto void Watch(void var, int flags)
Debug tool for watching certain variable. Invokes debugger whenever is variable used.
proto native external Type()
Returns typename of object's class.
array< TValue > GetValueArray()
Определения EnScript.c:893
proto int Find(T value)
set< float > TFloatSet
Определения EnScript.c:776
string String(string s)
Helper for passing string expression to functions with void parameter. Example: Print(String("Hello "...
Определения EnScript.c:339
TKey GetKeyByValue(TValue value)
Определения EnScript.c:914
void EnScript()
Определения EnScript.c:168
map< ref Managed, typename > TManagedRefTypenameMap
Определения EnScript.c:1000
void InsertSet(set< T > other)
Определения EnScript.c:734
map< Managed, typename > TManagedTypenameMap
Определения EnScript.c:991
proto TValue GetIteratorElement(MapIterator it)
map< string, int > TStringIntMap
Определения EnScript.c:959
proto volatile void Idle()
set< ref Managed > TManagedRefSet
Определения EnScript.c:780
void InsertArray(array< T > other)
Определения EnScript.c:573
proto native int Count()
map< typename, vector > TTypeNameVectorMap
Определения EnScript.c:983
proto native void Release()
map< ref Managed, string > TManagedRefStringMap
Определения EnScript.c:996
map< int, typename > TIntTypenameMap
Определения EnScript.c:955
map< Class, ref Managed > TClassManagedRefMap
Определения EnScript.c:972
proto volatile int Call(Class inst, string function, void parm)
map< Managed, Managed > TManagedManagedMap
Определения EnScript.c:989
proto native void Reserve(int newSize)
void RemoveItem(T value)
Определения EnScript.c:477
proto native void Resize(int newSize)
map< typename, Managed > TTypeNameManagedMap
Определения EnScript.c:980
proto volatile int CallFunction(Class inst, string function, out void returnVal, void parm)
proto static external StaticType()
Returns typename of object's reference.
proto bool Insert(TKey key, TValue value)
bool ReplaceKey(TKey old_key, TKey new_key)
Определения EnScript.c:903
proto void reversearray(void param_array)
map< Managed, ref Managed > TManagedManagedRefMap
Определения EnScript.c:990
proto native MapIterator Next(MapIterator it)
void RemoveItems(set< T > other)
Определения EnScript.c:753
map< string, ref Managed > TStringManagedRefMap
Определения EnScript.c:963
proto native void Clear()
map< typename, ref Managed > TTypeNameManagedRefMap
Определения EnScript.c:981
map< typename, int > TTypeNameIntMap
Определения EnScript.c:977
proto native MapIterator Begin()
static StaticGetType(typename t)
Returns typename of class even without a variable or instance.
Определения EnScript.c:73
map< string, string > TStringStringMap
Определения EnScript.c:960
array< bool > TBoolArray
Определения EnScript.c:688
map< Class, string > TClassStringMap
Определения EnScript.c:969
map< int, int > TIntIntMap
Определения EnScript.c:950
void Debug()
Print all elements in array.
Определения EnScript.c:523
proto external string ToString()
string GetDebugName()
Определения EnScript.c:39
int DifferentAtPosition(array< T > pOtherArray)
Returns an index where 2 arrays start to differ from each other.
Определения EnScript.c:664
map< string, float > TStringFloatMap
Определения EnScript.c:958
map< ref Managed, int > TManagedRefIntMap
Определения EnScript.c:995
T GetRandomElement()
Returns a random element of array.
Определения EnScript.c:561
proto native void Remove(int index)
proto void Set(TKey key, TValue value)
map< typename, Class > TTypeNameClassMap
Определения EnScript.c:979
bool GetKeyByValueChecked(TValue value, out TKey key)
Определения EnScript.c:929
static proto Class Cast(Class from)
Try to safely down-cast base class to child class.
void ~ScriptModule()
proto int Init(T init[])
map< string, Class > TStringClassMap
Определения EnScript.c:961
int[] TypeID
script representation for C++ RTTI types
Определения EnScript.c:127
proto TValue GetElement(int index)
set< typename > TTypenameSet
Определения EnScript.c:781
proto native int Count()
map< typename, string > TTypeNameStringMap
Определения EnScript.c:978
proto int InsertAt(T value, int index)
map< int, Managed > TIntManagedMap
Определения EnScript.c:953
set< string > TStringSet
Определения EnScript.c:775
map< string, typename > TStringTypenameMap
Определения EnScript.c:964
map< Managed, float > TManagedFloatMap
Определения EnScript.c:985
proto T Get(int n)
proto int Copy(set< T > from)
proto int Copy(map< TKey, TValue > from)
proto native void Swap(set< T > other)
void ShuffleArray()
Определения EnScript.c:644
static proto bool SafeCastType(Class type, out Class to, Class from)
This function is for internal script usage.
proto bool Find(TKey key, out TValue val)
map< int, vector > TIntVectorMap
Определения EnScript.c:956
set< Managed > TManagedSet
Определения EnScript.c:779
map< int, ref Managed > TIntManagedRefMap
Определения EnScript.c:954
map< typename, typename > TTypeNameTypenameMap
Определения EnScript.c:982
map< ref Managed, Class > TManagedRefClassMap
Определения EnScript.c:997
proto native void Remove(int index)
void Invert()
Определения EnScript.c:582
map< Managed, string > TManagedStringMap
Определения EnScript.c:987
map< Managed, vector > TManagedVectorMap
Определения EnScript.c:992
map< string, Managed > TStringManagedMap
Определения EnScript.c:962
map< Class, Managed > TClassManagedMap
Определения EnScript.c:971
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].