2006年08月14日

ホム命令ライブラリ version 0.3

ホム命令ライブラリ version 0.3 (2006/08/14)http://www.sgv417.jp/~winter/alchemy/download/lib/chat.lzh

ホムに命令して、目的の事をさせるライブラリです。

1. 命令
2. /savechat

で、命令を理解し命令に合わせた行動や処理を行います。

一応形になるものが出来たので公開とします。
ライブラリ形式なので、他のAIにすぐ追加できるでしょう。

注意点

・命令受付の設計について

このライブラリを使うことで外部から不正な発言をされたとき
自分のパソコンを壊されないとも限りません。
設計に細心の注意を払ってください。

・特定のチャットファイルを監視

特定のチャットファイルを上手く書き換えできないとはまります。
posted by silica at 18:44| Comment(3) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年08月12日

設定変数出入力ライブラリ version 1.8

設定変数出入力ライブラリ version 1.8 (2006/08/12)
http://www.sgv417.jp/~winter/alchemy/download/lib/setini.lzh

ふと、アイデアが思いついたので実際に試して作りました。
単一行のコメントアウトに加え、複数行にわたるコメントアウトに対応しました。
機能がかなり多くなったので、いらない機能はOFFに出来るようにしました。

Luaでもテキスト処理は何とかできるものですね。
配列の指定方法もやっと分かりました。
余裕が出てきたらチャットライブラリを更新します。
変更点。
posted by silica at 17:07| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年08月10日

ほむAIライブラリ#1 統一に向けて。

ホムAI用のライブラリが色々出てきてるのでそれを利用しやすくするためには何が必要かをまとめてメモします。
続きを読む
posted by silica at 19:49| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

設定変数出入力ライブラリ version 1.7

設定変数出入力ライブラリ version 1.7 (2006/08/10)
http://www.sgv417.jp/~winter/alchemy/download/lib/setini.lzh

安っぽい人の改変とコメントを元に反映させました。

■Special Thanks

初回限定様、GvAIの◆g37UcEp//g様、安っぽい人様
色々意見を下さってどうもありがとうございます。
変更点。
posted by silica at 19:32| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

最近。

最近は狩場でBOSSによく会い、1日1回位のペースでMVPをとっています。
今日はルイーナADでDOPに遭遇してSW+SGで倒しました。

それはそうと今はホムAIライブラリ関係を修正中です。

設定変数出入力ライブラリ version 1.7beta2
http://www.sgv417.jp/~winter/alchemy/download/lib/setini.lua

これで問題がなさそうなら、正式版にする予定です。
後は、各AIを見て思ったことをメモ。
以下AIの専門的な話。
posted by silica at 00:00| Comment(2) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年08月05日

設定変数出入力ライブラリ version 1.6

設定変数出入力ライブラリ version 1.6 (2006/08/05)
http://www.sgv417.jp/~winter/alchemy/download/lib/setini.lzh

変更内容
・コメントアウト(1行のみの)に対応。

設定ファイル内にコメントアウトを入れられるようになりました
これで設定ファイル内に、設定項目の説明を入れていけるようになります。
ただし、これは読み込みだけです。
書き込みするとコメントアウトは全部消えます。

以後、当方が作成した他のライブラリも全部以下の場所に移動させました。
http://www.sgv417.jp/~winter/alchemy/download/lib/
posted by silica at 19:44| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年08月04日

工体研究所ミラー。

久しぶりに工体研究所へ行ってファイルをクリックしたらファイルをダウンロードできました。
またファイルが消えないうちに整理してアップします。
工体研究所関係のファイルが増えたので、ディレクトリを分けました。

工体研究所 : mirror(ファイル一覧)


actor.lua GetV 関数をオブジェクト指向にしてみる 2006/04/06
stacktrace.lua AIのコールスタックを調べてみる 2006/03/31
table.lua table互換ライブラリ 2006/04/04
tabletest.lua table互換ライブラリてすとこーど 2006/04/04
roaiplus_rev012.zip ROAIPlus rev12 2006/04/25
ai_rev103.zip 2006/04/22
ai_rev102.zip 2006/04/21
ai_rev94.zip 2006/04/11
posted by silica at 20:00| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年08月01日

RampageAI日本語版。

RampageAIをようやくほぼ翻訳し終えたので公開します。

