@amxts/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +162 -0
  3. package/README.ru.md +162 -0
  4. package/amxmodx/base/include/amxconst.inc +594 -0
  5. package/amxmodx/base/include/amxmisc.inc +902 -0
  6. package/amxmodx/base/include/amxmodx.inc +3447 -0
  7. package/amxmodx/base/include/amxmodx_version.inc +20 -0
  8. package/amxmodx/base/include/cellarray.inc +525 -0
  9. package/amxmodx/base/include/cellstack.inc +166 -0
  10. package/amxmodx/base/include/celltrie.inc +412 -0
  11. package/amxmodx/base/include/core.inc +202 -0
  12. package/amxmodx/base/include/csstats.inc +298 -0
  13. package/amxmodx/base/include/csstats_const.inc +29 -0
  14. package/amxmodx/base/include/cstrike.inc +1287 -0
  15. package/amxmodx/base/include/cstrike_const.inc +521 -0
  16. package/amxmodx/base/include/csx.inc +259 -0
  17. package/amxmodx/base/include/cvars.inc +547 -0
  18. package/amxmodx/base/include/datapack.inc +161 -0
  19. package/amxmodx/base/include/dbi.inc +154 -0
  20. package/amxmodx/base/include/dodconst.inc +152 -0
  21. package/amxmodx/base/include/dodfun.inc +152 -0
  22. package/amxmodx/base/include/dodstats.inc +69 -0
  23. package/amxmodx/base/include/dodx.inc +161 -0
  24. package/amxmodx/base/include/engine.inc +1343 -0
  25. package/amxmodx/base/include/engine_const.inc +310 -0
  26. package/amxmodx/base/include/engine_stocks.inc +248 -0
  27. package/amxmodx/base/include/esf.inc +70 -0
  28. package/amxmodx/base/include/esf_const.inc +74 -0
  29. package/amxmodx/base/include/fakemeta.inc +1127 -0
  30. package/amxmodx/base/include/fakemeta_const.inc +793 -0
  31. package/amxmodx/base/include/fakemeta_stocks.inc +395 -0
  32. package/amxmodx/base/include/fakemeta_util.inc +882 -0
  33. package/amxmodx/base/include/file.inc +666 -0
  34. package/amxmodx/base/include/float.inc +422 -0
  35. package/amxmodx/base/include/fun.inc +333 -0
  36. package/amxmodx/base/include/gameconfig.inc +93 -0
  37. package/amxmodx/base/include/geoip.inc +264 -0
  38. package/amxmodx/base/include/ham_const.inc +4352 -0
  39. package/amxmodx/base/include/hamsandwich.inc +439 -0
  40. package/amxmodx/base/include/hlsdk_const.inc +808 -0
  41. package/amxmodx/base/include/json.inc +777 -0
  42. package/amxmodx/base/include/lang.inc +119 -0
  43. package/amxmodx/base/include/message_const.inc +1130 -0
  44. package/amxmodx/base/include/message_stocks.inc +161 -0
  45. package/amxmodx/base/include/messages.inc +604 -0
  46. package/amxmodx/base/include/newmenus.inc +387 -0
  47. package/amxmodx/base/include/ns.inc +754 -0
  48. package/amxmodx/base/include/ns_const.inc +196 -0
  49. package/amxmodx/base/include/nvault.inc +154 -0
  50. package/amxmodx/base/include/regex.inc +348 -0
  51. package/amxmodx/base/include/sockets.inc +183 -0
  52. package/amxmodx/base/include/sorting.inc +107 -0
  53. package/amxmodx/base/include/sqlx.inc +582 -0
  54. package/amxmodx/base/include/string.inc +786 -0
  55. package/amxmodx/base/include/string_const.inc +156 -0
  56. package/amxmodx/base/include/string_stocks.inc +325 -0
  57. package/amxmodx/base/include/textparse_ini.inc +214 -0
  58. package/amxmodx/base/include/textparse_smc.inc +261 -0
  59. package/amxmodx/base/include/tfcconst.inc +84 -0
  60. package/amxmodx/base/include/tfcstats.inc +62 -0
  61. package/amxmodx/base/include/tfcx.inc +148 -0
  62. package/amxmodx/base/include/time.inc +118 -0
  63. package/amxmodx/base/include/tsconst.inc +154 -0
  64. package/amxmodx/base/include/tsfun.inc +198 -0
  65. package/amxmodx/base/include/tsstats.inc +65 -0
  66. package/amxmodx/base/include/tsx.inc +88 -0
  67. package/amxmodx/base/include/vault.inc +60 -0
  68. package/amxmodx/base/include/vector.inc +131 -0
  69. package/amxmodx/base/include/xs.inc +1570 -0
  70. package/as/amxts.d.ts +153 -0
  71. package/as/constants.ts +4730 -0
  72. package/as/effects.ts +1449 -0
  73. package/as/entities.ts +5482 -0
  74. package/as/events.ts +3054 -0
  75. package/as/facade.ts +4639 -0
  76. package/as/flags.ts +299 -0
  77. package/as/fs.ts +287 -0
  78. package/as/hooks.ts +18536 -0
  79. package/as/kit.ts +25 -0
  80. package/as/lib/check.ts +86 -0
  81. package/as/modules/http.ts +184 -0
  82. package/as/natives.ts +11845 -0
  83. package/as/os.ts +30 -0
  84. package/as/promise.ts +1392 -0
  85. package/as/promise.types.d.ts +82 -0
  86. package/as/remote.ts +288 -0
  87. package/as/tsconfig.json +22 -0
  88. package/as/vector.ts +65 -0
  89. package/bin/amxts.mjs +10 -0
  90. package/includes/menu_core.inc +355 -0
  91. package/includes/order.txt +54 -0
  92. package/includes/sources.json +27 -0
  93. package/includes/universal_config.inc +355 -0
  94. package/lint/oxlint-plugin.mjs +77 -0
  95. package/node_modules/assemblyscript/LICENSE +201 -0
  96. package/node_modules/assemblyscript/NOTICE +93 -0
  97. package/node_modules/assemblyscript/package.json +63 -0
  98. package/node_modules/assemblyscript/std/README.md +6 -0
  99. package/node_modules/assemblyscript/std/assembly/array.ts +526 -0
  100. package/node_modules/assemblyscript/std/assembly/arraybuffer.ts +77 -0
  101. package/node_modules/assemblyscript/std/assembly/atomics.ts +127 -0
  102. package/node_modules/assemblyscript/std/assembly/bindings/asyncify.ts +16 -0
  103. package/node_modules/assemblyscript/std/assembly/bindings/dom.ts +291 -0
  104. package/node_modules/assemblyscript/std/assembly/bindings/node.ts +6 -0
  105. package/node_modules/assemblyscript/std/assembly/builtins.ts +2631 -0
  106. package/node_modules/assemblyscript/std/assembly/compat.ts +2 -0
  107. package/node_modules/assemblyscript/std/assembly/console.ts +42 -0
  108. package/node_modules/assemblyscript/std/assembly/crypto.ts +9 -0
  109. package/node_modules/assemblyscript/std/assembly/dataview.ts +181 -0
  110. package/node_modules/assemblyscript/std/assembly/date.ts +373 -0
  111. package/node_modules/assemblyscript/std/assembly/diagnostics.ts +11 -0
  112. package/node_modules/assemblyscript/std/assembly/error.ts +44 -0
  113. package/node_modules/assemblyscript/std/assembly/function.ts +38 -0
  114. package/node_modules/assemblyscript/std/assembly/index.d.ts +2822 -0
  115. package/node_modules/assemblyscript/std/assembly/iterator.ts +35 -0
  116. package/node_modules/assemblyscript/std/assembly/map.ts +260 -0
  117. package/node_modules/assemblyscript/std/assembly/math.ts +3289 -0
  118. package/node_modules/assemblyscript/std/assembly/memory.ts +123 -0
  119. package/node_modules/assemblyscript/std/assembly/number.ts +388 -0
  120. package/node_modules/assemblyscript/std/assembly/object.ts +36 -0
  121. package/node_modules/assemblyscript/std/assembly/performance.ts +9 -0
  122. package/node_modules/assemblyscript/std/assembly/polyfills.ts +27 -0
  123. package/node_modules/assemblyscript/std/assembly/process.ts +50 -0
  124. package/node_modules/assemblyscript/std/assembly/reference.ts +48 -0
  125. package/node_modules/assemblyscript/std/assembly/regexp.ts +12 -0
  126. package/node_modules/assemblyscript/std/assembly/rt/README.md +83 -0
  127. package/node_modules/assemblyscript/std/assembly/rt/common.ts +81 -0
  128. package/node_modules/assemblyscript/std/assembly/rt/index-incremental.ts +2 -0
  129. package/node_modules/assemblyscript/std/assembly/rt/index-minimal.ts +2 -0
  130. package/node_modules/assemblyscript/std/assembly/rt/index-stub.ts +1 -0
  131. package/node_modules/assemblyscript/std/assembly/rt/index.d.ts +37 -0
  132. package/node_modules/assemblyscript/std/assembly/rt/itcms.ts +419 -0
  133. package/node_modules/assemblyscript/std/assembly/rt/rtrace.ts +15 -0
  134. package/node_modules/assemblyscript/std/assembly/rt/stub.ts +133 -0
  135. package/node_modules/assemblyscript/std/assembly/rt/tcms.ts +254 -0
  136. package/node_modules/assemblyscript/std/assembly/rt/tlsf.ts +592 -0
  137. package/node_modules/assemblyscript/std/assembly/rt.ts +87 -0
  138. package/node_modules/assemblyscript/std/assembly/set.ts +220 -0
  139. package/node_modules/assemblyscript/std/assembly/shared/feature.ts +65 -0
  140. package/node_modules/assemblyscript/std/assembly/shared/runtime.ts +11 -0
  141. package/node_modules/assemblyscript/std/assembly/shared/target.ts +11 -0
  142. package/node_modules/assemblyscript/std/assembly/shared/tsconfig.json +11 -0
  143. package/node_modules/assemblyscript/std/assembly/shared/typeinfo.ts +72 -0
  144. package/node_modules/assemblyscript/std/assembly/staticarray.ts +401 -0
  145. package/node_modules/assemblyscript/std/assembly/string.ts +847 -0
  146. package/node_modules/assemblyscript/std/assembly/symbol.ts +114 -0
  147. package/node_modules/assemblyscript/std/assembly/table.ts +16 -0
  148. package/node_modules/assemblyscript/std/assembly/tsconfig.json +6 -0
  149. package/node_modules/assemblyscript/std/assembly/typedarray.ts +1945 -0
  150. package/node_modules/assemblyscript/std/assembly/uri.ts +17 -0
  151. package/node_modules/assemblyscript/std/assembly/util/bytes.ts +107 -0
  152. package/node_modules/assemblyscript/std/assembly/util/casemap.ts +497 -0
  153. package/node_modules/assemblyscript/std/assembly/util/error.ts +54 -0
  154. package/node_modules/assemblyscript/std/assembly/util/hash.ts +117 -0
  155. package/node_modules/assemblyscript/std/assembly/util/math.ts +1922 -0
  156. package/node_modules/assemblyscript/std/assembly/util/memory.ts +290 -0
  157. package/node_modules/assemblyscript/std/assembly/util/number.ts +873 -0
  158. package/node_modules/assemblyscript/std/assembly/util/sort.ts +313 -0
  159. package/node_modules/assemblyscript/std/assembly/util/string.ts +1202 -0
  160. package/node_modules/assemblyscript/std/assembly/util/uri.ts +275 -0
  161. package/node_modules/assemblyscript/std/assembly/vector.ts +4 -0
  162. package/node_modules/assemblyscript/std/assembly.json +16 -0
  163. package/node_modules/assemblyscript/std/portable/index.d.ts +462 -0
  164. package/node_modules/assemblyscript/std/portable/index.js +416 -0
  165. package/node_modules/assemblyscript/std/portable.json +11 -0
  166. package/node_modules/assemblyscript/std/types/assembly/index.d.ts +1 -0
  167. package/node_modules/assemblyscript/std/types/assembly/package.json +3 -0
  168. package/node_modules/assemblyscript/std/types/portable/index.d.ts +1 -0
  169. package/node_modules/assemblyscript/std/types/portable/package.json +3 -0
  170. package/node_modules/assemblyscript/tsconfig-base.json +13 -0
  171. package/package.json +112 -0
  172. package/runtime/deps/assemblyscript/LICENSE +201 -0
  173. package/runtime/deps/assemblyscript/NOTICE +93 -0
  174. package/runtime/deps/assemblyscript/bin/asc.js +35 -0
  175. package/runtime/deps/assemblyscript/dist/asc.js +25035 -0
  176. package/runtime/deps/assemblyscript/dist/assemblyscript.js +337 -0
  177. package/runtime/deps/assemblyscript/node_modules/binaryen/LICENSE +201 -0
  178. package/runtime/deps/assemblyscript/node_modules/binaryen/index.js +28905 -0
  179. package/runtime/deps/assemblyscript/node_modules/binaryen/package.json +50 -0
  180. package/runtime/deps/assemblyscript/node_modules/long/LICENSE +202 -0
  181. package/runtime/deps/assemblyscript/node_modules/long/index.js +1581 -0
  182. package/runtime/deps/assemblyscript/node_modules/long/package.json +58 -0
  183. package/runtime/deps/assemblyscript/package.json +114 -0
  184. package/runtime/host/amxts.inc +85 -0
  185. package/runtime/licenses/AMXX-LICENSE.txt +34 -0
  186. package/runtime/licenses/AssemblyScript-LICENSE +201 -0
  187. package/runtime/licenses/AssemblyScript-NOTICE +93 -0
  188. package/runtime/licenses/Binaryen-LICENSE +201 -0
  189. package/runtime/licenses/Bun-LICENSE.md +84 -0
  190. package/runtime/licenses/GPL-3.0.txt +674 -0
  191. package/runtime/licenses/LLVM-LICENSE.TXT +279 -0
  192. package/runtime/licenses/README.md +25 -0
  193. package/runtime/licenses/WAMR-LICENSE +219 -0
  194. package/runtime/natives.txt +1095 -0
  195. package/runtime/patches/README.md +59 -0
  196. package/runtime/patches/assemblyscript-0.28.20-amxts.patch +14174 -0
  197. package/runtime/patches/wamr-2.4.5-amxts.patch +364 -0
  198. package/scripts/apply-docs.ts +508 -0
  199. package/scripts/asc.ts +27 -0
  200. package/scripts/auto-imports.ts +258 -0
  201. package/scripts/build-wasm.ts +595 -0
  202. package/scripts/check.ts +93 -0
  203. package/scripts/compile-cache.ts +179 -0
  204. package/scripts/compile.ts +401 -0
  205. package/scripts/docker-server.ts +73 -0
  206. package/scripts/docs/as/amxts.ts +210 -0
  207. package/scripts/docs/as/effects.ts +1684 -0
  208. package/scripts/docs/as/facade.ts +3302 -0
  209. package/scripts/docs/as/fs.ts +173 -0
  210. package/scripts/docs/as/lib/check.ts +68 -0
  211. package/scripts/docs/as/modules/http.ts +66 -0
  212. package/scripts/docs/as/os.ts +16 -0
  213. package/scripts/docs/as/promise.ts +132 -0
  214. package/scripts/docs/as/promise.types.ts +63 -0
  215. package/scripts/docs/as/vector.ts +48 -0
  216. package/scripts/docs/entities.ts +2338 -0
  217. package/scripts/docs/events.ts +245 -0
  218. package/scripts/docs/game.ts +497 -0
  219. package/scripts/docs/messages.ts +148 -0
  220. package/scripts/file-contents.ts +74 -0
  221. package/scripts/includes.ts +134 -0
  222. package/scripts/player-fields.ts +866 -0
  223. package/scripts/plugin-cache.ts +92 -0
  224. package/scripts/plugin-natives.ts +1157 -0
  225. package/scripts/prebuilt.ts +268 -0
  226. package/scripts/prepare.ts +134 -0
  227. package/scripts/project.ts +973 -0
  228. package/scripts/run.ts +28 -0
  229. package/scripts/shared-modules.ts +906 -0
  230. package/scripts/system.ts +33 -0
  231. package/scripts/tracked-fs.ts +115 -0
  232. package/scripts/typed-configs.ts +788 -0
  233. package/scripts/ui.ts +77 -0
  234. package/src/cli-api.mjs +175 -0
  235. package/src/parser/include-parser.ts +506 -0
  236. package/src/system.mjs +155 -0
  237. package/src/testing/compile-cache.ts +31 -0
  238. package/src/testing/compile.ts +222 -0
  239. package/src/testing/coroutines.ts +191 -0
  240. package/src/testing/index.ts +39 -0
  241. package/src/testing/kits.ts +55 -0
  242. package/src/testing/memory.ts +125 -0
  243. package/src/testing/natives.ts +925 -0
  244. package/src/testing/server.ts +1874 -0
  245. package/src/testing/setup.ts +63 -0
  246. package/src/testing/tables.ts +139 -0
  247. package/src/types.ts +51 -0
