ActionEquipItem(object, int)

所持しているアイテムを装備スロットに装備します。

void ActionEquipItem(
    object oItem,
    int nInventorySlot
);

Parameters

oItem

所持品にあるアイテム。

nInventorySlot

oItemを装備させるスロットをINVENTORY_SLOT_*で指定


Description

スクリプトを呼び出したクリーチャーの(nInventorySlotで指定した)装備スロットにoItemを装備させます。

既に対象の所持品の中に入っているアイテムのみ装備可能です。

(nInventorySlotで指定した)装備スロットに既にアイテムが装備されている場合、そのアイテムに代わってoItemが装備され、そのアイテムは所持品の中に戻されます。

エラー時には何も起こらず、ログファイルには"ActionEquipItem failed"のメッセージが記録されます。



Remarks

oItemを装備させる前に、ActionUnequipItem()関数を呼び出す必要はありません。


Known Bugs

不可能な組み合わせで装備させようとすると、ゲームがクラッシュする場合があります。

例えば、クリーチャーが右手にショートソード、左手にダガーを装備している状態で、ショートソードをダーツに持ち替えさせようとした場合、ゲームはクラッシュします。


Version

1.28

Example

//Function made by Lilac Soul to illustrate the use of
//ActionEquipItem. This function creates an armor with the
//resref "magic_armor" on an entering PC and makes him
//or her equip it.

void main()
{
object oPC=GetEnteringObject();

//Not if the object isn't a PC
if (!GetIsPC(oPC)) return;

//Give the armor to the PC - I could first have checked
//to see if the PC already had one...
object oArmor=CreateItemOnObject("magic_armor", oPC);

//Put on the armor
DelayCommand(0.5, AssignCommand(oPC, ActionEquipItem(oArmor, INVENTORY_SLOT_CHEST)));

DelayCommand(0.7, AssignCommand(oPC, ActionSpeakString("Ah, a new armor. I'd better put it on.")));
}

See Also

functions: ActionUnequipItem | EquipAppropriateWeapons
categories: Action on Object Functions | Inventory Functions
constants: INVENTORY_SLOT_* Constants


author: Ryan Hunt, editor: Lilac Soul, additional contributor(s): Fran ois Guimond, Lilac Soul, JP team: NamaYake
Send comments on this topic.