last update: 2013/09/03

2005/06/17

ROのはなし

いやー最近あついですね。浴衣の季節ですね。なんかわざとらしい振りですが、なんかRJC関連の話でも出てるかなーと思って公式見に行ったら、今年はなんかポリン浴衣とか作ったらしいですよ。まぁどうでもいいな…。とりあえず相方に勧めて怒られてみた

ホムンクルスにLua

前々からホムンクルスがLuaだって話は知ってたんですが、まぁどうせgrfにパッケージングされちゃうんだし関係ないねって思ってたんですが、なんとMitsukiさんからROのインストールディレクトリに普通にLuaが配置されてるって話を聞きつけてわざわざkr-sakrayからそのluaが入ってるパッチを引っ張ってきて解凍してAI.luaとUtil.luaを読んでみましたよ。

とりあえずcase文使いたいなぁとかいうのは置いておいて、まぁ本サーバーでのモンスターAIがどのように組まれているか的な知識も例の流出AEGISのときに出回った情報が予備知識としてあったので、まぁまぁこんなもんよねー的印象。まぁLUAがどのぐらい自由の利くスクリプトなのか知らないので何ともいえませんが、やりようによってはなかなか面白そうです。

ただしこれ、Util.luaさえcompileしてないテキストだから、このUtil.luaを書き換えていろいろちょろまかすとサーバー側の仕様が脆弱(クライアントパケを無条件に信用する仕様)だったりすると普通に珍速ホムンクルスとか出てきそうで恐いですが…。まぁユーザにスクリプトを書けるようにさせてるんだから、ある程度想定外の実行命令とかにもちゃんと備えてるんですよね? よね?

個人的にはその辺さえしっかりしてれば普通にプログラマがPvPでホムンクルスvsホムンクルスとかやって遊ぶのがとっても面白そうな気がするんですが、いかがなもんでしょうか。っていうかこれ普通にホムのオーナーとかもIDで識別できるので、誰とも戦闘してないモンスターのタゲを取って、オーナーの元へ移動、んでもってオーナーがカートレボリューション! みたいな連携もできそうなもんですが、さてこれいかに。結構GetVでいろんなデータとってこれるのでなかなか応用は利きそうですよ。

ちなみにGravityのLua採用例はこれが初めてではなくなんかROSEでもLua使ってたらしいです。こちらはcompile済みだったらしいのでユーザがカスタマイズできる余地はなかったようでしたが。

Luaについてもっと知りたいなぁって人はyunoのがらくた置き場のNoteの中にLuaドキュメント和訳っていうページがあるんで、そこを参照してみるとよいと思います。

comments powered by Disqus