-
Notifications
You must be signed in to change notification settings - Fork 7
/
as.predefined
15689 lines (15687 loc) · 631 KB
/
as.predefined
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
//Type to store console command flags in;
typedef uint32 ConCommandFlags_t;
//Unix timestamp type.;
typedef uint64 time_t;
//Menu id.;
typedef int32 TextMenuId_t;
//Persistence object id type.;
typedef uint PersistID_t;
//Seek File Flags;
typedef uint8 SeekFileFlags_t;
//Open File Flags;
typedef uint8 OpenFileFlags_t;
//Size type used for denoting sizes;
typedef uint32 size_t;
class ref{}
funcdef bool less(const ?&in a, const ?&in b);
class array<T>{
uint length() const;
void resize(uint);
void reverse();
void insertAt(uint index, const T& in value);
void insertAt(uint index, const array<T>& arr);
void insertLast(const T& in);
void removeAt(uint index);
void removeLast();
void removeRange(uint start, uint count);
void sortAsc();
void sortAsc(uint startAt, uint count);
void sortDesc();
void sortDesc(uint startAt, uint count);
void sort(const less &in compareFunc, uint startAt = 0, uint count = uint(-1));
int find(const T& in);
int find(uint startAt, const T& in);
int findByRef(const T& in);
int findByRef(uint startAt, const T& in);
}
class any{
//The default constructor creates an empty object, and the second initializes the object with the provided value.
//The int64 and double overloads make sure that all numbers are converted to 64bit before being stored in the object.
any();
any(? &in value);
any(int64 &in value);
any(double &in value);
//The assignment operator will copy the contained value from the other object.
any &opAssign(const any &in other);
//These methods sets the value in the object.
//The int64 and double overloads make sure that all numbers are converted to 64bit before being stored in the object.
void store(? &in value);
void store(int64 &in value);
void store(double &in value);
//These methods retrieve the value stored in the object. The methods will return true if the stored value is compatible with the requested type.
bool retrieve(? &out value) const;
bool retrieve(int64 &out value) const;
bool retrieve(double &out value) const;
}
class dictionary{
//Sets a key/value pair in the dictionary. If the key already exists, the value will be changed.
void set(const string &in key, ? &in value);
void set(const string &in key, int64 &in value);
void set(const string &in key, double &in value);
//Retrieves the value corresponding to the key. The methods return false if the key is not found, and in this case the value will maintain its default value based on the type.
bool get(const string &in key, ? &out value) const;
bool get(const string &in key, int64 &out value) const;
bool get(const string &in key, double &out value) const;
//This method returns an array with all of the existing keys in the dictionary. The order of the keys in the array is undefined.
array<string> @getKeys() const;
//Returns true if the key exists in the dictionary.
bool exists(const string &in key) const;
//Removes the key and the corresponding value from the dictionary. Returns false if the key wasn't found.
bool delete(const string &in key);
//Removes all entries in the dictionary.
void deleteAll();
//Returns true if the dictionary doesn't hold any entries.
bool isEmpty() const;
//Returns the number of keys in the dictionary.
uint getSize() const;
}
class dictionaryValue{}
//Listener for CountPlayersInBrushVolume.;
interface PlayerInVolumeListener {
void PlayerDetected(const bool fInVolume, CBasePlayer@ pPlayer);
}
//Script class interface;
interface ScriptClassInterface {
}
//Module class.\nRepresents this module.;
class CModule {
//Gets this module\'s script info object.;
CScriptInfo@ get_ScriptInfo();
//Gets the name of this module.;
string GetModuleName() const;
}
//Script info object.\nContains script information.;
class CScriptInfo {
//Sets the minimum admin level required for commands. You cannot lower the minimum level.;
void SetMinimumAdminLevel(const AdminLevel_t minimumAdminLevel);
//Gets the minimum admin level required for commands.;
AdminLevel_t GetMinimumAdminLevel() const;
//Sets the author\'s contact info.;
void SetContactInfo(const string& in szContactInfo);
//Gets the author\'s contact info.;
const string& GetContactInfo() const;
//Sets the author name.;
void SetAuthor(const string& in szAuthor);
//Gets the author name.;
const string& GetAuthor() const;
}
//Module hook manager;
class CModuleHookManager {
//Removes a hook. Pass in the hook function or delegate to remove.;
void RemoveHook(uint uiHookCode, ?& in pHookFunction);
//Removes all functions hooked into the given hook.;
void RemoveHook(uint uiHookCode);
//Registers a hook. Pass in a hook function or delegate.;
bool RegisterHook(uint uiHookCode, ?& in pHookFunction);
}
//Survival Mode handler;
class CSurvivalMode {
//Sets delay before survival mode starts.;
void SetDelayBeforeStart( float value );
//Returns delay before survival mode starts.;
float GetDelayBeforeStart() const;
//Can be used to end a round and force a retry to be used.;
void EndRound();
//Sets name of the next survival map.;
void SetNextMap(const string& in szMapName);
//Returns name of the next survival map.;
const string& GetNextMap(void) const;
//Returns whether Survival Mode should start when the map is loaded.;
bool GetStartOn();
//Sets whether Survival Mode should start when the map is loaded.;
void SetStartOn( bool value );
//Returns whether the current map supports Survival Mode or not.;
bool MapSupportEnabled();
//Tells the game that the current map wants to use Survival Mode. Should be called in MapInit. Cannot be disabled once set.;
void EnableMapSupport();
//Resets the Survival Mode vote state to undefined.;
void ResetVoteState();
//Toggles Survival Mode vote state.;
void VoteToggle();
//Returns Survival Mode vote state.;
int GetVoteState();
//Activate Survival Mode;
void Activate( bool fActivateNow = false );
//Returns whether Survival Mode is active or not.;
bool IsActive() const;
//Toggles Survival Mode.;
void Toggle();
//Disable Survival Mode;
void Disable();
//Enable Survival Mode;
void Enable( bool fActivateNow = false );
//Returns whether Survival Mode is enabled or not.;
bool IsEnabled() const;
}
//Classic Mode handler;
class CClassicMode {
//Gets the item mapped to the given item name, or an empty string if no mapping exists.;
const string& FindItemMapping(const string& in szItemName) const;
//Sets the item mappings to use from now on.\nDoes not affect previous mappings.\nPass null to disable all mappings.;
void SetItemMappings(array<ItemMapping@>@ pItemMappings);
//Sets whether the map should restart if Classic Mode is changed.;
void SetShouldRestartOnChange(const bool bShouldRestart);
//Returns whether the map should restart if Classic Mode is changed or not. Defaults to true if not changed by a script. Reset on map change.;
bool ShouldRestartOnChange() const;
//Tells the game that the current map wants to use Classic Mode. Must be called in MapInit. Cannot be disabled once set.This will ask players whether they want to enable Classic Mode. Reset on map change.;
void EnableMapSupport();
//Toggles Classic Mode.;
void Toggle();
//Forces item remapping even if classic mode is disabled.;
void ForceItemRemap(const bool fEnabled);
//Enable or disable Classic Mode.;
void SetEnabled(const bool fEnabled);
//Returns whether Classic Mode is enabled or not.;
bool IsEnabled() const;
//Resets the Classic Mode state setting to undefined.;
void ResetState();
//Returns whether the Classic Mode state setting is defined. If not defined, no voting has taken place to choose whether or not to enable Classic Mode.;
bool IsStateDefined() const;
}
//Item mapping for classic mode.;
class ItemMapping {
//Gets the To item name;
const string& get_To() const;
//Gets the From item name;
const string& get_From() const;
//Constructor;
ItemMapping@ ItemMapping(const string& in szFrom, const string& in szTo);
}
//ClientSay parameters;
class SayParameters {
//Sets whether this text will be hidden or not;
void set_ShouldHide(bool fShouldHide);
//Gets whether this text will be hidden or not;
bool get_ShouldHide() const;
//Gets the arguments in this command.;
const CCommand@ GetArguments() const;
//Gets the entire command string;
const string& GetCommand() const;
//Gets the say type of this text;
ClientSayType GetSayType() const;
//Gets the player that is saying something;
CBasePlayer@ GetPlayer() const;
}
//Script console command manager.;
class CConCommandSystem {
//Executes an Angelscript server command.;
void ServerCommand(const string& in szCommand);
//If the current command was executed by a player, this returns that player.;
CBasePlayer@ GetCurrentPlayer() const;
}
//CVar class;
class CCVar {
//Sets the given boolean as the value.;
void SetBool(const bool bValue);
//Sets the given integer as the value.;
void SetInt(const int iValue);
//Sets the given float as the value.;
void SetFloat(const float flValue);
//Sets the given string as the value.;
void SetString(const string& in szValue);
//Converts the value to a boolean.;
bool GetBool() const;
//Converts the value to an integer.;
int GetInt() const;
//Converts the value to a float.;
float GetFloat() const;
//Converts the value to a string.;
const string& GetString() const;
//Gets the default value for this cvar.;
const string& GetDefaultValue() const;
//Constructor;
CCVar@ CCVar(const string& in szName, const string& in szValue, const string& in szHelpInfo = "", const ConCommandFlags_t flags = ConCommandFlag::ConCommandFlag::None, CVarCallback@ pCallback = null);
//Constructor;
CCVar@ CCVar(const string& in szName, float flValue = 0, const string& in szHelpInfo = "", const ConCommandFlags_t flags = ConCommandFlag::ConCommandFlag::None, CVarCallback@ pCallback = null);
//Whether this command was added to the list of commands.\nMust be added to be usable from the console.;
bool HasBeenAdded() const;
//Gets the name of the module that owns (created) this command.;
const string& GetOwningModuleName() const;
//Gets the type of this console command.;
ConCommandKind::Type GetKind() const;
//Gets the help info describing this command.;
const string& GetHelpInfo() const;
//Gets the fully qualified name of this command. This is the name that the command is referred by when called.;
const string& GetFullyQualifiedName() const;
//Gets the name of this command.;
const string& GetName() const;
}
//Client console command class;
class CClientCommand {
//Constructor;
CClientCommand@ CClientCommand(const string& in szName, const string& in szHelpInfo, ClientCommandCallback@ pCallback, const ConCommandFlags_t flags = ConCommandFlag::ConCommandFlag::None);
//Whether this command was added to the list of commands.\nMust be added to be usable from the console.;
bool HasBeenAdded() const;
//Gets the name of the module that owns (created) this command.;
const string& GetOwningModuleName() const;
//Gets the type of this console command.;
ConCommandKind::Type GetKind() const;
//Gets the help info describing this command.;
const string& GetHelpInfo() const;
//Gets the fully qualified name of this command. This is the name that the command is referred by when called.;
const string& GetFullyQualifiedName() const;
//Gets the name of this command.;
const string& GetName() const;
}
//Console command class;
class CConCommand {
//Constructor;
CConCommand@ CConCommand(const string& in szName, const string& in szHelpInfo, ConCommandCallback@ pCallback, const ConCommandFlags_t flags = ConCommandFlag::ConCommandFlag::None);
//Whether this command was added to the list of commands.\nMust be added to be usable from the console.;
bool HasBeenAdded() const;
//Gets the name of the module that owns (created) this command.;
const string& GetOwningModuleName() const;
//Gets the type of this console command.;
ConCommandKind::Type GetKind() const;
//Gets the help info describing this command.;
const string& GetHelpInfo() const;
//Gets the fully qualified name of this command. This is the name that the command is referred by when called.;
const string& GetFullyQualifiedName() const;
//Gets the name of this command.;
const string& GetName() const;
}
//Command arguments.;
class CCommand {
//Find an int value for a given argument. Returns iDefault if no such argument exists, or no value exists for it. Otherwise, returns the value, converted to an int;
int FindIntArg(const string& in szArgument, const int iDefault = 0) const;
//Find a value for a given argument. If the argument does not exist or has no value, an empty string is returned. Otherwise, returns the value.;
string FindArg(const string& in szArgument) const;
//Gets the argument by index.;
string opIndex(const int iIndex) const;
//Gets the argument by index.;
string Arg(const int iIndex) const;
//Gets all arguments as a single string.;
string GetArgumentsString() const;
//Gets the entire command as a string.;
string GetCommandString() const;
//Gets the number of arguments.;
int ArgC() const;
}
//This class can log data to the Angelscript log file.;
class CLog {
//Prints formatted data to the file. Uses SC printf formatting style.;
bool PrintF(const string& in szFormat, ?& in, ?& in, ?& in, ?& in, ?& in, ?& in, ?& in, ?& in);
//Prints formatted data to the file. Uses SC printf formatting style.;
bool PrintF(const string& in szFormat, ?& in, ?& in, ?& in, ?& in, ?& in, ?& in, ?& in);
//Prints formatted data to the file. Uses SC printf formatting style.;
bool PrintF(const string& in szFormat, ?& in, ?& in, ?& in, ?& in, ?& in, ?& in);
//Prints formatted data to the file. Uses SC printf formatting style.;
bool PrintF(const string& in szFormat, ?& in, ?& in, ?& in, ?& in, ?& in);
//Prints formatted data to the file. Uses SC printf formatting style.;
bool PrintF(const string& in szFormat, ?& in, ?& in, ?& in, ?& in);
//Prints formatted data to the file. Uses SC printf formatting style.;
bool PrintF(const string& in szFormat, ?& in, ?& in, ?& in);
//Prints formatted data to the file. Uses SC printf formatting style.;
bool PrintF(const string& in szFormat, ?& in, ?& in);
//Prints formatted data to the file. Uses SC printf formatting style.;
bool PrintF(const string& in szFormat, ?& in);
//Prints formatted data to the file. Uses SC printf formatting style.;
bool PrintF(const string& in szFormat);
}
//Network message class. Used to send messages to clients.;
class NetworkMessage {
//Writes a float to the buffer.;
void WriteFloat(float flValue);
//Writes an entity index to the buffer.;
void WriteEntity(CBaseEntity@ pEntity);
//Writes an entity index to the buffer.;
void WriteEntity(int iEntity);
//Writes a string to the buffer.;
void WriteString(const string& in szString);
//Writes a vector to the buffer.;
void WriteVector(const Vector& in vecVector);
//Writes a coordinate to the buffer.;
void WriteCoord(float flValue);
//Writes an angle to the buffer.;
void WriteAngle(float flValue);
//Writes a long to the buffer.;
void WriteLong(int32 long);
//Writes a short to the buffer.;
void WriteShort(int16 short);
//Writes a character to the buffer.;
void WriteChar(const string& in szChar);
//Writes a byte to the buffer.;
void WriteByte(uint8 byte);
//Ends the message. Must be called to send the message.;
void End();
//Constructor;
NetworkMessage@ NetworkMessage(NetworkMessageDest dest, NetworkMessages::NetworkMessageType type, const Vector& in vecOrigin, edict_t@ pEdict = null);
//Constructor;
NetworkMessage@ NetworkMessage(NetworkMessageDest dest, NetworkMessages::NetworkMessageType type, edict_t@ pEdict = null);
}
//Admin control panel.;
class CAdminControl {
//Slaps the given player. Slap direction is randomized.;
bool SlapPlayer(CBasePlayer@ pSlappee, float flDamage, int iDamageType = 0);
//Slaps the given player. Slapping player must have admin rights. Target player cannot be an admin. Slap direction is randomized.;
bool SlapPlayer(CBasePlayer@ pSlapper, CBasePlayer@ pSlappee, float flDamage, int iDamageType = 0);
//Slaps the given player.;
bool SlapPlayer(CBasePlayer@ pSlappee, float flDamage, const Vector& in vecDirection, int iDamageType = 0);
//Slaps the given player. Slapping player must have admin rights. Target player cannot be an admin.;
bool SlapPlayer(CBasePlayer@ pSlapper, CBasePlayer@ pSlappee, float flDamage, const Vector& in vecDirection, int iDamageType = 0);
//Bans the given player.;
bool BanPlayer(CBasePlayer@ pBannee, const float flCustomBanTime = -1);
//Bans the given player. Banning player must have admin rights Target player cannot be an admin.;
bool BanPlayer(CBasePlayer@ pBanner, CBasePlayer@ pBannee, const float flCustomBanTime = -1);
//Kicks the given player.;
bool KickPlayer(CBasePlayer@ pKickee, const float flCustomBanTime = -1);
//Kicks the given player. Kicking player must have admin rights. Target player cannot be an admin.;
bool KickPlayer(CBasePlayer@ pKicker, CBasePlayer@ pKickee, const float flCustomBanTime = -1);
//Kills the given player.;
bool KillPlayer(CBasePlayer@ pKillee, float flRespawntime = -1.0f);
//Kills the given player. Killing player must have admin rights. Target player cannot be an admin.;
bool KillPlayer(CBasePlayer@ pKiller, CBasePlayer@ pKillee, float flRespawntime = -1.0f);
//Gets the number of reserved slots.;
uint GetReservedSlots() const;
//Sets the number of reserved slots.;
void SetReservedSlots(uint uiReservedSlots);
}
//Represents the difference between 2 times.;
class TimeDifference {
//Sets the time difference to the range between 0 and time.;
void SetTime(const DateTime& in time);
//Sets the time difference to the range between beginning and end. If begin is later than end, is negative.;
void SetDifferenceBetween(const DateTime& in end, const DateTime& in begin);
//Makes the time difference absolute.;
void MakeAbsolute();
//Gets the time difference in years.;
int GetYears() const;
//Gets the time difference in days.;
int GetDays() const;
//Gets the time difference in hours.;
int GetHours() const;
//Gets the time difference in minutes.;
int GetMinutes() const;
//Gets the time difference in seconds.;
int GetSeconds() const;
//Returns whether the time difference is positive.;
bool IsPositive() const;
//Gets the time difference;
double GetTimeDifference() const;
//Assignment operator;
TimeDifference& opAssign( const DateTime& in time);
//Assignment operator;
TimeDifference& opAssign(double timeDiff);
//Assignment operator;
TimeDifference& opAssign(const TimeDifference& in other);
//Sets the time difference to the range between 0 and time.;
void TimeDifference(const DateTime& in time);
//Sets the time difference to the range between beginning and end. If begin is later than end, is negative.;
void TimeDifference(const DateTime& in end, const DateTime& in begin);
//Sets the time difference to the given value, in seconds;
void TimeDifference(double flValue);
//Copy constructor;
void TimeDifference(const TimeDifference& in other);
//Default constructor;
void TimeDifference();
}
//DateTime class.\nNote: milliseconds default to 0 due to limited accuracy.;
class DateTime {
//Adds this DateTime and the given TimeDifferene together, returning a copy containing the new time.;
DateTime opAdd(const TimeDifference& in diffTime) const;
//Adds the given TimeDifference to this one.;
DateTime& opAddAssign(const TimeDifference& in diffTime);
//Subtracts the given DateTime from this one, resulting in a TimeDifference object.;
TimeDifference opSub(const DateTime& in other) const;
//Comparison operator.;
int opCmp(const DateTime& in other) const;
//Returns whether these two DateTimes represent the same time.;
bool opEquals(const DateTime& in other) const;
//Returns a string representation of this datetime.;
void ToString(string& out szResult) const;
//Formats this datetime as a string.\nReturns the length of the destination string, or 0 if the buffer was not large enough.;
int Format(string& out szResult, const string& in szFormat) const;
//Set year.;
void SetYear(int iYear);
//Set month (0-11).;
void SetMonth(int iMonth);
//Set day of month (0-30).;
void SetDayOfMonth(int iDay);
//Set hours (0-23).;
void SetHour(int iHours);
//Set minutes (0-59).;
void SetMinutes(int iMinutes);
//Set seconds (0-59).;
void SetSeconds(int iSeconds);
//Set milliseconds.;
void SetMilliseconds(uint uiMilliseconds);
//Get year.;
int GetYear() const;
//Get month (0-11).;
int GetMonth() const;
//Get day of month (0-30).;
int GetDayOfMonth() const;
//Get hours (0-23).;
int GetHour() const;
//Get minutes (0-59).;
int GetMinutes() const;
//Get seconds (0-59).;
int GetSeconds() const;
//Get milliseconds.;
uint GetMilliseconds() const;
//Sets time as a unix timestamp.;
void SetUnixTimestamp(time_t time);
//Get time as a unix timestamp.;
time_t ToUnixTimestamp() const;
//Assignment operator.;
DateTime& opAssign(time_t time);
//Assignment operator.;
DateTime& opAssign(const DateTime& in ref);
//Copy constructor.;
void DateTime(const DateTime& in ref);
//Unix timestamp constructor.;
void DateTime(time_t time);
//Init constructor.;
void DateTime(uint uiMilliseconds, int iSeconds, int iMinutes, int iHour, int iDayOfMonth, int iMonth, int iYear);
//Default constructor.;
void DateTime();
}
//Vote class. Can be used to start custom votes.;
class Vote {
//Clears the user data set on this vote.;
void ClearUserData();
//Sets the user data on this vote.;
void SetUserData(any@ pUserData);
//Gets the user data set on this vote.;
any@ GetUserData();
//Starts this vote.;
void Start();
//Sets the vote end callback.;
void SetVoteEndCallback(VoteEnd@ pCallback);
//Sets the vote blocked callback.;
void SetVoteBlockedCallback(VoteBlocked@ pCallback);
//Sets the no button text.;
void SetNoText(const string& in szNoText);
//Gets the no button text.;
const string& GetNoText() const;
//Sets the yes button text.;
void SetYesText(const string& in szYesText);
//Gets the yes button text.;
const string& GetYesText() const;
//Sets the vote text.;
void SetVoteText(const string& in szVoteText);
//Gets the vote text.;
const string& GetVoteText() const;
//Gets name of this vote.;
const string& GetName() const;
//Constructor;
Vote@ Vote(const string& in szName, const string& in szVoteText, float flVoteLength, float flPercentageNeeded);
}
//Text menu manager.;
class CTextMenus {
//Invalid text menu id.;
const TextMenuId_t INVALID_TEXT_MENU_ID;
}
//Text menu.;
class CTextMenu {
//Adds an item to the menu.;
void AddItem( const string& in szName, any@ pUserData = null);
//Sets the title.;
void SetTitle(const string& in szTitle);
//Gets the title.;
const string& GetTitle() const;
//Gets the item at the given index.;
const CTextMenuItem@ GetItem(const size_t uiIndex) const;
//Gets the number of pages in this menu.;
uint GetPageCount() const;
//Gets the number of items in this menu.;
size_t GetItemCount() const;
//Opens the menu and keeps it open for the given amount of time.\nTime must be a positive value. Maximum 255 seconds. Pass 0 for infinite.\nYou must pass the player that receives this menu.;
void Open(const int iDisplayTime, const uint page, CBasePlayer@ pPlayer);
//Opens the menu and keeps it open for the given amount of time.\nTime must be a positive value. Maximum 255 seconds. Pass 0 for infinite.\nYou can optionally pass a list of players that receive this menu.;
void Open(const int iDisplayTime, const uint page, array<edict_t@>@ pPlayers = null);
//Unregisters this text menu.;
void Unregister();
//Registers this text menu.;
bool Register();
//Returns whether this menu is registered or not.;
bool IsRegistered() const;
//Gets this text menu\'s id. If CTextMenus::INVALID_TEXT_MENU_ID, this is an unregistered menu.;
TextMenuId_t get_Id() const;
//Constructor. You must pass a player slot callback and handle the input yourself.;
CTextMenu@ CTextMenu(TextMenuPlayerSlotCallback@ inputCB);
}
//Text menu item. Do not store handles to this object.;
class CTextMenuItem {
//User data. For internal use.;
any@ m_pUserData;
//Item name. Used for display.;
const string m_szName;
}
//Player start inventory manager\nCan be used to modify the player\'s start inventory during a map\nAlways check if inventory modification is available before trying to make any changes;
class CStartInventory {
//Gets the amount of a given entry.\nReturns 0 if the entry doesn\'t exist.;
uint GetAmount(const string& in szEntry) const;
//Limits the inventory content of the given item to at most uiAmount.\nDoes nothing if there is less than uiAmount in the inventory.;
bool Limit(const string& in szItem, uint uiAmount);
//Restocks the inventory with up to uiAmount of the given item.\nDoes nothing if the current amount already exceeds the given amount.;
bool Restock(const string& in szItem, uint uiAmount);
//Removes an entry from the inventory.;
bool Remove(const string& in szEntry);
//Add or subtract from an existing value.\nInserts if the value is not already in the inventory.;
bool Add(const string& in szEntry, uint uiAmount, bool fAdd = true);
//Set an entry to the inventory.;
void Set(const string& in szEntry);
//Set an item in the inventory.\nSets the amount if the item is already in the inventory.;
void Set(const string& in szItem, uint uiAmount);
//Returns whether the given entry is present in the inventory.;
bool Exists(const string& in szEntry) const;
//Returns whether inventory modification is available.;
bool IsAvailable() const;
}
//Plugin manager for handling basic plugin operations;
class CPluginManager {
//Gets the list of plugins as strings.;
array<string>@ GetPluginList() const;
}
//Persistence manager;
class CPersistence {
//Clears all values.;
void Clear(const PersistID_t ID);
//Clears the given value.;
void Clear(const PersistID_t ID, const string& in szKey);
//Sets the given value as a string.;
void Set(const PersistID_t ID, const string& in szKey, float flValue);
//Sets the given value as a string.;
void Set(const PersistID_t ID, const string& in szKey, uint32 uiValue);
//Sets the given value as a string.;
void Set(const PersistID_t ID, const string& in szKey, int32 iValue);
//Sets the given value as a boolean.;
void Set(const PersistID_t ID, const string& in szKey, bool fValue);
//Sets the given value as a string.;
void Set(const PersistID_t ID, const string& in szKey, const string& in szValue);
//Returns the given value as a float, or 0.0 if it does not exist.;
float GetFloat(const PersistID_t ID, const string& in szKey);
//Returns the given value as a unsigned long, or 0 if it does not exist.;
uint32 GetUlong(const PersistID_t ID, const string& in szKey, int iRadix = 10);
//Returns the given value as a long, or 0 if it does not exist.;
int32 GetLong(const PersistID_t ID, const string& in szKey, int iRadix = 10);
//Returns the given value as a boolean, or false if it does not exist.;
bool GetBoolean(const PersistID_t ID, const string& in szKey);
//Returns the given value as a string, or if it does not exist.;
const string& GetString(const PersistID_t ID, const string& in szKey);
//Returns whether the given key exists in this instance.;
bool Exists(const PersistID_t ID, const string& in szKey);
//Returns the number of persisted items in this instance.;
size_t Size(int iId) const;
//Returns the name of this instance.;
const string& GetName(const PersistID_t ID) const;
//Clears all persistence instances.\nMake sure to avoid calling handles referencing the cleared instances.;
void Clear();
//Clears the specified persistence instance.;
void ClearInstance(const PersistID_t ID);
//Clears the specified persistence instance.;
void ClearInstance(const string& in szName);
//Returns the name of the current map.;
const string& GetCurrentMapName() const;
//Returns the name of the previous map. Can be empty if the server has just started.;
const string& GetPreviousMapName() const;
//Returns a persistence instance tied to the given name. Will be created if it does not already exist.;
PersistID_t RegisterInstance(const string& in szName);
//Will make the persistence manager keep the previous map\'s persistence instancesif the previous map\'s name matches the given map name.;
bool KeepIfPrevious(const string& in szMapName);
//Will make the persistence manager keep the previous map\'s persistence instancesif the previous map\'s name matches any of the elements in the array.;
bool KeepIfPrevious(const array<string>@ pArray);
//Sets whether the previous map\'s persistence instances will be kept.;
void SetKeep(bool fValue);
//Returns whether the previous map\'s persistence instances will be kept.;
bool ShouldKeep() const;
//Returns whether the given persistence instance handle is valid.;
bool IsValidHandle(const PersistID_t ID) const;
//Returns whether the given persistence instance exists.;
bool Exists(const string& in szName) const;
//Id used by invalid persistence objects.;
const PersistID_t INVALID_ID;
}
//Map state variables;
class CMap {
//Load a custom skill file.;
bool LoadSkillFile(const string& in szFileName);
//Reload the global skill file.;
bool LoadGlobalSkillFile();
//Reload the standard map skill file (_skl.cfg).;
bool LoadMapSkillFile();
//Get if player models are forced;
bool HasForcedPlayerModels() const;
}
//Map cycle read only manager;
class CMapCycle {
//Gets the next map in the cycle after the given one.;
string GetNextMap(const string& in szMapName) const;
//Gets the next map in the cycle.;
string GetNextMap() const;
//Returns the number of maps in the map cycle.;
size_t Count() const;
//Gets the map cycle as an array of strings.;
array<string>@ GetMapCycle() const;
}
//Angelscript debugging functions;
class CAngelscript {
//Gets the minor version of the Angelscript Sven Co-op implementation;
uint GetMinorVersion() const;
//Gets the major version of the Angelscript Sven Co-op implementation;
uint GetMajorVersion() const;
//Gets the current version of Angelscript;
uint GetAngelscriptVersion() const;
//Gets the current version of Angelscript as a string;
string GetAngelscriptVersionString() const;
//Returns a brief description of Angelscript;
string GetAngelscriptDescription() const;
}
//Global state manager;
class CGlobalState {
//Dumps all global state objects to the console;
void DumpGlobals() const;
//Returns whether the global state object is in the table of objects;
bool EntityInTable(const string& in globalName) const;
//Gets the state of the specified global state object;
const GLOBALESTATE EntityGetState(const string& in globalName) const;
//Finds a global state object by name;
const GlobalEntity@ EntityFromTable(const string& in globalName) const;
//Updates the level name of the specified global state object;
void EntityUpdate(const string& in globalName, const string& in mapName);
//Sets the state of an existing global state object;
void EntitySetState(const string& in globalName, GLOBALESTATE state);
//Adds a new global state object;
void EntityAdd(const string& in globalName, const string& in mapName , GLOBALESTATE state);
//Clears all global states;
void ClearStates();
}
//Global state entity;
class GlobalEntity {
//Name of the level where this global state was last updated;
string levelName() const;
//Gets the name of this global state;
string name() const;
//Next global state entity in the list;
GlobalEntity@ next;
//Global state of this entity;
GLOBALESTATE state;
}
//Weapon functions class.;
class CWeaponFuncs {
//Deals radius damage.;
void RadiusDamage(const Vector& in vecSrc, entvars_t@ pevInflictor, entvars_t@ pevAttacker, float flDamage, float flRadius, int iClassIgnore, int bitsDamageType);
//Creates a damage decal on the given entity.;
int DamageDecal(CBaseEntity@ pEntity, int bitsDamageType);
//Spawns blood at the given location.;
void SpawnBlood(const Vector& in vecSpot, int bloodColor, float flDamage);
//Creates a gunshot decal at the trace hit point.;
void DecalGunshot(TraceResult& in trace, int iBulletType);
//Gets the weapon time base.;
float WeaponTimeBase();
//Add multi damage.;
void AddMultiDamage(entvars_t@ pevInflictor, CBaseEntity@ pEntity, float flDamage, int bitsDamageType);
//Applies multi damage.;
void ApplyMultiDamage(entvars_t@ pevInflictor, entvars_t@ pevAttacker);
//Clears the multi damage data.;
void ClearMultiDamage();
}
//Global player functions;
class CPlayerFuncs {
//Disconnects the bot. This will call ClientDisconnect and removes the entity. Do not use the entity after this call.;
void BotDisconnect(CBasePlayer@ pBot);
//Creates a bot with the given name.;
CBasePlayer@ CreateBot(const string& in szName);
//Gets the index of the given ammo, or -1 if it is invalid;
int GetAmmoIndex(const string& in szAmmoName);
//Gets a random float whose value is the same on both the client and server.;
float SharedRandomFloat(uint iRandomSeed, float iLow, float iHigh);
//Gets a random long whose value is the same on both the client and server.;
int SharedRandomLong(uint iRandomSeed, int iLow, int iHigh);
//Returns whether the given spawn point entity is occupied;
bool IsSpawnPointOccupied(CBaseEntity@ pSpawnEnt);
//Returns whether the given spawn point is valid for the given player;
bool IsSpawnPointValid(CBaseEntity@ pSpawnEnt, CBaseEntity@ pPlayer);
//Returns whether the given player passes the given spawn point\'s filter;
bool SpawnPointFilterPasses(CBaseEntity@ pSpawnEnt, CBaseEntity@ pPlayer);
//Relocates all players to active spawn points. If a player is dead and fRespawnDeadPlayers is true, the player is respawned.;
void RespawnAllPlayers(bool fMoveLivingPlayers = true, bool fRespawnDeadPlayers = false);
//Relocates the given player to an active spawn point. If the player is dead and fRespawnDeadPlayers is true, the player is respawned.;
void RespawnPlayer(CBasePlayer@ pPlayer, bool fMoveLivingPlayers = true, bool fRespawnDeadPlayers = false);
//Applies the map configuration on the given player.\nWill stack if called multiple times, unless fReEquip is true, in which case the player is stripped of all weapons and ammo first.;
void ApplyMapCfgToPlayer(CBasePlayer@ pPlayer, bool fReEquip = false);
//Converts a string containing one of AdminLevelToString\'s return values to an admin level.Returns ADMIN_NO if the string cannot be converted to a suitable constant;
AdminLevel_t StringToAdminLevel(const string& in szString) const;
//Converts the admin level to a string. If the level is an invalid value, an empty string is returned;
string AdminLevelToString(const AdminLevel_t adminLevel) const;
//Returns the admin level for a given player.;
AdminLevel_t AdminLevel(CBasePlayer@ pPlayer) const;
//Returns whether cheats are enabled for the given player.;
bool CheatsAllowed(CBasePlayer@ pPlayer, const string& in szCheatName, bool fMustBeAlive = true, bool fNoMessage = false) const;
//Makes the given player select the next best weapon available, based on the current weapon.;
bool GetNextBestWeapon(CBasePlayer@ pPlayer, CBasePlayerItem@ pCurrentWeapon);
//Applies concussion effect to a given player.;
void ConcussionEffect(CBaseEntity@ pEntity, float amplitude, float frequency, float fadeTime);
//Shows a message to all players.;
void ScreenFadeAll(const Vector& in color, float fadeTime, float fadeHold, int alpha, int flags);
//Shows a message to a given player.;
void ScreenFade(CBaseEntity@ pEntity, const Vector& in color, float fadeTime, float fadeHold, int alpha, int flags);
//Shakes the screen for all players;
void ScreenShakeAll(const Vector& in center, float amplitude, float frequency, float duration);
//Shakes the screen for players near a certain location;
void ScreenShake(const Vector& in center, float amplitude, float frequency, float duration, float radius);
//Gets the number of players that are currently connected to the server.;
int GetNumPlayers() const;
//Finds a player by name;
CBasePlayer@ FindPlayerByName(const string& in szName, bool bCaseSensitive = true);
//Finds a player by index;
CBasePlayer@ FindPlayerByIndex(int index);
//Updates value of a custom time display.;
void HudUpdateTime(CBasePlayer@ pTargetPlayer, uint8 iChannel, float flTime);
//Shows a custom time display to a given player or to all players if pTargetPlayer is not specified.;
void HudTimeDisplay(CBasePlayer@ pTargetPlayer, const HUDNumDisplayParams& in params);
//Updates value of a custom numberic display.;
void HudUpdateNum(CBasePlayer@ pTargetPlayer, uint8 iChannel, float flValue);
//Shows a custom numeric display to a given player or to all players if pTargetPlayer is not specified.;
void HudNumDisplay(CBasePlayer@ pTargetPlayer, const HUDNumDisplayParams& in params);
//Shows a custom HUD sprite to a given player or to all players if pTargetPlayer is not specified.;
void HudCustomSprite(CBasePlayer@ pTargetPlayer, const HUDSpriteParams& in params);
//Shows or hides HUD element occupying a given channel.;
void HudToggleElement(CBasePlayer@ pTargetPlayer, uint8 iChannel, bool fVisible);
//Prints a string containing key bindings to the screen of all players.;
void PrintKeyBindingStringAll(const string& in szString);
//Prints a string containing key bindings to the screen of the given player.;
void PrintKeyBindingString(CBasePlayer@ pPlayer, const string& in szString);
//Shows a HUD message to all players.;
void HudMessageAll(const HUDTextParams& in textParams, const string& in szMessage);
//Shows a HUD message to a given player.;
void HudMessage(CBasePlayer@ pTargetPlayer, const HUDTextParams& in textParams, const string& in szMessage);
//Shows a message to all players.;
void ShowMessageAll(const string& in szString);
//Shows a message to the given player.;
void ShowMessage(CBasePlayer@ pTargetPlayer, const string& in szString);
//Prints one or more messages centered on the HUD of all players.;
void CenterPrintAll(const string& in szMessage, const string& in szLine2 = "", const string& in szLine3 = "", const string& in szLine4 = "", const string& in szLine5 = "");
//Prints one or more messages on the HUD of all players.\nSee HUD enum.;
void ClientPrintAll(HUD iMsgDest, const string& in szMessage, const string& in szLine2 = "", const string& in szLine3 = "", const string& in szLine4 = "", const string& in szLine5 = "");
//Prints one or more messages on the HUD of the given player.\nSee HUD enum.;
void ClientPrint(CBasePlayer@ pTargetPlayer, HUD iMsgDest, const string& in szMessage, const string& in szLine2 = "", const string& in szLine3 = "", const string& in szLine4 = "", const string& in szLine5 = "");
//Says text to all players;
void SayTextAll(CBasePlayer@ pOriginatingPlayer, const string& in szText);
//Says text to a specific player;
void SayText(CBasePlayer@ pTargetPlayer, const string& in szText);
}
//Holds parameters for custom numeric/time display.;
class HUDNumDisplayParams {
//Assignment operator;
HUDNumDisplayParams& opAssign(const HUDNumDisplayParams& in other);
//Copy constructor;
void HUDNumDisplayParams(const HUDNumDisplayParams& in other);
//Constructor;
void HUDNumDisplayParams();
//Sprite height\nRange: 0-512 (0: auto; use total height of the sprite);
int16 height;
//Sprite width\nRange: 0-512 (0: auto; use total width of the sprite);
int16 width;
//Sprite top offset\nRange: 0-255;
uint8 top;
//Sprite left offset\nRange: 0-255;
uint8 left;
//Sprite name;
string_t spritename;
//Effect\nSee HUD_EFFECT enum.;
uint8 effect;
//Effect time;
float fxTime;
//Hold time;
float holdTime;
//Fade out time;
float fadeoutTime;
//Fade in time;
float fadeinTime;
//Color 2;
RGBA color2;
//Color 1;
RGBA color1;
//Vertical position on the screen.\n<0, 1.0> = top to bottom\n(-1.0, 0) = bottom to top\n-1.0 = centered;
float y;
//Horizontal position on the screen.\n<0, 1.0> = left to right\n(-1.0, 0) = right to left\n-1.0 = centered;
float x;
//Maximum number of digits (numeric display only);
uint8 maxdigits;
//Default number of digits (numeric display only);
uint8 defdigits;
//Value;
float value;
//Flags\nSee HUD_ELEM, HUD_NUM (numeric display only) and HUD_TIME (time display only) enums.;
int flags;
//Channel.\nRange: 0-15 (each module type has its own channel group).;
uint8 channel;
}
//Holds parameters for custom sprite.;
class HUDSpriteParams {
//Assignment operator;
HUDSpriteParams& opAssign(const HUDSpriteParams& in other);
//Copy constructor;
void HUDSpriteParams(const HUDSpriteParams& in other);
//Constructor;
void HUDSpriteParams();
//Effect\nSee HUD_EFFECT enum.;
uint8 effect;
//Effect time;
float fxTime;
//Hold time;
float holdTime;
//Fade out time;
float fadeoutTime;
//Fade in time;
float fadeinTime;
//Framerate;
float framerate;
//Number of frames;
uint8 numframes;
//Frame;
uint8 frame;
//Color 2;
RGBA color2;
//Color 1;
RGBA color1;
//Vertical position on the screen.\n<0, 1.0> = top to bottom\n(-1.0, 0) = bottom to top\n-1.0 = centered;
float y;
//Horizontal position on the screen.\n<0, 1.0> = left to right\n(-1.0, 0) = right to left\n-1.0 = centered;
float x;
//Sprite height\nRange: 0-512 (0: auto; use total height of the sprite);
int16 height;
//Sprite width\nRange: 0-512 (0: auto; use total width of the sprite);
int16 width;
//Sprite top offset\nRange: 0-255;
uint8 top;
//Sprite left offset\nRange: 0-255;
uint8 left;
//Sprite name;
string_t spritename;
//Flags\nSee HUD_ELEM and HUD_SPR enums.;
int flags;
//Channel.\nRange: 0-15 (each module type has its own channel group).;
uint8 channel;
}
//Parameters for text output to the HUD.;
class HUDTextParams {
//Assignment operator;
HUDTextParams& opAssign(const HUDTextParams& in other);
//Copy constructor;
void HUDTextParams(const HUDTextParams& in other);
//Constructor;
void HUDTextParams();
//Channel. 1-4.;
int channel;
//Effect time (scan effect only);
float fxTime;
//Hold time;
float holdTime;
//Fade out time;
float fadeoutTime;
//Fade in time;
float fadeinTime;
//Alpha 2;
uint8 a2;
//Blue 2;
uint8 b2;
//Green 2;
uint8 g2;
//Red 2;
uint8 r2;
//Alpha 1;
uint8 a1;
//Blue 1;
uint8 b1;
//Green 1;
uint8 g1;
//Red 1;
uint8 r1;
//Effects.\n0 : Fade In/Out\n1 : Credits\n2 : Scan Out;
int effect;
//Vertical position on the screen.\n<0, 1.0> = top to bottom\n(-1.0, 0) = bottom to top\n-1.0 = centered;
float y;
//Horizontal position on the screen.\n<0, 1.0> = left to right\n(-1.0, 0) = right to left\n-1.0 = centered;
float x;
}
//Color stored as four uint8 components;
class RGBA {
//Assignment operator;
RGBA& opAssign(const RGBA& in other);
//Copy constructor;
void RGBA(const RGBA& in other);
//Constructor;
void RGBA(uint8 r, uint8 g, uint8 b, uint8 a = 255);
//Constructor;
void RGBA();
//Alpha component;
uint8 a;
//Blue component;
uint8 b;
//Green component;
uint8 g;
//Red component;
uint8 r;
}
//Global entity functions;
class CEntityFuncs {
//Precaches the sounds used by a particular material;
void PrecacheMaterialSounds(const Materials material);
//Returns a randomly selected entity that has the given target name.;
CBaseEntity@ RandomTargetname(const string& in szTargetname);
//Casts an CBaseEntity@ representing a custom entity to the ScriptClassBaseClass type;
ScriptClassInterface@ CastToScriptClass(CBaseEntity@ pEntity);
//tosses a brass shell from passed origin at passed velocity.;
void EjectBrass(const Vector& in vecOrigin, const Vector& in vecVelocity, float flRotation, int iModel, TE_BOUNCE soundtype);
//Gets the edict for the given index.;
edict_t@ IndexEnt(int iEdictNum);
//Gets the index for the given edict.;
int EntIndex(edict_t@ pEdict);
//Returns whether this is a valid entity.;
bool IsValidEntity(edict_t@ pEntity);
//Removes the given entity before the next frame starts.;
void Remove(CBaseEntity@ pEntity);
//Returns whether the master with the given name would be triggered if activated by the given entity.;
bool IsMasterTriggered(const string& in szMaster, CBaseEntity@ pActivator);
//Triggers targets. If flDelay is nonzero, causes a temporary entity to be spawned to trigger the target at the given time.\nThe temporary entity becomes the caller, not the entity passed in.;
void FireTargets(const string& in szTargetName, CBaseEntity@ pActivator, CBaseEntity@ pCaller, USE_TYPE useType, float flValue = 0.0f, float flDelay = 0.0f);
//Gets the entity instance based on an edict number;
CBaseEntity@ Instance(int iEdictNum);
//Gets the entity instance of an entvars instance;
CBaseEntity@ Instance(entvars_t@ vars);
//Gets the entity instance of an edict instance;
CBaseEntity@ Instance(edict_t@ edict);
//Dispatches the initialization of the collision box of an entity;
void DispatchObjectCollisionBox(edict_t@ entity);
//Handles the initialization of keyvalues located in the entity\'s entvars_t object.;
bool EntvarsKeyvalue(edict_t@ entity, const string& in szKeyName, const string& in szValue);
//Dispatches the passing of a key value pair to an entity;
bool DispatchKeyValue(edict_t@ entity, const string& in szKeyName, const string& in szValue);
//Dispatches the spawning of an entity;
int DispatchSpawn(edict_t@ entity);
//Finds brush entities in a box;
int BrushEntsInBox(array<CBaseEntity@>@ pArray, const Vector& in mins, const Vector& in maxs );
//Finds targets in a box;
int TargetsInBox(array<CBaseEntity@>@ pArray, const Vector& in mins, const Vector& in maxs);