GM報告用BBS
▲この掲示板には削除機能がありません。注意しましょう。
▲24時間以内に作成されたスレッドには マークが付きます。
▲最新スレッド一覧は最大で過去10日分しか表示されません。
▲古くなったスレッドは倉庫に行きます。
▲24時間以内に作成されたスレッドには マークが付きます。
▲最新スレッド一覧は最大で過去10日分しか表示されません。
▲古くなったスレッドは倉庫に行きます。
精霊付与+精霊革命のアイテムLvの上昇量の計算式(端数の丸め方)が不明
このスレッドは終了しました。
投稿者/ ランディ(332) [EMail] [URL] - 2017/04/26(水) 01:17:22
投稿者/ へいむだる [EMail] [URL] - 2017/04/27(木) 01:19:07
計算式については、精霊付与のみでの上昇値を切り捨てで出します。
それが通常の上昇値になります。
精霊革命がある場合、この上昇値から緩和される○○%を切り捨てで出します。
で、それを緩和します。
一個一個個別にやってる、とお考えください。
Lv36品の精霊付与15%・精霊革命Lv3だと。
Lv36の30%なので、Lv+10されますが、革命(-35%)があるので、Lv-3となり。
結果、Lv+7になる。と、思います。
>登録フォーム上
受取品の改造となるとアイテムLvが不明なので、そこがあれですが。
なんか考えてみます。
それが通常の上昇値になります。
精霊革命がある場合、この上昇値から緩和される○○%を切り捨てで出します。
で、それを緩和します。
一個一個個別にやってる、とお考えください。
Lv36品の精霊付与15%・精霊革命Lv3だと。
Lv36の30%なので、Lv+10されますが、革命(-35%)があるので、Lv-3となり。
結果、Lv+7になる。と、思います。
>登録フォーム上
受取品の改造となるとアイテムLvが不明なので、そこがあれですが。
なんか考えてみます。
投稿者/ ランディ(332) [EMail] [URL] - 2017/04/27(木) 21:29:06
ご回答ありがとうございます。
なるほど。よく分かりました。
正解な計算式は以下の通りでしたか。
a = floor( lv * 0.3);
newLv = lv + a - floor( a * 0.35 );
1つの式にするとこうなりますね。
floor( Lv * ( 1 + 0.3 ) ) - floor( floor( Lv * 0.3 ) * 0.35 )
式が分かれば正確な値が計算できますので、不自由する事もなくなります。
ありがとうございました。
確かに、受取予約アイテムだと元のLvが分かりませんね。
一番簡単なのは「ユーザーにLvを入力してもらう」事だと思います。
JavaScriptでもできるので、こんな感じでも十分ではないかと。
http://www20.atpages.jp/gamescript/souldrops/ptitem/enchant.html
登録フォームに入れる場合も「Lvを入力すれば計算可能」くらいで十分ではないかと思います。
あるいは、このような計算ページを作って、そこへのリンクでも十分だと思います。
より凝るのならば party???.dat を読み込んでアイテムLvをチェックですが、そこまでやるのはかなり手間がかかりそうです。
このためだけにそこまでやる必要はないと思います。
もしやるのならば、いっそのこと受取予約の結果にアイテム名なども表示してしまう方が良いですね。
ご回答ありがとうございました。とてもよく分かりました。
これで安心して、装備Lvぎりぎりの精霊付与もできるようになります。
今期の精霊付与は、精霊革命のおかげもあってとても使いやすいですね。
なるほど。よく分かりました。
正解な計算式は以下の通りでしたか。
a = floor( lv * 0.3);
newLv = lv + a - floor( a * 0.35 );
1つの式にするとこうなりますね。
floor( Lv * ( 1 + 0.3 ) ) - floor( floor( Lv * 0.3 ) * 0.35 )
式が分かれば正確な値が計算できますので、不自由する事もなくなります。
ありがとうございました。
確かに、受取予約アイテムだと元のLvが分かりませんね。
一番簡単なのは「ユーザーにLvを入力してもらう」事だと思います。
JavaScriptでもできるので、こんな感じでも十分ではないかと。
http://www20.atpages.jp/gamescript/souldrops/ptitem/enchant.html
登録フォームに入れる場合も「Lvを入力すれば計算可能」くらいで十分ではないかと思います。
あるいは、このような計算ページを作って、そこへのリンクでも十分だと思います。
より凝るのならば party???.dat を読み込んでアイテムLvをチェックですが、そこまでやるのはかなり手間がかかりそうです。
このためだけにそこまでやる必要はないと思います。
もしやるのならば、いっそのこと受取予約の結果にアイテム名なども表示してしまう方が良いですね。
ご回答ありがとうございました。とてもよく分かりました。
これで安心して、装備Lvぎりぎりの精霊付与もできるようになります。
今期の精霊付与は、精霊革命のおかげもあってとても使いやすいですね。
返信
●タグは無効です。
●URLは自動リンクされます。
●名前、タイトル、コメント、長すぎると自動カットされます。
●URLは自動リンクされます。
●名前、タイトル、コメント、長すぎると自動カットされます。
精霊革命の修得前と修得後とで、精霊付与で上がるLvの計算式の丸め方(切り捨て・切り上げ)が逆になっているように見えます。
精霊革命修得前と修得後の実績から計算式を予想すると、以下のようになります(15%付与の場合)。
※floorは切り捨て、ceilは切り上げ
式1:精霊革命なし:floor( Lv*(1+0.3) )
式2:精霊革命Lv3:ceil( Lv*(1+0.3*0.65) )
精霊革命を覚えてからのうちのPTの精霊付与の実績では、全て式2の通りになっていたと思います。
ただし、SDの他の計算は全て切り捨てなので、ここだけ切り上げに変更したとは考えにくいです。
実際のプログラムでは、計算中に複数回の切り捨て(逆方向への切り捨てを含む)が入っているためではないかと思います(整数型に代入する事による自動切り捨ても含めて)。
例えば、以下の式3,4は、今の装備Lvくらいの数値では式2と同じ値になる事が多いです。
式3:floor( Lv*(1+0.3) - floor( Lv*0.3*0.35 ) )
式4:floor( Lv*(1+0.3) ) - floor( Lv*0.3*0.35 )
ただし、必ず同じ値になるとは限りません。
例えば、Lv36品の精霊付与15%・精霊革命Lv3では違う値になるようです。
本当は、途中の計算は全て実数型で行い、最後に1度だけ丸める方が正しい値に近くなるはずです。
式2〜4は最大でも1Lvの差にしかならないのですが、装備Lvをオーバーしてしまうと困った事になります。
特に武器の場合は、装備Lvオーバーで装備に失敗してしまうと、技も使えなくなってしまいます。
もし回復役がそうなったら、5人PTでも全滅してしまう可能性が高いでしょう。
精霊付与+精霊革命の正確な計算式を教えてもらえるか、登録フォーム上、あるいは、登録結果画面で完成品のLvが分かるようにしてもらう事はできませんでしょうか?