「javascript/サーヴァント経験値計算」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
#javascript(){{{{{
<style>
#svExp tbody tr td:nth-of-type(1){text-align: center;}
#svExp input[type=text]{text-align: right;}
</style>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
function func(){
// 数値を取得
var now = parseFloat($('#svExp [name="nowLv"]').val());
var goal = parseFloat($('#svExp [name="goaLv"]').val());
// 現在レベルが目標レベルより高い場合は、1Lv分だけ計算
if(now >= goal){goal = now + 1.0;}
// 目標レベルが100超の場合、Lv.100までに修正
if(goal >= 100){goal = 100;}
// 現在レベルから目標レベルまでに必要な経験値を計算
var Tn = exp_total(now);
var Tg = exp_total(goal);
exp = Tg - Tn;
// 現在レベルが100超の場合
if(now >= 100){exp = 0;}
// テーブルに入力
$('#svExp [name="totalEXP"]').val('' + exp);
//必要になる強化素材数を計算してテーブルに入力
$('#svExp input.num').each(function(i, out){
if(out.name.match(/(\d+?)(.+?)/)){
var n = RegExp.$1;
var x = RegExp.$2;
if (x == 'A'){var mag = 1.2;}
else if (x == 'B'){var mag = 1.0;}
$(out).val(Math.ceil(exp / (1000 * Math.pow(3, n-1) * mag)));
}
});
}
function exp_total(Lv){
// Lv.91以上の場合は、別な経験値テーブルを参照
// ただし、対象がサーヴァントの場合のみ
var over90 = [
12567000, 13021900, 13531900, 14116400, 14794900,
15587400, 16514300, 17596400, 18854900, 20311400
];
var sv = $('#svExp [name="sv_ce"]').val();
if(sv == 1 && Lv > 90){return over90[Lv - 91];}
// Lv.90以下
return 100.0 * Lv * (Lv - 1.0) * (Lv + 1.0) / 6.0;
}
</script>
}}}}}
#html2(){{
<table id="svExp">
<tbody>
<tr>
<td>現在のレベル</td>
<td colspan="2"><input type="number" maxlength="6" style="width:6em;" name="nowLv" value="1"></td>
</tr>
<tr>
<td>目標のレベル</td>
<td colspan="2"><input type="number" maxlength="6" style="width:6em;" name="goaLv" value="0"></td>
</tr>
<tr>
<td>対象</td>
<td colspan="2"><select name="sv_ce" style="width:10em;">
<option value="1" selected>サーヴァント</option>
<option value="0">概念礼装</option>
</select></td>
</tr>
<tr>
<td colspan="3"><form name="calc" id="calc"><input type="button" value="計算" onclick="func()"></form></td>
</tr>
<tr>
<td><b>必要経験値</b></td>
<td colspan="2"><input readonly type="text" style="width:8em;" name="totalEXP"></td>
</tr>
<tr align=center>
<td>強化素材</td>
<td>クラス一致</td>
<td>クラス不一致</td>
</tr>
<tr>
<td>★1 叡智の種火</td>
<td><input readonly type="text" style="width:5em;" name="1A" class="num"> 個</td>
<td><input readonly type="text" style="width:5em;" name="1B" class="num"> 個</td>
</tr>
<tr>
<td>★2 叡智の灯火</td>
<td><input readonly type="text" style="width:5em;" name="2A" class="num"> 個</td>
<td><input readonly type="text" style="width:5em;" name="2B" class="num"> 個</td>
</tr>
<tr>
<td>★3 叡智の大火</td>
<td><input readonly type="text" style="width:5em;" name="3A" class="num"> 個</td>
<td><input readonly type="text" style="width:5em;" name="3B" class="num"> 個</td>
</tr>
<tr>
<td>★4 叡智の猛火</td>
<td><input readonly type="text" style="width:5em;" name="4A" class="num"> 個</td>
<td><input readonly type="text" style="width:5em;" name="4B" class="num"> 個</td>
</tr>
</tbody>
</table>
}}
#javascript(){{{{{
<style>
#svExp tbody tr td:nth-of-type(1){text-align: center;}
#svExp input[type=text]{text-align: right;}
</style>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
function calcqp(sr, lv){
switch (sr) {
case 11: return 70+30*lv;
case 21: return 105+45*lv;
case 31: return 140+60*lv;
case 41: return 280+120*lv;
case 51: return 420+180*lv;
case 10: return 42+18*lv;
case 20: return 63+27*lv;
case 30: return 84+36*lv;
case 40: return 168+72*lv;
case 50: return 252+108*lv;
default: return 0;
}
}
function toComma(num)
{
return parseInt(num / 1000) == 0 ? num % 1000 : toComma(parseInt(num / 1000)) + ',' + ('000' + (num % 1000)).slice(-3);
}
function func(){
// 数値を取得
var now = parseFloat($('#svExp [name="nowLv"]').val());
var goal = parseFloat($('#svExp [name="goaLv"]').val());
// 現在レベルが目標レベルより高い場合は、1Lv分だけ計算
if(now >= goal){goal = now + 1.0;}
// 目標レベルがMAX超の場合、Lv.MAXまでに修正
var sr = parseInt($('#svExp [name="sv_ce"]').val());
var sv = sr & 1;
if (sv == 1 && goal > 120) { goal = 120; }
else if(sv == 0 && goal > 100){goal = 100;}
// 現在レベルから目標レベルまでに必要な経験値を計算
var Tn = exp_total(now,sv);
var Tg = exp_total(goal,sv);
exp = Tg - Tn;
// 現在レベルがMAX超の場合
if((sv == 1 && now >= 120) || (sv == 0 && now >= 100)){exp = 0;}
// テーブルに入力
$('#svExp [name="totalEXP"]').val(toComma(exp));
//必要になる強化素材数を計算してテーブルに入力
$('#svExp input.num').each(function(i, out){
if(out.name.match(/(\d+?)(.+?)/)){
var n = RegExp.$1;
var x = RegExp.$2;
if (x == 'A'){var mag = 1.2;}
else if (x == 'B'){var mag = 1.0;}
var one = (1000 * Math.pow(3, n-1) * mag);
$(out).val(toComma(Math.ceil(exp / one)));
var Tc = Tn;
var lc = now;
var qpt = 0;
while (Tc < Tg){
var en;
if ((Tg - Tc) < (one * 20)){en = Math.ceil((Tg - Tc) / one);}
else {en = Math.ceil((exp_total(lc+1, sv) - Tc) / one); if (lc+1<goal) en += (20 - en % 20);}
Tc += one * en;
qpt += calcqp(sr,lc) * en;
while (Tc >= exp_total(lc+1, sv)){lc++;}
}
$(out).parent().next().find('input.qp').val(toComma(qpt));
}
});
}
function exp_total(Lv, sv){
// Lv.91以上の場合は、別な経験値テーブルを参照
// ただし、対象がサーヴァントの場合のみ
var over90 = [
12567000, 13021900, 13532000, 14116500, 14795000,
15587500, 16514400, 17596500, 18855000, 20311500,
40623000, 60934500, 81246000, 101557500, 121869000,
142180500, 162492000, 182803500, 203115000, 223426500,
243738000, 264049500, 284361000, 304672500, 324984000,
345295500, 365607000, 385918500, 406230000, 426541500
];
if(sv == 1 && Lv > 90){return over90[Lv - 91];}
// Lv.90以下
return 100.0 * Lv * (Lv - 1.0) * (Lv + 1.0) / 6.0;
}
</script>
}}}}}
#html2(){{
<table id="svExp">
<tbody>
<tr>
<td>現在のレベル</td>
<td colspan="4"><input type="number" maxlength="6" style="width:6em;" name="nowLv" value="1"></td>
</tr>
<tr>
<td>目標のレベル</td>
<td colspan="4"><input type="number" maxlength="6" style="width:6em;" name="goaLv" value="0"></td>
</tr>
<tr>
<td>対象</td>
<td colspan="4"><select name="sv_ce" style="width:10em;">
<option value="51" selected>サーヴァント☆5</option>
<option value="41" selected>サーヴァント☆4</option>
<option value="31" selected>サーヴァント☆3</option>
<option value="21" selected>サーヴァント☆2(☆0)</option>
<option value="11" selected>サーヴァント☆1</option>
<option value="50">概念礼装☆5</option>
<option value="40">概念礼装☆4</option>
<option value="30">概念礼装☆3</option>
<option value="20">概念礼装☆2</option>
<option value="10">概念礼装☆1</option>
</select></td>
</tr>
<tr>
<td colspan="5"><form name="calc" id="calc"><input type="button" value="計算" onclick="func()"></form></td>
</tr>
<tr>
<td><b>必要経験値</b></td>
<td colspan="4"><input readonly type="text" style="width:8em;" name="totalEXP"></td>
</tr>
<tr align=center>
<td>強化素材</td>
<td colspan="2">クラス一致</td>
<td colspan="2">クラス不一致</td>
</tr>
<tr>
<td>★1 叡智の種火</td>
<td><input readonly type="text" style="width:5em;" name="1A" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QP1A" class="qp">QP</td>
<td><input readonly type="text" style="width:5em;" name="1B" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QPBA" class="qp">QP</td>
</tr>
<tr>
<td>★2 叡智の灯火</td>
<td><input readonly type="text" style="width:5em;" name="2A" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QP2A" class="qp">QP</td>
<td><input readonly type="text" style="width:5em;" name="2B" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QP2B" class="qp">QP</td>
</tr>
<tr>
<td>★3 叡智の大火</td>
<td><input readonly type="text" style="width:5em;" name="3A" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QP3A" class="qp">QP</td>
<td><input readonly type="text" style="width:5em;" name="3B" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QP3B" class="qp">QP</td>
</tr>
<tr>
<td>★4 叡智の猛火</td>
<td><input readonly type="text" style="width:5em;" name="4A" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QP4A" class="qp">QP</td>
<td><input readonly type="text" style="width:5em;" name="4B" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QP4B" class="qp">QP</td>
</tr>
<tr>
<td>★5 叡智の業火</td>
<td><input readonly type="text" style="width:5em;" name="5A" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QP5A" class="qp">QP</td>
<td><input readonly type="text" style="width:5em;" name="5B" class="num"> 個</td><td><input readonly type="text" style="width:7em;" name="QP5B" class="qp">QP</td>
</tr>
</tbody>
</table>
<p>※再臨時のQP消費は除く。単純に20個ずつ強化素材を捧げ続けた場合の消費QP。</p>
}}
Comments policy & Terms of Use
・ネタバレ自粛期間中はシナリオや真名のネタバレは禁止です!
ネタバレ自粛期間の文字列挿入箇所
・コメントの内容に準じたコメントフォームを利用しましょう!
※報告を扇動したり異なるフォームへの投稿が散見した場合、coや規制対応することがあります
・現在、異なる板へのガチャ報告に利用者が定型文で誘導を行えるようルール改定するか議論中です。
時間がありましたら賛成/反対だけで構わないのでレスの協力お願いします
閉じる