BCDice/TRPGツールからの呼び出し方/ダイスロールのみ利用する場合

提供: TRPGツール開発・運用Wiki
ナビゲーションに移動 検索に移動
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

BCDiceのダイスロール機能のみを利用する場合の、Rubyプログラムからの呼び出し方をまとめる。

BCDice関連ファイルを読み込む

BCDiceの機能を利用する前に、1回だけ関連ファイルを読み込む必要がある。BCDiceが配置されているディレクトリを読み込みパスに追加してから、関連ファイルを読み込む。

# BCDiceが配置されているディレクトリを読み込みパスに追加する
$LOAD_PATH.unshift('/path/to/BCDice/src')

# BCDice関連ファイルを読み込む
require 'diceBot/DiceBot'
require 'diceBot/DiceBotLoader'
require 'bcdiceCore'

ダイスロールを行う

BCDiceのダイスロール機能を呼び出すプログラムの概要を以下に示す。

# ゲーム名(英数字。省略名でも可)
# * 省略名の例:DX(DoubleCross)、SW20(SwordWorld2.0)
game_title = 'DoubleCross'
# コマンド
command = '2DX+4@10'

# 新しいBCDiceインスタンスを作る
bcdice = BCDiceMaker.new.newBcDice

# ゲームを指定する
bcdice.setGameByTitle(game_title)
# BCDiceに送るメッセージ(コマンド)を指定する
bcdice.setMessage(command)
# ダイスロールの結果(出目)を返すように設定する
bcdice.setCollectRandResult(true)

# ダイスロールを行い、結果を受け取る
# * output:ダイスロールの結果(出目の合計など)を示すメッセージ
#     * 例:"2DX+4@10 : (2R10+4[10]) > 8[7,8]+4 > 12"
# * secret:シークレットダイスならばtrue、そうでなければfalse
output, secret = bcdice.dice_command

# 出目の情報を受け取る
# 2つの整数要素を持つ配列の配列として返ってくる
# * 返り値の例:[[7, 10], [8, 10]](10面ダイスの7、10面ダイスの8)
rolled_dice = bcdice.getRandResults

利用できるダイスボットの一覧を取得する

DiceBotLoader.collectDiceBots を呼び出すと、利用可能なダイスボットの配列を取得することができる。これを利用して、利用できるダイスボットの一覧を作ることができる。

# 利用できるダイスボットの配列
dicebots = DiceBotLoader.collectDiceBots

# 特定のゲームを対象としないダイスボットも一覧に加える場合
# dicebots = DiceBotLoader.collectDiceBots + [DiceBot.new]

# ゲーム識別子(英数字)の配列を作る
game_types = dicebots.map(&:gameType)

# ゲーム名(日本語)の配列を作る
game_names = dicebots.map(&:gameName)