#ビジネス #ゲーム

【備忘録】txAdminとFiveMで警察になる方法(PART2/Dispatch通知MODをスクリプトで自作してみた編)

2026年3月25日 

前回は警察MODを入れようと思ったら根本的な環境の影響もあって挫折したというところで終わりました。もといキリがないので強制終了しました…が、ChatGPTが「簡単なMODなら自作すればいい」と無理難題を言ってきたので、それならどうしたらいいのかと問いただしたところ以下のような作業に没頭??する羽目になりました。

ディレクトリ等のルールに関しては前回までの備忘録を参照いただけますと幸いにございます。基本的に後述の"resources"フォルダの直下にスクリプトのフォルダやファイルが入ります。

C:\FXServer_txAdmin\txData\FiveMBasicServerCFXDefault_FB7298.base\resources

└ resources
 └ dispatch_test
  └ fxmanifest.lua
  └ client.lua

私が構築してきたタイプでの最小のファイル構成は上記の通り。

1.luaの読み込み試行

初心者の私にとって必要な知識はまず.luaとは何かというところからです。外部からDLしたファイルを自分で追記修正することはあってもまっさらな状態から触ったことはありません。

Luaはいわゆる汎用スクリプト言語であり、特定の用途に限定されない性質を持つが、同じく汎用スクリプト言語であるPerl、Python、Rubyと比較して高速に動作する[要出典]。これはLuaの理念である、簡素、高効率、高移植性を目指した実装の産物である。

https://ja.wikipedia.org/wiki/Lua

読んでもよくわかりませんでした。あまり深く理解しようとせず実際にコードを触りながら特徴を知っていく方が良さそうです。ひとまずChatGPTに相談して最初のコードを生成してもらいました。これをensureしてテキストチャットで「/event」した時にゲーム内で実際に通知が発生するかどうかのテストです。

fxmanifest.lua

fx_version 'cerulean'
game 'gta5'

name 'dispatch_test'
description 'Dispatch Test'
version '1.0'

client_script 'client.lua'

client.lua

RegisterCommand("event", function()

 TriggerEvent("chat:addMessage", {
  color = {255, 0, 0},
  args = {"Dispatch", "事件発生"}
 })

end, false)

ChatGPTの出力

全てはこの6行のコードから始まりました。追記修正するのは後者の"client.lua"です。この状態だとGTAの設定が反映されるようで通知は右上からスライドするようにではなく左下にじんわり出ます。通知音を追加することもできますが、配信などで聞くものとは異なります。そもそも大手サーバーは有料の専用サーバーを借りてフレームワークを土台にMODを使用していると考えられるので、ローカルサーバーでフレームワークがない(AIいわくvMenuサーバー)状態では通知表示をそれっぽくしたいのであればHTML/CSS/Javaなどの言語を使用してゼロから記述しないといけないとのことでした。さすがにそこは面倒という本音もありますが、今回はluaに重点&焦点を当てたいので「配信などでよく見るアレ」の再現度を高めるというのは重要度としては低に設定して続けることにしました。

また、途中からトライ&エラーが多すぎて修正過程を詳らかに記載するのは無理だとわかりました。そのため特に印象深いというかいろいろ通り越しておもしろかった点のトラブルシューティングを以下に記しておきたいと思います。

2.デバッグの繰り返しに心折れかける

もちろんChatGPTが出力したコード一発で何もかもうまくいくはずがなく。テストプレイ→ChatGPTにフィードバック→追記修正→テストプレイ→以下ループでゲームプログラミング初心者の私は数行のコードでもリアルに頭を抱える瞬間もありました。

1./eventで通知
2.NPC警察官をスポーン
3.ほぼ同時に車両をスポーン
4.マップに表示された目的地に急行

目指しているのはざっくり上記のフローですがなかなか簡単にはいきません。なぜならば

①デバッグする度に新たな問題が浮上する
②ChatGPTがコードを根本から覆してくる

この2点は集中力が満タンの時でないと処理できませんでした。以下は紆余曲折の記録になります。

車種の指定でスポーンを可能に

/eventコマンドを入力しても通知が出るだけで車両も見当たらずサイレンも聞こえません。どうやらvehicleの車種を指定をしていなかったため「そもそもどの車両を出すの?」という状態になっていたようです。

SetVehicleOnGroundProperly(vehicle)

ChatGPTの出力

上述のコードを入れておくと地面に埋まったりすることがなくなるかもしれないとのことでおまじない程度に入れております。

車両の向きを道路側にする

