GetLastDisturbed()
オブジェクトもしくはクリーチャーの所持品欄に最後にdisturbしたのが誰かを調べます。
object GetLastDisturbed();
Description
オブジェクトもしくはクリーチャーの所持品欄に最後にdisturbしたオブジェクトを返します。
所持品欄にdisturbしたものがいなかったりオブジェクトが所持品欄を持っていなかった場合はOBJECT_INVALIDを返します。
この関数で"disturb"された状態というのは、それが所有するアイテムが取り上げられたり加えられたりして変化した場合のことをいいます。
単に所持品欄を見られただけでは何も起こりません。
またこれは所持品欄が閉じられるのを待ちません。何かを取ったり加えたりするとただちにGetLastDisturbed()関数はそのプレイヤーもしくはクリーチャーを返します。
Remarks
この関数は所持品欄を調べられているオブジェクトのイベントスクリプトで使用されるでしょう。
Known Bugs
disturbアイテムがゴールドである場合はOnDisturbイベントは正確に起動しないことに注意してください。このとき関数は予期せぬ動作を返します。
私は下記の小さなスクリプトをコンテナのOnDisturbイベントで実験してみました。
void main()
{
object oPC=GetLastDisturbed();
object oDisturb=GetInventoryDisturbItem();
SendMessageToPC(oPC, "this: "+GetName(oDisturb));
}
コンテナにゴールドを入れたときにはメッセージは “this: Gold piece”と表示されました。このときはゴールドで起動しました。
コンテナからゴールドをとりだしてみると “this: ”というメッセージが表示されました。
コンテナからゴールドを取り除いてみると、GetInventoryDisturbItem()は OBJECT_INVALIDを返しました。
スタックできるアイテムでもバグが発生します。スタックできるアイテムをアイテムの与える側か受け取る側の別のスタックに加えると、OnDisturbedイベントは起動しません。
(ゴールドは例外です)
Version
1.30
See Also
functions: | GetInventoryDisturbItem | GetLastHostileActor | GetLastOpenedBy |
categories: | Inventory Functions |
author: Jason Harris, editor: Lilac Soul, additional contributor(s): Lilac Soul, JP team: NamaYake
Send comments on this topic.