ページ 1 / 1
ソードワールドのような計算システム
Posted: 2018年4月12日(木) 02:58
by yotuyoyopapi
RPGアツマールに投稿されているTableVoiceRPG!(仮)に触発されVXAceで同じようなものを作ってみたくなりました
ソードワールドのように威力レートから2d6で威力を計算してクリティカル値を超えていれば振り足し1ゾロなら攻撃失敗となる威力計算と攻撃の命中、回避を能力+2d6の対抗で行うシステムがほしいです
変数を2~12の乱数で代入することでダイスを再現しようと思ったのですが命中回避のシステムや威力レートがどうにもなりませんでした、最悪威力レートはコモンイベントにひたすら条件分岐をつけていけば何とかなりますが量が膨大になりすぎるので2~12までの数値を打ち込むだけで判定できるようになるとうれしいです
どうかよろしくお願いします!
Re: ソードワールドのような計算システム
Posted: 2018年4月15日(日) 04:19
by yotuyoyopapi
ある程度自己解決しました
あとは
魔法力+2~12の乱数が相手の魔法防御+2~12の乱数を超えていれば1、そうでなければ2の数値を出してそれをダメージから割る計算式は可能でしょうか?
Re: ソードワールドのような計算システム
Posted: 2018年4月15日(日) 05:01
by yotuyoyopapi
質問した直後にいろいろ試していたらなんか出来ました
10 / (a.mat + rand(12) + 1 >= b.mdf + rand(12) + 1? 1:2)
Re: ソードワールドのような計算システム
Posted: 2018年4月15日(日) 10:00
by faida
自己解決したようなので余計なことなんですが、
2d6を完全に再現するには(つまり7が出やすい乱数を作るには)
「rand(12)+1」ではなく「rand(6)+rand(6)+2」になります。
「rand(12)+1」は1d12(変数が1~12、全部均等に出る)ですね。
Re: ソードワールドのような計算システム
Posted: 2018年4月15日(日) 14:37
by yotuyoyopapi
ありがとうございます!
ありがたいのですがしかし式が長くなりすぎて簡略化しないと攻撃の計算式の枠におさまらないのです・・・
Re: ソードワールドのような計算システム
Posted: 2018年4月15日(日) 19:46
by faida
簡単なスクリプト素材を作ってみました。
コード: 全て選択
module Kernel
def dice(num, size)
result = 0; num.times{ result += rand(size) + 1 }; result
end
end
「dice(2, 6)」で2d6になるスクリプトです。理屈は簡単ですね。
Re: ソードワールドのような計算システム
Posted: 2018年4月16日(月) 02:54
by yotuyoyopapi
おお!ありがとうございます!
スクリプトはさっぱりで関数を調べながらやっていたのですごく助かります!
Re: ソードワールドのような計算システム
Posted: 2018年4月19日(木) 02:21
by yotuyoyopapi
現在各アクターのファイター、プリースト、レンジャーのような技能レベルを<アクター1 ファイター>のように
アクターと技能ごとに変数に数値を代入して制御しているのですが、命中判定のほうは行動するアクターがわかっているのでコモンイベントでなんとか出来たのですが回避判定を近接職でのみ数値に補正をかける方法を探して手詰まりになっています、攻撃指定されたアクターに応じて変数を変化させるようなスクリプトは可能でしょうか?