http://www.sgv417.jp/~winter/alchemy/download/RampageAI_jp.lzh

討論板(全部英語です):[Homunculus] The RampageAI Thread - RO Empire Forums

RampageAIのAI.luaには以下の一文が入っています。
-- Check if the user wants to cheat. I mean auto-aid-potion.
-- ユーザーがチートしたいならチェックする。自動ポーションピッチャーを意味します。


この一文が意味するのは即ち、作者も自動ポーションピッチャーがいかなるものであるかを認識しているということです。
さらに、KaoriさんのAidPotting.lua(自動ポーションピッチャー置き換え版)をConf/に追加添付しました。
これはRampageAIの自動ポーションピッチャーを置き換えるスクリプトです。
使い方は、添付してあるAidPotting.txtを見てください。

※これは自動PPを推奨しているのではなく、単純にちゃんと訳して後関連ファイルの紹介をしたいだけです。(RampageAIの拡張方法など。)

これにあわせてAI切り替えツール、ROAMをもう一度紹介します。
The Tempest: iRO情報#3 ROAM
posted by silica at 20:03| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年07月29日

ほむ命令らいぶらり。

なんとか形に出来たので、アップしますー。
実際にホムに命令理解させるまではまだまだ遠いですが、参考までに。

ホム命令ライブラリ version 0.2(基本骨組みだけです)
http://www.sgv417.jp/~winter/alchemy/download/chat.lzh

・WHENCE = "end"設定の時はログが一定行たまるまで、ログをうまく読んでくれないかも?
このときは以下の設定にしてみてください。
(fp:seekを実質的に無効化します)
WHENCE = "cur"
OFFSET = 0

・savechat連打すればAI周期が来る前にチャットログを保存して、消えないで残してくれるかも?

ついでに、個人的な興味から作ったものです。

ホムAI変数をファイルに保存するライブラリ
http://www.sgv417.jp/~winter/alchemy/download/extra.lua
posted by silica at 23:36| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年07月27日

今日、したこと。

今日はずっとAI関係で色々調べてました。

終了:
・会話を/savechat経由で毎回AIに伝えられるようにする
・AI()関数実行周期取得
・プレイヤーIDリスト取得

まだ:
・プレイヤーIDから座標とジョブと外見(playerjobdata.luaより)
・IDからプレイヤー、ホムンクルス、ペットかどうかを自動判別する
(関数名はWhatIs(id)がいいかな〜?)

GvAI:
SelectActors.luaのfunction GetEnemyActive ()が2箇所あります。
中身も同じなのでコピペミスだと思います。

・主人を遠距離攻撃中の中から一番近い敵を探す
function GetOwnerOutRangeEnemyID()

は英語で「範囲外から自分を遠距離攻撃してくる敵IDを取得」だから、
GetEnemyIDAttacktoOwnerFromOutRange
なのかなぁ。
…長すぎますね。むやみに名前変えないほうがいいでしょうから、このままがいいかも。

それから、本サイトは容量にかなり余裕があるのでホムAIなどのデータミラーは問題ないです。
Wikiなどは管理問題があるので作れても運営しませんが。
posted by silica at 23:03| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年07月26日

ほむの言葉。

今日はRampageAIを英語から日本語にかなり翻訳しました。
残りは後1ファイルだけで、早ければ明日にでも翻訳版を出せると思います。

さて、ホムンクルスは人の発言を理解できないようです。
――本当に、理解できない?
続きを読む
posted by silica at 20:09| Comment(2) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年07月25日

らいぶらり候補。

ホムンクルス用ライブラリを配布するサイトLv.1playerjobdata.luaを参考にホムが判断するためのライブラリを書いてみました。
※全然テストしてません。間違ってたら教えてください。

・ホムに、対象が何かを判断させるライブラリ

idが何かを調べる関数は、Is〜ではじまる名前で統一しています。

discriminator.lua: ID種類識別ライブラリ
NPC
ペット
ホムンクルス
バイオプラントモンスター
マリンスフィアー

きのこ


homunclusdata.lua: ホムンクルス識別ライブラリ
ホムンクルス種類
ホムンクルスのジャンル(進化、亜種)
ホムンクルス種族

※参考:ホムンクルス用ライブラリを配布するサイトLv.1

playerjobdata.lua
プレイヤー
プレイヤーの職業、転生、養子