コマンド入力したところ指定した警察署前の駐車場からサイレンを鳴らしたパトカーはスポーンされたもののなぜか指定の場所(とりあえずパシフィック銀行)に向けて発進しません。付近で様子を見てみようと近寄ったところクラッシュしてサーバーごと落ちました。初めの頃にChatGPTが指摘していたのですぐに理由はわかりましたが率直な感想としては「そこまでプログラムしないといけないのか」というもの。数値で180になっていた車両の向きを90に変更して道路側にしてあげることで解決しました。前方の障害物判定により走れない状態のパトカーに続いて後続のパトカーが無理やりスポーンしようとしたことがクラッシュの要因のひとつかと思います。

緊急車両なのに交通ルール守りすぎ問題

数値を変更したことにより通知を出したらすぐに現場に急行してくれるようになりました。管理者なのでいくらでも車両は出せるにもかかわらず感極まって慌てて盗んでしまった車(車両の近くでキーを押してしまった)で3台のパトカーを追いかけました。が、なぜか渋滞しだしたので何事かと思い先頭車両を確認しに行ったところ違法駐車の車両がじゃまで動けなくなっていました。こちらとしては緊急走行中なので反対車線に寄ってもいいから避けてくれと思ったのですが頑なに動きません。またクラッシュされても困るので違法駐車の車に激突を繰り返しどけたことによって無事パトカーが進みだしました。

先で待っていようと思い走っているとサイレンの音も遠くなり後方を確認してもパトカーの姿が見えません。最短距離で向かっていると思ったのですが迂回しているのかと戻ったところ、赤信号を守り更に渋滞にハマった結果とんでもない徐行運転になっておりました。あくまでもゲーム内なので通知を受けて銀行に向かうパトカーには少々荒々しい運転でもいいから違法駐車や信号などは気にせずぶっちぎって欲しいと思いこちらもスクリプトを書き換えることに。この辺からそろそろ疲れてきてChatGPTにすら「次に進む?やめとく?」と聞かれる始末でした。

用途speeddrivingStyle
デバッグ10〜15447
通常パトロール15〜20786603
警察出動20〜25786603
緊急走行25〜30786475

ChatGPTの回答

とりあえず上記のように該当箇所の数値を変更すれば運転モードも変更になるとのことにより警察にはあるまじきほぼ暴走運転モードで様子をみることに。

現場に到着してもすることがなく暴走

銀行前に着いたパトカーの様子を観察しているとひと通り周辺をぐるりと回ったように見えたかと思いきや建物に向かってガンガンと衝突を繰り返しNPCの市民も恐怖する始末。座標が建物内に指定されていた関係かわかりませんが「絶対に行ってやる」という強い意志は感じましたが、私の想定としては現場付近に車両を停めて車からとりあえず降りてきて欲しかった。これに関してもluaの記述が足りずこのような挙動にならざるを得なかったようです。

vMenuで正確な座標を取得する

vMenu(Mキー)
→"MISC SETTINGS"
→"Developer Tools"
→"Show Coordinates"のチェックをオン

上記の通り設定しておくと常に画面上部に現在地点の座標(X, Y, Z, Heading)が出るようになります。ChatGPTが出力する座標に頼り切らず最初から自分でスポーン場所等は取得しておくべきでした。

そろそろChatGPTが頼りなくなる

質問の度に微妙にコードが変わったり、AIが出力したコードに自らダメ出しするなど矛盾した回答が目立つようになりこちらで交通整理しないと論点が散らばるようになりました。とりあえずパシフィック銀行周辺は勾配があり道路が狭いなどのこともあり目的地の座標をフリーカ銀行に変更。

とうとうデバッグ中にクラッシュ連発

もはやデバッグすらままならないレベルで重くなってしまいまずはキャッシュの削除やコードの簡素化を図ります。まずは3台に指定したパトカーを1台に。また、キャッシュはフォルダごと消去しても動作に影響は出ないのでこちらもまるごと削除。

C:\FXServer_txAdmin\txData\FiveMBasicServerCFXDefault_FB7298.base\cache

デバッグするたびにその時のNPC(歩行者や車両など)の状況により途中でパトカーが止まったりひっくり返ったり最悪の場合にはゲーム自体が落ちるので「絶対に現場に到着させる」という目標を崩さずに安定性を保っていくのが難しいと感じました。今回のような場合はvMenu側でNPCの数を調整して渋滞が起こらないレベルの交通量に調整する方がよいと学習しました。

なんとか通知1回で警官が乗ったパトカー1台をフリーカ銀行に到着させることに成功させましたが着いた車両はなぜかフロントガラスが大破しており道中の危険運転が懸念されます。

