2016年10月28日金曜日

RPGツクールMV かんたんにデータの送受信ができるプラグイン

とてもかんたんにサーバーへデータを送信したり受信したりできるようになります。
工夫次第でランキングや掲示板、1日1回のログインボーナス配布などなど色々なことに利用できるプラグインです。

例えば単純なランキングへのデータ送受信なら↓のように数行で作れちゃいます。



※もちろん別途ランキングを処理する PHP や CGI などが必要ですガ(^皿^)

サンプルゲームはこちら(PC・スマホ)
IE 用音無しサンプルゲームはこちら

PNDK_HttpRequest プラグインのダウンロードはこちら

■サンプルコードによる使い方説明

以下は PHP に name と score というデータを送り、ランキングの結果を表示するサンプルです。

◆文章:なし, ウィンドウ, 下
:文章:得点を送信するよ☆
◆変数の操作:#0001 受信データ = 0 ←(1)
◆プラグインコマンド:PNDK_HR clear ←(2)
◆プラグインコマンド:PNDK_HR add name \V[10] ←(3)
◆プラグインコマンド:PNDK_HR add score \V[11] ←(4)
◆プラグインコマンド:PNDK_HR send http://sample.jp/sample.php ←(5)
◆文章(S):速度 2 ←(6)
:文章(S):送受信中♪
◆文章:なし, ウィンドウ, 下
:文章:それではランキングの発表です!
◆文章:なし, ウィンドウ, 下 ←(7)
:文章:\V[1]

(1)まず、受信したデータが格納されるツクールの変数を初期化しています。
※必ずしも 0 である必要はありません。
受信したデータが格納されるツクールの変数はパラメータで設定できます。



(2)次に、このプラグインには送信データ専用の変数が予め用意されています。
前回の送信データが残っているとマズイので PNDK_HR clear で、その変数をキレイにしています。

(3)PNDK_HR add で送信データ専用の変数にデータを追加します。
PNDK_HR add name \V[10]
↑この場合、name というデータ名でツクールの変数ID 10番の値を送信データ専用の変数に追加しています。

(4)同様にツクールの変数ID 11番の値を score というデータ名で追加しています。
データはいくつでも追加できます。

(5)PNDK_HR send でデータを送信しています。
この例では http://sample.jp/sample.php に送信しています。
無事に通信が成功すればパラメータで設定した変数にサーバーより返信されたデータが格納されます。
(テキストデータの受信を想定しています。)

なお、エラーが発生した場合も、その変数にエラーメッセージが格納されます。
エラーメッセージとその意味は以下のとおりです。
ERROR TIMEOUT (タイムアウト)
ERROR ABORT (中止)
ERROR (なんやかんやエラー)
ERROR RESPONSE (サーバー側エラー)

(6)単なる時間稼ぎですw
送受信は一瞬では終わりません。
通信環境とデータ量によっては数秒かかることもあるでしょう。
そのため、受信が終わる前に受信用の変数を参照しても値は 0 です。
逆にそれを利用して受信が終わっているかを判断することもできますが、上記の例では割愛しています。

(7)受信したデータを文章として表示します。
このサンプルでは PHP がランキング結果のテキストを返信してくれることを想定しています。
万一、エラーが発生していたり受信が終わっていなければ、0 や ERROR なんたら、という文字列が表示されることになります。
そんなかっこ悪いことしたくない方は、いい感じに条件分岐してくださいw

■プラグインコマンドの説明

PNDK_HR clear
送信データ専用の変数を初期化します。

PNDK_HR add [データ名] [値]
送信データ専用の変数へデータを追加します。
[値]には制御文字が利用できます。

PNDK_HR send [URL]
送信データ専用の変数を[URL]へ POST メソッドで送信するとともに、パラメータで設定したツクールの変数にサーバーより返信されたデータが格納されます。

■注意点

通信はセキュリティで保護されません。
簡単に傍受できるので秘匿性の高い情報の通信には利用しないでください。
(クレカ番号とかパスワードとか個人情報とか)
このプラグインの利用により利用者または第三者に生じたいかなる損害や不利益も、このプラグインの開発者はその責任を負いません。

■使いみち

要はサーバー側の処理次第なのですが、これだけでも色々できるようになります。
以下はその一例です。
サーバー側のプログラムは別途根性で用意してください。
ただ、必ずしもデータを送信する必要はありませんし、プログラムではなくただのテキストファイルを読むだけにも利用できます。
  1. バージョン判定(古いバージョンで遊ばれるのを防ぐ)
  2. カウンター…というかプレイヤー動向分析(ゲームアナリティクス)
  3. UNIX タイムの取得(ズルされにくい日時の取得ができる)
    1. 毎日ボーナス
    2. 季節イベントとか
  4. プレイヤー間での情報共有
    1. ランキング
    2. 掲示板
    3. チャット(負荷かかりすぎかも)
    4. その他いろいろな情報
とはいえ仕様上、あまりリアルタイム性を求められるものには向きません。
他にもなにか面白い使いみちがありましたら教えて下さいませ。

0 件のコメント:

コメントを投稿