2007年02月24日

AIパス自動判定ライブラリ。

AIパスを自動的に判定してAI_DIRにセットする処理を書いてみました。
http://winter.sgv417.jp/alchemy/download/lib/checkdir.lua

AI.luaにrequire "checkdir.lua"とでもして、AI/とUSER_AI/のどちらかにversion.luaを置いてください。
両方ともない場合のAI_DIRは./AI/AI.luaです。

初回限定AI用に書いててこれは汎用化できそうだと思ったのでライブラリ形式として公開します。
初回限定AIで使うとしたらVersion→FirstLimitationVersionになるのかな?

あと、個人的にグローバル変数を一切使わない主義なのでそのように作りこんであります。
(どっちかというとこれはRubyの設計思想ですけどね。)
※AI_DIRはグローバル変数ではなく定数として認識しているので、ローカル変数宣言はしていません。
(定数はどの関数からも参照できるようにすべきでしょう。)

本来は、ディレクトリ周辺のライブラリが使えればこんなややこしいことしなくてもいいのにね〜
posted by silica at 23:19| Comment(2) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

ホムンクルスの遠距離攻撃スキル。

情報を集めた結果、現時点でわかってるもの。

カプリス
・ホムから15セル(31x31)(距離算出関数は??セル)
・詠唱時間なし、即発動
・ディレイ
Lv1 - 1秒 / 消費SP22
Lv5 - 1.8秒 / 消費SP30

ムーンライト
・ホムから??セル(??x??)(距離算出関数は2セル)
・詠唱時間なし、即発動(多分…)
ディレイ
Lv1 - 2.8秒 / 消費SP4
Lv5 - 2.8秒 / 消費SP20

※ディレイ時間は初回限定AIのConst.lua内を参考

ところで、スキルの射程範囲 V_SKILLATTACKRANGE って未だに未実装なのですか?
http://www.ragnarokonline.jp/playguide/enjoyable/AI_manual_ver1.pdf
では、5ページ目にまだ「未実装」と書いてあります…
posted by silica at 13:28| Comment(1) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年02月21日

雑感。

日記/2007-02-21 - Singing and Thinking.:
正直、何度もいうように、AI側でどうこうするのはばかばかしい内容ですが。

とは限りません。標準AIを例にするならば

1.AI.luaは、待機状態と共通ライブラリ(必要最低限)のみロード

2.各種状態に入ったらその状態を定義したluaファイルをロード
(追跡:FOLLOW→follow.lua, 攻撃:ATTACK→attack.lua....)
ロードするLuaファイルはコンパイル後でも30kb程度になるように分割

いずれにしてもAI.lua1ファイルだけのAIはロード時間を一定以上
減らすのは難しいのではないかと。
プログラムの設計・修正の観点からも分割ファイルよりも
単一ファイルのほうが労力と手間がかかってそうですね…。

あと、最近のホムAIってソースコードの記述がかなり多いです。
本当にそこまで使うの?というような点も多々。
今後のAI設計は、必要な機能のみ必要に応じて読み込みという
方向がロード時間の短縮とデバッグの点からも優位になるでしょう。

