Dripです。
ナットさん、こんにちは。小数点以下の数値を扱うには、double関数が役に立ちます。
小数点以下第6位までの乱数を発生させるサンプルを以下に示します。
randomize:mes double(rnd(1000)*rnd(1000))/1000000
rnd関数では最大1〜32768までの乱数しか生成できないため、
それ以上の数値を希望する場合は、上記のような工夫が必要になります。
小数の問題はよく初心者がつまずく分野ですが、 HSPサンプル等を参考にがんばってみてください。
・・・ちなみにRPGでよくある攻撃の当たり外れは、小数点以下の値を扱わなくても簡単にできます。
randomize
rep=10
Pspd=40
Espd=40
pos 10,10:mes "プレイヤーの素早さ:":pos 180,10:input Pspd,40,20,4
pos 10,30:mes "敵の素早さ:":pos 180,30:input Espd,40,20,4
pos 10,60:objsize 200,20:button ""+rep+"ターン攻撃をする。",*go
stop
*go
color 255,255,255:boxf 0,60:pos 0,90
repeat 10
if rnd(Pspd*2)>rnd(Espd):color ,,255:mes "当たった!":else:color 255:mes "はずれ。"
loop
stop