日記/2008-08-15 のバックアップの現在との差分(No.1)

お名前:

  • 追加された行はこの色です。
  • 削除された行はこの色です。
**AI:一時的友達の忘却について [#v47ff3cc]

ゲーム内で相談されたので。

Glenelgでは、以下の特殊な友達について、『10秒間見失ったら、登録を解除する』という振る舞いをしています。
-「ホム友達」==他のホムンクルスを友達に登録したとき。
-「特友」==ガードすべき対象としての特別指定。

で、ゲーム内で指摘されたのは、このタイムアウト時間が短すぎる、というもの。~
対応はAI内を2箇所書き換えればすむだけなので、ここに簡単に解説しておきます。

#後日、Glenelgのほうはカスタマイズ可能なように改訂する予定です。


#region(→続きを読む。)

修整方法。

+RO\AI\USER_AI にある Glenelg のファイル群から『friend.lua』を探し、テキストエディタでそれを開く。
+関数 CheckTemporalyFriend()内に以下のような記述があるので、それを探す。
 elseif (TmpFriendList[tostring(curval)]+10000< GetTick()) then
ここの『10000』という数値がタイムアウト時間なので、好きに書き換える
。
--単位は msec(1/1000秒)。なので、10000==10秒。
+もう一箇所:以下のような記述があるので、それを探す。
+もう一箇所:関数CheckSpecialFriend() 内に以下のような記述があるので、それを探す。
 if( GetTick() > TmpSFriendLost+10000 )then
ここの『10000』という数値がタイムアウト時間なので、好きに書き換える
。
+編集した friend.lua を保存する。
+ホムを再起動(安息&コールホムなど)する。

以上で対応されます。

参考までに、この仕様には以下のような理由があります。

-ホムのIDは、ロードしなおすたびに変更されます。~
同じIDが同じホムに割り振られる保障はありません。~
だから、ホム友達のIDを恒久的に覚えておく意味はありませんし、むしろ事故につながる(他のホムにそのIDが移ってしまう)ことさえありえます。~
だから、そのホムのIDは積極的に忘れるようにしています。
-特友は、『特定キャラをガードする』イメージで作ったものです。~
ガードすべき相手からそんなに長時間離れることは不自然であること。~
そして通常の友達登録と平行・二重に行うため、設定解除忘れが起こりえると考えて、ある程度積極的に忘れるようにしています。



#endregion