CCodelab Station
製品

自分の PC で書いてテストする GMod gamemode のコード

01

GMod gamemode は、情報ファイルと、init.lua、cl_init.lua、shared.lua を含む gamemode/ サブフォルダーを持つフォルダーです。Codelab Station はそのフォルダーを読み、指定した Lua を編集し、Ask first モードでは承認の前に diff を表示します。ゲームの外で動きます。すべての操作は、実際の結果付きのカードとして表示されます。

01

書く前に読む

list_dir、glob、read_file、grep が先にアドオンを調べるので、編集はフォルダーの実際の中身から始まります。

02

確認できる編集

edit_file は diff を表示し、write_file は新しいファイルを作成します。Ask first は変更のたびに止まります。

03

複数のアドオンを整理する

複数のアドオンを 1 つのフォルダーにまとめる作業には、list_dir、grep、move_file、そして確認する diff を使います。

エージェントにできること

1 回の実行を、カードごとに

すべての操作は、実際の結果付きのカードとしてチャットに表示されます。この実行では、自作のアドオンに crate entity のフォルダーを作成し、そのあと確認します。カードごとに承認か拒否を選びます。

任せられる 2 つの作業

計画から GMod の entity アドオンを作る

Plan only モードで始め、scripted entity(たとえばプレイヤーがスポーンできる箱)を説明します。エージェントは list_dir でアドオンを読み、lua/entities/ の下に書く予定のファイルを一覧にします。Plan only は何も書きません。Ask first に切り替えると、write_file が shared.lua、init.lua、cl_init.lua をカードごとに作成します。箱のモデルが表示されないときは、ゲームがアドオンのモデルを見つけられていない可能性があります。glob で models フォルダーを一覧にし、そのパスを Lua のモデルパスと比べます。まず計画するこの手順は、マップ全体に敵をスポーンするモッドのような大きなアイデアにも向いています。diff を 1 つずつ確認し、gm_construct を読み込んでテストします。

Sandbox をベースに小さな GMod gamemode を作る

gamemode は garrysmod/gamemodes にあるフォルダーで、情報テキストファイルと、init.lua、cl_init.lua、shared.lua を含む gamemode/ サブフォルダーを持ちます。エージェントにこの構成を作らせ、自分のルールが Sandbox の上に成り立つよう DeriveGamemode("sandbox") を追加させます。ファイルには make_dir と write_file、gamemode とマップを起動パラメーターにした起動スクリプトには Shell を使います。Lua のエラーはゲームのコンソールに出て、ocr はスクリーンショットからそのエラーを読み取れます。Ask first はオンのままにします。diff を毎回読み、gm_flatgrass でテストします。

Codelab Station がしないこと

Codelab Station はゲームのプラグインではなく、ゲームクライアントには決して触れません。他のサーバーは対象外です。自分のものではないプレイヤーやアカウントも対象外で、コードが正しいことを保証することもできません。そのため、すべての変更をテストし、すべての diff を自分で読んでください。

Windows 版 Codelab Station

アドオン 1 つのコピーで試す

Codelab Station をダウンロード ↗