Флаги
Часть данных игры — набор флагов «включено/выключено»: какие кнопки держит игрок, какие части HUD скрыты, стоит ли сущность на земле. В плагине такой набор — массив имён:
function hideMoney(player: Player) {
player.hideHud = ["money", "timer"]; // ровно эти
player.hideHud.push("flashlight"); // добавить один
const hidden = player.hideHud.includes("money"); // проверить один
player.hideHud = player.hideHud.filter((f) => f != "money"); // убрать один
player.hideHud = []; // сбросить все
const jumping = player.buttons.includes("jump");
const onGround = player.flags.includes("onGround");
console.log(`${hidden} ${jumping} ${onGround}`);
}
Имена — закрытый список: редактор их подсказывает и не пропускает опечатку:
Type '"mony"' is not assignable to type 'HideHud'. Did you mean '"money"'?
- Чтение даёт массив включённых флагов в постоянном порядке — не в том, в каком их добавляли.
- Присваивание массива включает ровно эти флаги.
pushсразу включает в игре ещё один флаг.- Чтобы выключить флаг, присвойте отфильтрованный массив.
pop,spliceи другие методы массива меняют только сам массив, а не игру.
Свойства-флаги
| Свойство | У кого | Имена |
|---|---|---|
flags | Entity | EntityFlag: "onGround", "client", "inWater", "fly", "ducking", "fakeClient", "frozen", "godMode", … |
effects | Entity | Effect: "noDraw", "dimLight", "brightLight", "muzzleFlash", … |
buttons, oldButtons | Entity | Button: "attack", "attack2", "jump", "duck", "forward", "back", "use", "reload", "score", … |
weapons | Entity | WeaponKind: "knife", "usp", "ak47", … — оружие, которое несёт игрок, в тех же именах, что weapon.kind |
buttonLast, buttonPressed, buttonReleased | Player | Button: что было зажато в прошлом кадре, что нажато и что отпущено в этом |
hideHud, hideHudSent | Player | HideHud: "weapons", "flashlight", "all", "health", "timer", "money", "crosshair", "observerCrosshair" |
damageType | Player | Damage: "fall", "burn", "freeze", "bullet", "blast", … |
physicsFlags | Player | PhysicsFlag: "onLadder", "onTrain", "onBarnacle", "ducking", "using", "observer" |
weaponState | Weapon | WeaponState: "uspSilenced", "glock18Burst", "m4a1Silenced", "eliteLeft", "famasBurst", "shieldDrawn" |
Типы экспортируются из @amxts/core — для параметра своей функции:
function press(player: Player, button: Button). Права админа — тоже массив
имён: player.access, тип Access (команды).
Присваивание weapons меняет только сам список, а не то, что у игрока в
руках и в инвентаре: выдать оружие — player.give("weapon_ak47")
(Игроки).
hideHud игра отправляет клиенту игрока в следующем кадре. Скрыть части HUD
сразу — player.screen.hideHud(["money"]) (Игроки).
Эффекты
Временный эффект — то, что игра рисует на мгновение и забывает: луч, ударная волна, взрыв, искры, свет, кровь. Каждый эффект — функция effects, её настройки — аргументы эффекта, а второй аргумент говорит, кто его видит.
Квары
Квар — именованная настройка сервера: mp_freezetime, sv_gravity или собственная настройка плагина. Объект Cvar читает и пишет один квар: