記事一覧

【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が対象

【NPC露店 第3回】商品を買ってみる

■過去の記事
【NPC露店 第2回】商品リストの表示
【NPC露店 第1回】NPC露店の仕様
ファイル 489-1.jpg
見た目は第1回から変わり映えないお姉さんから・・・

ファイル 489-2.jpg
アイテムが買えた!

ファイル 489-3.jpg
ちゃんとアイテムが減ります。

今回はNPC露店から商品が買えるところまで実装しました。
変更した箇所はたった1関数のみ。
それでも実際にアイテムを扱う箇所なので、コーディングを慎重にするはずだったんですが、これまたエラー無くすんなりと解決。
もっと不具合が検出されるはずなんですが。。逆に心配です。

ただし、1つだけ問題がありまして、
商品が完売しても露店が閉じません。
PC露店ではアイテム販売報告パケット(0x137)で解決してそうなんですが・・・う〜ん。
商品が売れたとき、商品リストをチェックして強引に閉鎖するようにします(==

さて、次回はスクリプト側からNPC露店に出させる商品を操作できるようにしてみますよ〜。
▼開発メモ

コメント一覧

Toshi (08/27 23:58) 編集・削除

すでに第3回まできてた~ぁ!
順調に進んでますね。
楽しみですぅ。

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

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

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

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

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

▼開発メモ

【NPC露店 第1回】NPC露店の仕様

ファイル 487-1.jpg

商人の最大の見せ場である「露店開設」。
それをNPCに使わせよう~というコードの長期連載(予定)のAurigaオリジナル開発記です。
「普通のショップNPCでいいじゃん!」と思う人もいるかと思いますが、色々と拡張予定なので長い目で見てあげてください(==

とりあえずさらっと露店看板表示までは出来ました。
コードは形になってきたらココで公開するかもです。

▼続き(仕様決め)

コメント一覧

名無し (08/22 11:52) 編集・削除

ooh...
何時か如何にか出来ないかなと考えていた、NPC露天をBlazeさんが作っているとは。

Toshi (08/22 16:12) 編集・削除

楽しそうなNPCですぅ。
鯖再起動しても継続ならとてもいい感じです。
DUPEが怖い「@at」の代わりに流行りそうです。

Blaze (08/23 17:58) 編集・削除

>Toshiさん
>鯖再起動しても継続ならとてもいい感じです。
NPCデータを直接保存するのは好ましくない(スクリプト変更による該当NPCが削除されたなど)ので、
データ保存はスクリプト実行側の責務となりそうです。
(露店閉鎖時に現商品データをスクリプト命令でcsvなどに保存→露店開設時にcsvから商品データを読み取り)

ただ、スクリプトで保存するタイミングが難しく、「商品が売れた~」時のイベント実行などを用意してあげないといけない気がしてきましたorz

ブラジリス

久しぶりに新マップ情報です。
韓国テストサーバーにブラジルのローカルライジングマップ「ブラジリス」がアップデートされました。

ファイル 486-1.jpg
ブラジリス「brasilis」
BGM133 :「Sunny Side of Life」

ファイル 486-2.jpg
ブラジリスフィールド「bra_fild01」
BGM134 :「SuBorborema」

ファイル 486-3.jpg
滝裏の洞窟01「bra_dun01」
BGM135 :「At Dusk」

ファイル 486-4.jpg
滝裏の洞窟02「bra_dun02」
BGM135 :「At Dusk」

街1マップ、フィールド1マップ、ダンジョン2階層と少々控えめです。

続いて新規モンスター。

ファイル 486-5.gif
クルピラ(curupira)
サベージとドケビ合体。

ファイル 486-6.gif
ヘッドレスミュール(headless_mule)
直訳すると首無し馬。Reナイトメア

ファイル 486-7.gif
イアラ(iara)
Reオボンヌ

ファイル 486-8.gif
ピラニア(piranha)
Reソードフィッシュ

画像はまさかの既存モンスターの使い回しみたいです。。

スプライトはありませんが、他に
ボイタタ(boitata)→大蛇の怪物
ジャガー(jaguar)
トゥカン(toucan)→クチバシのでかい鳥
のモンスター定義がされています。後日実装?

ネタ見せ

新人歓迎会にて、「ヒロシ」のネタを披露しました。

・・・くそおおぉぉぉ
スベったぁぁぁ

コメント一覧

_ (06/20 00:12) 編集・削除

ヒロシだと!

lyese URL (06/20 09:14) 編集・削除

見てみたい。。w

locard URL (06/20 23:47) 編集・削除

Blazeさんって
何かを溜め込んでしまう癖ありませんか!!1

Blaze (06/21 22:46) 編集・削除

>locardさん
お金は溜まりませんが(==?

お! (06/25 01:41) 編集・削除

おお!生きてた!

打ち上げ

この日、プロジェクトが一段落したので打ち上げに行きました。

平日で7〜8人の少人数、しかも普段は会わない人達のプロジェクトなので早々に切り上げるつもりだったんですが・・・

意外に話がよく合い、盛り上がってしまい、気がつけば終電間際の長丁場に。
酒の席って、恐ろしい。

ちなみに今月は新人歓迎会などで、毎週1,2日ほど飲み会のスケジュールが。
世間は不況だってのに、よくやるなぁ(==

とりあえず

生きてます(==
これからはネタが出来次第、細々と書いていきます。

コメント一覧

ミカヅキ (06/11 10:15) 編集・削除

お元気にしていらっしゃるようで…。
ちょっぴり安心しましたよー。

ランチ

よくランチで食べる食べ物ランキング。

1位:あんかけスパ
→美味しい、行列店

2位:ラーメン
→早い、安い

3位:カレー煮込みうどん
→名古屋の定番、汁が飛ぶのが困り者

4位:そば
→ランチといえば

5位:うどん
→急いでる時に

-
・・・あれ?
麺類しか食ってないorz

コメント一覧

aの人 (11/17 22:25) 編集・削除

あはは。
久しぶりの日記でしたが
なんとなく元気そうですね。
体調には気をつけましょうー

Blaze (11/19 20:33) 編集・削除

最近、残業フィーバーで元気ってこともないです(==
この時期はどうしても忙しいので、踏張りどころですけど・・・orz

aの人 (01/30 01:49) 編集・削除

生きてますかー!

;x; (06/08 14:07) 編集・削除

いつの間にか更新がなくなってるー(泣
もう仕方ないのかなぁ・・・

>< (06/08 21:53) 編集・削除

一応某所で生存してるのは確認できますしね・・・

Blaze (06/08 23:21) 編集・削除

生きてます生きてます。。
これからは生気絞りだしていきますorz

3次職スキルその2

気になる3次職スキル続報です。
前回定義されたアークビショップ、ギロチンクロス、ルーンナイト
http://www.usamimi.info/~blaze/cgi-bin/diarypro/diary.cgi?no=476&continue=on#continue
に続き、残りのメカニック、レンジャー、ウォーロックのスキル定義がされたようです。

続きからどうぞ
続きを読む

コメント一覧

nesarozien (11/02 20:52) 編集・削除

今後、同様のコンテンツ及びエミュレートサーバ・クライアントを開発・公開・配布されていた場合、
その責任の一切はサイト運営者及び上記サーバ・クライアントの開発者が負うものとして、更に厳しい対処となりますので、ご注意ください。


と言う風に書かれたガンホーからのメール(inspection@gungho.jp)
着てません?
一応確認ススメです

Blaze (11/04 21:09) 編集・削除

色々大変みたいですね・・・
確認してみましたが、当方には届いておりませんでした。

Torrephache Eメール (08/21 01:23) 編集・削除

Hullo. I've been visiting this forum lots of times. I wanted to say thanks for all the info=)