記事一覧

【NPC露店 第4回】スクリプトで操作してみる

■過去の記事
【NPC露店 第3回】商品を買ってみる
【NPC露店 第2回】商品リストの表示
【NPC露店 第1回】NPC露店の仕様

NPC露店は主にスクリプトで制御するのですが、
今回はNPC露店用のスクリプト命令・関数をなんと6つも用意しました。
なかなか面倒くさい事になっていますが、一応説明をしていきましょう。

■setvending命令
・書式
setvending <index>,<itemid>,<num>,<value>[,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<limit>,<npcname>];
・説明
NPCの商品リストの<index>番目にアイテム<itemid>をセットします。
・パラメータ
<index>
 商品リストの番号を指定(1~12)
 「0」を指定すると空き番号にセット
<itemid>
 商品のアイテムIDをセット
 アイテム名の文字列指定でも可(非推奨)
<num>
 商品の個数をセット
<value>
 商品の値段をセット

※↓ここから省略可
<identify>
<refine>
<attribute>
<card1>
<card2>
<card3>
<card4>
<limit>
 script_ref.txtの「getitem2命令」を参照
<npcname>
 商品リストをセットする対象NPC名を指定
 省略するとスクリプトを実行したNPCが対象

■delvending命令
・書式
getvending [<index>,<npcname>];
・説明
NPC商品リストの<index>番目のアイテムを削除します。
・パラメータ
<index>
 削除する商品リストの番号を指定(1~12まで)
 「0」または省略すると全てのアイテムを削除
<npcname>
 商品を削除する対象NPC名を指定
 省略するとスクリプトを実行したNPCが対象

■getvending命令
・書式
getvending [<npcname>];
・説明
NPCの商品リストの情報を以下の配列にセットします。
'@vending_num
 商品の個数
'@vending_title$
 露店のタイトル名
'@vending_status
 露店の状態(1で開設中、0で閉鎖中)
'@vending_itemid[n]
 n+1番目の商品アイテムID
'@vending_amount[n]
 n+1番目の商品の個数
'@vending_value[n]
 n+1番目の商品の値段
'@vending_identify[n]
 n+1番目の商品の鑑定状態
'@vending_refine[n]
 n+1番目の商品の精錬値
'@vending_attribute[n]
 n+1番目の商品の状態
'@vending_card1[n]
 n+1番目の商品のカード1
'@vending_card2[n]
 n+1番目の商品のカード2
'@vending_card3[n]
 n+1番目の商品のカード3
'@vending_card4[n]
 n+1番目の商品のカード4
'@vending_limit[n]
 n+1番目の商品の制限時間
※nは0から指定
・パラメータ
<npcname>
 省略可
 商品リストをセットする対象NPC名を指定
 省略するとスクリプトを実行したNPCが対象

■openvending命令
・書式
openvending <title>,[<event>,<npcname>];
・説明
NPCに露店を開設させます。
・パラメータ
<title>
 表示させる露店名を文字列で指定
<event>
 省略可
 商品が売れたときに実行するイベント名を指定
<npcname>
 省略可
 露店開設する対象NPC名を指定
 省略するとスクリプトを実行したNPCが対象
・備考
 予めsetvendingで商品リストをセットしないと失敗になります

■closevending命令
・書式
closevending [<npcname>];
・説明
NPCの露店を閉鎖させます。
<npcname>
 省略可
 露店を閉鎖する対象NPC名を指定
 省略するとスクリプトを実行したNPCが対象

■checkvending関数
・書式
checkvending(<npcname>)
・説明
NPCの露店の開設状態をチェックします。
露店が開設されていれば1が、それ以外は0が返ります。
・パラメータ
<npcname>
 省略可
 露店状態をチェックする対象NPC名を指定
 省略するとスクリプトを実行したNPCが対象

コメント一覧