@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,298 @@
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
+ #if defined _csstats_included
11
+ #endinput
12
+ #endif
13
+ #define _csstats_included
14
+
15
+ #include <csstats_const>
16
+
17
+ /**
18
+ * Retrieves the client's current weapon statistics.
19
+ *
20
+ * @note For a list of default CS weapon ids see the CSW_* constants in
21
+ * amxconst.inc, this function also works on custom weapons.
22
+ * @note For a list of possible body hitplaces see the HIT_* constants in
23
+ * amxconst.inc
24
+ * @note For a list of possible stat constants see the STATSX_* constants in
25
+ * amxconst.inc
26
+ * @note The fields in the statistics are:
27
+ * 0 - Kills
28
+ * 1 - Deaths
29
+ * 2 - Headshots
30
+ * 3 - Teamkills
31
+ * 4 - Shots
32
+ * 5 - Hits
33
+ * 6 - Damage
34
+ *
35
+ * @param index Client index
36
+ * @param wpnindex Weapon id, or 0 to retrieve total statistics across all
37
+ * weapons
38
+ * @param stats Buffer to copy statistics to
39
+ * @param bodyhits Buffer to copy body hits to
40
+ *
41
+ * @return 1 on success, 0 if no statistics are available for the weapon
42
+ * id
43
+ * @error If an invalid client index or weapon id is provided, an
44
+ * error will be thrown.
45
+ */
46
+ native get_user_wstats(index, wpnindex, stats[STATSX_MAX_STATS], bodyhits[MAX_BODYHITS]);
47
+
48
+ /**
49
+ * Retrieves the client's weapon statistics from the current round.
50
+ *
51
+ * @note For a list of default CS weapon ids see the CSW_* constants in
52
+ * amxconst.inc, this function also works on custom weapons.
53
+ * @note For a list of possible body hitplaces see the HIT_* constants in
54
+ * amxconst.inc
55
+ * @note For a list of possible stat constants see the STATSX_* constants in
56
+ * amxconst.inc
57
+ * @note The fields in the statistics are:
58
+ * 0 - Kills
59
+ * 1 - Deaths
60
+ * 2 - Headshots
61
+ * 3 - Teamkills
62
+ * 4 - Shots
63
+ * 5 - Hits
64
+ * 6 - Damage
65
+ *
66
+ * @param index Client index
67
+ * @param wpnindex Weapon id, or 0 to retrieve total statistics across all
68
+ * weapons
69
+ * @param stats Buffer to copy statistics to
70
+ * @param bodyhits Buffer to copy body hits to
71
+ *
72
+ * @return 1 on success, 0 if no statistics are available for the
73
+ * weapon id
74
+ * @error If an invalid client index or weapon id is provided, an
75
+ * error will be thrown.
76
+ */
77
+ native get_user_wrstats(index, wpnindex, stats[STATSX_MAX_STATS], bodyhits[MAX_BODYHITS]);
78
+
79
+ /**
80
+ * Retrieves the client's weapon statistics from the permanent storage on the
81
+ * server.
82
+ *
83
+ * @note The permanent storage is updated on every respawn or client disconnect.
84
+ * @note Player rank is determined by the customizable "get_score" function in
85
+ * "data/csstats.amxx". By default it uses the difference of kills to
86
+ * deaths/teamkills.
87
+ * @note For a list of possible body hitplaces see the HIT_* constants in
88
+ * amxconst.inc
89
+ * @note For a list of possible stat constants see the STATSX_* constants in
90
+ * amxconst.inc
91
+ * @note The fields in the statistics are:
92
+ * 0 - Kills
93
+ * 1 - Deaths
94
+ * 2 - Headshots
95
+ * 3 - Teamkills
96
+ * 4 - Shots
97
+ * 5 - Hits
98
+ * 6 - Damage
99
+ * 7 - Rank
100
+ *
101
+ * @param index Client index
102
+ * @param stats Buffer to copy statistics to
103
+ * @param bodyhits Buffer to copy body hits to
104
+ *
105
+ * @return Players rank > 0 on success, or 0 if player is not ranked
106
+ * and no statistics are available
107
+ * @error If an invalid client index is provided, an error will be
108
+ * thrown.
109
+ */
110
+ native get_user_stats(index, stats[STATSX_MAX_STATS], bodyhits[MAX_BODYHITS]);
111
+
112
+ /**
113
+ * Retrieves the client's statistics from the current round.
114
+ *
115
+ * @note For a list of possible body hitplaces see the HIT_* constants in
116
+ * amxconst.inc
117
+ * @note For a list of possible stat constants see the STATSX_* constants in
118
+ * amxconst.inc
119
+ * @note The fields in the statistics are:
120
+ * 0 - Kills
121
+ * 1 - Deaths
122
+ * 2 - Headshots
123
+ * 3 - Teamkills
124
+ * 4 - Shots
125
+ * 5 - Hits
126
+ * 6 - Damage
127
+ *
128
+ * @param index Client index
129
+ * @param stats Buffer to copy statistics to
130
+ * @param bodyhits Buffer to copy body hits to
131
+ *
132
+ * @return 1 on success, 0 if no statistics are available
133
+ * @error If an invalid client index is provided, an error will be
134
+ * thrown.
135
+ */
136
+ native get_user_rstats(index, stats[STATSX_MAX_STATS], bodyhits[MAX_BODYHITS]);
137
+
138
+ /**
139
+ * Retrieves the client's statistics inflicted upon another client from the
140
+ * current round.
141
+ *
142
+ * @note For a list of possible body hitplaces see the HIT_* constants in
143
+ * amxconst.inc
144
+ * @note For a list of possible stat constants see the STATSX_* constants in
145
+ * amxconst.inc
146
+ * @note The fields in the statistics are:
147
+ * 0 - Kills
148
+ * 1 - Deaths
149
+ * 2 - Headshots
150
+ * 3 - Teamkills
151
+ * 4 - Shots
152
+ * 5 - Hits
153
+ * 6 - Damage
154
+ *
155
+ * @param index Client index
156
+ * @param victim Victim client index, or 0 to retrieve the statistics against
157
+ * all victims
158
+ * @param stats Buffer to copy statistics to
159
+ * @param bodyhits Buffer to copy body hits to
160
+ * @param wpnname Optional buffer to copy last used weapon name to
161
+ * @param len Maximum buffer size
162
+ *
163
+ * @return 1 on success, 0 if no statistics are available against the
164
+ * specified victim
165
+ * @error If an invalid client index is provided, an error will be
166
+ * thrown.
167
+ */
168
+ native get_user_vstats(index, victim, stats[STATSX_MAX_STATS], bodyhits[MAX_BODYHITS], wpnname[] = "", len = 0);
169
+
170
+ /**
171
+ * Retrieves the client's statistics received from another client from the
172
+ * current round.
173
+ *
174
+ * @note For a list of possible body hitplaces see the HIT_* constants in
175
+ * amxconst.inc
176
+ * @note For a list of possible stat constants see the STATSX_* constants in
177
+ * amxconst.inc
178
+ * @note The fields in the statistics are:
179
+ * 0 - Kills
180
+ * 1 - Deaths
181
+ * 2 - Headshots
182
+ * 3 - Teamkills
183
+ * 4 - Shots
184
+ * 5 - Hits
185
+ * 6 - Damage
186
+ *
187
+ * @param index Client index
188
+ * @param wpnindex Attacker client index, or 0 to retrieve the statistics from
189
+ * all attackers
190
+ * @param stats Buffer to copy statistics to
191
+ * @param bodyhits Buffer to copy body hits to
192
+ * @param wpnname Optional buffer to copy last used weapon name to
193
+ * @param len Maximum buffer size
194
+ *
195
+ * @return 1 on success, 0 if no statistics are available against the
196
+ * specified attacker
197
+ * @error If an invalid client index is provided, an error will be
198
+ * thrown.
199
+ */
200
+ native get_user_astats(index, wpnindex, stats[STATSX_MAX_STATS], bodyhits[MAX_BODYHITS], wpnname[] = "", len = 0);
201
+
202
+ /**
203
+ * Resets the current round weapon, attacker and victim statistics.
204
+ *
205
+ * @param index Client index
206
+ *
207
+ * @noreturn
208
+ * @error If an invalid client index is provided, an error will be
209
+ * thrown.
210
+ */
211
+ native reset_user_wstats(index);
212
+
213
+ /**
214
+ * Retrieves statistics from the permanent storage on the server via iterative,
215
+ * incremental access.
216
+ *
217
+ * @note The permanent storage is updated on every respawn or client disconnect.
218
+ * @note Player rank is determined by the customizable "get_score" function in
219
+ * "data/csstats.amxx". By default it uses the difference of kills to
220
+ * deaths/teamkills.
221
+ * @note For a list of possible body hitplaces see the HIT_* constants in
222
+ * amxconst.inc
223
+ * @note For a list of possible stat constants see the STATSX_* constants in
224
+ * amxconst.inc
225
+ * @note The fields in the statistics are:
226
+ * 0 - Kills
227
+ * 1 - Deaths
228
+ * 2 - Headshots
229
+ * 3 - Teamkills
230
+ * 4 - Shots
231
+ * 5 - Hits
232
+ * 6 - Damage
233
+ * 7 - Rank
234
+ *
235
+ * @param index Rank index
236
+ * @param stats Buffer to copy statistics to
237
+ * @param bodyhits Buffer to copy body hits to
238
+ * @param name Buffer to copy client name to
239
+ * @param len Maximum name buffer size
240
+ * @param authid Buffer to copy client auth id to
241
+ * @param authidlen Maximum authid buffer size
242
+ *
243
+ * @return Next rank index (> 0 and > index), or 0 if no more
244
+ * statistics exist
245
+ */
246
+ native get_stats(index, stats[STATSX_MAX_STATS], bodyhits[MAX_BODYHITS], name[], len, authid[] = "", authidlen = 0);
247
+
248
+ /**
249
+ * Returns the number of all entries in the permanent statistics storage.
250
+ *
251
+ * @return Number of entries in statistics storage
252
+ */
253
+ native get_statsnum();
254
+
255
+ /**
256
+ * Retrieves the client's objective statistics from the permanent storage.
257
+ *
258
+ * @note The permanent storage is updated on every respawn or client disconnect.
259
+ * @note For a list of possible stat constants see the STATSX_* constants in
260
+ * amxconst.inc
261
+ * @note The fields in the statistics are:
262
+ * 0 - total defusions
263
+ * 1 - bomb defused
264
+ * 2 - bomb plants
265
+ * 3 - bomb explosions
266
+ *
267
+ * @param index Client index
268
+ * @param stats Buffer to copy statistics to
269
+ *
270
+ * @return Players rank > 0 on success, or 0 if player is not ranked
271
+ * and no statistics are available
272
+ * @error If an invalid client index is provided, an error will be
273
+ * thrown.
274
+ */
275
+ native get_user_stats2(index, stats[STATSX_MAX_OBJECTIVE]);
276
+
277
+ /**
278
+ * Retrieves objective statistics from the permanent storage on the server via
279
+ * iterative, incremental access.
280
+ *
281
+ * @note The permanent storage is updated on every respawn or client disconnect.
282
+ * @note For a list of possible stat constants see the STATSX_* constants in
283
+ * amxconst.inc
284
+ * @note The fields in the statistics are:
285
+ * 0 - total defusions
286
+ * 1 - bomb defused
287
+ * 2 - bomb plants
288
+ * 3 - bomb explosions
289
+ *
290
+ * @param index Client index
291
+ * @param stats Buffer to copy statistics to
292
+ * @param authid Buffer to copy client auth id to
293
+ * @param authidlen Maximum authid buffer size
294
+ *
295
+ * @return Next rank index (> 0 and > index), or 0 if no more
296
+ * statistics exist
297
+ */
298
+ native get_stats2(index, stats[STATSX_MAX_OBJECTIVE], authid[] = "", authidlen = 0);
@@ -0,0 +1,29 @@
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
+ // Counter-Strike Functions
12
+ //
13
+
14
+ #if defined _csstats_const_included
15
+ #endinput
16
+ #endif
17
+ #define _csstats_const_included
18
+
19
+ /**
20
+ * Constants for objective based statistics
21
+ */
22
+ enum
23
+ {
24
+ STATSX_TOTAL_DEFUSIONS = 0,
25
+ STATSX_BOMBS_DEFUSED,
26
+ STATSX_BOMBS_PLANTED,
27
+ STATSX_BOMB_EXPLOSIONS,
28
+ STATSX_MAX_OBJECTIVE
29
+ }