Javardry スクリプト turn について
まいどどうも、Javardryでフリーゲームを作っております、やまだです。
この記事はJavardryの利用者向け・・というか、開発者のTHUさんに向けた記事というか、そんな感じです。
『不具合っぽい挙動したんだけど、実は不具合ではない、けど、マニュアルに書かれた日本語を見ると不具合に見えないこともない、でもやっぱ仕様だよねコレ』
こういうのは開発してると
(開発者が意図していないスクリプトの使い方を製作者はしてのけるので)
けっこうよくあるんですが、不具合ではないので、サポート掲示板に書くのも収まりが悪いし、じゃあnoteで記事にして、開発垢のツイッターに貼って不特定多数の皆の目に届けるか~~ という軽い気持ちで書きました。
本題
turnというスクリプト、使ってみればわかりますが、けっこう便利ですね。
戦闘中のターン数を取れるのと、戦闘に関連するなら基本何でも使えるということで、バトル中のターン数経過によってどうこう、というのを表現しやすい。
で、自分の作っているゲームで、モンスターの確定率を修正したくなったので修正することにしました(理由はいろいろあるんですが、クッソ長くなるうえに本題と関係なくなるので書きません)
修正前はたしかこんな感じ
100 min (40 + (0 max (pt.lv-monster.lv)) * 20 + pt.maxAbi[3]*3)
※言語化すると「パーティのモンスターのレベル差が開いていて、パーティ内の特性値3(この場合はINT)が高いとすぐの識別できる」感じです
上記だと、一定までレベルを上げると、ほぼすべてのマップで識別可能になっていて、緊張感が下がるな~、ということもあり、
「1ターン目はどう頑張ってもそこそこしか確率あがらず、2ターン目から全部確定できるようにしよう」
という方針で修正することに。
修正後
100 min ((60 min (10 + (0 max (pt.lv-monster.lv)) * 20 + pt.maxAbi[3]*3)) + 100 min (turn - 1) * 60)
※「はじめ、確定率は60までしか上がらないけど、ターン数で上がる確定率を足すと100に到達する」ようにしました。これは不具合がでていたスクリプトでデータ残っておらず、入れたら動かないかもしれません;;
Javardryには計算機というものがあり、事前チェックができますが(個人的には大変ありがたい機能)回した結果、turn数が0でなければ問題なく、マニュアルを見ると
「戦闘中のターン経過数です。先制ターンは0、通常は1からカウントが始まり、ターンが経過するごとに1づつ増えます。有効範囲は0~99999です。」
ということで、
『まあ先制ターンはわかんなくてもいいやろw 従来は1ターンだから問題なしww』
で実装したのですが、
なんか、1ターン目、なにをやっても未識別の敵になってる。
はじめは下振れ引いてるからでは。。と思っていたのですが、平均LV15のパーティでLv1の敵が出るイベントに行き、10回とも未識別のみだったので、こりゃあかんな、バグやな、と。
で、家で調べてみると、ターン数の部分しか悪さしてない様子で、turnが0になっている。
ただ、戦闘開始してるからturnは1のはず・・ということで、これは仕様の不具合? と思いつつ。。
以下のように修正しました。
100 min ((60 min (10 + (0 max (pt.lv-monster.lv)) * 20 + pt.maxAbi[3]*3)) + 100 min ((0 max (turn - 1)) * 60))
"0 max ~"というのはめさめさ便利で、「0以下(負の値)は0にする」というもの。負の値が影響している不具合はこれを使うとだいたい直ります。
で、無事に想定通りの動きになったのですが・・
これ、冷静に考えると、turnの不具合じゃないんですよ。
モンスターの確定のタイミングがバトルが始まる前であるならば、すなわちturnは0になるので。
※Javardryのモンスターの確定タイミングがバトル開始直後なら、turnのカウントが進み、1の状態になると思います
こういうところは、実機で確認しないとわからないので・・
Javardryでは、スクリプトは悩んだらとりあえず組んで実機で確認、というほうがスピード感が出ると思います。
今回の記事のまとめ
・"turn"は便利だけど、カウント数の進め方など、チェックしないといけないことはあるよ。マニュアルを読んだだけでは伝わりにくいところだから、実機で確認するほうが早いよ
・負の係数が悪さしてるなら、"0 max ~"はすごい便利だよ
最後に
現在、Javardryで「depth」というゲームを開発してます! ウィザードリィ系のゲームを作るエディタですが、マイトアンドマジック1みたいなのを作りてぇ~とか、darkest dungeon とかそういう要素も入れたいよね、とかいろいろ盛り込んでおります。
こちらから開発版をプレイ可能です!
ブラウザ版
http://depth-dungeon.com/Javardry.html
スマホ版
http://depth-dungeon.com/JavardryController.html
記事を見て興味をもっていただいたなら、こちらもプレイいただけたら嬉しいです! よろしくおねがいしま~す!