Page 7 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼旧BBS参考7 ユー 02/7/25(木) 13:29 ─────────────────────────────────────── ■題名 : 旧BBS参考7 ■名前 : ユー ■日付 : 02/7/25(木) 13:29 -------------------------------------------------------------------------
| Q モグバトルを設置させてもらっているのですが、 能力(攻撃力や体力)のところに数字以外の文字が使われてしまっています。 何か対策法はないでしょうか? (eとか+の文字が・・・。) A 数字以外の文字は下記で制御されています。 if ($in{'azukeru'} =~ m/[^0-9]/) {&error("金額に数字以外の文字が含まれています。"); } 又、不正対策のために、 if($ENV{'HTTP_REFERER'} !~ /i/){ &error("アドレスバーに値を入力しないでください。"); } があるので、不正は出来ません。 1.11111111111111e+23 これは、モグ以外にも、キャラの能力やお金もなり、 科学的記数法というものです。 あまりにも大きな数値の場合、前記した表現方法で数字が扱われます。 Float型とも呼ばれていますが・・・ 説明すると・・・ 1.11e+23 といった表記は、 1.11の小数点を右に23ずらしたもの を表しています。 つまり 111000000000000000000000 のことです。 あまりにも膨大な数なので、小さな数値の変動は無視されるのです。 モグバトルは初期の場合少ないお金で能力を上げることが出来るので、 その時に一気に上げたと思います。 1.11111111111111e+23とならないように最高値を決めてみるのはどうでしょう・・・ 最高値が決められるようにしたものをアップしておきますので、参照して下さい。 開くと下記の部分があるので修正して下さい。 ---------------------------- #能力の最高値 $sai = "100000"; #上の数字から1引いた数 $sai2 = "99999"; ---------------------------- それで、能力を上げる時に能力の最高値にたっしていた時に エラーを出そうと思ったのですが、 考えてみれば、能力を上げるとともに、 体力が回復するのでエラーは出さないようにしました。 なので、最高値にたっしていても、 「+1ぱわ〜あっぷさせました!」 となるけど、能力の最高値に自動的に修正されます。 又、どこかに注意書きとして、 力と体力が最高値にたっしていてあげれないと出た方は、 能力は上がりませんが体力だけは回復できるので、 金額は「1」を入力する事をお勧めします。 などと言った事を追加した方がいいかもしれません。 |