トップ
新規
一覧
Farm
検索
ヘルプ
RSS
ログイン
乱数ロールプログラムの編集
!!!{{category SOS2改造}}乱数ロールプログラム !!概要 TRPGではダイスを振ることをロールすると言います。 というわけで乱数支援用のルーチンを2つ用意してみました。 :ランダムロール: これは単に乱数を発生するだけですが、サブルーチン化すると便利……かもしれません。 少し多機能になっています。 :ダイスロール: これは何面体ダイスを何回ロールしたか、という結果を出すことが出来ます。 洋ゲーやTRPG、某所Shattered Legacyなどで多用されている手法です:) !!ランダムロール !サブルーチン sub rnd_roll { $Roll = int(rand($_[0] - $_[2])) + $_[1]; $Roll -= $_[3]; $Roll = 0 if $Roll < 0; # 戻り値の最低値を 0 と指定 $Roll = $_[1] if $_[1] && $Roll < $_[1]; # $b が代入された場合、その値を最低値と指定 return($Roll); } !リクワイア $scalar = &rnd_roll($a,$b,$c,$d); !使い方 上記のリクワイアを記述することで実行します。 まず、各変数の説明が以下のようになります―― ,変数,説明 ,$scalar,発生した乱数が戻り値として代入されます。 ,$a,乱数の分母です。 ,$b,戻り値に+する数値です。 ,$c,乱数の分母から−させる数値(分母ボーナス)です。 ,$d,乱数の結果から−させる数値(分子ボーナス)です。 !注意 戻り値の最低値は 0 と指定しています。 $b が代入された場合、その値を最低値と指定しています。 サブルーチン内のコメントアウトを参照してください。 !ケーススタディ $a = 100; only $scalar = 0 〜 99; $a = 100; $b = 1; $scalar = 1 〜 100; $a = 100; $b = 1; $c = 50; $scalar = 1 〜 50; $a = 100; $d = 50; $scalar = 0 〜 49; $a = 100; $b = 10; $d = 100; $scalar = 10 〜 10; !!ダイスロール !サブルーチン sub dice_roll { if (!$_[0] || !$_[1]) { return('0') } $Dice = $Roll = 0; while ($Dice < $_[0]) { $Roll += int(rand($_[1])); $Roll ++; $Dice ++; } $Roll += $_[2]; return($Roll); } !リクワイア $scalar = &dice_roll($a,$b,$c); !使い方 上記のリクワイアを記述することで実行します。 まず、各変数の説明が以下のようになります―― ,変数,説明 ,$scalar,発生した乱数が戻り値として代入されます。 ,$a,ダイスをロールする回数です ,$b,ダイスの種類です、$b面体ダイスという意味です。 ,$c,ボーナス値を設定できます。 !ケーススタディ ショートソード(1D6) $scalar = &dice_roll(1,6); $scalar = 1 〜 6; ロングソード+1(1D8+1) $scalar = &dice_roll(1,8,1); $scalar = 2 〜 9; カシナートの剣(1D3+9) $scalar = &dice_roll(1,3,9); $scalar = 10 〜 12;
タイムスタンプを更新しない
添付ファイル
リネーム・コピー
リネーム
メッセージを残してリネーム
コピー
[
ヘルプ
]
Counter 685253
はじめに
SOS2 Wikiの使い方
コンテンツ
SOS2を設置する
SOS2を改造する
困ったときには
コラム
改造&FAQ
リファレンスマニュアル
機能別改造一覧
雑談
BBS
Masters Bar
公式BBS
サポート
サポートBBS
Link
リンク
SIONJamの改造ソース
設置サイトはこちらへ
検索
キーワード
AND
OR
ページ内容も含める
最近更新されたページ
雑談
Script of Saga II Wiki
パーティシステム
D2C風、レアアイテム生成システム
洋ゲー風、拾得アイテム強化プログラム
SOSIIを分割しよう
戦闘関連強化・特技&魔法
SOSII Check Script
乱数ロールプログラム
不具合情報
参照数の多いページ
Script of Saga II Wiki
(74711)
リンク
(16201)
SOS2を設置する
(12421)
雑談
(11882)
SOS2改造利用規約
(9738)