GitHubにアップロードを試みる

注:非公開中につき公開したらお知らせします

GitHub(ギットハブ)は、ソフトウェア開発のプラットフォームであり、開発者がソースコードを保存、管理、共有できるようにするプロプライエタリな開発者向けプラットフォームである。

https://ja.wikipedia.org/wiki/GitHub

最終的にローカルテスト用に作成したスクリプトをGitHubに公開するところまで試みましたがなかなかコードがまとまらずいったん非公開にしました。最初は「ほぼ本職のプログラマーでないと足を踏み入れてはならない聖域」くらい敷居が高く素人が踏み荒らすことは許されまじくらいに感じておりましたが、そもそもFiveMをテストするに当たってGitHubに頼ることは避けられませんでした。圧縮データをダウンロードする際にアカウント登録などの必要はないのですが、アップロードする場合には必要でした。案内がほぼ英語なので少々不安ではありましたが、念のためAIにも聞いてみたところ問題ないとのこと。既にあるGoogleアカウントを連携したらすぐでした。

自分の趣味で勝手にやっていることですが今回の開発実験は正直疲れました。パワーが貯まったらもう少し応用も考えてみたいと思っていますが、NPCギャングが犯罪を起こしている現場にNPC警察が向かって対応するというような完全AI型の処理はスクリプトの量や双方の干渉も増えるため難易度はぐんと上がるとのこと。3歩進んで2歩下がるくらいの進捗がいちばん学習には向いているペースかもしれません。せっかく始めてみたのでもうしばらく頑張ります。

* * *

余談)txAdminのアップデート通知が出ていましたがスルーしていたところ、某サーバーでこれが原因か否かはわかりませんがゲームが長時間落ちたのでこういった定期メンテナンスも重要であることを痛感いたしました。特に長期サーバー運営は過酷なものだと日々体感しつつあります。

参考引用:
フリー百科事典『ウィキペディア(Wikipedia)』Lua(https://ja.wikipedia.org/wiki/Lua)2026.3.25
フリー百科事典『ウィキペディア(Wikipedia)』GitHub(https://ja.wikipedia.org/wiki/GitHub)2026.3.25

ChatGPT の回答は必ずしも正しいとは限りません。
重要な情報は確認するようにしてください。

\気になったらSHARE!!/


【備忘録】txAdminとFiveMで警察になる方法(PART1/FivePD挫折編):前の記事

ほちょこと申します。
気になるを追究した雑記です。

好きな事をとことん&パニック症の減薬中!!超マイペースに生きている人間もいるからだいじょびと誰かに伝わったら嬉しい手作りウェブサイトです。基本エンタメ全般ですが稀に真面目モードにも。
よろしければABOUTもご覧ください。

真面目なご挨拶

パニック障害、不安障害と診断されたことを恥じる時もありました。こんな病気にさえならなければ自分の人生はもっときらびやかで素敵なものになったのではないかと親を責め、自分自身を責めたこともありました。月並みですが今ではこの経験が私自身を強くしているのだと感じています。そしてこれから同じような苦しみで生きづらさを抱えてしまう未来のひとたちを支え助けるのが私の生きる意味のひとつであると考えながら日々過ごしています。

mail:contact e-hocho.com 

当ブログの名義でDiscord鯖を開設しました
日常のお悩み相談から壊滅的にくだらない雑談まで
使い方は自由

招待URL→ https://t.co/mMzIByBwVf


最近のおすすめ記事

配信者のみがプレイしているGTA(グランドセフトオート)『ストグラ』ってなんだ+スペハラ対策基礎知識も

【2023年11月現在】世界最大級"Kアリーナ横浜"1回目の感想と諸注意メモなど

【神回】劇場版『名探偵コナン 黒鉄の魚影』―灰原哀とスピッツと八丈島の美しいコラボ

最新作『龍が如く8』もいよいよ発売間近→追加キャストにヌー井口&成田凌(敬称略)により興奮中

コマンドプロンプトの世界で読む物語―この違和感を体感してほしい@ChatGPT

【バキ童神回】自称スピッツ上級者をも悩ませるコミックLOとスピッツの歌詞の見分け方講座

【備忘録】東京ディズニーランドのチケットを購入しようとしたら3Dセキュア認証に引っかかった

記事一覧はコチラ

読まれている記事


スマホ&パソコンの出張相談
MusRattus

https://musrattus.com/

都内を対象に出張相談中!!
とのことです

\ スマホはこちらから /