TakeFetchItem(object)

プレイヤーのインベントリーからプロットに関連するアイテムを取り除きます。

void TakeFetchItem(
    object oPC
);

Parameters

oPC

アイテムを取り除くPC


Description

呼出object上のNW_J_FETCH_MYGLOBALSと呼ばれるローカルobjectからクエストobjectのtag名を取得し、その後、そのtag名を持つ全てのアイテムを目標のインベントリーと装備品から検索し、破壊します。



Remarks

この関数はnw_j_fetch.nssの178行目で発見できます。

この関数の設定は、NPCのクエストに関連したプロット・アイテムに関連する情報の蓄積に集中されます。特にこの関数は利用可能な7つの他の関数から2つを単に利用します。この関数の全ては比較的ストレートで、全体を理解するのに簡単です。

さらに全く同じ関数で、アーティファクトの代わりに"ComplexItems"と"FetchItems"に働く、別のスクリプトもあります。スクリプトは同一ですが、その後、それらを理解しやすくコーディングし、機能性を追加するために分けられました。その他の関数を"See Also"セクションで見てください。


Version

1.22

Example

// クエストを発信するNPCのOnSpawn
#include "NW_J_FETCH"
    SetGlobal(OBJECT_SELF,OBJECT_SELF);
    SetFetchItem("APPLE01");
    SetPlotTag("GATHER_APPLES"); // このクエストの報酬になる経験値を持ったジャーナルエントリーに合わせる
    
// プレーヤーがアイテムを返して報酬を受け取る
#include "NW_I0_PLOT"
#include "NW_J_FETCH"

int StartingConditional()
{
    if (PlayerHasFetchItem(GetPCSpeaker()) == TRUE)
    {
        ActionPauseConversation();
        
        //Dプレイヤーのインベントリーから「apple」を取り除きます
        TakeFetchItem(GetPCSpeaker());
        RewardXP(GetPlotTag(),100,GetPCSpeaker());
        
        // このプレイヤーが再び行なわないようにクエストを終了した印をつける
        SetLocalInt(GetModule(),GetPlotTag()+GetName(GetPCSpeaker()),1);
        
        ActionResumeConversation();
    }
    return FALSE;
}

See Also

functions: GetFetchee | GetFetchItem | TakeComplexItem | TakeStoryItem
categories: Inventory Functions | Miscellaneous Functions


author: John Shuell, JP team: geshi, Rainie
Send comments on this topic.