正直1ファイルで5000行以上もあるスクリプトとか、Rubyのライブラリを
思いっきり活用しても
デバッグとかバグ修正で死ねます(経験談

追記:
書いた後、友瀬さんのブログにトラックバック送ろうとしたら「機能を消しました。まもなく付け直します。不便をおかけして申し訳ございません。」というメッセージでした。
posted by silica at 23:09| Comment(1) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

攻城戦メモ。

GvGで敵のスキル詠唱妨害をする場合…
ホムンクルスの遠距離攻撃
・ばにるみー:カプリス
・ふぃーりる:ムーンライト

ホムが使える遠距離攻撃はこれだけ?
射程距離とディレイ時間の情報は何処かにあったかな…?

どちらもLv1で最速・最小SPで連打出来るようです。
ムーンライトはLvによってディレイ時間はあまりかわらない、とアルケミテンプレに書いてありました。

防ぎたいスキルの射程(自分のいるセルに距離を足します)
・アシッドデモンストレーション:10セル
・阿修羅覇王拳:3セル
・ウィズのスキル:10セル
・SG最大射程:10+4セル(9x9)
・LoV最大射程:10+5セル(11x11)
・プリのスキル(LD除く):8セル

実際にスキルを使ったり使ってもらったりして確認しました。
posted by silica at 22:15| Comment(3) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年02月20日

Luaの特徴メモ。

Luaの特徴

データ構造はテーブルのみ。テーブルの添字に入れるもの:
数字の場合は、配列。
文字列の場合は、ハッシュ。

どちらも同じテーブルとして扱われます。
配列内の添字によって自動判断。ただし添字に数字と文字列を混ぜた場合(普通はこんな使い方しない)、出力順番が不定。

ipairsは、配列型テーブル用のイテレータ
pairsは、ハッシュ型テーブル用のイテレータ

イテレータというのは、データの初めから終りまで繰り返すこと。
posted by silica at 00:08| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年01月31日

雑記。

AI人力アンテナに対人AIと狩りAIの区分が増えてるので情報を。
こっこAIにGvGモード、MirAIにPvPモードがあります。
どちらも外部のLuaファイルを読み込ませる方式です。
ただこっこAIのは注意書き程度にしておいた方がいいかもしれません。
(それほど試しているわけではないようです。)

Glenelgのソースを見ててワープポイントのIDって一定で、他のNPCももしかしたら一定だったり?という疑問を感じたこの頃。
(ここでいうIDはタイプIDではなくて、プレイヤーIDと同じように扱われる数字です。)
それにしてもほんと、NPCやオブジェクト、職業など各種タイプIDの割り当てルールが滅茶苦茶、プレイヤーの職業とホムの種類が重なるとか…
将来の計画なんて適当といわんばかりの手抜きに見えました。

今は狩りを優先して頑張っているので、来週までAI更新をお休みします。
明日にもクリエがLv98になれそうです。もし可能なら出来る限り
そのまま突っ走っていきます。
posted by silica at 23:21| Comment(3) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年01月29日

ラグ対策を思案中。

RacerAI Version 0.3(予定&実装済み)
・目標を複数指定可能(現在はモンスタータイプ・プレイヤーの職業のみ)
・目標の優先度は自動的に決定されます。(左から右へと優先度が下がっていく)

ドキュメント:AI詳細/RacerAI - AI機能比較表

現在、初回限定さんのラグ対策案をテスト中です。
現在わかっているのは、ばにるみーで赤い/黒いキノコを攻撃した場合
ホム自身のモーションはほとんど0の状態となることです。
GetActors()で取得できたID配列からモーションと座標の配列を新たに作って
直接比較することが果たして現実的かどうか…
posted by silica at 21:33| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年01月20日

ID識別らいぶらり。

ホムンクルスAI用ライブラリを書き上げました。
説明や更新もAI機能比較表で行っていく予定です。
これを使うと、きゃらくえもどきの情報取得を何時でもできるようになります。

AI資料/TypeID - AI機能比較表
AI資料/ID識別ライブラリ - AI機能比較表
続きを読む
posted by silica at 22:10| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年01月16日

れーすAI。

前回作者不明だったのでファイルを直接アップしていましたが
書き方の特徴とLydiaというキーワードから心当たりの作者のブログを
探してみた所、ありました。

初回限定のAI配布。::SIMPLE AIシリーズ その1 The Race

実際に使ってみて説明と違う部分です。

・作者名が入ってないので最初見た時は誰のAIか分かりませんでした。
・Ctrl+tではなく、Alt+Tで切り替えます。
・攻撃命令時にエラーが出ます。→変数ActivityRangeを初期化無しで使ってるからです。
(呼び足した時点でnilが入っていてそれを数値と比較するためエラーになります)
posted by silica at 20:33| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年01月04日

ホムンクルスAI情報のまとめ。

海外では、標準AI以外はRampageAIとMirAIの二極化が進んでるようです。
海外掲示板では、ほとんどこの二大AIの質問しか見かけません。
また、海外では日本と違って匿名の掲示板は全然みかけません。
(検索に引っかからないのかもしれませんが。)
RampageAI作者はドイツ人、MirAI作者はイタリア人です。
最近の海外ROでは、ホムAIのケミスキル使用は容認状態となってるようです。
この二大AIは、ケミスキルサポートが充実しています。
ただし、実際の利用は英語のドキュメントを実際に読みこなすだけの
覚悟は必要です。

AI詳細/RampageAI
AI詳細/MirAI

韓国ではオートSBR(フィーリルの奥義連打)がまだ使えるということですが、どんなAIを使っているのでしょうね〜。
まさかこっこAIをそのまま持っていってたり…は、してそう…。

そして、個人的にAI機能比較表+人力アンテナをホムAI専用Wikiとして活用しています。
LydiaWikiは、出来る限りLydiaローカルの内容を扱いたいのでこちらにしたわけです。
また、ここは初回限定様の好意により、自分専用のAI解説・説明コーナーを作成することも可能です。
AI作者がマニュアル作成代わりに項目を作って載せていってもいいでしょう。
AI情報交換もここを出来る限り使ってみたいと思います。

去年のコメントにて寄せられたホムンクルス掲示板をみましたが、
管理されてるのかどうかかなり不安なので書き込む気は一切ありません。
あそこを使うくらいなら専用の掲示板を立ち上げますね。
そして専用の掲示板が必要なのかどうか、なのですが今のままで特に
困るわけでもないです。
よほど特定の細かい話をするなら各自のブログでやっていくほうが
いいと思います。
後はホムAI用の共通したライブラリがあれば便利かもしれないです。
ただ、それだけのまとめる時間がちょっと微妙…
(かつてあったROツールよりも使う人がさらに限られるので頑張っただけの効果があるのやら?)
posted by silica at 17:05| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年10月04日

レス返し〜。

■工体AI私的修正版patch10のバグ

patch4で加えた修正の誤字がずっと残っていました。
それが今回のバグの原因となり、みなさんにご迷惑をおかけしました。

tamago様、るちる様、gin様>
おかげさまで原因が特定できました。
ありがとうございます。

ぽっくり様>
それぞれの文章がどこを指してるのかいまいちわかりません。
ファイル名と行番号または具体的な処理文を出してください。

・上げられている関数の簡単な説明です。

IsInAttackSight -- 視野範囲内の敵に攻撃できるかどうか; Util.luaにある
できる: true, できない: flase
TakeEnemy() -- 敵を釣る
MoveToOwner(id) -- 組み込み関数(C言語でROクライアントに組み込まれています)

・OnTAKE_ST()内では、動かない敵の対処があります。ヒドラはこれに当たるでしょう。
・スタック処理に関しては、選択肢をわざわざ入れる理由。

某教授様、 鳥使い様>

オートSBRの方は後でゆっくり調べてみます。
スキル100%にならない理由はちょっとわからないです。
先ほどの改造は、ムーンライトを乗っ取ってるために、必ず100%
使うようにはなっていないのかもしれません。

Glenelgの人様>

それはつまりkiteが「トレイン」、kitingが「トレインする」ということですか?
言われたいことは英語を読んだ時にイメージ出来ていたのですが、
適切な日本語に訳すのに苦労してました。

今後 "Kite Monstar" は「モンスタートレイン」、
kitingは「トレインする」と訳することにします。

(´・ω・`)様>
要望の、時系列を時間によって自動的に伸ばす修正は出来ました。
次は、各砦の横の時間繋がりを同じにする修正ですねー。
これも原因は分かったので後は実装テストするだけです。
出来たらすぐアップします。
(集計のほうはまだ他の修正もあるのでスクリプトだけ…)
posted by silica at 20:00| Comment(2) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年10月01日

翻訳終了。

ここ最近はずっと翻訳メインでした。
それがようやく終わったー。

RampageAI v0.9.9-1 beta(最新)翻訳版
ChangeLog.txt: 変更履歴
AdvMove.txt: ステップコマンド説明書
License.txt: ライセンス
※以下の2ファイルはまだ途中、自動スキル系は翻訳しません。
AI.lua: メインAI
Config.lua: 設定ファイル


後は、レーサー集計と工体AIの修正を少しずつ他を進めて行きます。

良く使っていたのはこの辞書です。
国語辞典 英和辞典 和英辞典 - goo 辞書

翻訳して気づいた英単語を以下のWikiにまとめました。
知らないと、意味が分からないものが結構あります。
海外のRO情報を読む時の参考にしてください。

AI資料/Dictionary - AI機能比較表+人力アンテナ(RO専門辞書)
AI資料/ホムンクルス - AI機能比較表+人力アンテナ
posted by silica at 01:11| Comment(1) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年09月22日

翻訳進行中。

今後は、RampageAI関連の翻訳文書を以下の場所にまとめて置きます。
http://www.sgv417.jp/~winter/alchemy/download/RampageAI/

今までの分に最新版で追加された分と、翻訳の見直しもしました。
ChangeLog.txt(更新履歴)は200行以上あり、全て終わるのに時間がかかりそうです。
このテキストファイルの翻訳と、レーサー集計の修正が終わってからホム命令関係に手をつける予定です。

それとRampageAI v0.9.9-1 betaの翻訳をAI人力アンテナの中の人に送りつけておきました。
(上のところからも見られます。)
posted by silica at 19:35| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年09月20日

RampageAI翻訳状況。

とりあえず終わったものだけです。
1.5倍期間が終わって落ち着いたらゆっくりと色々書きます〜。

RampageAI
翻訳完了
- License.txt(GPLライセンス説明)
- AdvMove.txt(高度動作コマンド/高速入力コマンド説明)
途中翻訳(現在翻訳進行中)
- ChangeLog.txt(更新履歴)

以後、番外編です。
続きを読む
posted by silica at 20:18| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年09月15日

RampageAI作者からのメール。#2

9/10にRampageAI作者からメールで返事が来ていました。
Silica,

(Is that what I should call you? Or should I call you The Tempest? I
don't know XD)

> RampageAI's script is good design. So, I transrated your script and
> introduce to japanese.
> Of cause, I have interest in helping japanese version of your
> implementing a system. What do I?

Currently, I don't have anything set up. But I will begin to add
internationalization to Rampage. As soon as some of it is ready, I
will show you what to do. :)

Until I am ready, if you want something to do you can update
AdvMove.txt and ChangeLog.txt :) I attached both of them, and you
should be able to compare them to your older translations.
ChangeLog.txt just has some new entries, but I moved a little bit of
AdvMove.txt around.

> I offer my apologies for the delay in replying to your e-mail.

No apology necessary. :) I am slow at responding to e-mails as well,
so I don't expect anyone else to be any faster.

-Faithful

翻訳:
続きを読む
posted by silica at 00:12| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年09月14日

レス返し。

初めてiROフォーラムに英語で投稿してきました。
もちろんsetiniライブラリについてのレスです。
英語を全然書けない自分にショックを受けました。
RampageAI作者が翻訳サイト経由でここのブログをずっと読まれてるとは流石に思いませんでした…(汗
ごめんね、たいした英語が書けないのに。

姫野みこと様:

英語は、変数や関数名だけで十分です。
コメントについては、英語圏の人から見れば確かに英語もあったほうが
分かりやすいのですが、最終的に翻訳サイトで読まれます。
これについては、それぞれのAI作者が決めることです。

翻訳はこちらの場合、ページ更新ネタにしているのと後国際鯖での発見と議論の
成果を日本ROへ持ってこようと思っているからです。
翻訳が面白いかどうかは、個人の主観であって強制でもなんでもありません。

国際ROから色々な情報をいただいてるから、日本ROからも英語で情報を出して
お互いに情報交換できるようになるといいですね。
つまり、そういう意味合いで翻訳してます。
また、翻訳にはもう一つ大事な意味があって、日本語を正確に書く努力のためにしてます。
正しい日本語を理解して初めて翻訳が出来ると思っています。
そして、英語は、国際RO公式にあわせるべきという考えに賛同します。

> 既存の日本ユーザーに何かしら皺寄せが来るやり方ではしたくないのです。

これは、英語圏の読者のために日本語が読みづらい位置に行ってしまうから、
と言う理由でしょうか。
これについては、想定する利用層にあわせて作ったり書いたりするのが一番、としか言いようがないです。
英語圏のことを意識しないのでしたら、日本語だけで作っても別に問題はないです。
ただ、英語圏の人には分かりづらく使えないものに映るでしょう。

mobdata.luaを変更するなら終わるまで待ちますし、これ以上変更しないという
方針でしたら、すぐ取り込んで工体AI修正版をアップデートします。
あと、調べられた成果はAI人力アンテナのほうに辞典として掲載させていただきました。ありがとうございます。

Glenelgの人様:
ありがとうございます。
現在書いてるHCL仕様書に入れました。
コマンドについては、「最後のコマンド発言」のみを有効にするという
考え方でよさそうです。
posted by silica at 20:00| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

ブログへのアクセスが増えたと思ったら。

昨日はブログへのアクセスがいつもより多いなぁと思っていたら、RampageAI作者が
RagnaInfoで、ini形式の読み書き質問に対して、うちのsetini.luaを紹介していました。

RagnaInfo.net :: View topic - Share your Homunculus AI!
の、

38ページ目
の最後。

touchdown
Posted: Sep 13, 2006 8:10 am
I have another question.
Is it possible to access .ini-files with Lua?
I mean, in the most languages I know there is are functions like
ReadFromIni("section name", "value name", "default value")
and similar functions for writing, creating and modifying,
but I did not find anything like that for Lua in the internet.

Faithful
Posted: Sep 13, 2006 12:08 pm
I saw reference to such a thing on a Japanese Blog
( http://silica.seesaa.net/article/23361834.html ).
I believe they were speaking of the library located at
(http://www.sgv417.jp/~winter/alchemy/download/lib/
setini_v1_9.lzh).
However, since I cannot read any japanese and http://translate.google.com/
does such a marginal job,
I cannot tell you for sure if the feature you want is in that library.

(Also, the computer I'm at will not unpack .LZH, otherwise
I would simply look at the code to tell you)

Hope that helps....

翻訳結果:
続きを読む
posted by silica at 19:27| Comment(2) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年09月13日

モーション#

RampageAI ver0.9.9betaが出ていたので中身を読んでいると…
以下のように書いてありました。
AIマニュアルのGetV (V_MOTION, id) に対する返り値を更新しました。

MOTION_BENDDOWN = 5 -- かがむ(アイテムを拾う、罠を置く)
MOTION_TOSS = 12 -- 投げる(スピアブーメラン、ポーションピッチャー、バイオプラント)
MOTION_COUNTER = 13 -- オートカウンター
MOTION_PERFORM = 17 -- 演奏
MOTION_BIGTOSS = 28 -- 大きく投げる(スリムポーションピッチャー、アシッドデモンストレーション)


もう一つ、英語関係の資料を探してて面白かったページを見つけたので紹介します。
英語の時間 - へっぽこVersion
その中でもこれは面白かった〜。
英語の時間 - へっぽこVersion: 「化学調味料」を英語で何と言うか?
posted by silica at 20:05| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

mobdata.luaについて。

ホムンクルス用ライブラリを配布するサイトLv.1のmobdata.luaが更新。

普通なら早速、工体AI私的修正版に反映させるところですが気になった点がありましたので保留しました。
以下に変更要望点を書いておきます。

続きを読む
posted by silica at 19:28| Comment(1) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2006年09月09日

レス返し。

安っぽい人様:

> そういう意味で安易な悪意ある設定を行えないようにする狙いです
> だからといって「軽い気持ちで致命的な操作をわざと行われる」可能性を潰せるのならその努力はしておいたほうがいいでしょう
> グローバル変数のファイルパスを書き換えるだけで重要なファイルへアクセスして書き換える、簡単な操作で悪意のあるコードへ化けてしまう

そこまで配布元が責任持つと言うのはなんとも…。
でも、簡単にいたずら出来ないようにするのは有効でしょう。
結局考えていけばいくほど、これ以上やったら「チート」と何も変わらないと
言うレベルがあるわけで、「これ以上は危険ですよ。やめましょう」
って分かりやすく伝える方が大事なのかも知れません。

> これは悪戯盛りの精神年齢低めの人には格好の玩具です

そういうのは「スクリプトキティ」"Script kiddie - Wikipedia(English)"って呼びます。
原語の意味合いは、「スクリプトを玩具にする子猫」なのかな?
Kitten - Wikipediaとか、ぬこかわいいよね。

> ライブラリとして配布する以上、二次配布されることを想定してコードを弄らずとも
> ウイルス化してしまう可能性を潰すのは重要だと思います

そうですねー。最近はその考察ばっかりしてます。
ライブラリの基本は作ったけど、それ以上は危険の対策を先にしてからです。

> あと、絶対パスのことは考えてませんでした(汗
> これも対策しておいた方がよかったなぁ・・・

相対パスは".."、そして絶対パスは":"を受け付けないようにするだけで
かなり対策できるのでは。
スクリプトに書く以上回避方法はすぐバレるでしょうけど。
そのため、不正入力チェックという程度にしか認識していません。

GvAIの人様:

ブログ、メインページのリンク両方とも張りました。

> でもコレが使えるってことは、実質AIから出来ないことは何もないと考えていいことになるんですよね。

実際にその通りです。
最大の原因は、WindowsOSに「特定のプログラムを保護する」機構が足りないせいだと思います。
要するに、AIプログラムが勝手にあれこれとアクセスしたり破壊するのを防ぐ設定が
OS側では簡単に出来ない、ということです。
設定変更のやり方はあるのでしょうけど完璧ではありませんし、普通は考えないようなことをしなければならない、という点で非現実でしょう。

その上に、不正プログラムをウィルス対策ソフトに分かりづらいように細工を仕掛けることは可能なんですよね〜
(スクリプトでファイル削除などをウィルス対策ソフトがかなり厳しくチェックしない限り。)

> 今の、ある種平和ボケした状況はかなり危険な状態なのかもしれませんね

それだから何かあると某サイトに…
あそこの更新ネタにされること自体あんまりうれしくないですが!
posted by silica at 14:44| Comment(1) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

広告


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

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

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


×

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