「BCDice/TRPGツールからの呼び出し方/ダイスロールのみ利用する場合」の版間の差分
< BCDice | TRPGツールからの呼び出し方
Ochaochaocha3 (トーク | 投稿記録) (ページの作成:「BCDiceのダイスロール機能のみを利用する場合の呼び出し方をまとめる。 __TOC__ == ダイスロールを行う == BCDiceのダイスロー…」) |
タグ: 取り消し |
||
(2人の利用者による、間の6版が非表示) | |||
1行目: | 1行目: | ||
− | [[BCDice]] | + | [[BCDice]]のダイスロール機能のみを利用する場合の、[[Ruby]]プログラムからの呼び出し方をまとめる。 |
__TOC__ | __TOC__ | ||
− | == | + | == BCDice関連ファイルを読み込む == |
+ | |||
+ | BCDiceの機能を利用する前に、1回だけ関連ファイルを読み込む必要がある。BCDiceが配置されているディレクトリを読み込みパスに追加してから、関連ファイルを読み込む。 | ||
− | |||
<syntaxhighlight lang="ruby"> | <syntaxhighlight lang="ruby"> | ||
+ | # BCDiceが配置されているディレクトリを読み込みパスに追加する | ||
$LOAD_PATH.unshift('/path/to/BCDice/src') | $LOAD_PATH.unshift('/path/to/BCDice/src') | ||
# BCDice関連ファイルを読み込む | # BCDice関連ファイルを読み込む | ||
− | |||
require 'diceBot/DiceBot' | require 'diceBot/DiceBot' | ||
require 'diceBot/DiceBotLoader' | require 'diceBot/DiceBotLoader' | ||
+ | require 'bcdiceCore' | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == ダイスロールを行う == | ||
+ | |||
+ | BCDiceのダイスロール機能を呼び出すプログラムの概要を以下に示す。 | ||
− | # | + | <syntaxhighlight lang="ruby"> |
+ | # ゲーム名(英数字。省略名でも可) | ||
# * 省略名の例:DX(DoubleCross)、SW20(SwordWorld2.0) | # * 省略名の例:DX(DoubleCross)、SW20(SwordWorld2.0) | ||
game_title = 'DoubleCross' | game_title = 'DoubleCross' | ||
32行目: | 40行目: | ||
# ダイスロールを行い、結果を受け取る | # ダイスロールを行い、結果を受け取る | ||
# * output:ダイスロールの結果(出目の合計など)を示すメッセージ | # * output:ダイスロールの結果(出目の合計など)を示すメッセージ | ||
+ | # * 例:"2DX+4@10 : (2R10+4[10]) > 8[7,8]+4 > 12" | ||
# * secret:シークレットダイスならばtrue、そうでなければfalse | # * secret:シークレットダイスならばtrue、そうでなければfalse | ||
output, secret = bcdice.dice_command | output, secret = bcdice.dice_command | ||
37行目: | 46行目: | ||
# 出目の情報を受け取る | # 出目の情報を受け取る | ||
# 2つの整数要素を持つ配列の配列として返ってくる | # 2つの整数要素を持つ配列の配列として返ってくる | ||
− | # * 返り値の例:[[ | + | # * 返り値の例:[[7, 10], [8, 10]](10面ダイスの7、10面ダイスの8) |
rolled_dice = bcdice.getRandResults | rolled_dice = bcdice.getRandResults | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == 利用できるダイスボットの一覧を取得する == | ||
+ | |||
+ | <code>DiceBotLoader.collectDiceBots</code> を呼び出すと、利用可能なダイスボットの配列を取得することができる。これを利用して、利用できるダイスボットの一覧を作ることができる。 | ||
+ | |||
+ | <syntaxhighlight lang="ruby"> | ||
+ | # 利用できるダイスボットの配列 | ||
+ | dicebots = DiceBotLoader.collectDiceBots | ||
+ | |||
+ | # 特定のゲームを対象としないダイスボットも一覧に加える場合 | ||
+ | # dicebots = DiceBotLoader.collectDiceBots + [DiceBot.new] | ||
+ | |||
+ | # ゲーム識別子(英数字)の配列を作る | ||
+ | game_types = dicebots.map(&:gameType) | ||
+ | |||
+ | # ゲーム名(日本語)の配列を作る | ||
+ | game_names = dicebots.map(&:gameName) | ||
</syntaxhighlight> | </syntaxhighlight> |
2020年8月25日 (火) 07:44時点における最新版
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)