ソードワールドのような計算システム

yotuyoyopapi
記事: 8
登録日時: 2018年4月12日(木) 00:29

ソードワールドのような計算システム

投稿記事by yotuyoyopapi » 2018年4月12日(木) 02:58

RPGアツマールに投稿されているTableVoiceRPG!(仮)に触発されVXAceで同じようなものを作ってみたくなりました
ソードワールドのように威力レートから2d6で威力を計算してクリティカル値を超えていれば振り足し1ゾロなら攻撃失敗となる威力計算と攻撃の命中、回避を能力+2d6の対抗で行うシステムがほしいです
変数を2~12の乱数で代入することでダイスを再現しようと思ったのですが命中回避のシステムや威力レートがどうにもなりませんでした、最悪威力レートはコモンイベントにひたすら条件分岐をつけていけば何とかなりますが量が膨大になりすぎるので2~12までの数値を打ち込むだけで判定できるようになるとうれしいです
どうかよろしくお願いします!

yotuyoyopapi
記事: 8
登録日時: 2018年4月12日(木) 00:29

Re: ソードワールドのような計算システム

投稿記事by yotuyoyopapi » 2018年4月15日(日) 04:19

ある程度自己解決しました
あとは
魔法力+2~12の乱数が相手の魔法防御+2~12の乱数を超えていれば1、そうでなければ2の数値を出してそれをダメージから割る計算式は可能でしょうか?
yotuyoyopapi
記事: 8
登録日時: 2018年4月12日(木) 00:29

Re: ソードワールドのような計算システム

投稿記事by yotuyoyopapi » 2018年4月15日(日) 05:01

質問した直後にいろいろ試していたらなんか出来ました
10 / (a.mat + rand(12) + 1 >= b.mdf + rand(12) + 1? 1:2)
faida
記事: 203
登録日時: 2015年12月17日(木) 16:44

Re: ソードワールドのような計算システム

投稿記事by faida » 2018年4月15日(日) 10:00

自己解決したようなので余計なことなんですが、
2d6を完全に再現するには(つまり7が出やすい乱数を作るには)
「rand(12)+1」ではなく「rand(6)+rand(6)+2」になります。
「rand(12)+1」は1d12(変数が1~12、全部均等に出る)ですね。
---------------------------------------------
自作の(改造でない)スクリプト素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
yotuyoyopapi
記事: 8
登録日時: 2018年4月12日(木) 00:29

Re: ソードワールドのような計算システム

投稿記事by yotuyoyopapi » 2018年4月15日(日) 14:37

ありがとうございます!
ありがたいのですがしかし式が長くなりすぎて簡略化しないと攻撃の計算式の枠におさまらないのです・・・
faida
記事: 203
登録日時: 2015年12月17日(木) 16:44

Re: ソードワールドのような計算システム

投稿記事by faida » 2018年4月15日(日) 19:46

簡単なスクリプト素材を作ってみました。

コード: 全て選択

module Kernel
  def dice(num, size)
    result = 0; num.times{ result += rand(size) + 1 }; result
  end
end
「dice(2, 6)」で2d6になるスクリプトです。理屈は簡単ですね。
---------------------------------------------
自作の(改造でない)スクリプト素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
yotuyoyopapi
記事: 8
登録日時: 2018年4月12日(木) 00:29

Re: ソードワールドのような計算システム

投稿記事by yotuyoyopapi » 2018年4月16日(月) 02:54

おお!ありがとうございます!
スクリプトはさっぱりで関数を調べながらやっていたのですごく助かります!
yotuyoyopapi
記事: 8
登録日時: 2018年4月12日(木) 00:29

Re: ソードワールドのような計算システム

投稿記事by yotuyoyopapi » 2018年4月19日(木) 02:21

現在各アクターのファイター、プリースト、レンジャーのような技能レベルを<アクター1 ファイター>のように
アクターと技能ごとに変数に数値を代入して制御しているのですが、命中判定のほうは行動するアクターがわかっているのでコモンイベントでなんとか出来たのですが回避判定を近接職でのみ数値に補正をかける方法を探して手詰まりになっています、攻撃指定されたアクターに応じて変数を変化させるようなスクリプトは可能でしょうか?

“VX / Ace:スクリプト素材のリクエスト” へ戻る