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.