さらに工体研究所のAIをダウンロードできなくなっていたので、こちらで勝手にミラーしてみました。

工体研究所 mirror

stacktrace.lua AIのコールスタックを調べてみる 2006/03/31
table.lua table互換ライブラリ 2006/04/04
tabletest.lua table互換ライブラリてすとこーど 2006/04/04
roaiplus_rev012.zip ROAIPlus rev12 2006/04/25
ai_rev103.zip 2006/04/22:持っていないです。どなたか下さればミラーします。
ai_rev102.zip ai_rev102.zip 2006/04/21
posted by silica at 22:14| Comment(2) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

GvAIの間違い探し&個人的メモ

コメントにしようとしたらHTMLタグが通らないので記事に…。

個人的なメモ

・AI()関数実行周期の取得方法を調べる
・プレイヤーID取得の時、座標とジョブ、外見(playerjobdata.luaより)も書き込む
(デバッグ用に)
以下、ただの訂正要望メモです。
posted by silica at 22:00| Comment(4) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年07月24日

GvAI&統一ライブラリ。

GvAIで複数のタイプミス?や変更要望点がいくつかあります。。
本当は◆g37UcEp//g様(GvAI)にこっそりメールしたいのですが、どうやったら連絡取れるでしょう?
それとも、ブログで書いちゃっていいのかしらん。

統一ライブラリ

各種AIを見ていると、似たような処理が多いです。
共通点はライブラリから必要なものだけを読み込めるようにすると
便利なのかも…。

そろそろ、Lua用の統一ライブラリって誰か作りませんかねー。

ライブラリファイルセットとして以下の組み合わせってどうでしょうか?

AI/USER_AI/lib/
GvAI
SelectActors.lua -- 行動選択ライブラリ

The Winter's Tale
setini.lua -- 設定ファイル出入力

ホムンクルス用ライブラリを配布するサイトLv.1
mobdata.lua -- モンスターの詳細情報
playerjobdata.lua -- プレイヤーID関連
CheckLib.lua -- 戦闘時などのチェック関連
Map.zip -- 進入不可、遠距離攻撃不可判定関連
BBlib.lua -- ホムンクルス用汎用関数ライブラリ

Top Page. - Singing and Thinking.
showstate.lua -- Status表示ライブラリ
trace.lua -- ファイル名指定 Trace出力ライブラリ
Movelib.lua -- 移動系拡張ライブラリ

工体研究所
table.lua -- テーブルライブラリ(Luaによる実装)
posted by silica at 21:23| Comment(1) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年07月21日

ホム考察その2。

コメントを下さったGlenelgの人の情報によりまとめなおしてみました。

ホム視点(デフォルトAI):

・画面内の全員の位置(座標)、モーション(動き)、ターゲットが見えます。
・ハイド・クロークしているプレイヤー・敵は普通に見えます。
・ハイド・クロークしているかどうかは分かりません(区別方法がありません)
・マップ上の壁(進入不能セル)は見えません。
・指定した位置へ到達可能かは実際に移動指示を出さないとわかりません。
・障害物や進入不能セルが目標との間に間にある場合は回避もできませんし、到達できません。(IWなどによる進入不能セルも含みます)
プレイヤーは職業や見た目ではなく、アカウント(ログインID)で見分けます。
・空腹の度合いは、Alt+Rでしか見ることが出来ません。
・主人ケミとホム自身の現在のHP/SPと最大のHP/SPは分かります。
・プレイヤーやモンスターのエモーションは分かりません。
・言葉を出すことは出来ませんし、人の言葉は一切分かりません。
・自分のいるマップが一切わかりません。
・主人との距離がどんなに離れてもホムは消えず残ります。(マップ切り替えたりしない限り)
・ホムがどこにいても、どんなに遠くにいてもえさをあげられます。

ホムンクルス用ライブラリを配布するサイトLv.1ライブラリで出来るようになるもの:

・プレイヤーの職業や外見:playerjobdata.lua
・モンスターの知識や強さ:mobdata.lua
・現在地と周りの見通し:MAP.zip(マップを手動で指定しないといけない)
・指定した場所への移動可能/進入不能セル回避

後はBBlib.luaに「草かどうか」判断するIsGrass(id)があると便利かもと思いました。

その他:

・NPCがいる場合、そのID情報を参照して現在マップを判断できます。(メンテの度に変わる可能性あり)

