記事一覧

【NPC露店 第2回】商品リストの表示

■過去の記事
【NPC露店 第1回】NPC露店の仕様
ファイル 488-1.jpg
NPC露店実装の第2回です。
今回は看板をクリックすると商品リストを表示する、まで実装しました。
(前回は看板表示のみ)

通常の露店はカート内アイテム情報を渡しているのに対し、
今回はNPCに露店に出品するアイテム情報を保持し、渡すようにしました。
NPCがアイテムを持ってる感じです。

露店に関するパケットも幾つかあるのですが、
露店キャラのプレイヤー指定をNPC指定もできるように、
カート内アイテム情報をNPCアイテム情報に置き換えるだけで
難なくクリアしております。

さて、商品の表示と情報の保持は出来ましたが、
次回は実際に商品が買える所までやってみようと思います。

続き
■map.h
・npc_vending構造体の定義を追加

struct npc_vending {
int value;
struct item item;
};

・npc_data構造体のメンバに以下を追加

    int vender_id;
int vend_num;
char shop_title[80];
struct npc_vending vending[MAX_VENDING];

■vending.*
・以下の関数を追加

int vending_opennpcvending(struct npc_data *nd, char *shop_title);
int vending_closenpcvending(struct npc_data *nd);

・【新規】vending_opennpcvending()
→NPCのアイテム情報、看板文字列をチェックして露店開設する関数

・【新規】vending_closenpcvending()
→NPC露店開設状態から閉鎖する関数

・【変更】vending_vendinglistreq()
→露店アイテムリスト要求
→引数のIDからblock_list型に変換、PCとNPCに両対応

■clif.*
・以下の関数を追加

void clif_npcvendinglist(struct map_session_data *sd, struct npc_data *vnd);

・【新規】clif_npcvendinglist()
→露店アイテムリスト表示(NPCアイテム情報から読み取り)

・【変更】clif_getareachar_npc()
→NPC表示
→NPCに露店フラグが立っていれば看板表示

コメント一覧