ActionTakeItem(object, object)
オブジェクトからアイテムを奪います。
void ActionTakeItem( object oItem, object oTakeFrom );
Parameters
oItem
奪いとるアイテム。
oTakeFrom
奪いとるアイテムを持っているオブジェクト
Description
oItemが有効なアイテムでない場合またはoTakeFromが有効なオブジェクトでない場合は何も起こりません。
これはPCが所持しているアイテムや装備しているアイテムを奪いとることができます。
Remarks
このアクションは所持品を持つことができるオブジェクトのみ実行できます。
アクションを実行するfオブジェクトは実際に所持品を持っている必要はありませんが、アイテムを所持する機能がなければいけません。
もしアクションを実行するオブジェクトが所持品を持つことができるなら、oItemは自動的にその所持品に移動します。
もしアクションを実行したオブジェクトが所持品を持つ機能がなかった場合でも、このアクションで奪いとられたアイテムは破壊されることはなく、それらのデータは不明な状態のまま保存されます。
それらは有効なオブジェクトのままで、ActionGiveItem関数を使うことで元に戻すこともできます
Known Bugs
エリアのOnEnterイベントでこのアクションをテストを実施したとき、エリアのアクションキューにこのアクションが加えられエリアのロード時にエリアはクラッシュしてしまいました。
Lilac Soulによる注意点:実際にはエリアとモジュールはアクションキューを持つことができませんので、おそらくクラッシュしてしまいます。
ActionTakeItem関数をコンテナ内のコンテナに対して使用するとゲームはクラッシュしてしまいます。
これの代替案としては、コンテナをフロア(それが見られない右上の隅に)に置き、そしてその上でActionTakeItemを実行するというものです。
Version
1.22
Example
// トリガーのOnEnterの中に使います。 //"plc_mystery"というタグを持った配置物がPCから着物をはぎとり、 //そして再び着せます。 #include "nw_i0_generic" void main() { object oPC = GetEnteringObject(); if (! GetIsPC( oPC )) return; object oClothes = GetItemInSlot(INVENTORY_SLOT_CHEST , oPC); object oMystery = GetObjectByTag("plc_mystery"); // あらかじめ用意しておいた透明オブジェクトのタグ // 順序が保存されるようにAssignCommandを使用すること AssignCommand(oMystery, ActionTakeItem(oClothes, oPC)); if (GetHasInventory(oMystery)) SendMessageToPC(oPC, "Yup, oMystery has an inventory"); else SendMessageToPC(oPC, "Nope, no inventory here"); AssignCommand(oMystery, ActionDoCommand(SendMessageToPC(oPC, "HasItem on oMystery says: " + IntToString(HasItem(oMystery, GetTag(oClothes))) ))); AssignCommand(oMystery, DelayCommand(1.0, ActionSpeakString("Hey, great abs! You been working out "))); AssignCommand(oMystery, DelayCommand(3.0, ActionGiveItem(oClothes, oPC))); AssignCommand(oMystery, DelayCommand(3.1, AssignCommand(oPC, ActionEquipItem(oClothes, INVENTORY_SLOT_CHEST)))); }
See Also
functions: | ActionGiveItem | ActionUnequipItem |
categories: | Action on Object Functions | Inventory Functions |
author: Iskander Merriman, editor: Lilac Soul, additional contributor(s): Enigmatic, JP team: NamaYake
Send comments on this topic.