ゴーストルーターのスクリプト作り方
「パズドラAPI解析」で無事解析出来たら、次は実際にスクリプトを作成してみよう。
マニュアル不親切すぎ!!と最初は思っていたけれど、一度スクリプトを作ってからマニュアルをもう一度見ると、十分な情報が詰まってるように感じてしまう不思議。
パズドラサーバーとのリクエスト・レスポンス解析が出来ているなら、何か作ってみると良いです。そうすると、色々分かってきます。
「Rubyとかわかんないし!」
と思うかも知れませんが、実は、複雑な処理をしないなら「Rubyスクリプト」使わないで、「ルール追加」で開くウインドウに入力していくだけで十分。
Rubyスクリプト使う場合でも、正規表現をちょっと覚えればそれだけで行けます。
「○○だったらブロック」が一番作りやすいので、最初はこのパターンを作るといいんじゃないかと思います。ちなみに、友人が作りたかったのは「○○がドロップしなかったら通信エラー」だったのでちょうど良かったね。
例として「○○がドロップしなかったら通信エラー」について簡単に解説。
まず、ダンジョン侵入時のレスポンスはこんな感じになっている。
{“seq”:”1″,”monsters”:[{"type":0,"num":"72","lv":10,"item":"72","inum":10,"pval":1},{"type":0,"num":"72","lv":10,"item":0,"inum":0,"pval":0}]},
{“seq”:”2″,”monsters”:[{"type":0,"num":"72","lv":10,"item":"72","inum":10,"pval":0},{"type":0,"num":"72","lv":10,"item":0,"inum":0,"pval":0}]},
実際にプレイしながらレスポンスのデータを見れば、何を表してるか一瞬で分かるから、実際にやってみる事をおすすめする。
例として、キングサファイアドラゴンが出なかったらエラーというスクリプトのソース。
url = gr.get_url()
#該当するリクエスト以外はスルー
if(!gr.is_match(url,”^http://api-adr-pad.gungho.jp/api.php.+?action=sneak_dungeon&”))
return
end#該当リクエストに対するレスポンス取得
res = gr.get_response()#キングサファイア(No.257)出ないなら通信エラー
if(!gr.is_match(res,”item…257″))
gr.block()
return
end
これでキングサファイアが出なかったら通信エラーにすることが出来る。
※上のソースだとres,”itemの後が「…」になっていますが、「.」が3つです。
後は257という数字を、自分の出したいモンスターに変更すればOK。if文を変更すれば+卵を条件にすることも出来るし、○○が複数でない場合などを条件にすることも可能。
出来ねぇ!わからねぇ!って人はコメントにどうぞ。
これが出来るようになれば、色んな処理が出来るんじゃないかと思います。
(友人が試したところによると、「スキルレベルが上がらなかったら通信エラー」は、通信エラーには出来るけどリクエストした時点で合成が成立していてダメだったそうです)
あ、誰かガチャについても試して結果教えて下さいw
最近のコメント