goo blog サービス終了のお知らせ 

Ruby on Rails フォオオオオオオオオオオオオオ!!

Ruby on Railsの参考書やサイトの写経を行っています。あと他になんかやったこととか書いていくかも

JavaScript RPGツクールMV 狙われ率の取得先

2016-02-03 17:41:53 | JavaScript RPGツクールMV
前回は敵アクターの味方アクターに対するターゲットは
どうやって決まってるかを確認しました。
今回は狙われ率がの値がどうやって決まるかを見ます。
一応事前には以下のいずれかで、今まで作っている間は①を何となく想定してました。
①ステート>装備>職業>アクターの優先度順できまる
②全ての狙われ率の平均
③全ての狙われ率を順番に掛ける

で、結論を書いてしまうと③でした。


tgrの内容を見ると、sparam(0)というメソッドの返り値を、
さらに返すようになっているようです。



sparamを見てみると、さらにtraisPiというメソッドを呼んでいます。




traisPiからtraitsWithIdを呼び、そこからallTraits
さらにそこからtraitObjectsを呼んで、おまけにその中からstatesを呼んでいます。



traitObjectsでstatesから全てのステータスを取得。
allTraitsで配列型にして繋ぐ。
traitsWithIdでcodeとidに合致する配列だけを取得し
traitsPiで順番に掛けて行っています。



ぶっちゃけここからは霊感なのですが、
職業、アクター、装備、ステートから特殊能力値(ここでは狙われ値)を取得し、
順番に掛けて行っているという感じだと思います(現場でこんな回答をしたらキレられます)


return this.traitsWithId(code, id).reduce(function(r, trait) {
return r * trait.value;
}, 1);


reduceメソッドは配列を順番に処理するメソッドで、
第二引数に1が設定されているので元の値(始めの処理でrに代入されている値)は1です。


職業の狙われ率が100%、アクターの狙われ率50%、装備が150%、ステートが80%の場合は
1*1*0.5*1.5*0.8で0.6、つまり狙われ率60%というわけですね。
つまり最初に挙げた選択肢の③というわけです。



最新の画像もっと見る

コメントを投稿