パッチの主な変更は、人質を扱うゲームモードに関するものです。人質は独立したCSHostageオブジェクトになり、マップスクリプトから、拾い上げようとする動きから救出、死亡まで、行動を追跡できます。
マッチメイキングだけをプレイする人には、今回の変更による影響はありません。10月22日の変更一覧にあるのは「MAP SCRIPTING」の1項目だけです。マップ制作者がスクリプトを更新すれば、ワークショップマップやカスタムモードで新機能を利用できるようになります。
人質がただのモデルではなくなった
CSHostageにはIsBeingPickedUp、IsBeingCarried、IsRescuedメソッドが追加されました。人質が拾い上げられているか、運ばれているか、救出地点まで連れていかれたかをスクリプトから確認できます。GetRescuerで救出したプレイヤーを取得でき、GetPickUpStartTimeとGetPickUpFinishTimeでは拾い上げの開始時刻と終了時刻を確認できます。また、CSPlayerPawn.GetHostageを使えば、プレイヤー側から人質との関係を確認できます。
メソッドに加えて、マップがすぐに反応できるイベントも追加されました。
- OnHostagePickUpStartは、プレイヤーが人質を拾い始めたときに発生します。
- OnHostagePickUpAbortは、人質の拾い上げが中断されたときに発生します。
- OnHostagePickUpは、人質を拾い上げたときに発生します。
- OnHostageDropは、人質を下ろしたときに発生します。
- OnHostageRescueは、人質が救出されたときに発生します。
- OnHostageKillは、人質が死亡したときに発生します。
たとえば、特殊部隊が人質をつかんだタイミングで救出ポイントを付与したり、テロリスト側の拠点でアラームを鳴らしたりできます。
ConsoleとGameRulesにInstanceの機能の一部を移管
Valveは新たに2つのセクションを最上位に追加しました。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で解放できます。
インターフェース、レーダー、その他の修正
そのほかは細かな改善と修正です。カスタムHUDレイアウト(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の呼び出しスタックと、不正な引数の詳細が表示されるようになりました。引数の番号は1始まりではなく、0始まりです。
- Convar
- サーバーやクライアントの設定など、読み取りや変更が可能なゲームのコンソール変数です。
- sv_cheats
- 一部のコンソールコマンドを使えるようにするサーバー設定です。
- Precache
- ゲーム内で必要になる前に、モデルやサウンドなどのリソースを読み込んでおくことです。
ガイド















