Основна частина патча присвячена режиму із заручниками. Тепер заручник — окремий об’єкт CSHostage, тож мапа бачить кожен його крок: від першої спроби підняти його до порятунку чи загибелі.
Якщо ви граєте лише в матчмейкінг, для вас нічого не змінилося: у списку змін від 22 жовтня є тільки один розділ — MAP SCRIPTING. Нові можливості з’являться на мапах Майстерні та в користувацьких режимах, коли їхні автори оновлять скрипти.
Заручник більше не просто мовчазна модель
У CSHostage з’явилися методи IsBeingPickedUp, IsBeingCarried і IsRescued. Скрипт дізнається, чи піднімають заручника, чи несуть його та чи довели до точки порятунку. GetRescuer указує на рятівника, а GetPickUpStartTime і GetPickUpFinishTime повертають час початку й завершення підйому. Є й метод CSPlayerPawn.GetHostage, тож зв’язок можна перевірити з боку гравця.
Разом із методами з’явилися події, на які мапа може реагувати одразу.
- OnHostagePickUpStart спрацьовує, коли гравець починає піднімати заручника.
- OnHostagePickUpAbort фіксує перервану спробу підняти заручника.
- OnHostagePickUp спрацьовує, коли заручника підняли.
- OnHostageDrop означає, що заручника покинули.
- OnHostageRescue фіксує порятунок заручника.
- OnHostageKill спрацьовує, коли заручник гине.
Наприклад, автор мапи може нарахувати очки за порятунок або ввімкнути тривогу на базі терористів, щойно спецпризначенець схопить заручника.
Console і GameRules перебрали частину роботи в Instance
Valve винесла два нові розділи на верхній рівень. У Console зібрано все, що стосується консольних змінних. Значення можна прочитати в потрібному форматі (GetConvarBoolean, GetConvarNumber, GetConvarString, GetConvarVector, GetConvarQAngle, GetConvarColor) і записати через SetConvar. Останній метод не обмежений sv_cheats і виконується синхронно: нове значення діє вже в наступному рядку скрипту.
| Було | Стало |
|---|---|
| Instance.Msg | Console.Log |
| Instance.ClientCommand, ServerCommand, RegisterCheatCommand | ті самі методи в Console |
| Instance.IsWarmupPeriod, IsFreezePeriod, IsTeamIntroPeriod | ті самі методи в GameRules |
| Instance.GetRoundsPlayed, GetRoundRemainingTime, SetRoundRemainingTime | ті самі методи в GameRules |
| Instance.AddTeamMoney | GameRules.AddTeamMoney |
GameRules отримав і власні нові методи. StartWarmup і EndWarmup вмикають і вимикають розминку, GetTeamScore і AddTeamScore читають і змінюють рахунок команди, а TerminateRound завершує раунд. Тепер скрипт мапи може сам вирішити, коли раунд закінчився.
Старі назви поки працюють, але вже позначені як застарілі. Їх просто перейменували, тож виклики краще перенести заздалегідь, поки їх у проєкті небагато.
Скрипт бачить, чи завантажилися ресурси в усіх гравців
Instance.Precache повертає об’єкт CSPrecache. Методи IsServerLoading і IsServerLoaded показують, чи завантажується ресурс на сервері, а IsClientLoading і IsClientLoaded — те саме для клієнта. IsLoadedForAll повідомляє, чи все готове в кожного гравця. Коли ресурс більше не потрібен, Release звільняє його.
Інтерфейс, радар і виправлення
Решта патча — невеликі доопрацювання та виправлення. У користувацькому макеті інтерфейсу (custom_hud_layout) з’явилися два класи верхнього рівня, HUD_TEAMMENU_VISIBLE і HUD_CHAT_VISIBLE. Завдяки їм макет може змінюватися, коли відкрите меню вибору команди або чат. Елемент radar_element тепер показується на радарі в будь-якому режимі, а не лише в Rush.
- GameRules.AddTeamMoney більше не спричиняє збій гри, якщо передати причину CSTeamMoneyReason.NONE.
- Значення переліків CSTeamMoneyReason і CSWeaponAttackType узгодили з описом типів у point_script.d.ts.
- CSRadarPoint.IsVisibleToTeam і CSObservablePoint.IsObservableForTeam тепер повертають логічне значення, а не число.
- Попередження в журналі тепер містять стек викликів JavaScript і докладну інформацію про неправильні аргументи. Аргументи нумеруються від 0, а не від 1.
- Convar
- Консольна змінна гри, наприклад налаштування сервера чи клієнта, яке можна прочитати й змінити.
- sv_cheats
- Налаштування сервера, без якого частину консольних команд заблоковано.
- Precache
- Завантаження моделей, звуків та інших ресурсів до того, як вони знадобляться в грі.
Гайди