@@ -0,0 +1,604 @@
1
+ // vim: set ts=4 sw=4 tw=99 noet:
2
+ //
3
+ // AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
4
+ // Copyright (C) The AMX Mod X Development Team.
5
+ //
6
+ // This software is licensed under the GNU General Public License, version 3 or higher.
7
+ // Additional exceptions apply. For full license details, see LICENSE.txt or visit:
8
+ // https://alliedmods.net/amxmodx-license
9
+
10
+ //
11
+ // Message Functions
12
+ //
13
+
14
+ #if defined _coremsg_included
15
+ #endinput
16
+ #endif
17
+ #define _coremsg_included
18
+
19
+ #include <message_const>
20
+
21
+ /**
22
+ * Marks the beginning of a client message.
23
+ *
24
+ * @note You may generate menus, smoke, shockwaves, thunderlights,
25
+ * intermission and many other messages.
26
+ * @note For a list of HL game events, visit https://wiki.alliedmods.net/Half-Life_1_Game_Events
27
+ * @note For a list of HL engine messages, visit https://wiki.alliedmods.net/Half-Life_1_Engine_Messages
28
+ * @note You may also refer to the messages_const.inc file for examples.
29
+ * @note Each message starts with a message_begin() or message_begin_f() function
30
+ * and ends with message_end(). The specific message arguments go in between
31
+ * these two by using the write_*() functions found in messages.inc.
32
+ *
33
+ * @param dest Destination type (see MSG_* constants in messages_const.inc)
34
+ * @param msg_type Message id
35
+ * @param origin Message origin
36
+ * @param player Client index receiving the message or 0 for all clients
37
+ *
38
+ * @noreturn
39
+ * @error If an invalid message id is specified or an invalid number
40
+ * of parameters is passed, an error will be thrown.
41
+ */
42
+ native message_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0);
43
+
44
+ /**
45
+ * Marks the beginning of a client message.
46
+ *
47
+ * @note You may generate menus, smoke, shockwaves, thunderlights,
48
+ * intermission and many other messages.
49
+ * @note For a list of HL game events, visit https://wiki.alliedmods.net/Half-Life_1_Game_Events
50
+ * @note For a list of HL engine messages, visit https://wiki.alliedmods.net/Half-Life_1_Engine_Messages
51
+ * @note You may also refer to the messages_const.inc file for examples.
52
+ * @note This function is the same as message_begin(), but the origin
53
+ * argument accepts only float values in this one.
54
+ * @note Each message starts with a message_begin() or message_begin_f() function
55
+ * and ends with message_end(). The specific message arguments go in between
56
+ * these two by using the write_*() functions found in messages.inc.
57
+ *
58
+ * @param dest Destination type (see MSG_* constants in messages_const.inc)
59
+ * @param msg_type Message id
60
+ * @param origin Message origin
61
+ * @param player Client index receiving the message or 0 for all clients
62
+ *
63
+ * @noreturn
64
+ * @error If an invalid message id is specified or an invalid number
65
+ * of parameters is passed, an error will be thrown.
66
+ */
67
+ native message_begin_f(dest, msg_type, const Float:origin[3] = {0.0,0.0,0.0}, player = 0);
68
+
69
+ /**
70
+ * Ends a message that was started with message_begin() or message_begin_f().
71
+ *
72
+ * @note If the function is called without using message_begin() or
73
+ * message_begin_f() first, the server will crash immediately.
74
+ *
75
+ * @noreturn
76
+ */
77
+ native message_end();
78
+
79
+ /**
80
+ * Writes a single byte to a message.
81
+ *
82
+ * @note This function should only be used in between a message_begin()
83
+ * or message_begin_f() and a message_end() function. Trying to use
84
+ * it outside of these functions will crash the server immediately.
85
+ *
86
+ * @param x Byte to write
87
+ *
88
+ * @noreturn
89
+ */
90
+ native write_byte(x);
91
+
92
+ /**
93
+ * Writes a single character to a message.
94
+ *
95
+ * @note This function should only be used in between a message_begin()
96
+ * or message_begin_f() and a message_end() function. Trying to use
97
+ * it outside of these functions will crash the server immediately.
98
+ *
99
+ * @param x Character to write
100
+ *
101
+ * @noreturn
102
+ */
103
+ native write_char(x);
104
+
105
+ /**
106
+ * Writes a single number to a message (short).
107
+ *
108
+ * @note This function should only be used in between a message_begin()
109
+ * or message_begin_f() and a message_end() function. Trying to use
110
+ * it outside of these functions will crash the server immediately.
111
+ *
112
+ * @param x Number to write
113
+ *
114
+ * @noreturn
115
+ */
116
+ native write_short(x);
117
+
118
+ /**
119
+ * Writes a single number to a message (long).
120
+ *
121
+ * @note This function should only be used in between a message_begin()
122
+ * or message_begin_f() and a message_end() function. Trying to use
123
+ * it outside of these functions will crash the server immediately.
124
+ *
125
+ * @param x Number to write
126
+ *
127
+ * @noreturn
128
+ */
129
+ native write_long(x);
130
+
131
+ /**
132
+ * Writes an entity index to a message.
133
+ *
134
+ * @note This function should only be used in between a message_begin()
135
+ * or message_begin_f() and a message_end() function. Trying to use
136
+ * it outside of these functions will crash the server immediately.
137
+ *
138
+ * @param x Entity index to write
139
+ *
140
+ * @noreturn
141
+ */
142
+ native write_entity(x);
143
+
144
+ /**
145
+ * Writes an angle entry to a message.
146
+ *
147
+ * @note This function should only be used in between a message_begin()
148
+ * or message_begin_f() and a message_end() function. Trying to use
149
+ * it outside of these functions will crash the server immediately.
150
+ *
151
+ * @param x Angle to write
152
+ *
153
+ * @noreturn
154
+ */
155
+ native write_angle(x);
156
+
157
+ /**
158
+ * Writes an angle entry to a message using a float value.
159
+ *
160
+ * @note This function should only be used in between a message_begin()
161
+ * or message_begin_f() and a message_end() function. Trying to use
162
+ * it outside of these functions will crash the server immediately.
163
+ *
164
+ * @param x Angle to write
165
+ *
166
+ * @noreturn
167
+ */
168
+ native write_angle_f(Float:x);
169
+
170
+ /**
171
+ * Writes a coordinate entry to a message.
172
+ *
173
+ * @note This function should only be used in between a message_begin()
174
+ * or message_begin_f() and a message_end() function. Trying to use
175
+ * it outside of these functions will crash the server immediately.
176
+ *
177
+ * @param x Coordinate to write
178
+ *
179
+ * @noreturn
180
+ */
181
+ native write_coord(x);
182
+
183
+ /**
184
+ * Writes a coordinate entry to a message using a float value.
185
+ *
186
+ * @note This function should only be used in between a message_begin()
187
+ * or message_begin_f() and a message_end() function. Trying to use
188
+ * it outside of these functions will crash the server immediately.
189
+ *
190
+ * @param x Coordinate to write
191
+ *
192
+ * @noreturn
193
+ */
194
+ native write_coord_f(Float:x);
195
+
196
+ /**
197
+ * Writes a string to a message.
198
+ *
199
+ * @note This function should only be used in between a message_begin()
200
+ * or message_begin_f() and a message_end() function. Trying to use
201
+ * it outside of these functions will crash the server immediately.
202
+ *
203
+ * @param x String to write
204
+ *
205
+ * @noreturn
206
+ */
207
+ native write_string(const x[]);
208
+
209
+ /**
210
+ * Marks the beginning of a client message.
211
+ *
212
+ * @note You may generate menus, smoke, shockwaves, thunderlights,
213
+ * intermission and many other messages.
214
+ * @note For a list of HL game events, visit https://wiki.alliedmods.net/Half-Life_1_Game_Events
215
+ * @note For a list of HL engine messages, visit https://wiki.alliedmods.net/Half-Life_1_Engine_Messages
216
+ * @note You may also refer to the messages_const.inc file for examples.
217
+ * @note This function is the same as message_begin(), except that the messages
218
+ * sent with this one are also sent to all other AMXX and Metamod plugins.
219
+ * This means that if you send one of these messages, other plugins will
220
+ * be notified of that message, which was previously impossible.
221
+ * @note BE CAREFUL! Using this incorrectly, or not for its intended purpose,
222
+ * could cause infinite recursion or something just as bad!
223
+ * @note Each message starts with a emessage_begin() or emessage_begin_f() function
224
+ * and ends with emessage_end(). The specific message arguments go in between
225
+ * these two by using the ewrite_*() functions found in messages.inc.
226
+ *
227
+ * @param dest Destination type (see MSG_* constants in messages_const.inc)
228
+ * @param msg_type Message id
229
+ * @param origin Message origin
230
+ * @param player Client index receiving the message or 0 for all clients
231
+ *
232
+ * @noreturn
233
+ * @error If an invalid message id is specified or an invalid number
234
+ * of parameters is passed, an error will be thrown.
235
+ */
236
+ native emessage_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0);
237
+
238
+ /**
239
+ * Marks the beginning of a client message.
240
+ *
241
+ * @note You may generate menus, smoke, shockwaves, thunderlights,
242
+ * intermission and many other messages.
243
+ * @note For a list of HL game events, visit https://wiki.alliedmods.net/Half-Life_1_Game_Events
244
+ * @note For a list of HL engine messages, visit https://wiki.alliedmods.net/Half-Life_1_Engine_Messages
245
+ * @note You may also refer to the messages_const.inc file for examples.
246
+ * @note This function is the same as message_begin_f(), except that the messages
247
+ * sent with this one are also sent to all other AMXX and Metamod plugins.
248
+ * This means that if you send one of these messages, other plugins will
249
+ * be notified of that message, which was previously impossible.
250
+ * @note BE CAREFUL! Using this incorrectly, or not for its intended purpose,
251
+ * could cause infinite recursion or something just as bad!
252
+ * @note This function is the same as emessage_begin(), but the origin
253
+ * argument accepts only float values in this one.
254
+ * @note Each message starts with a emessage_begin() or emessage_begin_f() function
255
+ * and ends with emessage_end(). The specific message arguments go in between
256
+ * these two by using the ewrite_*() functions found in messages.inc.
257
+ *
258
+ * @param dest Destination type (see MSG_* constants in messages_const.inc)
259
+ * @param msg_type Message id
260
+ * @param origin Message origin
261
+ * @param player Client index receiving the message or 0 for all clients
262
+ *
263
+ * @noreturn
264
+ * @error If an invalid message id is specified or an invalid number
265
+ * of parameters is passed, an error will be thrown.
266
+ */
267
+ native emessage_begin_f(dest, msg_type, const Float:origin[3] = {0.0,0.0,0.0}, player = 0);
268
+
269
+ /**
270
+ * Ends a message that was started with emessage_begin() or emessage_begin_f().
271
+ *
272
+ * @note If the function is called without using emessage_begin() or
273
+ * emessage_begin_f() first, the server will crash immediately.
274
+ *
275
+ * @noreturn
276
+ */
277
+ native emessage_end();
278
+
279
+ /**
280
+ * Writes a single byte to a message.
281
+ *
282
+ * @note This function should only be used in between a emessage_begin()
283
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
284
+ * it outside of these functions will crash the server immediately.
285
+ *
286
+ * @param x Byte to write
287
+ *
288
+ * @noreturn
289
+ */
290
+ native ewrite_byte(x);
291
+
292
+ /**
293
+ * Writes a single character to a message.
294
+ *
295
+ * @note This function should only be used in between a emessage_begin()
296
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
297
+ * it outside of these functions will crash the server immediately.
298
+ *
299
+ * @param x Character to write
300
+ *
301
+ * @noreturn
302
+ */
303
+ native ewrite_char(x);
304
+
305
+ /**
306
+ * Writes a single number to a message (short).
307
+ *
308
+ * @note This function should only be used in between a emessage_begin()
309
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
310
+ * it outside of these functions will crash the server immediately.
311
+ *
312
+ * @param x Number to write
313
+ *
314
+ * @noreturn
315
+ */
316
+ native ewrite_short(x);
317
+
318
+ /**
319
+ * Writes a single number to a message (long).
320
+ *
321
+ * @note This function should only be used in between a emessage_begin()
322
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
323
+ * it outside of these functions will crash the server immediately.
324
+ *
325
+ * @param x Number to write
326
+ *
327
+ * @noreturn
328
+ */
329
+ native ewrite_long(x);
330
+
331
+ /**
332
+ * Writes an entity index to a message.
333
+ *
334
+ * @note This function should only be used in between a emessage_begin()
335
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
336
+ * it outside of these functions will crash the server immediately.
337
+ *
338
+ * @param x Entity index to write
339
+ *
340
+ * @noreturn
341
+ */
342
+ native ewrite_entity(x);
343
+
344
+ /**
345
+ * Writes an angle entry to a message.
346
+ *
347
+ * @note This function should only be used in between a emessage_begin()
348
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
349
+ * it outside of these functions will crash the server immediately.
350
+ *
351
+ * @param x Angle to write
352
+ *
353
+ * @noreturn
354
+ */
355
+ native ewrite_angle(x);
356
+
357
+ /**
358
+ * Writes an angle entry to a message using a float value.
359
+ *
360
+ * @note This function should only be used in between a emessage_begin()
361
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
362
+ * it outside of these functions will crash the server immediately.
363
+ *
364
+ * @param x Angle to write
365
+ *
366
+ * @noreturn
367
+ */
368
+ native ewrite_angle_f(Float:x);
369
+
370
+ /**
371
+ * Writes a coordinate entry to a message.
372
+ *
373
+ * @note This function should only be used in between a emessage_begin()
374
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
375
+ * it outside of these functions will crash the server immediately.
376
+ *
377
+ * @param x Coordinate to write
378
+ *
379
+ * @noreturn
380
+ */
381
+ native ewrite_coord(x);
382
+
383
+ /**
384
+ * Writes a coordinate entry to a message using a float value.
385
+ *
386
+ * @note This function should only be used in between a emessage_begin()
387
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
388
+ * it outside of these functions will crash the server immediately.
389
+ *
390
+ * @param x Coordinate to write
391
+ *
392
+ * @noreturn
393
+ */
394
+ native ewrite_coord_f(Float:x);
395
+
396
+ /**
397
+ * Writes a string to a message.
398
+ *
399
+ * @note This function should only be used in between a emessage_begin()
400
+ * or emessage_begin_f() and a emessage_end() function. Trying to use
401
+ * it outside of these functions will crash the server immediately.
402
+ *
403
+ * @param x String to write
404
+ *
405
+ * @noreturn
406
+ */
407
+ native ewrite_string(const x[]);
408
+
409
+ /**
410
+ * Sets whether or not an engine message will be blocked.
411
+ *
412
+ * @note For a list of message flags, have a look at the BLOCK_* constants
413
+ * in message_const.inc.
414
+ *
415
+ * @param iMessage Message id
416
+ * @param iMessageFlags BLOCK_* constant
417
+ *
418
+ * @noreturn
419
+ * @error If an invalid message id is specified, an error
420
+ * will be thrown.
421
+ */
422
+ native set_msg_block(iMessage, iMessageFlags);
423
+
424
+ /**
425
+ * Gets whether or not an engine message is blocked.
426
+ *
427
+ * @param iMessage Message id
428
+ *
429
+ * @return BLOCK_* constant
430
+ * @error If an invalid message id is specified, an error
431
+ * will be thrown.
432
+ */
433
+ native get_msg_block(iMessage);
434
+
435
+ /**
436
+ * Lets you directly hook a message in the engine.
437
+ *
438
+ * @note The function is called in the following manner:
439
+ * msg_id - Message id
440
+ * msg_dest - Destination type (see MSG_* constants in messages_const.inc)
441
+ * msg_entity - Entity receiving the message
442
+ *
443
+ * @note You can overwrite the message before anything happens by using the
444
+ * set_msg_arg_* functions and either let the message continue by
445
+ * returning PLUGIN_CONTINUE or fully block it with PLUGIN_HANDLED.
446
+ * @note If you hook a message, the message is stored but not sent. You have
447
+ * the opportunity to not only execute code, but to get/set the contents
448
+ * of the message before you choose to either block it or let it go on
449
+ * its way.
450
+ * @note The return value can be passed to unregister_message() in order to
451
+ * stop the message from being hooked.
452
+ *
453
+ * @param iMsgId Message id
454
+ * @param szFunction Function that will be called
455
+ *
456
+ * @return Id that can be passed to unregister_message() on
457
+ * success, or 0 if an invalid message id is passed
458
+ * @error If the specified function can't be found, an
459
+ * error will be thrown.
460
+ */
461
+ native register_message(iMsgId, const szFunction[]);
462
+
463
+ /**
464
+ * Unregisters a message hook previously created with register_message().
465
+ *
466
+ * @note You must pass the proper message id and return value from the
467
+ * message to unregister the message successfully.
468
+ *
469
+ * @param iMsgId Message id
470
+ * @param registeredmsg Registered message id
471
+ *
472
+ * @return Id that can again be passed to register_message() on
473
+ * success, or 0 if an invalid message id is passed
474
+ * @error If an invalid registered message handle is passed, an
475
+ * error will be thrown.
476
+ */
477
+ native unregister_message(iMsgId, registeredmsg);
478
+
479
+ /**
480
+ * Gets number of arguments that were passed to a message.
481
+ *
482
+ * @note This function will fail if used outside a hooked message scope, thus
483
+ * it should never be used unless inside a registered message function.
484
+ *
485
+ * @return Number of arguments
486
+ */
487
+ native get_msg_args();
488
+
489
+ /**
490
+ * Gets the argument type of a specified argument.
491
+ *
492
+ * @note This function will fail if used outside a hooked message scope, thus
493
+ * it should never be used unless inside a registered message function.
494
+ *
495
+ * @param argn Argument number
496
+ *
497
+ * @return Argument type (see ARG_* constants in message_const.inc)
498
+ */
499
+ native get_msg_argtype(argn);
500
+
501
+ /**
502
+ * Gets the integer value of a specified argument.
503
+ *
504
+ * @note This function will fail if used outside a hooked message scope, thus
505
+ * it should never be used unless inside a registered message function.
506
+ *
507
+ * @param argn Argument number
508
+ *
509
+ * @return Argument value as an integer
510
+ * @error If an invalid message argument is passed, an
511
+ * error will be thrown.
512
+ */
513
+ native get_msg_arg_int(argn);
514
+
515
+ /**
516
+ * Gets the float value of a specified argument.
517
+ *
518
+ * @note This function will fail if used outside a hooked message scope, thus
519
+ * it should never be used unless inside a registered message function.
520
+ *
521
+ * @param argn Argument number
522
+ *
523
+ * @return Argument value as a float
524
+ * @error If an invalid message argument is passed, an
525
+ * error will be thrown.
526
+ */
527
+ native Float:get_msg_arg_float(argn);
528
+
529
+ /**
530
+ * Gets the string value from a specified argument.
531
+ *
532
+ * @note This function will fail if used outside a hooked message scope, thus
533
+ * it should never be used unless inside a registered message function.
534
+ *
535
+ * @param argn Argument number
536
+ * @param szReturn Buffer to store the value in
537
+ * @param iLength Maximum buffer length
538
+ *
539
+ * @return String length
540
+ * @error If an invalid message argument is passed, an
541
+ * error will be thrown.
542
+ */
543
+ native get_msg_arg_string(argn, szReturn[], iLength);
544
+
545
+ /**
546
+ * Sets the integer value of a specified argument.
547
+ *
548
+ * @note This function will fail if used outside a hooked message scope, thus
549
+ * it should never be used unless inside a registered message function.
550
+ *
551
+ * @param argn Argument number
552
+ * @param argtype Argument type (see ARG_* constants in message_const.inc)
553
+ * @param iValue Argument value
554
+ *
555
+ * @noreturn
556
+ * @error If an invalid message argument is passed, an
557
+ * error will be thrown.
558
+ */
559
+ native set_msg_arg_int(argn, argtype, iValue);
560
+
561
+ /**
562
+ * Sets the float value of a specified argument.
563
+ *
564
+ * @note This function will fail if used outside a hooked message scope, thus
565
+ * it should never be used unless inside a registered message function.
566
+ *
567
+ * @param argn Argument number
568
+ * @param argtype Argument type (see ARG_* constants in message_const.inc)
569
+ * @param fValue Argument value
570
+ *
571
+ * @noreturn
572
+ * @error If an invalid message argument is passed, an
573
+ * error will be thrown.
574
+ */
575
+ native set_msg_arg_float(argn, argtype, Float:fValue);
576
+
577
+ /**
578
+ * Sets the string value of a specified argument.
579
+ *
580
+ * @note This function will fail if used outside a hooked message scope, thus
581
+ * it should never be used unless inside a registered message function.
582
+ *
583
+ * @param argn Argument number
584
+ * @param szString Argument value
585
+ *
586
+ * @noreturn
587
+ * @error If an invalid message argument is passed, an
588
+ * error will be thrown.
589
+ */
590
+ native set_msg_arg_string(argn, const szString[]);
591
+
592
+ /**
593
+ * Gets the origin of a message.
594
+ *
595
+ * @note This function will fail if used outside a hooked message scope, thus
596
+ * it should never be used unless inside a registered message function.
597
+ *
598
+ * @param _Origin Array to store the origin in
599
+ *
600
+ * @noreturn
601
+ * @error If the function is used outside a message hook, an
602
+ * error will be thrown.
603
+ */
604
+ native get_msg_origin(const Float:_Origin[3]);