がんほーのAIマニュアルの場所が変わっていたので、もう一度見てきました。
まったく更新されていませんでした。
仕事サボらないでください。
ホムを生き物として考えた場合どうしてもおかしい仕様や未実装はさっさと実装すべきです。

要修正点

・距離に関係なくえさをあげられる
・AIマニュアルにある未実装
・プレイヤーのスキルを使わせられる
posted by silica at 20:25| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年07月20日

ホム考察。

ホムの視点で周りを見る:

モンスター、NPC、建物、壁、WPなどはID(数字)として見えます。

プレイヤーすらも、IDという数字で見えています。
(そのため、キャラクターではなくてアカウント単位で認識)
このIDは、キャラクエでプレイヤーを検索して出てくるIDと同じだそうです。

生物としてのホムの視点:

・ハイド・クロークしている相手でも普通に見えます。
・ハイド・クロークしているかどうかは分かりません(区別方法がありません)
プレイヤーは職業や見た目ではなく、アカウント(ログインID)で見分けます。
・空腹の度合いは、Alt+Rでしか見ることが出来ません。
・言葉を出すことは出来ませんし、人の言葉は一切分かりません。
・自分のいるマップが一切わかりません。
・座標と壁などは見えるので、それから現在地を推測することは可能かも?

GvGでホムを使う場合:

・EmC出来るマスターのID情報を集めてデータベースに。
→キャラクエで検索したらすぐ集まるかも?
(EmC.iniに、ギルマスとそのIDリストをまとめて書いておく。)

・EmCできるマスターへの粘着を最優先するモードを付ける。
・クローク・ハイドしている人をファイル名として出力して知らせる。
→今見えているのは味方しかいないのに、隠れている人(見慣れないID)が混じっていればそれを目立つように。
この場合、味方のデータベースも必要になります。

GvG用のホムAIにほしい機能はこのあたりかな?
posted by silica at 23:21| Comment(2) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

設定変数出入力ライブラリ version 1.5

設定変数出入力ライブラリ version 1.5 (2006/07/20)
http://www.sgv417.jp/~winter/alchemy/download/setini.lzh

変更内容
・str2num関数のタイプミス修正のついでに処理を高速化。

改変に関しましては、ご自由にどうぞー。
こちらに連絡入れていただければ、即反映させます。
(そのための汎用ライブラリを目指しています。)

また、このスクリプトを書くに当たって心がけているのは「簡潔に、分かりやすく。」です。
もちろん出来る限り無駄な処理を省くように考えています。

◆g37UcEp//g様GvAI作者)、毎回ありがとうございます。

・TIPS

ファイルを読み込む処理をさらに高速化するなら、37行目を以下の通りに:
for k, v in string.gfind(line, "([_%w]+)[%s]-=[%s]-([:,_%w]+)")

for k, v in string.gfind(line, "([_%w]+) = ([:,_%w]+)")

強調部分「[%s]-」を空白に変えれば高速になります。
これは、=の左右の空白がいくつあっても設定を認識させるための正規表現です。
これは外部からの設定ファイルを読み込む時だけ必要になります。
posted by silica at 22:42| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

今日の更新。

ホムンクルス人工知能スクリプトマニュアルを更新しました。

更新
4-2 GetV (V_MOTION, id) に対する返り値

ホムンクルスのIDリストにタナトスで追加されたホムンクルスのIDを反映。

4-3 GetV(V_HOMUNTYPE, id) に対する返り値

スパイラルピアースのモーションなど判明分を追加。
スリムポーションピッチャー(SPP)とアシッドデモンストレーション(ADS)を投げるモーションは同じです。

追加
4-5 ホムンクルスのスキルID

GvAIに入っていた定数を参考にまとめました。
posted by silica at 22:18| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年07月19日

AI切り替えツールのその後。

初回限定様からコメントでいただいた工体AIのAI切り替えツール修正方法については、初回限定様がさらに詳細を書いてくれたのでリンクを張ります。

初回限定のAI配布。::AI補助ツール”ROAIPlus rev12”の紹介と修正

設定ファイル周りで苦労されてる方は結構いそうですね〜
Luaのファイル出入力は、スクリプト言語としてはかなり特殊なほうだと思います。

工体AIの問題点のみを修正したファイル、もし需要があるなら作成して置こうかなとも思っています。
posted by silica at 22:31| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。