@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,2338 @@
1
+ // Our own words for the fields of an entity, a player and a weapon - the
2
+ // entvars (pev->*, var_* in reapi) and the ReGameDLL members (m_*) that
3
+ // scripts/generate-entities.ts turns into typed properties of as/entities.ts -
4
+ // in both languages the project speaks.
5
+ //
6
+ // The generator writes an entry as the property's tooltip and adds the
7
+ // engine's name on a last line of its own: "The entity's gravity ...",
8
+ // then "Pawn: `pev->gravity`". An entry whose numbers are an engine
9
+ // constant family ends with its own "Pawn: `kRender*`" paragraph, which the
10
+ // generator puts after the engine's name. The language is AMXTS_DOCS_LANG in
11
+ // .env ("en" by default, or "ru"). A field missing here falls back to
12
+ // English, then to the bare "var_gravity - float" line.
13
+ //
14
+ // Written for a plugin author (code-style rule 30): the first
15
+ // words say what the field is and whose - "The player's money" - then its
16
+ // unit or range and typical values; no engine names outside the Pawn line. Angles are degrees, speeds units per second, a "game time"
17
+ // is get_gametime() seconds. Where the game itself keeps a field up to date,
18
+ // the entry says so - writing it is then undone on the next frame. Keyed by
19
+ // the reapi name: `timeWeaponIdle` is a player's and a weapon's field, and
20
+ // the reapi names tell them apart.
21
+ //
22
+ // Sources: HLSDK progdefs.h (entvars_t), ReHLDS sv_user.cpp and sv_phys.cpp
23
+ // (what the engine does with them), ReGameDLL player.h, weapons.h, cbase.h
24
+ // and the code that reads each member.
25
+ import type { Text } from './events';
26
+
27
+ // The spare fields. On an entity that is not a player nothing touches them;
28
+ // on a player the game took some of them over (observer.cpp, pm_shared.cpp).
29
+ const free: Text = {
30
+ en: `A free field: a plugin keeps its own value here; the game does not use it.`,
31
+ ru: `Свободное поле: плагин хранит здесь своё значение, игра его не трогает.`,
32
+ };
33
+
34
+ function freeEntity(en: string, ru: string): Text {
35
+ return {
36
+ en: `A free field on any entity but a player: a plugin keeps its own value here. ${en}`,
37
+ ru: `Свободное поле на любой сущности, кроме игрока: плагин хранит здесь своё значение. ${ru}`,
38
+ };
39
+ }
40
+
41
+ function unused(en: string, ru: string): Text {
42
+ return {
43
+ en: `${en} CS does not use the field.`,
44
+ ru: `${ru} В CS не используется.`,
45
+ };
46
+ }
47
+
48
+ // CBaseEntity's ammo_* fields: the player's reserve ammo by calibre, copied
49
+ // from his real store (m_rgAmmo) by TabulateAmmo whenever it changes.
50
+ function ammoCopy(calibre: string, guns: string): Text {
51
+ return {
52
+ en: `A copy of the player's reserve ${calibre} ammo (${guns}): the game refreshes it whenever the real ammo changes, and writing it gives no ammo.`,
53
+ ru: `Копия запаса патронов ${calibre} у игрока (${guns}): игра обновляет её при каждом изменении настоящего запаса, запись патронов не даёт.`,
54
+ };
55
+ }
56
+
57
+ function maxAmmo(calibre: string): Text {
58
+ return {
59
+ en: `The player's limit of ${calibre} ammo, as Half-Life meant it; the game does not use it.`,
60
+ ru: `Предел патронов ${calibre} у игрока, как его задумал Half-Life; игра его не использует.`,
61
+ };
62
+ }
63
+
64
+ export const ENTITY_FIELDS: Record<string, Text> = {
65
+ // entvars_t - every entity has them.
66
+ var_classname: {
67
+ en: `The entity's class name, e.g. \`"player"\`, \`"weaponbox"\`, \`"grenade"\`, \`"func_door"\`.`,
68
+ ru: `Класс сущности, например \`"player"\`, \`"weaponbox"\`, \`"grenade"\`, \`"func_door"\`.`,
69
+ },
70
+ var_globalname: {
71
+ en: `The entity's global name, which a mapper gives it to carry its state across a level change (single-player maps).`,
72
+ ru: `Глобальное имя сущности: по нему она переносит состояние между уровнями (одиночные карты).`,
73
+ },
74
+ var_origin: {
75
+ en: `The entity's position in the world, in units. Assigning it moves the entity properly, so its collisions move with it.`,
76
+ ru: `Положение сущности в мире, в единицах. Присваивание перемещает её правильно, и столкновения переезжают вместе с ней.`,
77
+ },
78
+ var_oldorigin: {
79
+ en: `The entity's saved position; what it holds depends on the entity (a breakable keeps its spawn point here).`,
80
+ ru: `Сохранённая позиция сущности; что в ней, зависит от сущности (разбиваемая хранит здесь точку появления).`,
81
+ },
82
+ var_velocity: {
83
+ en: `The entity's velocity, units per second: a running player moves at about \`250\`.`,
84
+ ru: `Скорость сущности с направлением, единиц в секунду: бегущий игрок — около \`250\`.`,
85
+ },
86
+ var_basevelocity: {
87
+ en: `The extra velocity the entity gets from what it stands in — a conveyor, a \`trigger_push\`, a water current — on top of its own. Units per second.`,
88
+ ru: `Добавочная скорость сущности от того, в чём она стоит, — конвейер, \`trigger_push\`, течение. Единиц в секунду.`,
89
+ },
90
+ var_clbasevelocity: {
91
+ en: `The conveyor velocity the player's client uses to predict movement; the engine zeroes it every player frame.`,
92
+ ru: `Скорость конвейера для предсказания движения на клиенте игрока; движок обнуляет её каждый кадр игрока.`,
93
+ },
94
+ var_movedir: {
95
+ en: `The direction a door, a platform or a button moves in, worked out from its angles when it spawns.`,
96
+ ru: `Направление движения двери, платформы или кнопки; вычисляется из углов при появлении.`,
97
+ },
98
+ var_angles: {
99
+ en: `The entity's rotation: pitch, yaw, roll in degrees. For a player it follows where he looks; to turn his view, set it together with \`fixAngle\`.`,
100
+ ru: `Поворот сущности: тангаж, рысканье, крен в градусах. У игрока следует за взглядом; чтобы развернуть взгляд, поставьте его вместе с \`fixAngle\`.`,
101
+ },
102
+ var_avelocity: {
103
+ en: `The entity's rotation speed, degrees per second on each axis.`,
104
+ ru: `Скорость вращения сущности, градусов в секунду по каждой оси.`,
105
+ },
106
+ var_punchangle: {
107
+ en: `The player's view kick from recoil or a hit, in degrees; the engine eases it back to zero by itself.`,
108
+ ru: `Толчок взгляда игрока от отдачи или попадания, в градусах; движок сам гасит его до нуля.`,
109
+ },
110
+ var_v_angle: {
111
+ en: `The player's view direction: pitch (down is positive), yaw, roll in degrees. Players only.`,
112
+ ru: `Направление взгляда игрока: тангаж (вниз — положительный), рысканье, крен в градусах. Только у игроков.`,
113
+ },
114
+ var_endpos: {
115
+ en: `The end point of a predicted projectile; sent to the client with \`startTime\` and \`impactTime\`.`,
116
+ ru: `Конечная точка предсказываемого снаряда; уходит клиенту вместе со \`startTime\` и \`impactTime\`.`,
117
+ },
118
+ var_startpos: {
119
+ en: `The start point of a predicted projectile; sent to the client with \`endPos\`.`,
120
+ ru: `Начальная точка предсказываемого снаряда; уходит клиенту вместе с \`endPos\`.`,
121
+ },
122
+ var_impacttime: {
123
+ en: `The game time a predicted projectile reaches \`endPos\`.`,
124
+ ru: `Игровое время, когда предсказываемый снаряд долетит до \`endPos\`.`,
125
+ },
126
+ var_starttime: {
127
+ en: `The game time a predicted projectile left \`startPos\`.`,
128
+ ru: `Игровое время, когда предсказываемый снаряд вылетел из \`startPos\`.`,
129
+ },
130
+ var_fixangle: {
131
+ en: `The player's view snap, one of: \`"none"\`; \`"set"\` - on the next frame the view turns to \`angles\`; \`"addYaw"\` - it turns by the yaw of \`angularVelocity\`. The engine then puts it back to \`"none"\`.`,
132
+ ru: `Разворот взгляда игрока, одно из: \`"none"\` — нет; \`"set"\` — на следующем кадре взгляд повернётся по \`angles\`; \`"addYaw"\` — повернётся на рысканье из \`angularVelocity\`. Потом движок возвращает поле в \`"none"\`.`,
133
+ },
134
+ var_idealpitch: unused(`The pitch a monster turns to, in degrees.`, `Тангаж, к которому поворачивается монстр, в градусах.`),
135
+ var_pitch_speed: unused(`A monster's turn speed in pitch, degrees per second.`, `Скорость поворота монстра по тангажу, градусов в секунду.`),
136
+ var_ideal_yaw: {
137
+ en: `The yaw a monster turns to, in degrees; a \`momentary_rot_button\` keeps its position here instead.`,
138
+ ru: `Рысканье, к которому поворачивается монстр, в градусах; \`momentary_rot_button\` хранит здесь своё положение.`,
139
+ },
140
+ var_yaw_speed: {
141
+ en: `A monster's turn speed, degrees per second.`,
142
+ ru: `Скорость поворота монстра, градусов в секунду.`,
143
+ },
144
+ var_modelindex: {
145
+ en: `The index of the entity's precached model; \`0\` draws nothing.`,
146
+ ru: `Номер подгруженной модели сущности; \`0\` — сущность не рисуется.`,
147
+ },
148
+ var_model: {
149
+ en: `The entity's model path, e.g. \`"models/w_c4.mdl"\`; a map brush has its number, e.g. \`"*12"\`. Writing it sets the model as the game does: \`modelIndex\` and the size follow. The model has to be precached (\`server.precache\`), or the server stops.`,
150
+ ru: `Путь к модели сущности, например \`"models/w_c4.mdl"\`; у браша карты — его номер, например \`"*12"\`. Запись ставит модель так, как это делает игра: \`modelIndex\` и размер следуют за ней. Модель должна быть прекэширована (\`server.precache\`), иначе сервер остановится.`,
151
+ },
152
+ var_viewmodel: {
153
+ en: `The player's first-person weapon model, the one he sees himself, e.g. \`"models/v_knife.mdl"\`.`,
154
+ ru: `Модель оружия от первого лица, которую видит сам игрок, например \`"models/v_knife.mdl"\`.`,
155
+ },
156
+ var_weaponmodel: {
157
+ en: `The weapon model other players see in the player's hands, e.g. \`"models/p_knife.mdl"\`.`,
158
+ ru: `Модель оружия в руках игрока, которую видят другие, например \`"models/p_knife.mdl"\`.`,
159
+ },
160
+ var_absmin: {
161
+ en: `The low corner of the entity's bounding box in world coordinates; the engine recomputes it when the entity moves.`,
162
+ ru: `Нижний угол габаритов сущности в координатах мира; движок пересчитывает его при перемещении.`,
163
+ },
164
+ var_absmax: {
165
+ en: `The high corner of the entity's bounding box in world coordinates; the engine recomputes it when the entity moves.`,
166
+ ru: `Верхний угол габаритов сущности в координатах мира; движок пересчитывает его при перемещении.`,
167
+ },
168
+ var_mins: {
169
+ en: `The low corner of the entity's bounding box, relative to \`origin\`: \`(-16, -16, -36)\` for a standing player. Set it with \`setSize(mins, maxs)\`, so \`size\` and \`absMin\` follow.`,
170
+ ru: `Нижний угол габаритов сущности относительно \`origin\`: \`(-16, -16, -36)\` у стоящего игрока. Ставится через \`setSize(mins, maxs)\`, чтобы \`size\` и \`absMin\` пересчитались.`,
171
+ },
172
+ var_maxs: {
173
+ en: `The high corner of the entity's bounding box, relative to \`origin\`: \`(16, 16, 36)\` for a standing player. Set it with \`setSize(mins, maxs)\`, so \`size\` and \`absMax\` follow.`,
174
+ ru: `Верхний угол габаритов сущности относительно \`origin\`: \`(16, 16, 36)\` у стоящего игрока. Ставится через \`setSize(mins, maxs)\`, чтобы \`size\` и \`absMax\` пересчитались.`,
175
+ },
176
+ var_size: {
177
+ en: `The dimensions of the entity's bounding box, maxs minus mins.`,
178
+ ru: `Размеры габаритов сущности: maxs минус mins.`,
179
+ },
180
+ var_ltime: {
181
+ en: `The local clock of a door, platform or train: it runs only while the entity moves, and its \`nextThink\` counts in it.`,
182
+ ru: `Собственные часы двери, платформы или поезда: идут, только пока сущность движется, и её \`nextThink\` отсчитывается по ним.`,
183
+ },
184
+ var_nextthink: {
185
+ en: `The game time the entity's think runs next; \`0\` or less means never. A door, platform or train counts it in \`localTime\`.`,
186
+ ru: `Игровое время следующего think сущности; \`0\` и меньше — никогда. У двери, платформы и поезда отсчитывается по \`localTime\`.`,
187
+ },
188
+ var_movetype: {
189
+ en: `
190
+ The entity's kind of movement, one of: \`"none"\` - stands still; \`"walk"\` - walks (a player); \`"step"\` - walks as a monster; \`"fly"\` - flies without gravity; \`"toss"\` - falls; \`"push"\` - moves and pushes others, through the world (doors, platforms); \`"noclip"\` - flies through walls; \`"flyMissile"\` - flies like \`"fly"\`, hitting monsters from further away; \`"bounce"\` - falls and bounces; \`"bounceMissile"\` - bounces without gravity; \`"follow"\` - sticks to \`aimEntity\`; \`"pushStep"\` - a map object that collides with the world.
191
+
192
+ Pawn: \`MOVETYPE_*\`
193
+ `,
194
+ ru: `
195
+ Способ движения сущности, одно из: \`"none"\` — стоит на месте; \`"walk"\` — ходит (игрок); \`"step"\` — ходит как монстр; \`"fly"\` — летает без гравитации; \`"toss"\` — падает; \`"push"\` — движется и толкает других, сквозь мир (двери, платформы); \`"noclip"\` — летает сквозь стены; \`"flyMissile"\` — летает как \`"fly"\`, задевая монстров издалека; \`"bounce"\` — падает и отскакивает; \`"bounceMissile"\` — отскакивает без гравитации; \`"follow"\` — держится за \`aimEntity\`; \`"pushStep"\` — объект карты, который сталкивается с миром.
196
+
197
+ Pawn: \`MOVETYPE_*\`
198
+ `,
199
+ },
200
+ var_solid: {
201
+ en: `
202
+ The entity's solidity, one of: \`"none"\` - passes through everything; \`"trigger"\` - only registers touches; \`"box"\` - collides as a box; \`"slideBox"\` - collides as a player's box; \`"bsp"\` - collides as a map brush.
203
+
204
+ Pawn: \`SOLID_*\`
205
+ `,
206
+ ru: `
207
+ Твёрдость сущности, одно из: \`"none"\` — проходит сквозь всё; \`"trigger"\` — только касается; \`"box"\` — сталкивается как коробка; \`"slideBox"\` — как коробка игрока; \`"bsp"\` — как браш карты.
208
+
209
+ Pawn: \`SOLID_*\`
210
+ `,
211
+ },
212
+ var_skin: {
213
+ en: `
214
+ The number of the skin the model is drawn with, from \`0\`. A map brush keeps its contents here instead: \`-3\` water, \`-16\` a ladder.
215
+
216
+ Pawn: \`CONTENTS_*\`
217
+ `,
218
+ ru: `
219
+ Номер скина, которым рисуется модель, с \`0\`. Браш карты хранит здесь своё содержимое: \`-3\` — вода, \`-16\` — лестница.
220
+
221
+ Pawn: \`CONTENTS_*\`
222
+ `,
223
+ },
224
+ var_body: {
225
+ en: `The model's body groups: which submodels are drawn, as one number.`,
226
+ ru: `Группы тела модели: какие подмодели рисуются, одним числом.`,
227
+ },
228
+ var_effects: {
229
+ en: `The entity's visual effects, for example: \`"NoDraw"\` hides it, \`"DimLight"\` and \`"BrightLight"\` light up around it, \`"MuzzleFlash"\` flashes once.`,
230
+ ru: `Визуальные эффекты сущности, например: \`"NoDraw"\` прячет её, \`"DimLight"\` и \`"BrightLight"\` освещают вокруг, \`"MuzzleFlash"\` — одна вспышка.`,
231
+ },
232
+ var_gravity: {
233
+ en: `The entity's gravity multiplier: \`1\` is normal, \`0.5\` is half. \`0\` also counts as normal.`,
234
+ ru: `Множитель гравитации сущности: \`1\` — обычная, \`0.5\` — половина. \`0\` тоже считается обычной.`,
235
+ },
236
+ var_friction: {
237
+ en: `The entity's friction multiplier on the ground, \`1\` is normal. For a bouncing entity (\`moveType\` \`"bounce"\`) it is how little it bounces: \`0\` bounces back at full speed.`,
238
+ ru: `Множитель трения сущности о землю, \`1\` — обычное. У отскакивающей сущности (\`moveType\` \`"bounce"\`) — насколько слабо она отскакивает: \`0\` — отскок на полной скорости.`,
239
+ },
240
+ var_light_level: {
241
+ en: `The light level where the player stands, \`0\` (dark) to \`255\`, as his client reports it every frame.`,
242
+ ru: `Освещённость места, где стоит игрок, от \`0\` (темно) до \`255\`; клиент присылает её каждый кадр.`,
243
+ },
244
+ var_sequence: {
245
+ en: `The number of the animation sequence the model plays.`,
246
+ ru: `Номер анимации, которую играет модель.`,
247
+ },
248
+ var_gaitsequence: {
249
+ en: `The number of the player's legs animation, played on top of \`sequence\`; \`0\` for none.`,
250
+ ru: `Номер анимации ног игрока поверх \`sequence\`; \`0\` — нет.`,
251
+ },
252
+ var_frame: {
253
+ en: `The playback position in the animation, \`0\` to \`255\` over the whole sequence; for a sprite, the frame number.`,
254
+ ru: `Позиция в анимации, от \`0\` до \`255\` на всю последовательность; у спрайта — номер кадра.`,
255
+ },
256
+ var_animtime: {
257
+ en: `The game time the current frame was set; the client animates from it.`,
258
+ ru: `Игровое время, когда выставлен текущий кадр; клиент анимирует от него.`,
259
+ },
260
+ var_framerate: {
261
+ en: `The animation playback rate: \`1\` is normal speed, \`0\` freezes it, negative plays backwards.`,
262
+ ru: `Скорость анимации: \`1\` — обычная, \`0\` — стоп, отрицательная — назад.`,
263
+ },
264
+ var_scale: {
265
+ en: `The sprite's draw scale: \`1\` is its normal size.`,
266
+ ru: `Масштаб спрайта: \`1\` — обычный размер.`,
267
+ },
268
+ var_rendermode: {
269
+ en: `
270
+ The entity's render mode, one of: \`"normal"\` - drawn as it is; \`"color"\` - filled with \`renderColor\`; \`"texture"\` - translucent; \`"glow"\` - glows and shows through walls (for sprites); \`"alpha"\` - translucent, with cut-out textures; \`"additive"\` - its light adds to what is behind it. In every mode but \`"normal"\`, \`renderAmount\` is the opacity, \`0\` to \`255\`.
271
+
272
+ Pawn: \`kRender*\`
273
+ `,
274
+ ru: `
275
+ Режим отрисовки сущности, одно из: \`"normal"\` — как есть; \`"color"\` — залита цветом \`renderColor\`; \`"texture"\` — полупрозрачная; \`"glow"\` — светится и видна сквозь стены (для спрайтов); \`"alpha"\` — полупрозрачная, с вырезанными частями текстур; \`"additive"\` — её свет складывается с тем, что позади. Во всех режимах, кроме \`"normal"\`, \`renderAmount\` — непрозрачность, от \`0\` до \`255\`.
276
+
277
+ Pawn: \`kRender*\`
278
+ `,
279
+ },
280
+ var_renderamt: {
281
+ en: `The entity's opacity in a transparent \`renderMode\`, \`0\` (invisible) to \`255\`; with the glow shell (\`renderFx\` \`"glowShell"\`), the shell's thickness.`,
282
+ ru: `Непрозрачность сущности в прозрачном \`renderMode\`, от \`0\` (невидима) до \`255\`; со светящейся оболочкой (\`renderFx\` \`"glowShell"\`) — толщина оболочки.`,
283
+ },
284
+ var_rendercolor: {
285
+ en: `The entity's render colour for \`renderMode\` and \`renderFx\`, red, green, blue from \`0\` to \`255\`: the colour of the glow shell (\`renderFx\` \`"glowShell"\`).`,
286
+ ru: `Цвет отрисовки сущности для \`renderMode\` и \`renderFx\` — красный, зелёный, синий от \`0\` до \`255\`: цвет светящейся оболочки (\`renderFx\` \`"glowShell"\`).`,
287
+ },
288
+ var_renderfx: {
289
+ en: `
290
+ The entity's render effect, one of: \`"none"\`; \`"glowShell"\` - a coloured shell around the model (colour \`renderColor\`, thickness \`renderAmount\`); \`"pulseSlow"\`, \`"pulseFast"\`, \`"pulseSlowWide"\`, \`"pulseFastWide"\` - the opacity pulses; \`"fadeSlow"\`, \`"fadeFast"\` - fades out; \`"solidSlow"\`, \`"solidFast"\` - fades in; \`"strobeSlow"\`, \`"strobeFast"\`, \`"strobeFaster"\`, \`"flickerSlow"\`, \`"flickerFast"\` - blinks; \`"hologram"\` - a flickering hologram that fades with distance; \`"distort"\`, \`"noDissipation"\`, \`"deadPlayer"\`, \`"explode"\`, \`"clampMinScale"\`, \`"lightMultiplier"\` - for sprites, corpses and special effects.
291
+
292
+ Pawn: \`kRenderFx*\`
293
+ `,
294
+ ru: `
295
+ Эффект отрисовки сущности, одно из: \`"none"\` — нет; \`"glowShell"\` — цветная оболочка вокруг модели (цвет — \`renderColor\`, толщина — \`renderAmount\`); \`"pulseSlow"\`, \`"pulseFast"\`, \`"pulseSlowWide"\`, \`"pulseFastWide"\` — прозрачность пульсирует; \`"fadeSlow"\`, \`"fadeFast"\` — растворяется; \`"solidSlow"\`, \`"solidFast"\` — проявляется; \`"strobeSlow"\`, \`"strobeFast"\`, \`"strobeFaster"\`, \`"flickerSlow"\`, \`"flickerFast"\` — мигает; \`"hologram"\` — мерцающая голограмма, тает с расстоянием; \`"distort"\`, \`"noDissipation"\`, \`"deadPlayer"\`, \`"explode"\`, \`"clampMinScale"\`, \`"lightMultiplier"\` — для спрайтов, трупов и особых эффектов.
296
+
297
+ Pawn: \`kRenderFx*\`
298
+ `,
299
+ },
300
+ var_weapons: {
301
+ en: `The player's weapons, as a list of weapon kinds, e.g. [\`"knife"\`, \`"usp"\`]. Writing it does not give or take weapons, and keeps the suit the HUD needs.`,
302
+ ru: `Оружие игрока, списком видов оружия, например [\`"knife"\`, \`"usp"\`]. Запись оружия не даёт и не отбирает и сохраняет костюм, без которого нет HUD.`,
303
+ },
304
+ var_takedamage: {
305
+ en: `
306
+ The entity's vulnerability, one of: \`"no"\` - cannot be hurt (god mode); \`"yes"\` - can be hurt; \`"aim"\` - can be hurt, and aim assist targets it.
307
+
308
+ Pawn: \`DAMAGE_*\`
309
+ `,
310
+ ru: `
311
+ Уязвимость сущности, одно из: \`"no"\` — неуязвима (бессмертие); \`"yes"\` — уязвима; \`"aim"\` — уязвима, и на неё работает автоприцел.
312
+
313
+ Pawn: \`DAMAGE_*\`
314
+ `,
315
+ },
316
+ var_deadflag: {
317
+ en: `
318
+ The entity's stage of dying, one of: \`"alive"\`; \`"dying"\` - playing the death animation or still falling; \`"dead"\` - lying still; \`"respawnable"\` - waiting to respawn; \`"discardBody"\` - the body can go.
319
+
320
+ Pawn: \`DEAD_*\`
321
+ `,
322
+ ru: `
323
+ Стадия смерти сущности, одно из: \`"alive"\` — жива; \`"dying"\` — умирает (анимация смерти или ещё падает); \`"dead"\` — мертва, лежит; \`"respawnable"\` — ждёт возрождения; \`"discardBody"\` — тело можно убрать.
324
+
325
+ Pawn: \`DEAD_*\`
326
+ `,
327
+ },
328
+ var_view_ofs: {
329
+ en: `The player's eye position relative to \`origin\`: \`(0, 0, 17)\` standing, \`(0, 0, 12)\` ducked.`,
330
+ ru: `Положение глаз игрока относительно \`origin\`: \`(0, 0, 17)\` стоя, \`(0, 0, 12)\` присев.`,
331
+ },
332
+ var_button: {
333
+ en: `The buttons the player holds this frame, e.g. \`"Attack"\`, \`"Jump"\`, \`"Duck"\`, \`"Use"\`.`,
334
+ ru: `Кнопки, которые игрок держит в этом кадре, например \`"Attack"\`, \`"Jump"\`, \`"Duck"\`, \`"Use"\`.`,
335
+ },
336
+ var_impulse: {
337
+ en: `The player's impulse command: \`100\` is the flashlight, \`201\` the spray. The game clears it once it has handled it.`,
338
+ ru: `Команда impulse игрока: \`100\` — фонарик, \`201\` — спрей. Игра обнуляет её, когда обработает.`,
339
+ },
340
+ var_chain: {
341
+ en: `The next entity in a list the engine or the game is building, like the result of a search in a sphere.`,
342
+ ru: `Следующая сущность в списке, который строит движок или игра, — например, результат поиска в сфере.`,
343
+ },
344
+ var_dmg_inflictor: {
345
+ en: `The entity that last hurt the player: the shooter for a bullet, a grenade, a \`trigger_hurt\`.`,
346
+ ru: `Сущность, которая последней ранила игрока: стрелявший — для пули, граната, \`trigger_hurt\`.`,
347
+ },
348
+ var_enemy: {
349
+ en: `A monster's enemy: the entity it is after.`,
350
+ ru: `Враг монстра: сущность, за которой он охотится.`,
351
+ },
352
+ var_aiment: {
353
+ en: `The entity this one follows when its \`moveType\` is \`"follow"\`: it moves along with it.`,
354
+ ru: `Сущность, за которой следует эта при \`moveType\` \`"follow"\`: двигается вместе с ней.`,
355
+ },
356
+ var_owner: {
357
+ en: `The entity's owner: a grenade's thrower, a weapon's holder. An entity does not collide with its owner.`,
358
+ ru: `Владелец сущности: бросивший гранату, держащий оружие. Сущность не сталкивается со своим владельцем.`,
359
+ },
360
+ var_groundentity: {
361
+ en: `The ground under the entity: the world (\`0\`) or another entity it stands on.`,
362
+ ru: `Опора сущности: мир (\`0\`) или другая сущность, на которой она стоит.`,
363
+ },
364
+ var_spawnflags: {
365
+ en: `The entity's spawn flags, the bits a mapper ticked in the map; what each means depends on the classname.`,
366
+ ru: `Флаги появления сущности — биты, которые маппер отметил на карте; значение каждого зависит от classname.`,
367
+ },
368
+ var_flags: {
369
+ en: `The entity's state flags, for example \`"OnGround"\`, \`"Ducking"\`, \`"InWater"\`, \`"Frozen"\`, \`"FakeClient"\` for a bot, \`"KillMe"\` to be removed.`,
370
+ ru: `Флаги состояния сущности, например \`"OnGround"\`, \`"Ducking"\`, \`"InWater"\`, \`"Frozen"\`, \`"FakeClient"\` у бота, \`"KillMe"\` — на удаление.`,
371
+ },
372
+ var_colormap: {
373
+ en: `The player's Half-Life colours, top in the low byte and bottom in the high one; for a player the engine sets it to his index.`,
374
+ ru: `Цвета игрока Half-Life: верх в младшем байте, низ в старшем; игроку движок ставит сюда его номер.`,
375
+ },
376
+ var_health: {
377
+ en: `The entity's health: a breakable breaks and a hostage dies when damage takes it to \`0\` or below, e.g. \`box.health = 50\`. A player's is his own property, a whole number that kills him at \`0\`.`,
378
+ ru: `Здоровье сущности: разбиваемая ломается, а заложник умирает, когда урон доводит его до \`0\` или ниже, например \`box.health = 50\`. У игрока это его собственное свойство — целое число, при \`0\` он умирает.`,
379
+ },
380
+ var_max_health: {
381
+ en: `The entity's maximum health: healing stops at it. A player gets his spawn health here, \`100\`.`,
382
+ ru: `Максимальное здоровье сущности: лечение на нём останавливается. Игроку сюда ставится здоровье при появлении, \`100\`.`,
383
+ },
384
+ var_teleport_time: {
385
+ en: `The player's remaining jump out of water, in milliseconds.`,
386
+ ru: `Остаток прыжка игрока из воды, в миллисекундах.`,
387
+ },
388
+ var_armortype: unused(`The Half-Life armour type.`, `Тип брони Half-Life.`),
389
+ var_armorvalue: {
390
+ en: `The entity's armour points, \`0\` to \`100\` in a normal game. The kind of armour is in \`kevlar\`.`,
391
+ ru: `Очки брони сущности, от \`0\` до \`100\` в обычной игре. Вид брони — в \`kevlar\`.`,
392
+ },
393
+ var_waterlevel: {
394
+ en: `The entity's depth in water, one of: \`"none"\` - out of the water; \`"feet"\` - feet in; \`"waist"\` - in to the waist; \`"head"\` - the head under.`,
395
+ ru: `Глубина погружения сущности, одно из: \`"none"\` — не в воде; \`"feet"\` — ноги в воде; \`"waist"\` — по пояс; \`"head"\` — с головой.`,
396
+ },
397
+ var_watertype: {
398
+ en: `
399
+ The contents the entity is in, one of: \`"empty"\` when it is not in a liquid, \`"water"\`, \`"slime"\`, \`"lava"\`. The other names (\`"solid"\`, \`"sky"\`, \`"ladder"\`, \`"current0"\` to \`"currentDown"\`, ...) are what a point of the map holds, not a liquid.
400
+
401
+ Pawn: \`CONTENTS_*\`
402
+ `,
403
+ ru: `
404
+ Среда, в которой находится сущность, одно из: \`"empty"\`, когда она не в жидкости, \`"water"\`, \`"slime"\`, \`"lava"\`. Остальные имена (\`"solid"\`, \`"sky"\`, \`"ladder"\`, с \`"current0"\` по \`"currentDown"\`, ...) — то, что бывает в точке карты, а не жидкость.
405
+
406
+ Pawn: \`CONTENTS_*\`
407
+ `,
408
+ },
409
+ var_target: {
410
+ en: `The entity's target: the \`targetName\` of the entities it fires when it triggers, like a button's door.`,
411
+ ru: `Цель сущности: \`targetName\` сущностей, которые она запускает при срабатывании, — например, дверь у кнопки.`,
412
+ },
413
+ var_targetname: {
414
+ en: `The entity's own name in the map, the one other entities' target points at.`,
415
+ ru: `Собственное имя сущности на карте, на которое указывает target других.`,
416
+ },
417
+ var_netname: {
418
+ en: `The player's name as the engine last set it; on a map entity the meaning depends on the classname.`,
419
+ ru: `Имя игрока, как его последним записал движок; у сущности карты смысл зависит от classname.`,
420
+ },
421
+ var_message: {
422
+ en: `The entity's text, like a \`game_text\`'s or \`env_message\`'s; in \`worldspawn\`, the map's title.`,
423
+ ru: `Текст сущности — у \`game_text\` или \`env_message\`; у \`worldspawn\` — название карты.`,
424
+ },
425
+ var_dmg_take: {
426
+ en: `The damage the player took since the HUD was last told; the game zeroes it after the damage indicator is sent.`,
427
+ ru: `Урон, полученный игроком с последнего обновления HUD; игра обнуляет его, отправив индикатор урона.`,
428
+ },
429
+ var_dmg_save: {
430
+ en: `The damage the player's armour absorbed since the HUD was last told; zeroed with \`damageTaken\`.`,
431
+ ru: `Урон, поглощённый бронёй игрока с последнего обновления HUD; обнуляется вместе с \`damageTaken\`.`,
432
+ },
433
+ var_dmg: {
434
+ en: `The damage the entity deals: a grenade's blast, a \`trigger_hurt\`'s hit, a door that crushes.`,
435
+ ru: `Урон, который наносит сущность: взрыв гранаты, удар \`trigger_hurt\`, дверь, которая давит.`,
436
+ },
437
+ var_dmgtime: {
438
+ en: `A game time mark for damage over time and for when a grenade blows up; the meaning depends on the entity.`,
439
+ ru: `Отметка игрового времени для урона во времени и для взрыва гранаты; смысл зависит от сущности.`,
440
+ },
441
+ var_noise: {
442
+ en: `A sound the entity plays, as a file path: a door's moving sound.`,
443
+ ru: `Звук сущности, путь к файлу: например, звук движущейся двери.`,
444
+ },
445
+ var_noise1: {
446
+ en: `A second sound the entity plays, as a file path: a door's stop sound.`,
447
+ ru: `Второй звук сущности, путь к файлу: например, звук остановки двери.`,
448
+ },
449
+ var_noise2: {
450
+ en: `A third sound the entity plays, as a file path.`,
451
+ ru: `Третий звук сущности, путь к файлу.`,
452
+ },
453
+ var_noise3: {
454
+ en: `A fourth sound the entity plays, as a file path.`,
455
+ ru: `Четвёртый звук сущности, путь к файлу.`,
456
+ },
457
+ var_speed: {
458
+ en: `The speed of a door, platform or train, units per second.`,
459
+ ru: `Скорость двери, платформы или поезда, единиц в секунду.`,
460
+ },
461
+ var_air_finished: {
462
+ en: `The game time the player under water runs out of air and starts to drown; the game pushes it forward while his head is above water.`,
463
+ ru: `Игровое время, когда у игрока под водой кончится воздух и он начнёт тонуть; пока голова над водой, игра отодвигает его.`,
464
+ },
465
+ var_pain_finished: {
466
+ en: `The game time of the player's next pain from drowning or a \`trigger_hurt\`; no new pain until then.`,
467
+ ru: `Игровое время следующей боли игрока от утопления или \`trigger_hurt\`; до него новой нет.`,
468
+ },
469
+ var_radsuit_finished: {
470
+ en: `The game time a training-map timer runs out; nothing else in CS reads it.`,
471
+ ru: `Игровое время, когда истечёт таймер карты-тренировки; больше в CS его никто не читает.`,
472
+ },
473
+ var_pContainingEntity: {
474
+ en: `The entity these fields belong to — the entity itself.`,
475
+ ru: `Сущность, которой принадлежат эти поля, — она сама.`,
476
+ },
477
+ var_playerclass: {
478
+ en: `A mark of a glass \`func_breakable\`: \`1\` lets the client stick decals to it. Players in CS do not use it.`,
479
+ ru: `Отметка стеклянного \`func_breakable\`: с \`1\` клиент рисует на нём декали. У игроков в CS не используется.`,
480
+ },
481
+ var_maxspeed: {
482
+ en: `The player's top running speed, units per second: \`250\` with a knife, \`221\` with an AK-47. The game resets it when he switches weapons.`,
483
+ ru: `Предельная скорость бега игрока, единиц в секунду: \`250\` с ножом, \`221\` с AK-47. Игра сбрасывает её при смене оружия.`,
484
+ },
485
+ var_fov: {
486
+ en: `The entity's field of view in degrees. On a player \`fov\` is his own, which the game zooms by and writes here too.`,
487
+ ru: `Поле зрения сущности в градусах. У игрока \`fov\` — своё, по которому игра приближает прицел и которое пишет и сюда.`,
488
+ },
489
+ var_weaponanim: {
490
+ en: `The number of the first-person weapon animation last played.`,
491
+ ru: `Номер последней сыгранной анимации оружия от первого лица.`,
492
+ },
493
+ var_pushmsec: {
494
+ en: `A player value sent to the client; CS itself does not set it.`,
495
+ ru: `Значение игрока, которое уходит клиенту; сама CS его не ставит.`,
496
+ },
497
+ var_bInDuck: {
498
+ en: `The player's ducking mark: \`1\` while he is going down into a duck, before he is fully crouched.`,
499
+ ru: `Отметка приседания игрока: \`1\`, пока он приседает и ещё не сел полностью.`,
500
+ },
501
+ var_flTimeStepSound: {
502
+ en: `The time until the player's next footstep sound, in milliseconds.`,
503
+ ru: `Время до следующего звука шага игрока, в миллисекундах.`,
504
+ },
505
+ var_flSwimTime: {
506
+ en: `The time until the player's next swimming sound, in milliseconds.`,
507
+ ru: `Время до следующего звука плавания игрока, в миллисекундах.`,
508
+ },
509
+ var_flDuckTime: {
510
+ en: `The player's duck in progress, in milliseconds: the engine starts it at \`1000\` and counts down.`,
511
+ ru: `Приседание игрока в процессе, в миллисекундах: движок начинает с \`1000\` и отсчитывает вниз.`,
512
+ },
513
+ var_iStepLeft: {
514
+ en: `The foot of the player's next footstep sound; it flips every step.`,
515
+ ru: `Нога для следующего звука шага игрока; меняется с каждым шагом.`,
516
+ },
517
+ var_flFallVelocity: {
518
+ en: `The player's falling speed, units per second, positive downwards; fall damage is worked out from it on landing.`,
519
+ ru: `Скорость падения игрока, единиц в секунду, вниз положительная; по ней при приземлении считается урон.`,
520
+ },
521
+ var_gamestate: {
522
+ en: `The player's shield state: \`0\` while the shield is up and takes hits, \`1\` while it is not.`,
523
+ ru: `Состояние щита игрока: \`0\` — щит поднят и принимает попадания, \`1\` — нет.`,
524
+ },
525
+ var_oldbuttons: {
526
+ en: `The buttons the player held the frame before: compare with buttons to see what he just pressed.`,
527
+ ru: `Кнопки, которые игрок держал в прошлом кадре: сравните с buttons, чтобы понять, что он только что нажал.`,
528
+ },
529
+ var_groupinfo: {
530
+ en: `The entity's group bits: once set, traces and what is sent to a player skip entities whose groups do not match.`,
531
+ ru: `Биты групп сущности: если заданы, трассировки и то, что отправляется игроку, пропускают сущности из других групп.`,
532
+ },
533
+ var_iuser1: freeEntity(
534
+ `On a player the game keeps the spectator mode here; read it by name as \`observerMode\`.`,
535
+ `У игрока здесь режим наблюдения, его ставит игра; по имени он читается как \`observerMode\`.`,
536
+ ),
537
+ var_iuser2: freeEntity(
538
+ `On a player the game keeps here the index of the player he spectates (\`0\` when roaming).`,
539
+ `У игрока здесь номер того, за кем он наблюдает (\`0\` в свободном полёте); его ставит игра.`,
540
+ ),
541
+ var_iuser3: freeEntity(
542
+ `On a player the field is taken: the death camera keeps the killer's index here, and ReGameDLL reads movement locks from its bits (\`16\` no ducking, \`32\` no ladders, \`64\` no jumping, \`128\` no double duck).`,
543
+ `У игрока поле занято: камера смерти держит здесь номер убийцы, а ReGameDLL читает из его битов запреты движения (\`16\` — не приседать, \`32\` — не лазить по лестницам, \`64\` — не прыгать, \`128\` — без двойного приседания).`,
544
+ ),
545
+ var_iuser4: freeEntity(
546
+ `On a player the game overwrites the field every frame: \`1\` while he stands on a vehicle, \`0\` otherwise.`,
547
+ `У игрока игра перезаписывает поле каждый кадр: \`1\`, пока он стоит на транспорте, иначе \`0\`.`,
548
+ ),
549
+ // player.observerMode: var_iuser1, read by name on a player.
550
+ observerMode: {
551
+ en: `
552
+ The player's spectator mode, one of: \`"none"\` - not spectating; \`"chaseLocked"\` - a camera behind the target that turns with him; \`"chaseFree"\` - a camera behind the target that turns freely; \`"roaming"\` - flies freely; \`"inEye"\` - first person, through the target's eyes; \`"mapFree"\` - the overview map, moving freely; \`"mapChase"\` - the overview map, following the target. Setting a mode switches his camera as the game does when he picks it: onto someone he may watch, \`"roaming"\` when there is nobody; the target is iuser2. Setting \`"none"\` only clears the field: the game ends spectating when he spawns.
553
+
554
+ Pawn: \`OBS_*\`, \`rg_set_observer_mode\`
555
+ `,
556
+ ru: `
557
+ Режим наблюдения игрока, одно из: \`"none"\` — не наблюдает; \`"chaseLocked"\` — камера за целью, поворачивается вместе с ней; \`"chaseFree"\` — камера за целью, поворачивается свободно; \`"roaming"\` — свободный полёт; \`"inEye"\` — от первого лица, глазами цели; \`"mapFree"\` — карта, свободно; \`"mapChase"\` — карта за целью. Запись режима переключает камеру так же, как игра, когда он выбирает режим сам: на того, за кем ему можно наблюдать, или \`"roaming"\`, если наблюдать не за кем; цель — iuser2. Запись \`"none"\` только очищает поле: наблюдение заканчивает игра, когда он появляется.
558
+
559
+ Pawn: \`OBS_*\`, \`rg_set_observer_mode\`
560
+ `,
561
+ },
562
+ var_fuser1: freeEntity(
563
+ `On a player ReGameDLL zeroes the field, along with fuser2 and fuser3, when it resets his stamina.`,
564
+ `У игрока ReGameDLL обнуляет поле вместе с fuser2 и fuser3, когда сбрасывает выносливость.`,
565
+ ),
566
+ var_fuser2: freeEntity(
567
+ `On a player the field is the slowdown after a jump, in milliseconds: set to about \`1316\` on a jump and counted down.`,
568
+ `У игрока здесь замедление после прыжка, в миллисекундах: при прыжке ставится около \`1316\` и отсчитывается вниз.`,
569
+ ),
570
+ var_fuser3: freeEntity(
571
+ `On a player ReGameDLL multiplies his movement by the field while \`+speed\` is held (\`0\` is off); in \`noclip\` and spectating it is the acceleration.`,
572
+ `У игрока ReGameDLL умножает на поле движение, пока зажат \`+speed\` (\`0\` — выключено); в \`noclip\` и наблюдении это ускорение.`,
573
+ ),
574
+ var_fuser4: free,
575
+ var_vuser1: free,
576
+ var_vuser2: free,
577
+ var_vuser3: free,
578
+ var_vuser4: free,
579
+ var_euser1: free,
580
+ var_euser2: free,
581
+ var_euser3: free,
582
+ var_euser4: free,
583
+
584
+ // CBaseEntity: members a player has because every game entity has them.
585
+ currentammo: {
586
+ en: `The player's Half-Life ammo counter; the game does not use it.`,
587
+ ru: `Счётчик патронов игрока из Half-Life; игра его не использует.`,
588
+ },
589
+ maxammo_buckshot: maxAmmo(`buckshot`),
590
+ ammo_buckshot: ammoCopy(`buckshot`, `M3, XM1014`),
591
+ maxammo_9mm: maxAmmo(`9mm`),
592
+ ammo_9mm: ammoCopy(`9mm`, `Glock, Elites, MP5, TMP`),
593
+ maxammo_556nato: maxAmmo(`5.56mm`),
594
+ ammo_556nato: ammoCopy(`5.56mm`, `M4A1, FAMAS, Galil, AUG, SG552, SG550`),
595
+ maxammo_556natobox: maxAmmo(`5.56mm box`),
596
+ ammo_556natobox: ammoCopy(`5.56mm box`, `M249`),
597
+ maxammo_762nato: maxAmmo(`7.62mm`),
598
+ ammo_762nato: ammoCopy(`7.62mm`, `AK-47, Scout, G3SG1`),
599
+ maxammo_45acp: maxAmmo(`.45 ACP`),
600
+ ammo_45acp: ammoCopy(`.45 ACP`, `USP, MAC-10, UMP45`),
601
+ maxammo_50ae: maxAmmo(`.50 AE`),
602
+ ammo_50ae: ammoCopy(`.50 AE`, `Desert Eagle`),
603
+ maxammo_338mag: maxAmmo(`.338 Magnum`),
604
+ ammo_338mag: ammoCopy(`.338 Magnum`, `AWP`),
605
+ maxammo_57mm: maxAmmo(`5.7mm`),
606
+ ammo_57mm: ammoCopy(`5.7mm`, `P90, Five-seveN`),
607
+ maxammo_357sig: maxAmmo(`.357 SIG`),
608
+ ammo_357sig: ammoCopy(`.357 SIG`, `P228`),
609
+ has_disconnected: {
610
+ en: `The player's \`"left"\` flag: \`true\` once he has left the server (or the bot was kicked), until someone takes the slot.`,
611
+ ru: `Отметка ухода игрока: \`true\`, когда он ушёл с сервера (или бота выгнали), пока слот не займёт кто-то другой.`,
612
+ },
613
+ // Only a weapon uses these three.
614
+ m_flStartThrow: {
615
+ en: `The game time a grenade's pin was pulled (\`0\` when not); a player has the field but does not use it.`,
616
+ ru: `Игровое время, когда у гранаты выдернута чека (\`0\` — не выдернута); у игрока поле есть, но не используется.`,
617
+ },
618
+ m_flReleaseThrow: {
619
+ en: `The game time the attack button was let go on a grenade (\`-1\` before the pin is pulled); unused on a player.`,
620
+ ru: `Игровое время, когда у гранаты отпущена кнопка атаки (\`-1\`, пока чека не выдернута); у игрока не используется.`,
621
+ },
622
+ m_iSwing: {
623
+ en: `A knife's swing counter, which picks the left or right slash animation; unused on a player.`,
624
+ ru: `Счётчик взмахов ножа, по которому выбирается анимация удара слева или справа; у игрока не используется.`,
625
+ },
626
+
627
+ // CBaseAnimating.
628
+ m_flGroundSpeed: {
629
+ en: `The ground speed of the current animation: how fast it moves the model, units per second.`,
630
+ ru: `Скорость текущей анимации по земле: насколько быстро она двигает модель, единиц в секунду.`,
631
+ },
632
+ m_flLastEventCheck: {
633
+ en: `The game time the animation's events (footsteps, sounds) were last checked.`,
634
+ ru: `Игровое время последней проверки событий анимации (шаги, звуки).`,
635
+ },
636
+ m_fSequenceFinished: {
637
+ en: `The \`"finished"\` flag of the current animation: \`true\` once it has played to its end.`,
638
+ ru: `Флаг конца текущей анимации: \`true\`, когда она доиграла до конца.`,
639
+ },
640
+ m_fSequenceLoops: {
641
+ en: `The \`"loops"\` flag of the current animation: \`true\` if it loops.`,
642
+ ru: `Флаг зацикленности текущей анимации: \`true\`, если она зациклена.`,
643
+ },
644
+
645
+ // CBaseMonster: a player is a monster to the game, so these are his too.
646
+ m_Activity: {
647
+ en: `
648
+ The model's current activity (idle, run, walk, ...); the game sets it with the player's animation.
649
+
650
+ Pawn: \`ACT_*\`
651
+ `,
652
+ ru: `
653
+ Текущее действие модели (стоит, бежит, идёт, ...); игра ставит его вместе с анимацией игрока.
654
+
655
+ Pawn: \`ACT_*\`
656
+ `,
657
+ },
658
+ m_IdealActivity: {
659
+ en: `
660
+ The model's next activity, the one it should switch to.
661
+
662
+ Pawn: \`ACT_*\`
663
+ `,
664
+ ru: `
665
+ Следующее действие модели — на которое она должна переключиться.
666
+
667
+ Pawn: \`ACT_*\`
668
+ `,
669
+ },
670
+ m_LastHitGroup: {
671
+ en: `
672
+ The body part the last bullet hit, one of: \`"generic"\` - no particular part; \`"head"\`, \`"chest"\`, \`"stomach"\`, \`"leftArm"\`, \`"rightArm"\`, \`"leftLeg"\`, \`"rightLeg"\`; \`"shield"\`.
673
+
674
+ Pawn: \`HITGROUP_*\`
675
+ `,
676
+ ru: `
677
+ Часть тела, куда попала последняя пуля, одно из: \`"generic"\` — без уточнения; \`"head"\`, \`"chest"\`, \`"stomach"\`, \`"leftArm"\`, \`"rightArm"\`, \`"leftLeg"\`, \`"rightLeg"\`; \`"shield"\` — щит.
678
+
679
+ Pawn: \`HITGROUP_*\`
680
+ `,
681
+ },
682
+ m_bitsDamageType: {
683
+ en: `The kinds of damage the player took since the HUD was last told, e.g. \`"Fall"\`, \`"Bullet"\`, \`"Burn"\`; the game clears all but the lasting ones after the damage indicator is sent.`,
684
+ ru: `Виды урона, полученного игроком с последнего обновления HUD, например \`"Fall"\`, \`"Bullet"\`, \`"Burn"\`; отправив индикатор урона, игра оставляет только длительные.`,
685
+ },
686
+ m_MonsterState: {
687
+ en: `A monster's (a hostage's) AI state, one of: \`"none"\`, \`"idle"\`, \`"combat"\`, \`"alert"\`, \`"hunt"\`, \`"prone"\`, \`"script"\`, \`"playDead"\`, \`"dead"\`.`,
688
+ ru: `Состояние ИИ монстра (заложника), одно из: \`"none"\`, \`"idle"\`, \`"combat"\`, \`"alert"\`, \`"hunt"\`, \`"prone"\`, \`"script"\`, \`"playDead"\`, \`"dead"\`.`,
689
+ },
690
+ m_IdealMonsterState: {
691
+ en: `The AI state a monster (a hostage) should move to - the names \`monsterState\` has.`,
692
+ ru: `Состояние ИИ, в которое монстр (заложник) должен перейти, — те же имена, что у \`monsterState\`.`,
693
+ },
694
+ m_afConditions: {
695
+ en: `A monster's AI conditions this think, as bits: sees an enemy, is hurt, hears a sound.`,
696
+ ru: `Условия ИИ монстра в этом think, битами: видит врага, ранен, слышит звук.`,
697
+ },
698
+ m_afMemory: {
699
+ en: `A monster's AI memory, as bits kept between thinks.`,
700
+ ru: `Память ИИ монстра — биты, которые хранятся между think.`,
701
+ },
702
+ m_flNextAttack: {
703
+ en: `The player's delay before any weapon can be used, in seconds; it counts down to \`0\` by itself. The game sets it while he switches weapons or reloads.`,
704
+ ru: `Задержка игрока до использования любого оружия, в секундах; сама отсчитывается до \`0\`. Игра ставит её при смене оружия и перезарядке.`,
705
+ },
706
+ m_hTargetEnt: {
707
+ en: `A monster's target: the entity it moves to or follows, like the player a hostage follows.`,
708
+ ru: `Цель монстра: сущность, к которой он идёт или за которой следует, — например, игрок, за которым идёт заложник.`,
709
+ },
710
+ m_flFieldOfView: {
711
+ en: `A monster's field of view, as the cosine of half the cone: \`0.5\` sees 120 degrees wide.`,
712
+ ru: `Поле зрения монстра как косинус половины конуса: \`0.5\` — обзор 120 градусов.`,
713
+ },
714
+ m_bloodColor: {
715
+ en: `
716
+ The colour of the entity's blood, one of: \`"red"\`; \`"yellow"\`; \`"none"\` - does not bleed.
717
+
718
+ Pawn: \`BLOOD_COLOR_*\`, \`DONT_BLEED\`
719
+ `,
720
+ ru: `
721
+ Цвет крови сущности, одно из: \`"red"\` — красная; \`"yellow"\` — жёлтая; \`"none"\` — не кровоточит.
722
+
723
+ Pawn: \`BLOOD_COLOR_*\`, \`DONT_BLEED\`
724
+ `,
725
+ },
726
+ m_HackedGunPos: {
727
+ en: `The position of a monster's gun relative to its \`origin\`, where its shots come from.`,
728
+ ru: `Положение оружия монстра относительно \`origin\` — откуда он стреляет.`,
729
+ },
730
+ m_vecEnemyLKP: {
731
+ en: `The position where a monster last saw its enemy.`,
732
+ ru: `Место, где монстр последний раз видел врага.`,
733
+ },
734
+
735
+ // CBasePlayer.
736
+ random_seed: {
737
+ en: `The random seed of the player's current command; bullet spread is drawn from it, so the client can predict it.`,
738
+ ru: `Случайное зерно текущей команды игрока; из него берётся разброс пуль, чтобы клиент мог его предсказать.`,
739
+ },
740
+ m_usPlayerBleed: {
741
+ en: `The player's bleeding event; the game does not use it.`,
742
+ ru: `Событие кровотечения игрока; игра его не использует.`,
743
+ },
744
+ m_hObserverTarget: {
745
+ en: `The player this spectator is watching.`,
746
+ ru: `Игрок, за которым наблюдает этот зритель.`,
747
+ },
748
+ m_flNextObserverInput: {
749
+ en: `The game time when the spectator's next button press is taken; presses are 0.2 seconds apart.`,
750
+ ru: `Игровое время, когда зрителю засчитают следующее нажатие кнопки; нажатия идут не чаще раза в 0.2 секунды.`,
751
+ },
752
+ m_iObserverWeapon: {
753
+ en: `The weapon of the watched player, as last shown to this spectator, by its number.`,
754
+ ru: `Номер оружия наблюдаемого игрока, каким его последний раз показали зрителю.`,
755
+ },
756
+ m_iObserverC4State: {
757
+ en: `The watched player's bomb state, as last shown to this spectator.`,
758
+ ru: `Состояние бомбы у наблюдаемого игрока, каким его последний раз показали зрителю.`,
759
+ },
760
+ m_bObserverHasDefuser: {
761
+ en: `\`true\` if the watched player has a defuse kit, as last shown to this spectator.`,
762
+ ru: `\`true\`, если у наблюдаемого игрока есть набор сапёра, — как последний раз показали зрителю.`,
763
+ },
764
+ m_iObserverLastMode: {
765
+ en: `
766
+ The spectator mode the player chose last, restored when he spectates again - the names \`observerMode\` has, one of: \`"chaseLocked"\`, \`"chaseFree"\`, \`"roaming"\`, \`"inEye"\`, \`"mapFree"\`, \`"mapChase"\`.
767
+
768
+ Pawn: \`OBS_*\`
769
+ `,
770
+ ru: `
771
+ Режим наблюдения, который игрок выбрал последним; восстанавливается, когда он снова наблюдает. Имена те же, что у \`observerMode\`, одно из: \`"chaseLocked"\`, \`"chaseFree"\`, \`"roaming"\`, \`"inEye"\`, \`"mapFree"\`, \`"mapChase"\`.
772
+
773
+ Pawn: \`OBS_*\`
774
+ `,
775
+ },
776
+ m_flFlinchTime: {
777
+ en: `The game time when a hostage stops flinching from a hit; not used on a player.`,
778
+ ru: `Игровое время, когда заложник перестанет вздрагивать от удара; у игрока не используется.`,
779
+ },
780
+ m_bHighDamage: {
781
+ en: `\`true\` if the player's last hit was heavy (over \`60\` to the head, over \`20\` elsewhere), for the pain animation.`,
782
+ ru: `\`true\`, если последнее попадание в игрока было сильным (больше \`60\` в голову, больше \`20\` в другое место), — для анимации боли.`,
783
+ },
784
+ m_flVelocityModifier: {
785
+ en: `The player's speed multiplier after a hit: below \`1\` he is slowed, and on the ground it climbs back to \`1\` by \`0.01\` a frame.`,
786
+ ru: `Множитель скорости игрока после попадания: меньше \`1\` — игрок замедлен; на земле множитель возвращается к \`1\` по \`0.01\` за кадр.`,
787
+ },
788
+ // player.fov: a player's own field of view, over the entvar of that name.
789
+ m_iFOV: {
790
+ en: `The player's field of view in degrees: \`90\` is normal, \`40\` and \`10\` through a sniper scope. Setting it widens or narrows his view - \`110\` shows more - until the game sets it again: at spawn, when he draws a weapon, when he zooms.`,
791
+ ru: `Поле зрения игрока в градусах: \`90\` — обычное, \`40\` и \`10\` — в снайперский прицел. Запись расширяет или сужает обзор — \`110\` показывает больше, — пока игра не поставит своё: при появлении, когда он достаёт оружие, когда приближает прицел.`,
792
+ },
793
+ m_iLastZoom: {
794
+ en: `The player's zoom (field of view) to go back to after a sniper rifle reloads or fires.`,
795
+ ru: `Зум игрока (поле зрения), к которому вернуться после перезарядки или выстрела снайперской винтовки.`,
796
+ },
797
+ m_bResumeZoom: {
798
+ en: `\`true\` if the player's zoom comes back after the shot.`,
799
+ ru: `\`true\`, если зум игрока вернётся после выстрела.`,
800
+ },
801
+ m_flEjectBrass: {
802
+ en: `The game time when the player's weapon throws out its next shell casing (AWP, Scout, shotguns); \`0\` for none.`,
803
+ ru: `Игровое время, когда из оружия игрока вылетит следующая гильза (AWP, Scout, дробовики); \`0\` — не вылетит.`,
804
+ },
805
+ m_iKevlar: {
806
+ en: `
807
+ The player's armour kind, one of: \`"none"\`; \`"vest"\`; \`"vestHelmet"\` - a vest and a helmet.
808
+
809
+ Pawn: \`ARMOR_*\`
810
+ `,
811
+ ru: `
812
+ Вид брони игрока, одно из: \`"none"\` — нет; \`"vest"\` — жилет; \`"vestHelmet"\` — жилет и шлем.
813
+
814
+ Pawn: \`ARMOR_*\`
815
+ `,
816
+ },
817
+ m_bNotKilled: {
818
+ en: `\`true\` if the player survived the last round and keeps his equipment; with \`false\` he gets the default one at spawn.`,
819
+ ru: `\`true\`, если игрок пережил прошлый раунд и сохраняет снаряжение; при \`false\` он появится со стандартным.`,
820
+ },
821
+ m_iAccount: {
822
+ en: `The player's money: \`800\` at the start. Writing it does not update the money on his HUD; \`rg_add_account\` does.`,
823
+ ru: `Деньги игрока: \`800\` в начале. Запись не обновляет деньги на его HUD, а \`rg_add_account\` обновляет.`,
824
+ },
825
+ m_bHasPrimary: {
826
+ en: `\`true\` if the player carries a primary weapon (a rifle, a shotgun, a submachine gun).`,
827
+ ru: `\`true\`, если у игрока есть основное оружие (винтовка, дробовик, пистолет-пулемёт).`,
828
+ },
829
+ m_flDeathThrowTime: {
830
+ en: `The player's death throw timer; the game only ever sets it to \`0\`.`,
831
+ ru: `Таймер отброса тела игрока при смерти; игра его только обнуляет.`,
832
+ },
833
+ m_iThrowDirection: {
834
+ en: `The way the player's body is thrown when he dies, one of: \`"none"\` - not thrown; \`"forward"\`; \`"backward"\`; \`"hitVelocity"\` - away from the attacker and up; \`"hitVelocityMinusAir"\` - away from the attacker, without the lift; \`"bomb"\` - by the bomb's blast; \`"grenade"\` - by a grenade's blast.`,
835
+ ru: `Направление, куда отбросит тело игрока при смерти, одно из: \`"none"\` — никуда; \`"forward"\` — вперёд; \`"backward"\` — назад; \`"hitVelocity"\` — от атакующего и вверх; \`"hitVelocityMinusAir"\` — от атакующего, без подброса; \`"bomb"\` — взрывом бомбы; \`"grenade"\` — взрывом гранаты.`,
836
+ },
837
+ m_flLastTalk: {
838
+ en: `The game time of the player's last chat message; a message within 0.66 seconds of it is ignored.`,
839
+ ru: `Игровое время последнего сообщения игрока в чат; сообщение раньше чем через 0.66 секунды после него игра пропускает.`,
840
+ },
841
+ m_bJustConnected: {
842
+ en: `\`true\` from the player's connecting until he first gets into the game.`,
843
+ ru: `\`true\` с подключения игрока до его первого входа в игру.`,
844
+ },
845
+ m_bContextHelp: {
846
+ en: `The player's context help flag: set to \`true\` on connect, never read by the game.`,
847
+ ru: `Флаг контекстной помощи игрока: ставится в \`true\` при подключении, игра его не читает.`,
848
+ },
849
+ m_iJoiningState: {
850
+ en: `
851
+ The player's stage of joining, one of: \`"joined"\` - in the game; \`"showMotd"\` - the MOTD is shown; \`"readingMotd"\` - reading the MOTD; \`"showTeamSelect"\` - the team menu is shown; \`"pickingTeam"\` - picking a team; \`"getIntoGame"\` - getting into the game.
852
+
853
+ Pawn: \`JoinState\`
854
+ `,
855
+ ru: `
856
+ Стадия входа игрока в игру, одно из: \`"joined"\` — в игре; \`"showMotd"\` — показан MOTD; \`"readingMotd"\` — читает MOTD; \`"showTeamSelect"\` — показано меню команды; \`"pickingTeam"\` — выбирает команду; \`"getIntoGame"\` — входит в игру.
857
+
858
+ Pawn: \`JoinState\`
859
+ `,
860
+ },
861
+ m_pIntroCamera: {
862
+ en: `The camera (\`trigger_camera\`) a player still choosing a team looks through.`,
863
+ ru: `Камера (\`trigger_camera\`), через которую смотрит игрок, пока выбирает команду.`,
864
+ },
865
+ m_fIntroCamTime: {
866
+ en: `The game time when the player's intro view switches to the next camera (every 6 seconds).`,
867
+ ru: `Игровое время, когда вступительный вид игрока переключится на следующую камеру (каждые 6 секунд).`,
868
+ },
869
+ m_fLastMovement: {
870
+ en: `The game time when the player last moved or pressed a button; the kick for idling counts from it.`,
871
+ ru: `Игровое время, когда игрок последний раз двигался или нажимал кнопку; от него считается кик за бездействие.`,
872
+ },
873
+ m_bMissionBriefing: {
874
+ en: `\`true\` while the map's briefing is on the player's screen.`,
875
+ ru: `\`true\`, пока у игрока на экране брифинг карты.`,
876
+ },
877
+ m_bTeamChanged: {
878
+ en: `\`true\` if the player has changed team during this round.`,
879
+ ru: `\`true\`, если игрок сменил команду в этом раунде.`,
880
+ },
881
+ m_iModelName: {
882
+ en: `
883
+ The player's model, one of: \`"urban"\`, \`"gsg9"\`, \`"gign"\`, \`"sas"\`, \`"vip"\`, \`"spetsnaz"\` - the counter-terrorists'; \`"terror"\`, \`"leet"\`, \`"arctic"\`, \`"guerilla"\`, \`"militia"\` - the terrorists'; \`"unassigned"\` before he picks one; \`"auto"\` - the game picks.
884
+
885
+ Pawn: \`MODEL_*\`
886
+ `,
887
+ ru: `
888
+ Модель игрока, одно из: \`"urban"\`, \`"gsg9"\`, \`"gign"\`, \`"sas"\`, \`"vip"\`, \`"spetsnaz"\` — спецназа; \`"terror"\`, \`"leet"\`, \`"arctic"\`, \`"guerilla"\`, \`"militia"\` — террористов; \`"unassigned"\` — пока не выбрана; \`"auto"\` — выбирает игра.
889
+
890
+ Pawn: \`MODEL_*\`
891
+ `,
892
+ },
893
+ m_iTeamKills: {
894
+ en: `The number of teammates the player has killed; with \`mp_autokick\` he is kicked at \`mp_max_teamkills\`.`,
895
+ ru: `Число союзников, убитых игроком; при \`mp_autokick\` его выгоняют, когда оно доходит до \`mp_max_teamkills\`.`,
896
+ },
897
+ m_iIgnoreGlobalChat: {
898
+ en: `
899
+ The chat the player hides (the \`ignoremsg\` command), one of: \`"none"\` - nobody's; \`"enemy"\` - the enemy's; \`"all"\` - everyone's.
900
+
901
+ Pawn: \`IGNOREMSG_*\`
902
+ `,
903
+ ru: `
904
+ Чат, который игрок скрывает (команда \`ignoremsg\`), одно из: \`"none"\` — ничей; \`"enemy"\` — врагов; \`"all"\` — всех.
905
+
906
+ Pawn: \`IGNOREMSG_*\`
907
+ `,
908
+ },
909
+ m_bHasNightVision: {
910
+ en: `\`true\` if the player owns night vision goggles.`,
911
+ ru: `\`true\`, если у игрока есть прибор ночного видения.`,
912
+ },
913
+ m_bNightVisionOn: {
914
+ en: `\`true\` while the player's night vision is switched on.`,
915
+ ru: `\`true\`, пока прибор ночного видения игрока включён.`,
916
+ },
917
+ m_flIdleCheckTime: {
918
+ en: `The game time of the player's next idle check; checks are 5 seconds apart.`,
919
+ ru: `Игровое время следующей проверки игрока на бездействие; проверки идут раз в 5 секунд.`,
920
+ },
921
+ m_flRadioTime: {
922
+ en: `The game time when the player can use the radio again.`,
923
+ ru: `Игровое время, когда игрок снова сможет пользоваться радио.`,
924
+ },
925
+ m_iRadioMessages: {
926
+ en: `The number of radio messages the player has left until he spawns again (\`mp_radio_maxinround\`, \`60\` by default); at \`0\` his radio is silent.`,
927
+ ru: `Число радиосообщений, оставшихся у игрока до следующего появления (\`mp_radio_maxinround\`, по умолчанию \`60\`); на \`0\` его радио молчит.`,
928
+ },
929
+ m_bIgnoreRadio: {
930
+ en: `\`true\` if the player does not hear radio messages (the ignorerad command).`,
931
+ ru: `\`true\`, если игрок не слышит радио (команда ignorerad).`,
932
+ },
933
+ m_bHasC4: {
934
+ en: `\`true\` while the player carries the bomb.`,
935
+ ru: `\`true\`, пока игрок несёт бомбу.`,
936
+ },
937
+ m_bHasDefuser: {
938
+ en: `\`true\` if the player has a defuse kit.`,
939
+ ru: `\`true\`, если у игрока есть набор сапёра.`,
940
+ },
941
+ m_bKilledByBomb: {
942
+ en: `\`true\` if the bomb's explosion killed the player.`,
943
+ ru: `\`true\`, если игрока убил взрыв бомбы.`,
944
+ },
945
+ m_vBlastVector: {
946
+ en: `The direction from an explosion to the player, saved on a blast hit to throw the body if he dies.`,
947
+ ru: `Направление от взрыва к игроку; запоминается при попадании взрывом, чтобы отбросить тело, если игрок умрёт.`,
948
+ },
949
+ m_bKilledByGrenade: {
950
+ en: `\`true\` if a grenade killed the player.`,
951
+ ru: `\`true\`, если игрока убила граната.`,
952
+ },
953
+ m_flDisplayHistory: {
954
+ en: `The one-time hints the player has already been shown, one bit each.`,
955
+ ru: `Разовые подсказки, уже показанные игроку, по биту на каждую.`,
956
+ },
957
+ m_iMenu: {
958
+ en: `
959
+ The old-style menu the game has open for the player, one of: \`"none"\`; \`"team"\` - the team menu, \`"teamInGame"\` - the same, once in the game; \`"appearance"\` - the model menu; \`"buy"\`, \`"buyPistol"\`, \`"buyRifle"\`, \`"buyMachineGun"\`, \`"buyShotgun"\`, \`"buySubMachineGun"\`, \`"buyItem"\` - the buy menus; \`"radio1"\`, \`"radio2"\`, \`"radio3"\` - the radio menus; \`"clientBuy"\` - the buy menu the client draws itself.
960
+
961
+ Pawn: \`Menu_*\`
962
+ `,
963
+ ru: `
964
+ Старое меню, которое игра открыла игроку, одно из: \`"none"\` — никакое; \`"team"\` — меню команды, \`"teamInGame"\` — оно же в игре; \`"appearance"\` — меню модели; \`"buy"\`, \`"buyPistol"\`, \`"buyRifle"\`, \`"buyMachineGun"\`, \`"buyShotgun"\`, \`"buySubMachineGun"\`, \`"buyItem"\` — меню закупки; \`"radio1"\`, \`"radio2"\`, \`"radio3"\` — меню радио; \`"clientBuy"\` — меню закупки, которое рисует сам клиент.
965
+
966
+ Pawn: \`Menu_*\`
967
+ `,
968
+ },
969
+ m_iChaseTarget: {
970
+ en: `The player's chase target: set to \`1\` on spawn, never read by the game.`,
971
+ ru: `Цель слежения игрока: ставится в \`1\` при появлении, игра её не читает.`,
972
+ },
973
+ m_fCamSwitch: {
974
+ en: `The player's camera switch: set to \`0\` on spawn, never read by the game.`,
975
+ ru: `Переключатель камеры игрока: обнуляется при появлении, игра его не читает.`,
976
+ },
977
+ m_bEscaped: {
978
+ en: `\`true\` if the player escaped (on an escape map) or, as the VIP, got out.`,
979
+ ru: `\`true\`, если игрок сбежал (на карте побега) или, будучи VIP, спасся.`,
980
+ },
981
+ m_bIsVIP: {
982
+ en: `\`true\` if the player is the VIP on an as_ map.`,
983
+ ru: `\`true\`, если игрок — VIP на карте as_.`,
984
+ },
985
+ m_szNewName: {
986
+ en: `The name the player takes at his next respawn: a name he changed while dead waits here.`,
987
+ ru: `Имя, которое игрок получит при следующем возрождении: имя, сменённое мёртвым, ждёт здесь.`,
988
+ },
989
+ m_szTextureName: {
990
+ en: `The name of the texture the player last stood on, which his footsteps sound by.`,
991
+ ru: `Имя текстуры, на которой игрок стоял последней; по ней звучат его шаги.`,
992
+ },
993
+ m_SbarString0: {
994
+ en: `The status bar text the game last sent the player - the line that names whom he aims at, as a format his client fills in.`,
995
+ ru: `Текст строки состояния, который игра последним отправила игроку, — строка о том, в кого он целится, в виде формата, который заполняет его клиент.`,
996
+ },
997
+ m_szTeamName: {
998
+ en: `A team name the game keeps for Half-Life's team play; Counter-Strike leaves it empty. The player's team is \`player.team\`.`,
999
+ ru: `Имя команды, которое игра держит для командной игры Half-Life; Counter-Strike оставляет его пустым. Команда игрока — \`player.team\`.`,
1000
+ },
1001
+ m_szAnimExtention: {
1002
+ en: `The animation set the player's model holds his weapon with, e.g. \`"knife"\`, \`"rifle"\`, \`"c4"\`.`,
1003
+ ru: `Набор анимаций, с которым модель игрока держит оружие, например \`"knife"\`, \`"rifle"\`, \`"c4"\`.`,
1004
+ },
1005
+ m_autoBuyString: {
1006
+ en: `The player's autobuy list: the items his client sent for \`autobuy\`.`,
1007
+ ru: `Список автозакупки игрока: предметы, которые его клиент прислал для \`autobuy\`.`,
1008
+ },
1009
+ m_rebuyString: {
1010
+ en: `The player's rebuy list: the items his client sent for \`rebuy\`.`,
1011
+ ru: `Список повторной закупки игрока: предметы, которые его клиент прислал для \`rebuy\`.`,
1012
+ },
1013
+ m_lastLocation: {
1014
+ en: `The name of the place on the map the player was last in, which the radio and team chat name, e.g. \`"BombsiteA"\`.`,
1015
+ ru: `Название места на карте, где игрок был последним, — его называют радио и командный чат, например \`"BombsiteA"\`.`,
1016
+ },
1017
+ m_tmNextRadarUpdate: {
1018
+ en: `The game time when the player's position is next sent to his teammates' radar, once a second.`,
1019
+ ru: `Игровое время, когда позиция игрока снова уйдёт на радар союзников; раз в секунду.`,
1020
+ },
1021
+ m_vLastOrigin: {
1022
+ en: `The player's position when his teammates' radar was last updated.`,
1023
+ ru: `Позиция игрока при последнем обновлении радара союзников.`,
1024
+ },
1025
+ m_iCurrentKickVote: {
1026
+ en: `The \`userid\` of the player this one voted to kick (the \`vote\` command); \`0\` for none.`,
1027
+ ru: `\`userid\` игрока, за кик которого проголосовал этот (команда \`vote\`); \`0\` — ни за кого.`,
1028
+ },
1029
+ m_flNextVoteTime: {
1030
+ en: `The game time when the player can vote again, 3 seconds after his last vote.`,
1031
+ ru: `Игровое время, когда игрок снова сможет голосовать, — через 3 секунды после прошлого голоса.`,
1032
+ },
1033
+ m_bJustKilledTeammate: {
1034
+ en: `\`true\` if the player killed a teammate; with \`mp_tkpunish\` he is punished when the next round starts.`,
1035
+ ru: `\`true\`, если игрок убил союзника; при \`mp_tkpunish\` его накажут в начале следующего раунда.`,
1036
+ },
1037
+ m_iHostagesKilled: {
1038
+ en: `The number of hostages the player has killed; past \`mp_hostagepenalty\` the game kicks him.`,
1039
+ ru: `Число заложников, убитых игроком; сверх \`mp_hostagepenalty\` игра его выгоняет.`,
1040
+ },
1041
+ m_iMapVote: {
1042
+ en: `The number of the map the player voted for with \`votemap\`; \`0\` for none.`,
1043
+ ru: `Номер карты, за которую игрок проголосовал через \`votemap\`; \`0\` — ни за какую.`,
1044
+ },
1045
+ m_bCanShoot: {
1046
+ en: `\`false\` while the player may not fire; the game sets it to \`true\` when freeze time ends.`,
1047
+ ru: `\`false\`, пока игроку нельзя стрелять; когда кончается заморозка, игра ставит \`true\`.`,
1048
+ },
1049
+ m_flLastFired: {
1050
+ en: `The game time of the player's last shot, for his footstep and shooting animations.`,
1051
+ ru: `Игровое время последнего выстрела игрока — для анимаций шагов и стрельбы.`,
1052
+ },
1053
+ m_flLastAttackedTeammate: {
1054
+ en: `The game time when the player last hurt a teammate; the “teammate attack” message waits 0.6 seconds from it.`,
1055
+ ru: `Игровое время, когда игрок последний раз ранил союзника; сообщение об атаке союзника ждёт 0.6 секунды от него.`,
1056
+ },
1057
+ m_bHeadshotKilled: {
1058
+ en: `\`true\` if the player was killed by a headshot.`,
1059
+ ru: `\`true\`, если игрока убили в голову.`,
1060
+ },
1061
+ m_bPunishedForTK: {
1062
+ en: `\`true\` if the player was punished for a team kill this round.`,
1063
+ ru: `\`true\`, если игрок наказан за убийство союзника в этом раунде.`,
1064
+ },
1065
+ m_bReceivesNoMoneyNextRound: {
1066
+ en: `\`true\` if the player gets no round bonus next round: the game marks so the living players of a team that let the round time run out.`,
1067
+ ru: `\`true\`, если игрок не получит бонус в следующем раунде: так игра отмечает живых игроков команды, у которой истекло время раунда.`,
1068
+ },
1069
+ m_iTimeCheckAllowed: {
1070
+ en: `The game time, in whole seconds, when the timeleft command answers the player again.`,
1071
+ ru: `Игровое время в целых секундах, когда команда timeleft снова ответит игроку.`,
1072
+ },
1073
+ m_bHasChangedName: {
1074
+ en: `\`true\` if the player changed his name while dead; the new name is applied at his next spawn.`,
1075
+ ru: `\`true\`, если игрок сменил имя, будучи мёртвым; новое имя применится при следующем появлении.`,
1076
+ },
1077
+ m_bIsDefusing: {
1078
+ en: `\`true\` while the player defuses the bomb.`,
1079
+ ru: `\`true\`, пока игрок обезвреживает бомбу.`,
1080
+ },
1081
+ m_tmHandleSignals: {
1082
+ en: `The game time when the player's zones (buy zone, bomb site, rescue zone) are next checked, every half second.`,
1083
+ ru: `Игровое время следующей проверки зон игрока (зона закупки, точка бомбы, зона спасения); раз в полсекунды.`,
1084
+ },
1085
+ m_pentCurBombTarget: {
1086
+ en: `The bomb site the player stands in, or \`0\`.`,
1087
+ ru: `Точка закладки бомбы, в которой стоит игрок, или \`0\`.`,
1088
+ },
1089
+ m_iPlayerSound: {
1090
+ en: `The player's slot in the list of sounds monsters (hostages) hear.`,
1091
+ ru: `Место игрока в списке звуков, которые слышат монстры (заложники).`,
1092
+ },
1093
+ m_iTargetVolume: {
1094
+ en: `The player's loudness to monsters this frame: the louder of his body and his weapon.`,
1095
+ ru: `Громкость игрока для монстров в этом кадре — громче из шагов и оружия.`,
1096
+ },
1097
+ m_iWeaponVolume: {
1098
+ en: `The loudness of the player's last shot to monsters; it fades by itself.`,
1099
+ ru: `Громкость последнего выстрела игрока для монстров; затихает сама.`,
1100
+ },
1101
+ m_iExtraSoundTypes: {
1102
+ en: `The extra kinds of sound the player makes for monsters until \`stopExtraSoundTime\`.`,
1103
+ ru: `Дополнительные виды звука, которые игрок издаёт для монстров до \`stopExtraSoundTime\`.`,
1104
+ },
1105
+ m_iWeaponFlash: {
1106
+ en: `The brightness of the player's last muzzle flash, adding to how visible he is; it fades by itself.`,
1107
+ ru: `Яркость последней вспышки выстрела игрока — добавляется к его заметности; гаснет сама.`,
1108
+ },
1109
+ m_flStopExtraSoundTime: {
1110
+ en: `The game time when the player's \`extraSoundTypes\` is cleared.`,
1111
+ ru: `Игровое время, когда \`extraSoundTypes\` игрока сбросится.`,
1112
+ },
1113
+ m_flFlashLightTime: {
1114
+ en: `The game time when the player's flashlight battery next drains (while on) or charges (while off) by one.`,
1115
+ ru: `Игровое время, когда батарея фонарика игрока в следующий раз разрядится (включён) или зарядится (выключен) на единицу.`,
1116
+ },
1117
+ m_iFlashBattery: {
1118
+ en: `The charge of the player's flashlight, \`0\` to \`100\`.`,
1119
+ ru: `Заряд фонарика игрока, от \`0\` до \`100\`.`,
1120
+ },
1121
+ m_afButtonLast: {
1122
+ en: `The buttons the player held the frame before: \`["Jump"]\`.`,
1123
+ ru: `Кнопки, которые игрок держал в прошлом кадре: \`["Jump"]\`.`,
1124
+ },
1125
+ m_afButtonPressed: {
1126
+ en: `The buttons the player pressed this frame: \`["Jump"]\`.`,
1127
+ ru: `Кнопки, которые игрок нажал в этом кадре: \`["Jump"]\`.`,
1128
+ },
1129
+ m_afButtonReleased: {
1130
+ en: `The buttons the player let go this frame: \`["Jump"]\`.`,
1131
+ ru: `Кнопки, которые игрок отпустил в этом кадре: \`["Jump"]\`.`,
1132
+ },
1133
+ m_pentSndLast: {
1134
+ en: `The sound area (\`env_sound\`) whose room effect is on the player.`,
1135
+ ru: `Звуковая область (\`env_sound\`), чей эффект помещения сейчас действует на игрока.`,
1136
+ },
1137
+ m_flSndRoomtype: {
1138
+ en: `The room effect (echo) of the player's sound area, \`0\` for none.`,
1139
+ ru: `Эффект помещения (эхо) звуковой области игрока, \`0\` — нет.`,
1140
+ },
1141
+ m_flSndRange: {
1142
+ en: `The distance from the player to his sound area.`,
1143
+ ru: `Расстояние от игрока до его звуковой области.`,
1144
+ },
1145
+ m_fNewAmmo: unused(`The player's “new ammo to send” flag from Half-Life.`, `Флаг игрока «есть новые патроны для отправки» из Half-Life.`),
1146
+ m_afPhysicsFlags: {
1147
+ en: `
1148
+ The player's physics state, a list of any of: \`"OnLadder"\`, \`"OnTrain"\`, \`"OnBarnacle"\`, \`"Ducking"\` - crouching down right now, \`"Using"\` - holding an object's use key, \`"Observer"\` - a spectator locked in place.
1149
+
1150
+ Pawn: \`PFLAG_*\`
1151
+ `,
1152
+ ru: `
1153
+ Физическое состояние игрока, список, любые из: \`"OnLadder"\` — на лестнице, \`"OnTrain"\` — на поезде, \`"OnBarnacle"\` — схвачен барнаклом, \`"Ducking"\` — приседает прямо сейчас, \`"Using"\` — держит клавишу использования на объекте, \`"Observer"\` — закреплённый наблюдатель.
1154
+
1155
+ Pawn: \`PFLAG_*\`
1156
+ `,
1157
+ },
1158
+ m_fNextSuicideTime: {
1159
+ en: `The game time when the kill command works for the player again, a second after the last one.`,
1160
+ ru: `Игровое время, когда команда kill снова сработает для игрока, — через секунду после прошлой.`,
1161
+ },
1162
+ m_flTimeWeaponIdle: {
1163
+ en: `The player's idle timer from Half-Life; CS keeps it on the weapon (a Weapon's \`timeWeaponIdle\`) and does not use this one.`,
1164
+ ru: `Таймер покоя игрока из Half-Life; CS держит его у оружия (\`timeWeaponIdle\` у Weapon), а этот не использует.`,
1165
+ },
1166
+ m_flWallJumpTime: unused(`The player's wall-jump timer from Half-Life.`, `Таймер прыжка от стены у игрока из Half-Life.`),
1167
+ m_flSuitUpdate: {
1168
+ en: `The game time of the next HEV suit phrase (Half-Life); \`0\` for none.`,
1169
+ ru: `Игровое время следующей фразы костюма HEV (Half-Life); \`0\` — нет.`,
1170
+ },
1171
+ m_iSuitPlayNext: {
1172
+ en: `The next place in the HEV suit's phrase queue (Half-Life).`,
1173
+ ru: `Следующее место в очереди фраз костюма HEV (Half-Life).`,
1174
+ },
1175
+ m_lastDamageAmount: {
1176
+ en: `The damage the player took from the last hit.`,
1177
+ ru: `Урон, который игрок получил последним попаданием.`,
1178
+ },
1179
+ m_tbdPrev: {
1180
+ en: `The game time when damage over time (poison, burn, drowning recovery) was last applied to the player.`,
1181
+ ru: `Игровое время, когда к игроку последний раз применялся урон во времени (яд, огонь, восстановление после утопления).`,
1182
+ },
1183
+ m_flgeigerRange: {
1184
+ en: `The distance to the nearest radiation, for Half-Life's Geiger counter.`,
1185
+ ru: `Расстояние до ближайшей радиации — для счётчика Гейгера из Half-Life.`,
1186
+ },
1187
+ m_flgeigerDelay: {
1188
+ en: `The game time of the next Geiger counter update (Half-Life).`,
1189
+ ru: `Игровое время следующего обновления счётчика Гейгера (Half-Life).`,
1190
+ },
1191
+ m_igeigerRangePrev: {
1192
+ en: `The Geiger counter reading last sent to the client (Half-Life).`,
1193
+ ru: `Показание счётчика Гейгера, последним отправленное клиенту (Half-Life).`,
1194
+ },
1195
+ m_chTextureType: unused(`The type of texture under the player, for step sounds.`, `Тип текстуры под игроком — для звука шагов.`),
1196
+ m_idrowndmg: {
1197
+ en: `The health drowning has taken from the player; it is given back once he surfaces.`,
1198
+ ru: `Здоровье, которое отняло у игрока утопление; вернётся, когда игрок вынырнет.`,
1199
+ },
1200
+ m_idrownrestored: {
1201
+ en: `The part of the drowning damage already given back to the player.`,
1202
+ ru: `Часть урона от утопления, уже возвращённая игроку.`,
1203
+ },
1204
+ m_bitsHUDDamage: {
1205
+ en: `
1206
+ The kinds of damage last shown on the player's HUD, as bits; \`-1\` makes the game send them again.
1207
+
1208
+ Pawn: \`DMG_*\`
1209
+ `,
1210
+ ru: `
1211
+ Виды урона, последними показанные на HUD игрока, битами; \`-1\` — игра отправит их заново.
1212
+
1213
+ Pawn: \`DMG_*\`
1214
+ `,
1215
+ },
1216
+ m_fInitHUD: {
1217
+ en: `\`true\` when the player's HUD has to be reset on his next update (after a spawn).`,
1218
+ ru: `\`true\`, когда HUD игрока нужно сбросить при следующем обновлении (после появления).`,
1219
+ },
1220
+ m_fGameHUDInitialized: {
1221
+ en: `\`true\` once the player's HUD has been set up since he connected.`,
1222
+ ru: `\`true\`, когда HUD игрока настроен с момента подключения.`,
1223
+ },
1224
+ m_iTrain: {
1225
+ en: `
1226
+ The train control on the player's HUD: \`0\` off, \`1\` to \`5\` the speed notch, plus bits for \`"changed"\` and \`"active"\`.
1227
+
1228
+ Pawn: \`TRAIN_*\`
1229
+ `,
1230
+ ru: `
1231
+ Управление поездом на HUD игрока: \`0\` — нет, от \`1\` до \`5\` — положение рычага, плюс биты «изменилось» и «активно».
1232
+
1233
+ Pawn: \`TRAIN_*\`
1234
+ `,
1235
+ },
1236
+ m_fWeapon: {
1237
+ en: `\`false\` when the player's weapon list has to be sent again.`,
1238
+ ru: `\`false\`, когда список оружия игрока нужно отправить заново.`,
1239
+ },
1240
+ m_pTank: {
1241
+ en: `The mounted gun (\`func_tank\`) the player is using.`,
1242
+ ru: `Стационарное оружие (\`func_tank\`), которым пользуется игрок.`,
1243
+ },
1244
+ m_fDeadTime: {
1245
+ en: `The game time of the player's death.`,
1246
+ ru: `Игровое время смерти игрока.`,
1247
+ },
1248
+ m_fNoPlayerSound: {
1249
+ en: `\`true\` if monsters do not hear the player.`,
1250
+ ru: `\`true\`, если монстры не слышат игрока.`,
1251
+ },
1252
+ m_fLongJump: {
1253
+ en: `\`true\` if the player has the long jump module from Half-Life.`,
1254
+ ru: `\`true\`, если у игрока есть модуль длинного прыжка из Half-Life.`,
1255
+ },
1256
+ m_tSneaking: {
1257
+ en: `The game time from which the player counts as sneaking (Half-Life).`,
1258
+ ru: `Игровое время, с которого игрок считается крадущимся (Half-Life).`,
1259
+ },
1260
+ m_iUpdateTime: {
1261
+ en: `The player's update counter: set to \`5\` on reset, never read by the game.`,
1262
+ ru: `Счётчик обновления игрока: ставится в \`5\` при сбросе, игра его не читает.`,
1263
+ },
1264
+ m_iClientHealth: {
1265
+ en: `The health last sent to the player's HUD; when it differs from his health, the game sends the new one.`,
1266
+ ru: `Здоровье, последним отправленное в HUD игрока; если оно отличается от настоящего, игра отправит новое.`,
1267
+ },
1268
+ m_iClientBattery: {
1269
+ en: `The armour last sent to the player's HUD; \`-1\` makes the game send it again.`,
1270
+ ru: `Броня, последней отправленная в HUD игрока; \`-1\` — игра отправит её заново.`,
1271
+ },
1272
+ m_iHideHUD: {
1273
+ en: `The parts of the player's HUD that are hidden: \`["Money", "Timer"]\`; the game sends the change itself.`,
1274
+ ru: `Скрытые части HUD игрока: \`["Money", "Timer"]\`; изменение игра отправляет сама.`,
1275
+ },
1276
+ m_iClientHideHUD: {
1277
+ en: `The hidden HUD parts last sent to the player; when they differ from \`hideHud\`, the game sends \`hideHud\`.`,
1278
+ ru: `Скрытые части HUD, последними отправленные игроку; если они отличаются от \`hideHud\`, игра отправит \`hideHud\`.`,
1279
+ },
1280
+ m_iClientFOV: {
1281
+ en: `The field of view last sent to the player; when the game's own copy differs, the game sends that one.`,
1282
+ ru: `Поле зрения, последним отправленное игроку; если своя копия игры отличается, игра отправит её.`,
1283
+ },
1284
+ m_iNumSpawns: {
1285
+ en: `The number of times the player has spawned this round; with \`mp_forcerespawn\` off, a second spawn is refused.`,
1286
+ ru: `Число появлений игрока в этом раунде; без \`mp_forcerespawn\` второй раз его не пустят.`,
1287
+ },
1288
+ m_pObserver: {
1289
+ en: `An observer entity tied to the player; the game never creates one and only removes it when he disconnects.`,
1290
+ ru: `Сущность наблюдателя, привязанная к игроку; игра её не создаёт и только удаляет, когда игрок отключается.`,
1291
+ },
1292
+ m_pActiveItem: {
1293
+ en: `The weapon in the player's hands, or \`null\`.`,
1294
+ ru: `Оружие в руках игрока или \`null\`.`,
1295
+ },
1296
+ m_pClientActiveItem: {
1297
+ en: `The weapon the player's client was last told he holds.`,
1298
+ ru: `Оружие, которое, по последнему сообщению клиенту игрока, у него в руках.`,
1299
+ },
1300
+ m_pLastItem: {
1301
+ en: `The weapon the player held before this one — the one lastinv switches to.`,
1302
+ ru: `Оружие, которое игрок держал до текущего, — на него переключает lastinv.`,
1303
+ },
1304
+ m_vecAutoAim: {
1305
+ en: `The player's aim assist correction, in degrees.`,
1306
+ ru: `Поправка автоприцела игрока, в градусах.`,
1307
+ },
1308
+ m_fOnTarget: {
1309
+ en: `\`true\` while the player's aim assist has a target under the crosshair.`,
1310
+ ru: `\`true\`, пока у автоприцела игрока есть цель под прицелом.`,
1311
+ },
1312
+ m_flNextSBarUpdateTime: {
1313
+ en: `The game time of the next update of the player's status bar (the name under the crosshair), every 0.2 seconds.`,
1314
+ ru: `Игровое время следующего обновления строки статуса игрока (имя под прицелом); раз в 0.2 секунды.`,
1315
+ },
1316
+ m_flStatusBarDisappearDelay: {
1317
+ en: `The game time the status bar about the player under the crosshair stays until: 2 seconds after he leaves the crosshair.`,
1318
+ ru: `Игровое время, до которого держится строка статуса об игроке под прицелом, — 2 секунды после того, как он ушёл из прицела.`,
1319
+ },
1320
+ m_lastx: {
1321
+ en: `The horizontal aim assist correction last sent to the player's client.`,
1322
+ ru: `Горизонтальная поправка автоприцела, последней отправленная клиенту игрока.`,
1323
+ },
1324
+ m_lasty: {
1325
+ en: `The vertical aim assist correction last sent to the player's client.`,
1326
+ ru: `Вертикальная поправка автоприцела, последней отправленная клиенту игрока.`,
1327
+ },
1328
+ m_nCustomSprayFrames: {
1329
+ en: `The number of frames in the player's own spray logo; \`-1\` for none.`,
1330
+ ru: `Число кадров в собственном спрей-логотипе игрока; \`-1\` — логотипа нет.`,
1331
+ },
1332
+ m_flNextDecalTime: {
1333
+ en: `The game time when the player can spray again (decalfrequency).`,
1334
+ ru: `Игровое время, когда игрок снова сможет нанести спрей (decalfrequency).`,
1335
+ },
1336
+ m_modelIndexPlayer: {
1337
+ en: `The index of the player's own model; the game sets \`modelIndex\` back to it, at spawn for one.`,
1338
+ ru: `Номер собственной модели игрока; игра возвращает к нему \`modelIndex\`, например при появлении.`,
1339
+ },
1340
+ m_iGaitsequence: {
1341
+ en: `The legs' animation the game picked for the player this frame.`,
1342
+ ru: `Анимация ног, которую игра выбрала игроку в этом кадре.`,
1343
+ },
1344
+ m_flGaitframe: {
1345
+ en: `The playback position of the player's legs' animation, in frames.`,
1346
+ ru: `Позиция в анимации ног игрока, в кадрах.`,
1347
+ },
1348
+ m_flGaityaw: {
1349
+ en: `The direction the player's legs face, in degrees; it catches up with the body's.`,
1350
+ ru: `Направление ног игрока, в градусах; догоняет направление тела.`,
1351
+ },
1352
+ m_prevgaitorigin: {
1353
+ en: `The player's position on the previous animation update, to estimate his speed.`,
1354
+ ru: `Позиция игрока при прошлом обновлении анимации — чтобы оценить его скорость.`,
1355
+ },
1356
+ m_flPitch: {
1357
+ en: `The upper body's tilt the game worked out for the player's model.`,
1358
+ ru: `Наклон верхней части тела, который игра вычислила для модели игрока.`,
1359
+ },
1360
+ m_flYaw: {
1361
+ en: `The turn of the player's upper body against the legs, in degrees.`,
1362
+ ru: `Поворот верхней части тела игрока относительно ног, в градусах.`,
1363
+ },
1364
+ m_flGaitMovement: {
1365
+ en: `The distance the player moved since the previous animation update, for the legs' animation.`,
1366
+ ru: `Расстояние, на которое игрок сдвинулся с прошлого обновления анимации, — для анимации ног.`,
1367
+ },
1368
+ m_iAutoWepSwitch: {
1369
+ en: `The player's \`_cl_autowepswitch\` setting: \`0\` never switch to a picked-up weapon, \`1\` always, \`2\` only when not firing.`,
1370
+ ru: `Настройка \`_cl_autowepswitch\` игрока: \`0\` — не переключаться на подобранное оружие, \`1\` — всегда, \`2\` — если не стреляет.`,
1371
+ },
1372
+ m_bVGUIMenus: {
1373
+ en: `\`true\` if the player uses the graphical (VGUI) menus — his \`_vgui_menus\` setting.`,
1374
+ ru: `\`true\`, если игрок пользуется графическими (VGUI) меню, — его настройка \`_vgui_menus\`.`,
1375
+ },
1376
+ m_bShowHints: {
1377
+ en: `\`true\` if the player wants hints — his _ah setting.`,
1378
+ ru: `\`true\`, если игрок хочет подсказки, — его настройка _ah.`,
1379
+ },
1380
+ m_bShieldDrawn: {
1381
+ en: `\`true\` while the player holds his shield up.`,
1382
+ ru: `\`true\`, пока игрок держит щит поднятым.`,
1383
+ },
1384
+ m_bOwnsShield: {
1385
+ en: `\`true\` if the player has a tactical shield.`,
1386
+ ru: `\`true\`, если у игрока есть тактический щит.`,
1387
+ },
1388
+ m_bWasFollowing: {
1389
+ en: `\`true\` if the spectator was following a player before he switched to free look.`,
1390
+ ru: `\`true\`, если зритель следил за игроком, прежде чем перешёл в свободный полёт.`,
1391
+ },
1392
+ m_flNextFollowTime: {
1393
+ en: `The game time when the spectator can switch to the next player again.`,
1394
+ ru: `Игровое время, когда зритель снова сможет переключиться на следующего игрока.`,
1395
+ },
1396
+ m_flYawModifier: {
1397
+ en: `The speed at which the player's legs turn after the body, for his animation.`,
1398
+ ru: `Скорость, с которой ноги игрока поворачивают за телом, — для его анимации.`,
1399
+ },
1400
+ m_blindUntilTime: {
1401
+ en: `The game time when the player's flashbang blindness ends. Writing it does not blind the screen — that is \`player.screen.fade\`.`,
1402
+ ru: `Игровое время, когда кончится ослепление игрока флешкой. Запись не ослепляет экран — это делает \`player.screen.fade\`.`,
1403
+ },
1404
+ m_blindStartTime: {
1405
+ en: `The game time when the player was blinded.`,
1406
+ ru: `Игровое время, когда игрока ослепило.`,
1407
+ },
1408
+ m_blindHoldTime: {
1409
+ en: `The time the player's blindness stays full, in seconds.`,
1410
+ ru: `Время, которое ослепление игрока держится полным, в секундах.`,
1411
+ },
1412
+ m_blindFadeTime: {
1413
+ en: `The time the player's blindness takes to fade, in seconds.`,
1414
+ ru: `Время, за которое ослепление игрока проходит, в секундах.`,
1415
+ },
1416
+ m_blindAlpha: {
1417
+ en: `The strength of the player's blindness, \`0\` to \`255\`; \`255\` is fully blind.`,
1418
+ ru: `Сила ослепления игрока, от \`0\` до \`255\`; \`255\` — полностью слеп.`,
1419
+ },
1420
+ m_allowAutoFollowTime: {
1421
+ en: `The game time from which a bot may follow teammates on its own.`,
1422
+ ru: `Игровое время, с которого бот может сам пойти за союзниками.`,
1423
+ },
1424
+ m_bIsInRebuy: {
1425
+ en: `\`true\` while the rebuy command is buying the player's last equipment.`,
1426
+ ru: `\`true\`, пока команда rebuy закупает прошлое снаряжение игрока.`,
1427
+ },
1428
+ m_flLastUpdateTime: {
1429
+ en: `The game time of the last update of the player's location name (the place on the map).`,
1430
+ ru: `Игровое время последнего обновления названия места игрока на карте.`,
1431
+ },
1432
+ m_progressStart: {
1433
+ en: `The game time when the player's progress bar (defusing, planting) started; \`0\` for none.`,
1434
+ ru: `Игровое время начала полосы прогресса игрока (разминирование, закладка); \`0\` — нет.`,
1435
+ },
1436
+ m_progressEnd: {
1437
+ en: `The game time when the player's progress bar fills.`,
1438
+ ru: `Игровое время, когда полоса прогресса игрока заполнится.`,
1439
+ },
1440
+ m_bObserverAutoDirector: {
1441
+ en: `\`true\` if the spectator's chase camera follows the target's view rather than turning freely.`,
1442
+ ru: `\`true\`, если камера зрителя следует за взглядом цели, а не вращается свободно.`,
1443
+ },
1444
+ m_canSwitchObserverModes: {
1445
+ en: `\`true\` if the spectator may change his view mode; \`false\` right after death.`,
1446
+ ru: `\`true\`, если зритель может менять режим обзора; сразу после смерти — \`false\`.`,
1447
+ },
1448
+ m_heartBeatTime: {
1449
+ en: `A Condition Zero leftover; the game does not use it.`,
1450
+ ru: `Остаток Condition Zero; игра его не использует.`,
1451
+ },
1452
+ m_intenseTimestamp: {
1453
+ en: `A Condition Zero leftover; the game does not use it.`,
1454
+ ru: `Остаток Condition Zero; игра его не использует.`,
1455
+ },
1456
+ m_silentTimestamp: {
1457
+ en: `A Condition Zero leftover; the game does not use it.`,
1458
+ ru: `Остаток Condition Zero; игра его не использует.`,
1459
+ },
1460
+ m_musicState: {
1461
+ en: `A Condition Zero leftover, one of: \`"silent"\`, \`"calm"\`, \`"intense"\`; the game does not use it.`,
1462
+ ru: `Остаток Condition Zero, одно из: \`"silent"\`, \`"calm"\`, \`"intense"\`; игра его не использует.`,
1463
+ },
1464
+ m_iLastAccount: {
1465
+ en: `The player's money last sent to the other players' scoreboards.`,
1466
+ ru: `Деньги игрока, последними отправленные в таблицы счёта других игроков.`,
1467
+ },
1468
+ m_iLastClientHealth: {
1469
+ en: `The player's health last sent to the other players' scoreboards.`,
1470
+ ru: `Здоровье игрока, последним отправленное в таблицы счёта других игроков.`,
1471
+ },
1472
+ m_tmNextAccountHealthUpdate: {
1473
+ en: `The game time when the player's money and health are next sent to the scoreboards, even unchanged; every 5 seconds.`,
1474
+ ru: `Игровое время, когда деньги и здоровье игрока снова уйдут в таблицы счёта, даже без изменений; раз в 5 секунд.`,
1475
+ },
1476
+
1477
+ // CBasePlayerItem and CBasePlayerWeapon. Weapon timers count down in
1478
+ // seconds from now (CS predicts weapons on the client), not game time.
1479
+ m_pPlayer: {
1480
+ en: `The player holding the weapon, or \`null\` if it lies on the ground.`,
1481
+ ru: `Игрок, у которого оружие, или \`null\`, если оно лежит на земле.`,
1482
+ },
1483
+ m_pNext: {
1484
+ en: `The next weapon in the same inventory slot (grenades share one), or \`null\`.`,
1485
+ ru: `Следующее оружие в том же слоте инвентаря (гранаты делят один), или \`null\`.`,
1486
+ },
1487
+ m_Weapon_iPlayEmptySound: {
1488
+ en: `The weapon's empty “click”: \`1\` if it may play on the next attack.`,
1489
+ ru: `Щелчок пустого оружия: \`1\`, если он может прозвучать при следующей атаке.`,
1490
+ },
1491
+ m_Weapon_fFireOnEmpty: {
1492
+ en: `The weapon's “firing on empty” mark: \`1\` while the player holds attack with an empty clip.`,
1493
+ ru: `Отметка «стрельба впустую»: \`1\`, пока игрок жмёт атаку с пустым магазином.`,
1494
+ },
1495
+ m_Weapon_flNextPrimaryAttack: {
1496
+ en: `The time until the weapon can fire again, in seconds, counting down by itself: about \`0.1\` after an AK-47 shot, \`1.45\` after an AWP one.`,
1497
+ ru: `Время до следующего выстрела оружия, в секундах; отсчитывается само: около \`0.1\` после выстрела AK-47, \`1.45\` после AWP.`,
1498
+ },
1499
+ m_Weapon_flNextSecondaryAttack: {
1500
+ en: `The time until the weapon's secondary attack (zoom, silencer, burst mode) works again, in seconds, counting down by itself.`,
1501
+ ru: `Время до следующей вторичной атаки оружия (зум, глушитель, режим очереди), в секундах; отсчитывается само.`,
1502
+ },
1503
+ m_Weapon_flTimeWeaponIdle: {
1504
+ en: `The time until the weapon plays its idle animation, in seconds, counting down by itself.`,
1505
+ ru: `Время до анимации покоя оружия, в секундах; отсчитывается само.`,
1506
+ },
1507
+ m_Weapon_iPrimaryAmmoType: {
1508
+ en: `The weapon's ammo kind — the slot of the player's ammo it takes from; \`-1\` for none (a knife).`,
1509
+ ru: `Вид патронов оружия — номер запаса патронов игрока, из которого оно берёт; \`-1\` — никаких (нож).`,
1510
+ },
1511
+ m_Weapon_iSecondaryAmmoType: {
1512
+ en: `The weapon's secondary ammo slot; CS weapons have none (\`-1\`).`,
1513
+ ru: `Номер запаса вторичных патронов оружия; у оружия CS их нет (\`-1\`).`,
1514
+ },
1515
+ m_Weapon_iClip: {
1516
+ en: `The rounds in the weapon's magazine: \`30\` in a full AK-47; \`-1\` for the knife, which has none.`,
1517
+ ru: `Патроны в магазине оружия: \`30\` у полного AK-47; \`-1\` у ножа, у которого магазина нет.`,
1518
+ },
1519
+ m_Weapon_iClientClip: {
1520
+ en: `The clip last sent to the player's HUD; when it differs from clip, the game sends the new one.`,
1521
+ ru: `Магазин, последним отправленный в HUD игрока; если он отличается от clip, игра отправит новый.`,
1522
+ },
1523
+ m_Weapon_iClientWeaponState: {
1524
+ en: `The weapon's state (held or not) last sent to the player's HUD.`,
1525
+ ru: `Состояние оружия (в руках или нет), последним отправленное в HUD игрока.`,
1526
+ },
1527
+ m_Weapon_fInReload: {
1528
+ en: `The weapon's reload mark: \`1\` while it is reloading.`,
1529
+ ru: `Отметка перезарядки оружия: \`1\`, пока оно перезаряжается.`,
1530
+ },
1531
+ m_Weapon_fInSpecialReload: {
1532
+ en: `The shotgun's shell-by-shell reload stage: \`0\` not reloading, \`1\` starting, \`2\` putting a shell in.`,
1533
+ ru: `Стадия поштучной перезарядки дробовика: \`0\` — не перезаряжается, \`1\` — начало, \`2\` — вставляет патрон.`,
1534
+ },
1535
+ m_Weapon_iDefaultAmmo: {
1536
+ en: `The ammo the weapon gives when first picked up; \`0\` for one dropped by a player (only its clip).`,
1537
+ ru: `Патроны, которые оружие даёт при первом подборе; \`0\` у выброшенного игроком (только магазин).`,
1538
+ },
1539
+ m_Weapon_iShellId: {
1540
+ en: `The shell casing model the weapon throws out (precached).`,
1541
+ ru: `Модель гильзы, которую выбрасывает оружие (подгруженная).`,
1542
+ },
1543
+ m_Weapon_bDelayFire: {
1544
+ en: `\`true\` from a shot until the attack button is let go; this way tapping the button does not keep single-shot accuracy.`,
1545
+ ru: `\`true\` от выстрела до того, как отпустят кнопку атаки; так частые нажатия не сохраняют точность одиночного выстрела.`,
1546
+ },
1547
+ m_Weapon_iDirection: {
1548
+ en: `The side the weapon's recoil pulls to next, left or right; it flips from time to time.`,
1549
+ ru: `Сторона, в которую отдача оружия уведёт в следующий раз, — влево или вправо; время от времени меняется.`,
1550
+ },
1551
+ m_Weapon_bSecondarySilencerOn: unused(`The weapon's flag meant for a second silencer.`, `Флаг оружия, задуманный для второго глушителя.`),
1552
+ m_Weapon_flAccuracy: {
1553
+ en: `The weapon's current inaccuracy: it grows as it fires and settles back; each weapon has its own range (\`0.2\` for a fresh AK-47).`,
1554
+ ru: `Текущий разброс оружия: растёт при стрельбе и возвращается; у каждого оружия свои пределы (\`0.2\` у свежего AK-47).`,
1555
+ },
1556
+ m_Weapon_flLastFire: {
1557
+ en: `The game time of a pistol's last shot, for its accuracy.`,
1558
+ ru: `Игровое время последнего выстрела пистолета — для его точности.`,
1559
+ },
1560
+ m_Weapon_iShotsFired: {
1561
+ en: `The shots in the weapon's current burst; the recoil grows with it, and it drops back once the player stops firing.`,
1562
+ ru: `Выстрелы в текущей очереди оружия; с ними растёт отдача, и счёт сбрасывается, когда игрок перестаёт стрелять.`,
1563
+ },
1564
+ m_Weapon_flGlock18Shoot: {
1565
+ en: `The game time of the next round in the Glock's burst; \`0\` when not bursting.`,
1566
+ ru: `Игровое время следующего патрона очереди Glock; \`0\` — очереди нет.`,
1567
+ },
1568
+ m_Weapon_iGlock18ShotsFired: {
1569
+ en: `The rounds the Glock has fired in the current burst.`,
1570
+ ru: `Патроны, которые Glock выпустил в текущей очереди.`,
1571
+ },
1572
+ m_Weapon_flFamasShoot: {
1573
+ en: `The game time of the next round in the FAMAS's burst; \`0\` when not bursting.`,
1574
+ ru: `Игровое время следующего патрона очереди FAMAS; \`0\` — очереди нет.`,
1575
+ },
1576
+ m_Weapon_iFamasShotsFired: {
1577
+ en: `The rounds the FAMAS has fired in the current burst.`,
1578
+ ru: `Патроны, которые FAMAS выпустил в текущей очереди.`,
1579
+ },
1580
+ m_Weapon_fBurstSpread: {
1581
+ en: `The spread of the FAMAS's burst, kept for its later rounds.`,
1582
+ ru: `Разброс очереди FAMAS, сохранённый для её следующих патронов.`,
1583
+ },
1584
+ m_Weapon_iWeaponState: {
1585
+ en: `
1586
+ The weapon's modes, a list of any of: \`"UspSilenced"\` - the USP's silencer is on, \`"Glock18Burst"\` - the Glock fires bursts, \`"M4a1Silenced"\` - the M4A1's silencer is on, \`"EliteLeft"\` - the Elites fire the left gun next, \`"FamasBurst"\` - the FAMAS fires bursts, \`"ShieldDrawn"\` - the shield is up.
1587
+
1588
+ Pawn: \`WPNSTATE_*\`
1589
+ `,
1590
+ ru: `
1591
+ Режимы оружия, список, любые из: \`"UspSilenced"\` — глушитель на USP, \`"Glock18Burst"\` — Glock стреляет очередями, \`"M4a1Silenced"\` — глушитель на M4A1, \`"EliteLeft"\` — Elites следующим стреляют из левого, \`"FamasBurst"\` — FAMAS стреляет очередями, \`"ShieldDrawn"\` — щит поднят.
1592
+
1593
+ Pawn: \`WPNSTATE_*\`
1594
+ `,
1595
+ },
1596
+ m_Weapon_flNextReload: {
1597
+ en: `The time until the shotgun's next shell goes in during its reload, in seconds, counting down.`,
1598
+ ru: `Время до следующего патрона при перезарядке дробовика, в секундах; отсчитывается вниз.`,
1599
+ },
1600
+ m_Weapon_flDecreaseShotsFired: {
1601
+ en: `The game time when \`shotsFired\` next goes down by one after the player stops firing.`,
1602
+ ru: `Игровое время, когда \`shotsFired\` уменьшится на единицу после того, как игрок перестал стрелять.`,
1603
+ },
1604
+ m_Weapon_usFireGlock18: {
1605
+ en: `The Glock's firing event (precached).`,
1606
+ ru: `Событие выстрела Glock (подгруженное).`,
1607
+ },
1608
+ m_Weapon_usFireFamas: {
1609
+ en: `The FAMAS's firing event (precached).`,
1610
+ ru: `Событие выстрела FAMAS (подгруженное).`,
1611
+ },
1612
+ m_Weapon_flPrevPrimaryAttack: {
1613
+ en: `The delay between the weapon's last two shots, in seconds; the game uses it to keep the fire rate even.`,
1614
+ ru: `Задержка между двумя последними выстрелами оружия, в секундах; по ней игра выравнивает темп стрельбы.`,
1615
+ },
1616
+ m_Weapon_flLastFireTime: {
1617
+ en: `The game time of the weapon's last shot; \`0\` before the first one.`,
1618
+ ru: `Игровое время последнего выстрела оружия; \`0\` до первого выстрела.`,
1619
+ },
1620
+ // The game rules (CSGameRules): the fields of `game`.
1621
+ m_bFreezePeriod: {
1622
+ en: `\`true\` during the freeze time at a round's start, while players cannot move or shoot. Writing \`false\` ends it for the game's own checks.`,
1623
+ ru: `\`true\` во время заморозки в начале раунда, пока игроки не могут ни двигаться, ни стрелять. Запись \`false\` заканчивает её для собственных проверок игры.`,
1624
+ },
1625
+ m_bBombDropped: {
1626
+ en: `\`true\` while the bomb lies on the ground, dropped by its carrier.`,
1627
+ ru: `\`true\`, пока бомба лежит на земле, брошенная тем, кто её нёс.`,
1628
+ },
1629
+ m_GameDesc: {
1630
+ en: `The game's name in the server browser, e.g. \`"Counter-Strike"\`.`,
1631
+ ru: `Название игры в браузере серверов, например \`"Counter-Strike"\`.`,
1632
+ },
1633
+ m_msgPlayerVoiceMask: {
1634
+ en: `The number of the user message that tells a player whose voice he hears.`,
1635
+ ru: `Номер пользовательского сообщения, которое говорит игроку, чей голос он слышит.`,
1636
+ },
1637
+ m_msgRequestState: {
1638
+ en: `The number of the user message that asks a player's game for its voice settings.`,
1639
+ ru: `Номер пользовательского сообщения, которое спрашивает у игры игрока её голосовые настройки.`,
1640
+ },
1641
+ m_nMaxPlayers: {
1642
+ en: `The number of player slots, as the game's voice code counts them.`,
1643
+ ru: `Число мест для игроков, как их считает голосовой код игры.`,
1644
+ },
1645
+ m_UpdateInterval: {
1646
+ en: `The seconds between the game's updates of who hears whom on the voice chat.`,
1647
+ ru: `Секунды между обновлениями игры о том, кто кого слышит в голосовом чате.`,
1648
+ },
1649
+ m_flRestartRoundTime: {
1650
+ en: `The game time the next round starts at, after a round's end or a restart; \`0\` when none is due.`,
1651
+ ru: `Игровое время, когда начнётся следующий раунд после конца раунда или рестарта; \`0\`, если ничего не ожидается.`,
1652
+ },
1653
+ m_flCheckWinConditions: {
1654
+ en: `The game time of the game's next check whether a side has won; \`0\` when none is due.`,
1655
+ ru: `Игровое время следующей проверки игрой, не победила ли сторона; \`0\`, если проверка не ожидается.`,
1656
+ },
1657
+ m_fRoundStartTime: {
1658
+ en: `The game time the round's play began: the end of the freeze time.`,
1659
+ ru: `Игровое время, когда началась игра в раунде: конец заморозки.`,
1660
+ },
1661
+ m_iRoundTime: {
1662
+ en: `The round's length in seconds; during the freeze time, the freeze time's.`,
1663
+ ru: `Длина раунда в секундах; во время заморозки — длина заморозки.`,
1664
+ },
1665
+ m_iRoundTimeSecs: {
1666
+ en: `The round's length in seconds, from \`mp_roundtime\`.`,
1667
+ ru: `Длина раунда в секундах, из \`mp_roundtime\`.`,
1668
+ },
1669
+ m_iIntroRoundTime: {
1670
+ en: `The freeze time's length in seconds, from \`mp_freezetime\`.`,
1671
+ ru: `Длина заморозки в секундах, из \`mp_freezetime\`.`,
1672
+ },
1673
+ m_fRoundStartTimeReal: {
1674
+ en: `The game time the round started, the freeze time included.`,
1675
+ ru: `Игровое время, когда начался раунд, вместе с заморозкой.`,
1676
+ },
1677
+ m_iAccountTerrorist: {
1678
+ en: `The money every terrorist is paid when the next round starts, for how this one went.`,
1679
+ ru: `Деньги, которые каждый террорист получит в начале следующего раунда за то, как прошёл этот.`,
1680
+ },
1681
+ m_iAccountCT: {
1682
+ en: `The money every counter-terrorist is paid when the next round starts, for how this one went.`,
1683
+ ru: `Деньги, которые каждый спецназовец получит в начале следующего раунда за то, как прошёл этот.`,
1684
+ },
1685
+ m_iNumTerrorist: {
1686
+ en: `The number of terrorists, counted when a round ends.`,
1687
+ ru: `Число террористов, посчитанное в конце раунда.`,
1688
+ },
1689
+ m_iNumCT: {
1690
+ en: `The number of counter-terrorists, counted when a round ends.`,
1691
+ ru: `Число спецназовцев, посчитанное в конце раунда.`,
1692
+ },
1693
+ m_iNumSpawnableTerrorist: {
1694
+ en: `The number of terrorists who can spawn in the next round, counted when a round ends.`,
1695
+ ru: `Число террористов, которые могут появиться в следующем раунде, посчитанное в конце раунда.`,
1696
+ },
1697
+ m_iNumSpawnableCT: {
1698
+ en: `The number of counter-terrorists who can spawn in the next round, counted when a round ends.`,
1699
+ ru: `Число спецназовцев, которые могут появиться в следующем раунде, посчитанное в конце раунда.`,
1700
+ },
1701
+ m_iSpawnPointCount_Terrorist: {
1702
+ en: `The number of the map's terrorist spawn points.`,
1703
+ ru: `Число точек появления террористов на карте.`,
1704
+ },
1705
+ m_iSpawnPointCount_CT: {
1706
+ en: `The number of the map's counter-terrorist spawn points.`,
1707
+ ru: `Число точек появления спецназовцев на карте.`,
1708
+ },
1709
+ m_iHostagesRescued: {
1710
+ en: `The number of hostages rescued this round.`,
1711
+ ru: `Число заложников, спасённых в этом раунде.`,
1712
+ },
1713
+ m_iHostagesTouched: {
1714
+ en: `The number of hostages a counter-terrorist has led away this round.`,
1715
+ ru: `Число заложников, которых спецназовец повёл за собой в этом раунде.`,
1716
+ },
1717
+ m_iRoundWinStatus: {
1718
+ en: `The last round's winner, one of \`"CT"\`, \`"TERRORIST"\`, \`"draw"\`, or \`"none"\` while the round goes on.`,
1719
+ ru: `Победитель последнего раунда, одно из \`"CT"\`, \`"TERRORIST"\`, \`"draw"\` или \`"none"\`, пока раунд идёт.`,
1720
+ },
1721
+ m_iNumCTWins: {
1722
+ en: `
1723
+ The counter-terrorists' score: the rounds they have won. Writing it changes the score, and the scoreboard shows it at once.
1724
+
1725
+ Pawn: \`rg_update_teamscores\`
1726
+ `,
1727
+ ru: `
1728
+ Счёт спецназовцев: выигранные ими раунды. Запись меняет счёт, и таблица сразу его показывает.
1729
+
1730
+ Pawn: \`rg_update_teamscores\`
1731
+ `,
1732
+ },
1733
+ m_iNumTerroristWins: {
1734
+ en: `
1735
+ The terrorists' score: the rounds they have won. Writing it changes the score, and the scoreboard shows it at once.
1736
+
1737
+ Pawn: \`rg_update_teamscores\`
1738
+ `,
1739
+ ru: `
1740
+ Счёт террористов: выигранные ими раунды. Запись меняет счёт, и таблица сразу его показывает.
1741
+
1742
+ Pawn: \`rg_update_teamscores\`
1743
+ `,
1744
+ },
1745
+ m_bTargetBombed: {
1746
+ en: `\`true\` once the bomb has blown a target up this round.`,
1747
+ ru: `\`true\`, когда бомба в этом раунде взорвала цель.`,
1748
+ },
1749
+ m_bBombDefused: {
1750
+ en: `\`true\` once the bomb has been defused this round.`,
1751
+ ru: `\`true\`, когда бомбу в этом раунде обезвредили.`,
1752
+ },
1753
+ m_bMapHasBombTarget: {
1754
+ en: `\`true\` when the map has a bomb site.`,
1755
+ ru: `\`true\`, если на карте есть место для закладки бомбы.`,
1756
+ },
1757
+ m_bMapHasBombZone: {
1758
+ en: `\`true\` when the map has a bomb zone a planter must stand in.`,
1759
+ ru: `\`true\`, если на карте есть зона, в которой надо стоять, чтобы заложить бомбу.`,
1760
+ },
1761
+ m_bMapHasBuyZone: {
1762
+ en: `\`true\` when the map has buy zones of its own.`,
1763
+ ru: `\`true\`, если на карте есть свои зоны закупки.`,
1764
+ },
1765
+ m_bMapHasRescueZone: {
1766
+ en: `\`true\` when the map has a hostage rescue zone.`,
1767
+ ru: `\`true\`, если на карте есть зона спасения заложников.`,
1768
+ },
1769
+ m_bMapHasEscapeZone: {
1770
+ en: `\`true\` when the map has an escape zone for the terrorists.`,
1771
+ ru: `\`true\`, если на карте есть зона побега для террористов.`,
1772
+ },
1773
+ m_bMapHasVIPSafetyZone: {
1774
+ en: `Whether the map has a VIP safety zone, one of \`"yes"\`, \`"no"\`, or \`"notChecked"\` until the game has looked.`,
1775
+ ru: `Есть ли на карте зона спасения VIP, одно из: \`"yes"\`, \`"no"\` или \`"notChecked"\`, пока игра её не искала.`,
1776
+ },
1777
+ m_bMapHasCameras: {
1778
+ en: `\`true\` when the map has spectator cameras.`,
1779
+ ru: `\`true\`, если на карте есть камеры для зрителей.`,
1780
+ },
1781
+ m_iC4Timer: {
1782
+ en: `The bomb's timer in seconds, from \`mp_c4timer\`.`,
1783
+ ru: `Таймер бомбы в секундах, из \`mp_c4timer\`.`,
1784
+ },
1785
+ m_iC4Guy: {
1786
+ en: `The terrorist who got the bomb this round, or \`null\`.`,
1787
+ ru: `Террорист, которому в этом раунде досталась бомба, или \`null\`.`,
1788
+ },
1789
+ m_iLoserBonus: {
1790
+ en: `The money the side that loses a round is paid; it grows with each loss in a row.`,
1791
+ ru: `Деньги, которые получает проигравшая раунд сторона; растут с каждым поражением подряд.`,
1792
+ },
1793
+ m_iNumConsecutiveCTLoses: {
1794
+ en: `The number of rounds the counter-terrorists have lost in a row.`,
1795
+ ru: `Число раундов, проигранных спецназовцами подряд.`,
1796
+ },
1797
+ m_iNumConsecutiveTerroristLoses: {
1798
+ en: `The number of rounds the terrorists have lost in a row.`,
1799
+ ru: `Число раундов, проигранных террористами подряд.`,
1800
+ },
1801
+ m_fMaxIdlePeriod: {
1802
+ en: `The seconds a player may stand idle before he is kicked, with \`mp_autokick\` on.`,
1803
+ ru: `Секунды, которые игрок может стоять без дела, пока его не выкинет при включённом \`mp_autokick\`.`,
1804
+ },
1805
+ m_iLimitTeams: {
1806
+ en: `The most one side may outnumber the other by, from \`mp_limitteams\`.`,
1807
+ ru: `Насколько одна сторона может превосходить другую числом, из \`mp_limitteams\`.`,
1808
+ },
1809
+ m_bLevelInitialized: {
1810
+ en: `\`true\` once the game has looked the map over for its bomb sites, buy zones and hostages.`,
1811
+ ru: `\`true\`, когда игра осмотрела карту: места для бомбы, зоны закупки и заложников.`,
1812
+ },
1813
+ m_bRoundTerminating: {
1814
+ en: `\`true\` from a round's end until the next round starts.`,
1815
+ ru: `\`true\` с конца раунда до начала следующего.`,
1816
+ },
1817
+ m_bCompleteReset: {
1818
+ en: `\`true\` when the next restart resets everything, the scores too, as \`sv_restart\` does.`,
1819
+ ru: `\`true\`, если следующий рестарт сбросит всё, и счёт тоже, как это делает \`sv_restart\`.`,
1820
+ },
1821
+ m_flRequiredEscapeRatio: {
1822
+ en: `The share of terrorists, \`0\` to \`1\`, who must escape for them to win on an escape map.`,
1823
+ ru: `Доля террористов, от \`0\` до \`1\`, которым надо сбежать, чтобы они победили на карте побега.`,
1824
+ },
1825
+ m_iNumEscapers: {
1826
+ en: `The number of terrorists who can escape, on an escape map.`,
1827
+ ru: `Число террористов, которые могут сбежать, на карте побега.`,
1828
+ },
1829
+ m_iHaveEscaped: {
1830
+ en: `The number of terrorists who have escaped this round.`,
1831
+ ru: `Число террористов, сбежавших в этом раунде.`,
1832
+ },
1833
+ m_bCTCantBuy: {
1834
+ en: `\`true\` while the counter-terrorists may not buy.`,
1835
+ ru: `\`true\`, пока спецназовцам нельзя покупать.`,
1836
+ },
1837
+ m_bTCantBuy: {
1838
+ en: `\`true\` while the terrorists may not buy.`,
1839
+ ru: `\`true\`, пока террористам нельзя покупать.`,
1840
+ },
1841
+ m_flBombRadius: {
1842
+ en: `The bomb's blast radius, in units, as the map sets it.`,
1843
+ ru: `Радиус взрыва бомбы в единицах, как его задаёт карта.`,
1844
+ },
1845
+ m_iConsecutiveVIP: {
1846
+ en: `The number of rounds in a row the same player has been the VIP.`,
1847
+ ru: `Число раундов подряд, в которых VIP был один и тот же игрок.`,
1848
+ },
1849
+ m_iTotalGunCount: {
1850
+ en: `The number of guns the game has counted lying on the map.`,
1851
+ ru: `Число ружей, которые игра насчитала лежащими на карте.`,
1852
+ },
1853
+ m_iTotalGrenadeCount: {
1854
+ en: `The number of grenades the game has counted lying on the map.`,
1855
+ ru: `Число гранат, которые игра насчитала лежащими на карте.`,
1856
+ },
1857
+ m_iTotalArmourCount: {
1858
+ en: `The number of armour pieces the game has counted lying on the map.`,
1859
+ ru: `Число бронежилетов, которые игра насчитала лежащими на карте.`,
1860
+ },
1861
+ m_iUnBalancedRounds: {
1862
+ en: `The number of rounds in a row one side has outnumbered the other by more than two; the game balances the sides after enough of them.`,
1863
+ ru: `Число раундов подряд, в которых одна сторона превосходила другую больше чем на двоих; после нескольких таких игра уравнивает стороны.`,
1864
+ },
1865
+ m_iNumEscapeRounds: {
1866
+ en: `The number of escape rounds played in a row; the sides swap after 8.`,
1867
+ ru: `Число раундов побега подряд; после 8 стороны меняются.`,
1868
+ },
1869
+ m_iLastPick: {
1870
+ en: `The number of the map the last map vote picked.`,
1871
+ ru: `Номер карты, которую выбрало последнее голосование.`,
1872
+ },
1873
+ m_iMaxMapTime: {
1874
+ en: `The map's time limit, from \`mp_timelimit\`.`,
1875
+ ru: `Ограничение времени карты, из \`mp_timelimit\`.`,
1876
+ },
1877
+ m_iMaxRounds: {
1878
+ en: `The number of rounds the map lasts, from \`mp_maxrounds\`; \`0\` for no limit.`,
1879
+ ru: `Число раундов, которое длится карта, из \`mp_maxrounds\`; \`0\` — без ограничения.`,
1880
+ },
1881
+ m_iTotalRoundsPlayed: {
1882
+ en: `The number of rounds played on the map.`,
1883
+ ru: `Число раундов, сыгранных на карте.`,
1884
+ },
1885
+ m_iMaxRoundsWon: {
1886
+ en: `The number of rounds a side must win to end the map, from \`mp_winlimit\`; \`0\` for no limit.`,
1887
+ ru: `Число раундов, которые стороне надо выиграть, чтобы карта кончилась, из \`mp_winlimit\`; \`0\` — без ограничения.`,
1888
+ },
1889
+ m_iStoredSpectValue: {
1890
+ en: `The value of \`allow_spectators\` the game remembers to notice when it changes.`,
1891
+ ru: `Значение \`allow_spectators\`, которое игра помнит, чтобы заметить его изменение.`,
1892
+ },
1893
+ m_flForceCameraValue: {
1894
+ en: `The value of \`mp_forcecamera\` the game remembers to notice when it changes.`,
1895
+ ru: `Значение \`mp_forcecamera\`, которое игра помнит, чтобы заметить его изменение.`,
1896
+ },
1897
+ m_flForceChaseCamValue: {
1898
+ en: `The value of \`mp_forcechasecam\` the game remembers to notice when it changes.`,
1899
+ ru: `Значение \`mp_forcechasecam\`, которое игра помнит, чтобы заметить его изменение.`,
1900
+ },
1901
+ m_flFadeToBlackValue: {
1902
+ en: `The value of \`mp_fadetoblack\` the game remembers to notice when it changes.`,
1903
+ ru: `Значение \`mp_fadetoblack\`, которое игра помнит, чтобы заметить его изменение.`,
1904
+ },
1905
+ m_pVIP: {
1906
+ en: `The VIP on an assassination map, a player \`id\`; \`0\` for none.`,
1907
+ ru: `VIP на карте с убийством VIP — \`id\` игрока; \`0\`, если его нет.`,
1908
+ },
1909
+ m_flIntermissionEndTime: {
1910
+ en: `The game time the intermission at the map's end is over and the next map loads.`,
1911
+ ru: `Игровое время, когда закончится перерыв в конце карты и загрузится следующая.`,
1912
+ },
1913
+ m_flIntermissionStartTime: {
1914
+ en: `The game time the intermission at the map's end began.`,
1915
+ ru: `Игровое время, когда начался перерыв в конце карты.`,
1916
+ },
1917
+ m_iEndIntermissionButtonHit: {
1918
+ en: `\`true\` once a player has pressed a button to end the intermission early.`,
1919
+ ru: `\`true\`, когда игрок нажал кнопку, чтобы закончить перерыв раньше.`,
1920
+ },
1921
+ m_tmNextPeriodicThink: {
1922
+ en: `The game time of the game's next periodic check of its limits and cvars.`,
1923
+ ru: `Игровое время следующей периодической проверки игрой её ограничений и кваров.`,
1924
+ },
1925
+ m_bGameStarted: {
1926
+ en: `\`true\` once the game has begun: both sides have had players. Until then a round ends with “Game Commencing”.`,
1927
+ ru: `\`true\`, когда игра началась: на обеих сторонах были игроки. До этого раунд кончается надписью «Game Commencing».`,
1928
+ },
1929
+ m_bInCareerGame: {
1930
+ en: `\`true\` in a Condition Zero career game.`,
1931
+ ru: `\`true\` в карьере Condition Zero.`,
1932
+ },
1933
+ m_fCareerRoundMenuTime: {
1934
+ en: `The game time the Condition Zero career's menu after a round shows.`,
1935
+ ru: `Игровое время, когда в карьере Condition Zero появится меню после раунда.`,
1936
+ },
1937
+ m_iCareerMatchWins: {
1938
+ en: `The number of rounds to win a Condition Zero career match.`,
1939
+ ru: `Число раундов для победы в матче карьеры Condition Zero.`,
1940
+ },
1941
+ m_iRoundWinDifference: {
1942
+ en: `The lead in rounds a Condition Zero career match needs to be won.`,
1943
+ ru: `Перевес в раундах, нужный для победы в матче карьеры Condition Zero.`,
1944
+ },
1945
+ m_fCareerMatchMenuTime: {
1946
+ en: `The game time the Condition Zero career's menu after a match shows.`,
1947
+ ru: `Игровое время, когда в карьере Condition Zero появится меню после матча.`,
1948
+ },
1949
+ m_bSkipSpawn: {
1950
+ en: `\`true\` when the next round starts without respawning the players.`,
1951
+ ru: `\`true\`, если следующий раунд начнётся, не возрождая игроков.`,
1952
+ },
1953
+ m_bSkipShowMenu: {
1954
+ en: `\`true\` while a joining player is not shown the team menu.`,
1955
+ ru: `\`true\`, пока входящему игроку не показывается меню выбора команды.`,
1956
+ },
1957
+ m_bNeededPlayers: {
1958
+ en: `\`true\` while the game waits for players because a side is empty.`,
1959
+ ru: `\`true\`, пока игра ждёт игроков, потому что одна из сторон пуста.`,
1960
+ },
1961
+ m_flEscapeRatio: {
1962
+ en: `The share of terrorists, \`0\` to \`1\`, who have escaped this round.`,
1963
+ ru: `Доля террористов, от \`0\` до \`1\`, сбежавших в этом раунде.`,
1964
+ },
1965
+ m_flTimeLimit: {
1966
+ en: `The game time the map ends by \`mp_timelimit\`; \`0\` for no limit.`,
1967
+ ru: `Игровое время, когда карта кончится по \`mp_timelimit\`; \`0\` — без ограничения.`,
1968
+ },
1969
+ m_flGameStartTime: {
1970
+ en: `The game time the game began, after “Game Commencing”.`,
1971
+ ru: `Игровое время, когда началась игра, после «Game Commencing».`,
1972
+ },
1973
+ m_bTeamBalanced: {
1974
+ en: `\`true\` when the sides were balanced at this round's start.`,
1975
+ ru: `\`true\`, если стороны уравнивались в начале этого раунда.`,
1976
+ },
1977
+ };
1978
+
1979
+ // The unions of the enum fields (ENUM_TYPES in scripts/generate-entities.ts):
1980
+ // what a value of the type is. What each name means is in the field's entry;
1981
+ // the generator adds the line about "unknown" and the Pawn constants.
1982
+ export const ENTITY_TYPES: Record<string, Text> = {
1983
+ RenderMode: {
1984
+ en: `An entity's render mode - \`entity.renderMode\`.`,
1985
+ ru: `Режим отрисовки сущности — \`entity.renderMode\`.`,
1986
+ },
1987
+ RenderFx: {
1988
+ en: `A render effect of an entity - \`entity.renderFx\`.`,
1989
+ ru: `Эффект отрисовки сущности — \`entity.renderFx\`.`,
1990
+ },
1991
+ MoveType: {
1992
+ en: `An entity's kind of movement - \`entity.moveType\`.`,
1993
+ ru: `Способ движения сущности — \`entity.moveType\`.`,
1994
+ },
1995
+ Solid: {
1996
+ en: `An entity's solidity - \`entity.solid\`.`,
1997
+ ru: `Твёрдость сущности — \`entity.solid\`.`,
1998
+ },
1999
+ TakeDamage: {
2000
+ en: `An entity's vulnerability - \`entity.takeDamage\`.`,
2001
+ ru: `Уязвимость сущности — \`entity.takeDamage\`.`,
2002
+ },
2003
+ DeadFlag: {
2004
+ en: `An entity's stage of dying - \`entity.deadFlag\`.`,
2005
+ ru: `Стадия смерти сущности — \`entity.deadFlag\`.`,
2006
+ },
2007
+ WaterLevel: {
2008
+ en: `An entity's depth in water - \`entity.waterLevel\`.`,
2009
+ ru: `Глубина погружения сущности — \`entity.waterLevel\`.`,
2010
+ },
2011
+ Contents: {
2012
+ en: `The contents of a point of the map: air, water, a wall - \`entity.waterType\`.`,
2013
+ ru: `Содержимое точки карты: воздух, вода, стена — \`entity.waterType\`.`,
2014
+ },
2015
+ FixAngle: {
2016
+ en: `A player's view snap - \`player.fixAngle\`.`,
2017
+ ru: `Разворот взгляда игрока — \`player.fixAngle\`.`,
2018
+ },
2019
+ HitGroup: {
2020
+ en: `A body part a bullet hits - \`player.lastHitGroup\`.`,
2021
+ ru: `Часть тела, куда попадает пуля, — \`player.lastHitGroup\`.`,
2022
+ },
2023
+ ArmorType: {
2024
+ en: `A player's armour kind - \`player.kevlar\`.`,
2025
+ ru: `Вид брони игрока — \`player.kevlar\`.`,
2026
+ },
2027
+ ObserverMode: {
2028
+ en: `A player's spectator mode - \`player.observerMode\`, \`player.observerLastMode\`.`,
2029
+ ru: `Режим наблюдения игрока — \`player.observerMode\`, \`player.observerLastMode\`.`,
2030
+ },
2031
+ JoinState: {
2032
+ en: `A player's stage of joining the game - \`player.joiningState\`.`,
2033
+ ru: `Стадия входа игрока в игру — \`player.joiningState\`.`,
2034
+ },
2035
+ GameMenu: {
2036
+ en: `An old-style menu of the game - \`player.menu\`.`,
2037
+ ru: `Старое меню игры — \`player.menu\`.`,
2038
+ },
2039
+ ThrowDirection: {
2040
+ en: `The way a dead player's body is thrown - \`player.throwDirection\`.`,
2041
+ ru: `Направление, куда отбрасывает тело убитого игрока, — \`player.throwDirection\`.`,
2042
+ },
2043
+ BloodColor: {
2044
+ en: `The colour of an entity's blood - \`player.bloodColor\`.`,
2045
+ ru: `Цвет крови сущности — \`player.bloodColor\`.`,
2046
+ },
2047
+ MonsterState: {
2048
+ en: `A monster's (a hostage's) AI state - \`monsterState\`, \`idealMonsterState\`.`,
2049
+ ru: `Состояние ИИ монстра (заложника) — \`monsterState\`, \`idealMonsterState\`.`,
2050
+ },
2051
+ PlayerModel: {
2052
+ en: `A player's model - \`player.modelName\`.`,
2053
+ ru: `Модель игрока — \`player.modelName\`.`,
2054
+ },
2055
+ IgnoredChat: {
2056
+ en: `The chat a player hides - \`player.ignoreGlobalChat\`.`,
2057
+ ru: `Чат, который скрывает игрок, — \`player.ignoreGlobalChat\`.`,
2058
+ },
2059
+ MusicState: {
2060
+ en: `A Condition Zero music state - \`player.musicState\`.`,
2061
+ ru: `Музыкальное состояние Condition Zero — \`player.musicState\`.`,
2062
+ },
2063
+ VipSafetyZone: {
2064
+ en: `Whether the map has a VIP safety zone - \`game.mapHasVipSafetyZone\`.`,
2065
+ ru: `Есть ли на карте зона спасения VIP — \`game.mapHasVipSafetyZone\`.`,
2066
+ },
2067
+ };
2068
+
2069
+ // The members scripts/generate-entities.ts writes by hand rather than from a
2070
+ // field: what an entity does, by `Class.member`.
2071
+ export const ENTITY_METHODS: Record<string, Text> = {
2072
+ 'Weapon.classname': {
2073
+ en: `The weapon's class name, e.g. \`"weapon_ak47"\`: the name \`player.give\`, \`setAmmo\`, \`getAmmo\` and \`switchWeapon\` take - \`player.give(weapon.classname)\`.
2074
+
2075
+ Pawn: \`pev->classname\`, \`get_weaponname\``,
2076
+ ru: `Класс оружия, например \`"weapon_ak47"\`: имя, которое принимают \`player.give\`, \`setAmmo\`, \`getAmmo\` и \`switchWeapon\`, — \`player.give(weapon.classname)\`.
2077
+
2078
+ Pawn: \`pev->classname\`, \`get_weaponname\``,
2079
+ },
2080
+ 'Entity.exists': {
2081
+ en: `\`true\` while the entity is in the world: \`false\` once the engine has freed it (\`remove()\` has it freed at the end of the frame), for a player who has left, and for \`0\`, no entity. An id that came from an event or a hook may name an entity that is gone.
2082
+
2083
+ Pawn: \`is_valid_ent\`, \`is_entity\``,
2084
+ ru: `\`true\`, пока сущность есть в мире: \`false\`, когда движок её освободил (\`remove()\` освобождает её в конце кадра), для ушедшего игрока и для \`0\` — «нет сущности». Номер из события или хука может указывать на сущность, которой уже нет.
2085
+
2086
+ Pawn: \`is_valid_ent\`, \`is_entity\``,
2087
+ },
2088
+ 'Entity.emitSound': {
2089
+ en: `Plays a sound from the entity, heard by everyone near and fading with distance: \`player.emitSound("myplugin/hit.wav")\`. The path is under \`sound/\`, as \`server.precache\` takes it; \`options\` set the channel, the volume, the attenuation and the pitch.
2090
+
2091
+ Pawn: \`emit_sound\`, \`rh_emit_sound2\``,
2092
+ ru: `Проигрывает звук от сущности: его слышат все рядом, и он затихает с расстоянием: \`player.emitSound("myplugin/hit.wav")\`. Путь — внутри \`sound/\`, как его принимает \`server.precache\`; \`options\` задают канал, громкость, затухание и высоту.
2093
+
2094
+ Pawn: \`emit_sound\`, \`rh_emit_sound2\``,
2095
+ },
2096
+ 'Entity.setSize': {
2097
+ en: `Sets the entity's bounding box, the corners relative to its \`origin\`: \`box.setSize([-16, -16, 0], [16, 16, 72])\`. \`mins\`, \`maxs\`, \`size\` and where it collides follow. A box whose \`mins\` is above its \`maxs\` on any axis is refused, with an error in the console.
2098
+
2099
+ Pawn: \`entity_set_size\``,
2100
+ ru: `Задаёт габариты сущности, углы — относительно её \`origin\`: \`box.setSize([-16, -16, 0], [16, 16, 72])\`. \`mins\`, \`maxs\`, \`size\` и то, где она сталкивается, следуют за ними. Габариты, у которых \`mins\` хоть по одной оси больше \`maxs\`, не ставятся, а в консоль пишется ошибка.
2101
+
2102
+ Pawn: \`entity_set_size\``,
2103
+ },
2104
+ 'Entity.spawn': {
2105
+ en: `Runs the entity's spawn, as the game does when it makes one: an entity made with \`Entity.create\` is set up by it.
2106
+
2107
+ Pawn: \`ExecuteHamB(Ham_Spawn, ...)\`, \`ExecuteHam\``,
2108
+ ru: `Выполняет появление сущности, как игра, когда её создаёт: сущность из \`Entity.create\` настраивается им.
2109
+
2110
+ Pawn: \`ExecuteHamB(Ham_Spawn, ...)\`, \`ExecuteHam\``,
2111
+ },
2112
+ 'Entity.activate': {
2113
+ en: `Activates the entity, as the game does once the map has loaded.
2114
+
2115
+ Pawn: \`ExecuteHamB(Ham_Activate, ...)\`, \`ExecuteHam\``,
2116
+ ru: `Активирует сущность, как игра после загрузки карты.
2117
+
2118
+ Pawn: \`ExecuteHamB(Ham_Activate, ...)\`, \`ExecuteHam\``,
2119
+ },
2120
+
2121
+ 'Entity.takeHealth': {
2122
+ en: `Heals the entity as the game does, up to its maximum: \`true\` when it took any.
2123
+
2124
+ Pawn: \`ExecuteHamB(Ham_TakeHealth, ...)\`, \`ExecuteHam\``,
2125
+ ru: `Лечит сущность, как игра, не выше её максимума: \`true\`, если здоровье прибавилось.
2126
+
2127
+ Pawn: \`ExecuteHamB(Ham_TakeHealth, ...)\`, \`ExecuteHam\``,
2128
+ },
2129
+ 'Entity.killed': {
2130
+ en: `Kills the entity as the game does, with the killer it names; \`gib\` is \`0\` for the usual death, \`1\` never torn apart, \`2\` always.
2131
+
2132
+ Pawn: \`ExecuteHamB(Ham_Killed, ...)\`, \`ExecuteHam\``,
2133
+ ru: `Убивает сущность, как игра, с указанным убийцей; \`gib\` — \`0\` обычная смерть, \`1\` — никогда не разрывает, \`2\` — всегда.
2134
+
2135
+ Pawn: \`ExecuteHamB(Ham_Killed, ...)\`, \`ExecuteHam\``,
2136
+ },
2137
+ 'Entity.think': {
2138
+ en: `Runs the entity's think now, without waiting for its \`nextThink\`.
2139
+
2140
+ Pawn: \`ExecuteHamB(Ham_Think, ...)\`, \`ExecuteHam\``,
2141
+ ru: `Выполняет «мысль» сущности сейчас, не дожидаясь её \`nextThink\`.
2142
+
2143
+ Pawn: \`ExecuteHamB(Ham_Think, ...)\`, \`ExecuteHam\``,
2144
+ },
2145
+ 'Entity.use': {
2146
+ en: `Uses the entity - a button pressed, a door opened - as \`activator\` would, through \`caller\`.
2147
+
2148
+ Pawn: \`ExecuteHamB(Ham_Use, ...)\`, \`ExecuteHam\``,
2149
+ ru: `Использует сущность — нажимает кнопку, открывает дверь, — как это сделал бы \`activator\` через \`caller\`.
2150
+
2151
+ Pawn: \`ExecuteHamB(Ham_Use, ...)\`, \`ExecuteHam\``,
2152
+ },
2153
+ 'Entity.blocked': {
2154
+ en: `Tells a moving entity - a door, a train - that \`other\` is in its way.
2155
+
2156
+ Pawn: \`ExecuteHamB(Ham_Blocked, ...)\`, \`ExecuteHam\``,
2157
+ ru: `Сообщает движущейся сущности — двери, поезду, — что \`other\` стоит у неё на пути.
2158
+
2159
+ Pawn: \`ExecuteHamB(Ham_Blocked, ...)\`, \`ExecuteHam\``,
2160
+ },
2161
+ 'Entity.restart': {
2162
+ en: `Puts the entity back as a new round finds it.
2163
+
2164
+ Pawn: \`ExecuteHamB(Ham_CS_Restart, ...)\`, \`ExecuteHam\``,
2165
+ ru: `Возвращает сущность в то состояние, в каком её застаёт новый раунд.
2166
+
2167
+ Pawn: \`ExecuteHamB(Ham_CS_Restart, ...)\`, \`ExecuteHam\``,
2168
+ },
2169
+ 'Player.addPoints': {
2170
+ en: `Adds points to the player's score, as a kill does; \`allowNegative\` lets the score go below \`0\`.
2171
+
2172
+ Pawn: \`ExecuteHamB(Ham_AddPoints, ...)\`, \`ExecuteHam\``,
2173
+ ru: `Добавляет очки к счёту игрока, как убийство; \`allowNegative\` позволяет счёту уйти ниже \`0\`.
2174
+
2175
+ Pawn: \`ExecuteHamB(Ham_AddPoints, ...)\`, \`ExecuteHam\``,
2176
+ },
2177
+ 'Player.addPointsToTeam': {
2178
+ en: `Adds points to the scores of the player's team, as the game does for an objective.
2179
+
2180
+ Pawn: \`ExecuteHamB(Ham_AddPointsToTeam, ...)\`, \`ExecuteHam\``,
2181
+ ru: `Добавляет очки к счёту команды игрока, как игра за выполнение задачи.
2182
+
2183
+ Pawn: \`ExecuteHamB(Ham_AddPointsToTeam, ...)\`, \`ExecuteHam\``,
2184
+ },
2185
+ 'Player.addPlayerItem': {
2186
+ en: `Puts a weapon entity into the player's inventory; \`true\` when it went in. To give a weapon by name, \`player.give\`.
2187
+
2188
+ Pawn: \`ExecuteHamB(Ham_AddPlayerItem, ...)\`, \`ExecuteHam\``,
2189
+ ru: `Кладёт оружие-сущность в инвентарь игрока; \`true\` — положено. Чтобы выдать оружие по имени — \`player.give\`.
2190
+
2191
+ Pawn: \`ExecuteHamB(Ham_AddPlayerItem, ...)\`, \`ExecuteHam\``,
2192
+ },
2193
+ 'Player.removePlayerItem': {
2194
+ en: `Takes a weapon entity out of the player's inventory, leaving the entity; \`true\` when it was there.
2195
+
2196
+ Pawn: \`ExecuteHamB(Ham_RemovePlayerItem, ...)\`, \`ExecuteHam\``,
2197
+ ru: `Убирает оружие-сущность из инвентаря игрока, не удаляя саму сущность; \`true\` — оно там было.
2198
+
2199
+ Pawn: \`ExecuteHamB(Ham_RemovePlayerItem, ...)\`, \`ExecuteHam\``,
2200
+ },
2201
+ 'Player.giveAmmo': {
2202
+ en: `Gives the player ammo of a kind by the game's name, e.g. \`"buckshot"\`, up to \`max\`; returns the ammo's index, \`-1\` when none went in.
2203
+
2204
+ Pawn: \`ExecuteHamB(Ham_GiveAmmo, ...)\`, \`ExecuteHam\``,
2205
+ ru: `Даёт игроку патроны по имени вида у игры, например \`"buckshot"\`, не больше \`max\`; возвращает индекс патронов, \`-1\` — не дано.
2206
+
2207
+ Pawn: \`ExecuteHamB(Ham_GiveAmmo, ...)\`, \`ExecuteHam\``,
2208
+ },
2209
+ 'Player.jump': {
2210
+ en: `Runs the game's jump for the player, as when he presses jump.
2211
+
2212
+ Pawn: \`ExecuteHamB(Ham_Player_Jump, ...)\`, \`ExecuteHam\``,
2213
+ ru: `Выполняет прыжок игрока, как когда он нажимает прыжок.
2214
+
2215
+ Pawn: \`ExecuteHamB(Ham_Player_Jump, ...)\`, \`ExecuteHam\``,
2216
+ },
2217
+ 'Player.duck': {
2218
+ en: `Runs the game's duck for the player, as when he holds duck.
2219
+
2220
+ Pawn: \`ExecuteHamB(Ham_Player_Duck, ...)\`, \`ExecuteHam\``,
2221
+ ru: `Выполняет приседание игрока, как когда он держит присед.
2222
+
2223
+ Pawn: \`ExecuteHamB(Ham_Player_Duck, ...)\`, \`ExecuteHam\``,
2224
+ },
2225
+ 'Weapon.addToPlayer': {
2226
+ en: `Gives the weapon to the player, as picking it up does; \`true\` when he took it.
2227
+
2228
+ Pawn: \`ExecuteHamB(Ham_Item_AddToPlayer, ...)\`, \`ExecuteHam\``,
2229
+ ru: `Отдаёт оружие игроку, как при подборе; \`true\` — он его взял.
2230
+
2231
+ Pawn: \`ExecuteHamB(Ham_Item_AddToPlayer, ...)\`, \`ExecuteHam\``,
2232
+ },
2233
+ 'Weapon.deploy': {
2234
+ en: `Draws the weapon in its owner's hands, as switching to it does - the model and the animation shown again: \`knife.deploy()\`. \`true\` when it was drawn.
2235
+
2236
+ Pawn: \`ExecuteHamB(Ham_Item_Deploy, ...)\`, \`ExecuteHam\``,
2237
+ ru: `Достаёт оружие в руки владельца, как при переключении на него, — модель и анимация показываются заново: \`knife.deploy()\`. \`true\` — достал.
2238
+
2239
+ Pawn: \`ExecuteHamB(Ham_Item_Deploy, ...)\`, \`ExecuteHam\``,
2240
+ },
2241
+ 'Weapon.holster': {
2242
+ en: `Puts the weapon away, as switching from it does.
2243
+
2244
+ Pawn: \`ExecuteHamB(Ham_Item_Holster, ...)\`, \`ExecuteHam\``,
2245
+ ru: `Убирает оружие, как при переключении с него.
2246
+
2247
+ Pawn: \`ExecuteHamB(Ham_Item_Holster, ...)\`, \`ExecuteHam\``,
2248
+ },
2249
+ 'Weapon.drop': {
2250
+ en: `Drops the weapon out of its owner's inventory.
2251
+
2252
+ Pawn: \`ExecuteHamB(Ham_Item_Drop, ...)\`, \`ExecuteHam\``,
2253
+ ru: `Выбрасывает оружие из инвентаря владельца.
2254
+
2255
+ Pawn: \`ExecuteHamB(Ham_Item_Drop, ...)\`, \`ExecuteHam\``,
2256
+ },
2257
+ 'Weapon.attachToPlayer': {
2258
+ en: `Attaches the weapon to the player as his, without the pick-up.
2259
+
2260
+ Pawn: \`ExecuteHamB(Ham_Item_AttachToPlayer, ...)\`, \`ExecuteHam\``,
2261
+ ru: `Прикрепляет оружие к игроку как его собственное, без подбора.
2262
+
2263
+ Pawn: \`ExecuteHamB(Ham_Item_AttachToPlayer, ...)\`, \`ExecuteHam\``,
2264
+ },
2265
+ 'Weapon.extractAmmo': {
2266
+ en: `Moves this weapon's ammo into \`target\`, as picking up a second one of a kind does; the ammo moved.
2267
+
2268
+ Pawn: \`ExecuteHamB(Ham_Weapon_ExtractAmmo, ...)\`, \`ExecuteHam\``,
2269
+ ru: `Перекладывает патроны этого оружия в \`target\`, как при подборе второго такого же; возвращает переложенное.
2270
+
2271
+ Pawn: \`ExecuteHamB(Ham_Weapon_ExtractAmmo, ...)\`, \`ExecuteHam\``,
2272
+ },
2273
+ 'Weapon.extractClipAmmo': {
2274
+ en: `Moves the ammo in this weapon's clip into \`target\`; the ammo moved.
2275
+
2276
+ Pawn: \`ExecuteHamB(Ham_Weapon_ExtractClipAmmo, ...)\`, \`ExecuteHam\``,
2277
+ ru: `Перекладывает патроны из обоймы этого оружия в \`target\`; возвращает переложенное.
2278
+
2279
+ Pawn: \`ExecuteHamB(Ham_Weapon_ExtractClipAmmo, ...)\`, \`ExecuteHam\``,
2280
+ },
2281
+
2282
+ 'Weapon.resetEmptySound': {
2283
+ en: `Lets the empty click sound again on the next try.
2284
+
2285
+ Pawn: \`ExecuteHamB(Ham_Weapon_ResetEmptySound, ...)\`, \`ExecuteHam\``,
2286
+ ru: `Разрешает щелчку пустого оружия прозвучать снова при следующей попытке.
2287
+
2288
+ Pawn: \`ExecuteHamB(Ham_Weapon_ResetEmptySound, ...)\`, \`ExecuteHam\``,
2289
+ },
2290
+ 'Weapon.primaryAttack': {
2291
+ en: `Fires the weapon's primary attack - a shot, a knife's slash - as the left click does.
2292
+
2293
+ Pawn: \`ExecuteHamB(Ham_Weapon_PrimaryAttack, ...)\`, \`ExecuteHam\``,
2294
+ ru: `Выполняет основную атаку оружия — выстрел, удар ножом, — как левый клик.
2295
+
2296
+ Pawn: \`ExecuteHamB(Ham_Weapon_PrimaryAttack, ...)\`, \`ExecuteHam\``,
2297
+ },
2298
+ 'Weapon.secondaryAttack': {
2299
+ en: `Fires the weapon's secondary attack - a knife's stab, a scope - as the right click does: \`knife.secondaryAttack()\`.
2300
+
2301
+ Pawn: \`ExecuteHamB(Ham_Weapon_SecondaryAttack, ...)\`, \`ExecuteHam\``,
2302
+ ru: `Выполняет вторую атаку оружия — укол ножом, прицел, — как правый клик: \`knife.secondaryAttack()\`.
2303
+
2304
+ Pawn: \`ExecuteHamB(Ham_Weapon_SecondaryAttack, ...)\`, \`ExecuteHam\``,
2305
+ },
2306
+ 'Weapon.reload': {
2307
+ en: `Reloads the weapon, as the reload key does.
2308
+
2309
+ Pawn: \`ExecuteHamB(Ham_Weapon_Reload, ...)\`, \`ExecuteHam\``,
2310
+ ru: `Перезаряжает оружие, как клавиша перезарядки.
2311
+
2312
+ Pawn: \`ExecuteHamB(Ham_Weapon_Reload, ...)\`, \`ExecuteHam\``,
2313
+ },
2314
+ 'Weapon.weaponIdle': {
2315
+ en: `Runs the weapon's idle, which plays its idle animation.
2316
+
2317
+ Pawn: \`ExecuteHamB(Ham_Weapon_WeaponIdle, ...)\`, \`ExecuteHam\``,
2318
+ ru: `Выполняет бездействие оружия, которое проигрывает анимацию ожидания.
2319
+
2320
+ Pawn: \`ExecuteHamB(Ham_Weapon_WeaponIdle, ...)\`, \`ExecuteHam\``,
2321
+ },
2322
+ 'Weapon.retireWeapon': {
2323
+ en: `Retires the weapon - one out of ammo - and switches its owner to his next best.
2324
+
2325
+ Pawn: \`ExecuteHamB(Ham_Weapon_RetireWeapon, ...)\`, \`ExecuteHam\``,
2326
+ ru: `Убирает оружие — например, без патронов — и переключает владельца на следующее лучшее.
2327
+
2328
+ Pawn: \`ExecuteHamB(Ham_Weapon_RetireWeapon, ...)\`, \`ExecuteHam\``,
2329
+ },
2330
+ 'Weapon.sendWeaponAnim': {
2331
+ en: `Plays one of the weapon's view-model animations by its number; \`skipLocal\` leaves out a client that predicts it himself.
2332
+
2333
+ Pawn: \`ExecuteHamB(Ham_CS_Weapon_SendWeaponAnim, ...)\`, \`ExecuteHam\``,
2334
+ ru: `Проигрывает анимацию модели оружия от первого лица по номеру; \`skipLocal\` пропускает клиента, который предсказывает её сам.
2335
+
2336
+ Pawn: \`ExecuteHamB(Ham_CS_Weapon_SendWeaponAnim, ...)\`, \`ExecuteHam\``,
2337
+ },
2338
+ };