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.