请登录
玩家共建非官方战双WIKI,做最还原游戏内UI体验的WIKI!    
战双WIKI反馈留言板 · WIKI编辑教程 · BWIKI收藏到桌面的方法说明

全站通知:

Widget:攒卡计算

来自战双帕弥什WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

<script> let versionArray = [ { name: '极地暗流', date: '2019-12-24', }, { name: '黑星坠落', date: '2020-02-06', }, { name: '永久列车', date: '2020-03-19', }, { name: '九龙夜航', date: '2020-04-29', }, { name: '九龙环城', date: '2020-06-10', }, { name: '湛蓝曙日', date: '2020-07-23', }, { name: '重返极夜', date: '2020-09-03', }, { name: '古铭遗章', date: '2020-10-22', }, { name: '终焉福音', date: '2020-11-26', }, { name: '寄渊残响', date: '2021-01-07', }, { name: '咏叹回声', date: '2021-02-25', }, { name: '视线囚笼', date: '2021-04-08', }, { name: '迷境刻痕', date: '2021-05-20', }, { name: '绝海星火', date: '2021-07-01', }, { name: '永夜胎动', date: '2021-08-12', }, { name: '湮灭残昼', date: '2021-09-30', },

{ name: '宣叙妄响', date: '2021-11-11', }, { name: '游云鲸梦', date: '2021-12-17', }, { name: '曙星致意', date: '2022-01-27', }, { name: '遥岸方舟', date: '2022-03-10', }, { name: '空晓界限', date: '2022-04-21', }, { name: '枯朽为灯', date: '2022-06-02', }, { name: '烬海异途', date: '2022-07-08', }, { name: '未语庭言', date: '2022-08-18', }, { name: '刻命螺旋', date: '2022-09-29', }, { name: '创绘映想', date: '2022-11-17', }, { name: '凛桎鸣渊', date: '2022-12-29', }, { name: '浮英枕梦行', date: '2023-02-09', }, { name: '萦森歧路', date: '2023-03-23', }, { name: '怒逐沉沙', date: '2023-04-27', }, { name: '爝火长明', date: '2023-06-08', }, { name: '摇篮游行', date: '2023-07-20', }, { name: '镜焰迷城', date: '2023-08-24', }, { name: '碑火铸脊', date: '2023-09-28', }, { name: '络勾陈', date: '2023-11-09', }, { name: '源解信标', date: '2023-12-21', }, { name: '镜像星尘', date: '2024-02-01', }, { name: '未知版本', date: '2024-04-21', }, { name: '未知版本', date: '2024-06-02', }, { name: '未知版本', date: '2024-07-08', }, { name: '未知版本', date: '2024-08-18', }, { name: '未知版本', date: '2024-09-29', }, { name: '未知版本', date: '2024-11-17', }, { name: '未知版本', date: '2024-12-29', }, ]; </script>

<style> .panel-header { color: #c00000; height: 50px; background-color: #e6e6e6; font-weight: bold; padding-left: 20px; border-left: 5px solid #c00000; box-sizing: border-box; display: flex; justify-content: space-between; align-items: center; } .panel-header .button-group button { padding: 5px 10px; margin-right: 10px; outline: none; color: #fff; background-color: #c00000; border: none; border-radius: 5px; } .table { table-layout: fixed; } .panel-item--date { background-color: #fff3eb; } .panel-item--other { background-color: #eafaf1; } .panel-item--detail { background-color: #fdebff; } .panel-item--result { background-color: #e5f6ff; } .panel-item input, .panel-item select { width: 100%; text-align: center; } .panel-item-header { width: 100%; margin-bottom: 10px; display: inline-block; position: relative; } .panel-item-header > i { margin-left: 4px; cursor: pointer; } .panel-item-header > span { text-indent: 2em; font-size: 13px; display: inline-block; width: 200px; padding: 10px; transition: 0.4s ease-in; background-color: #fff; box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.5); transition: background-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; position: absolute; z-index: 100; top: 100%; } .introdution { background-color: #eee; font-size: 15px; padding: 20px; margin-bottom: 20px; } .introdution p{ display: flex; margin-bottom: 20px; } </style>

日期选择

起始日期 <input type="date" id="date_start" min="2019-12-05" />

截至日期 <input type="date" id="date_end"/>

收入情况

   计算起始日的日常收益
   
   

<input type="checkbox" id="checkbox_startDay" checked />

   计算截至日的日常收益
   
   

<input type="checkbox" id="checkbox_endDay" checked />

   不稳定收入
   
   

<input type="checkbox" id="checkbox_unstable" />

   计算起始周的周常收益
   
   

<input type="checkbox" id="checkbox_startWeek" checked />

   计算截至周的周常收益
   
   

<input type="checkbox" id="checkbox_endWeek" checked />

   幻痛囚笼成绩
   
   

<select id="select_painCage">

   <option value="0">无</option>
   <option value="25">高级区囚笼100w</option>
   <option value="50">终极区囚笼150w</option>

</select>

   诺曼复兴战(矿区)成绩
   
   

<select id="select_norman">

   <option value="0">无</option>
   <option value="90">常规矿区(达标作战)</option>
   <option value="125">拓荒矿区-层断(矿4)</option>
   <option value="150">拓荒矿区-宝来(矿5)</option>
   <option value="200">拓荒矿区-云岛(矿6)</option>

</select>

   历战映射算力级别
   
   

   本期:

<select id="select_battles">

   <option value="0">无</option>
   <option value="150">低算力</option>
   <option value="210">高算力</option>

</select>

   我是氪佬
   
   

<input type="checkbox" id="checkbox_oneClick" />

   30月卡
   
   

<input type="checkbox" id="checkbox_month30" />

   68月卡
   
   

<input type="checkbox" id="checkbox_month68" />

   128月卡
   
   

<input type="checkbox" id="checkbox_month128" />

   战略评定手册(战令)
   
   

<input type="checkbox" id="checkbox_manual" />

现有黑卡

<input type="text" id="origin_card" />

   自定义黑卡
   
   

<input type="text" id="diy_card" />

现有活动券

<input type="text" id="origin_ticket" />

   自定义活动券
   
   

<input type="text" id="diy_ticket" />

详细

<thead> </thead>
分类 黑卡 活动券
日常任务
周常任务
幻痛囚笼
诺曼复兴战
历战映射
30月卡
68月卡
128月卡
战略评定手册
不稳定收入
版本更新所得

计算结果

<button id="reload">恢复</button> <button id="reset">重置</button>

▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ 新增资源 合计资源
总和
黑卡
活动券

注意事项

1. 该计算器经过部分改动,与原视频up主的攒卡计算器的收益算法有些许不同,详见各个单元格中的问号提示框(鼠标悬浮弹出,移动端请触摸点击)

2. 版本更新所得共计1340黑卡(组成部分:版本更新维护结束600黑卡,调查问卷150黑卡,活动资源关25级累计250黑卡,版本预热活动100黑卡,剧情首通奖励按默认8关算累计240黑卡)

3. 情报手册(战令)计算。勾选该项,接下来每一个版本的更新日期当天获得1000活动券(购买手册升10级),接下来版本的第11天,第18天,第25天分别获得500活动券。若选择的起始日期已经超出了所述的第1、11、18、25天,则起始版本战令收益不再计算。

4. 矿区与历战映射使用周平均方法计算,计算中每周都会获得半期的资源。历战映射在游戏中为 每期周四上午十点结算一次,当前模拟器通过周平均算法会每周四结算一次资源(周平均算法后低算力每周75黑卡,高算力每周105黑卡)

5. 68月卡和128月卡视为每月的1号生效,如果购买这两项月卡的时间较晚,可能会产生误差

6. 如果勾选了30月卡视为立即购买生效(300黑卡和持续30天的每日100黑卡),接下来每30天生效一次,如果30月卡的购买时间不一致,可能会产生误差

7. 如果勾选了68月卡,且两个日期当中包含了2月份,接下来的3月1号会立即补充2月缺失的黑卡数量,还请注意

8. 请注意:未知版本的版本更新时间都是预估的(非官方正确版本更新时间)

勘误及更新说明(欢迎评论区留言BUG)

version1.3 更新说明
1) 增加了 历战映射 收益计算,结算方法大致与矿区一致,详见【注意事项】第4条。
version1.2 更新说明
1) 修复了128月卡收益错误问题(应为1280黑卡),感谢 yWW246WW(109896905)。
2) 修复当选择的结束日期为周日时,周数的计算错误问题,感谢 不会有人今天没学习吧(10990268)
version1.1 更新说明
1) 修复了战令收益在超过两个版本时会导致计算错误的问题,感谢 执佑i(49797056)。
2) 新增支持起始版本的战令收益计算,收益详见 【注意事项】第3条。
3) 新增计算数据存储(数据存储在本地浏览器中,清空浏览器缓存无法恢复),关闭页面/刷新页面等操作将会自动存储。
4) 新增位于计算结果标题栏的恢复和重置按键,不小心点到 【重置】 可以点击 【恢复】 还原数据,注意清空浏览器缓存后数据无法恢复。

版本列表(开始日期)

<tbody id="verRoot"> </tbody>

<script> (window.RLQ = window.RLQ || []).push(['jquery', () => {

let $ = el => document.querySelector(el); let $$ = els => document.querySelectorAll(els);

let storage = { data: {}, find: () => { return window.localStorage.getItem('data') ? true : false; }, get: () => { this.data = JSON.parse(window.localStorage.getItem('data')); $('#date_start').value = this.data.start; $('#date_end').value = this.data.end; $('#checkbox_startDay').checked = this.data.startDay; $('#checkbox_endDay').checked = this.data.endDay; $('#checkbox_startWeek').checked = this.data.startWeek; $('#checkbox_endWeek').checked = this.data.endWeek; $('#select_painCage').value = this.data.painCage; $('#select_norman').value = this.data.norman; $('#select_battles').value = this.data.battlesMap; $('#checkbox_unstable').checked = this.data.unstable; $('#checkbox_oneClick').checked = this.data.click; $('#checkbox_month30').checked = this.data.m30; $('#checkbox_month68').checked = this.data.m68; $('#checkbox_month128').checked = this.data.m128; $('#checkbox_manual').checked = this.data.manual; $('#origin_card').value = this.data.origin_card; $('#diy_card').value = this.data.diy_card; $('#origin_ticket').value = this.data.origin_ticket; $('#diy_ticket').value = this.data.diy_ticket; $('#showVersion').innerText = this.data.showVersion;

onInput(); }, set: () => { this.data = { start: $('#date_start').value, end: $('#date_end').value, startDay: $('#checkbox_startDay').checked, endDay: $('#checkbox_endDay').checked, startWeek: $('#checkbox_startWeek').checked, endWeek: $('#checkbox_endWeek').checked, painCage: $('#select_painCage').value, norman: $('#select_norman').value, battlesMap: $('#select_battles').value, unstable: $('#checkbox_unstable').checked, click: $('#checkbox_oneClick').checked, m30: $('#checkbox_month30').checked, m68: $('#checkbox_month68').checked, m128: $('#checkbox_month128').checked, manual: $('#checkbox_manual').checked, origin_card: $('#origin_card').value, diy_card: $('#diy_card').value, origin_ticket: $('#origin_ticket').value, diy_ticket: $('#diy_ticket').value, showVersion: $('#showVersion').innerText, };

window.localStorage.setItem('data', JSON.stringify(this.data)); }, };

window.onbeforeunload = function (e) { storage.set(); };

function showUpLink() { $('.user-follow-wrap .detail-des .des-name').onclick = () => { window.open('//space.bilibili.com/429681046/'); }; }

function showVer() { versionArray.forEach(el => { if (el.name == '未知版本') { return; } let tr = document.createElement('tr'), td_name = document.createElement('td'), td_date = document.createElement('td'); td_name.innerText = el.name; td_date.innerText = el.date; tr.appendChild(td_name); tr.appendChild(td_date); $('#verRoot').appendChild(tr); }); }

function format(date) { let year = date.getFullYear(); // 返回的是年份 let month = date.getMonth() + 1; // 返回的月份上个月的月份,记得+1才是当月 let dates = date.getDate(); if (month < 10) month = '0' + month; if (dates < 10) dates = '0' + dates; let time = year + '-' + month + '-' + dates; return time; } function dateAdd(date, d) { return format(new Date(date.setDate(date.getDate() + d))); }

init(); function init() { showVer(); // 数组里的最后日期 let maxDate = new Date(versionArray[versionArray.length - 1].date); // 该版本结束(最后日期 + 28天) $('#date_end').max = dateAdd(maxDate, 28);

const currentSubzone = clacCurrentBattlesMap(); $('#subzone').innerText = currentSubzone.name;

reset();

if (storage.find()) { storage.get(); } }

function reset() { $('#date_start').value = ; $('#date_end').value = ; $('#checkbox_startDay').checked = true; $('#checkbox_endDay').checked = true; $('#checkbox_startWeek').checked = true; $('#checkbox_endWeek').checked = true; $('#select_painCage').value = 0; $('#select_norman').value = 0; $('#select_battles').value = 0; $('#checkbox_unstable').checked = false; $('#checkbox_oneClick').checked = false; $('#checkbox_month30').checked = false; $('#checkbox_month68').checked = false; $('#checkbox_month128').checked = false; $('#checkbox_manual').checked = false;

$('#origin_card').value = 0; $('#diy_card').value = 0; $('#origin_ticket').value = 0; $('#diy_ticket').value = 0;

$('#text_dailyCard').innerText = 0; $('#text_weeklyCard').innerText = 0; $('#text_painCage').innerText = 0; $('#text_norman').innerText = 0; $('#text_unstable').innerText = 0; $('#text_battles').innerText = 0; $('#text_month30').innerText = 0; $('#text_month68Card').innerText = 0; $('#text_month68Ticket').innerText = 0; $('#text_month128Card').innerText = 0; $('#text_month128Ticket').innerText = 0; $('#text_manual').innerText = 0; $('#text_update').innerText = 0;

$('#increase_total').innerText = 0; $('#future_total').innerText = 0;

$('#increase_card').innerText = 0; $('#future_card').innerText = 0;

$('#increase_ticket').innerText = 0; $('#future_ticket').innerText = 0;

$('#showVersion').innerText = '▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇'; } function reload() { if (storage.find()) { storage.get(); } else { alert('缓存已被清除,无法恢复'); } } $('#reset').onclick = () => reset(); $('#reload').onclick = () => reload();

function onMouseEnter(el) { el.style.visibility = 'visible'; } function onMouseLeave(el) { el.style.visibility = 'hidden'; } // 鼠标悬浮事件 { $('#help_startDayCalc').onmouseenter = () => onMouseEnter($('#tip_startDayCalc')); $('#help_startDayCalc').onmouseleave = () => onMouseLeave($('#tip_startDayCalc'));

$('#help_endDayCalc').onmouseenter = () => onMouseEnter($('#tip_endDayCalc')); $('#help_endDayCalc').onmouseleave = () => onMouseLeave($('#tip_endDayCalc'));

$('#help_startWeekCalc').onmouseenter = () => onMouseEnter($('#tip_startWeekCalc')); $('#help_startWeekCalc').onmouseleave = () => onMouseLeave($('#tip_startWeekCalc'));

$('#help_endWeekCalc').onmouseenter = () => onMouseEnter($('#tip_endWeekCalc')); $('#help_endWeekCalc').onmouseleave = () => onMouseLeave($('#tip_endWeekCalc'));

$('#help_painCage').onmouseenter = () => onMouseEnter($('#tip_painCage')); $('#help_painCage').onmouseleave = () => onMouseLeave($('#tip_painCage'));

$('#help_norman').onmouseenter = () => onMouseEnter($('#tip_norman')); $('#help_norman').onmouseleave = () => onMouseLeave($('#tip_norman'));

$('#help_manual').onmouseenter = () => onMouseEnter($('#tip_manual')); $('#help_manual').onmouseleave = () => onMouseLeave($('#tip_manual'));

$('#help_unstable').onmouseenter = () => onMouseEnter($('#tip_unstable')); $('#help_unstable').onmouseleave = () => onMouseLeave($('#tip_unstable'));

$('#help_month30').onmouseenter = () => onMouseEnter($('#tip_month30')); $('#help_month30').onmouseleave = () => onMouseLeave($('#tip_month30'));

$('#help_month68').onmouseenter = () => onMouseEnter($('#tip_month68')); $('#help_month68').onmouseleave = () => onMouseLeave($('#tip_month68'));

$('#help_month128').onmouseenter = () => onMouseEnter($('#tip_month128')); $('#help_month128').onmouseleave = () => onMouseLeave($('#tip_month128'));

$('#help_diyCard').onmouseenter = () => onMouseEnter($('#tip_diyCard')); $('#help_diyCard').onmouseleave = () => onMouseLeave($('#tip_diyCard'));

$('#help_diyTicket').onmouseenter = () => onMouseEnter($('#tip_diyTicket')); $('#help_diyTicket').onmouseleave = () => onMouseLeave($('#tip_diyTicket'));

$('#help_oneClick').onmouseenter = () => onMouseEnter($('#tip_oneClick')); $('#help_oneClick').onmouseleave = () => onMouseLeave($('#tip_oneClick'));

$('#help_battles').onmouseenter = () => onMouseEnter($('#tip_battles')); $('#help_battles').onmouseleave = () => onMouseLeave($('#tip_battles')); }

function onInput() { const s = new Date($('#date_start').value), e = new Date($('#date_end').value);

// 日期校验 if (!$('#date_start').value || !$('#date_end').value) { return; }

if (e < s) { alert('好像截至日期比起始日期早'); $('#date_start').value = null; $('#date_end').value = null; }

// 天数差和周数差 const c_sd = $('#checkbox_startDay').checked, c_ed = $('#checkbox_endDay').checked, c_sw = $('#checkbox_startWeek').checked, c_ew = $('#checkbox_endWeek').checked; const { day, week, monthR30, dayR30 } = dateDiff(s, e, c_sd, c_ed, c_sw, c_ew); // 版本计数 const arr = versionDiff(s, e, versionArray);

if (day == null || week == null || monthR30 == null || dayR30 == null) { console.log('日期计算异常', day, week); $('#date_start').value = null; $('#date_end').value = null; init(); return; } // 日常 const d_card = daily(day); $('#text_dailyCard').innerText = d_card;

// 周常 const w_card = weekly(week); $('#text_weeklyCard').innerText = w_card;

// 幻痛囚笼收入 const pc_card = painCage(week, $('#select_painCage').value); $('#text_painCage').innerText = pc_card;

// 诺曼复兴战收入 const nr_card = normanRevival(week, $('#select_norman').value); $('#text_norman').innerText = nr_card;

// 历战映射 const battlesMap_ticket = battlesMap(s, e, $('#select_battles').value); $('#text_battles').innerText = battlesMap_ticket;

// 30月卡 const month30_card = month30(day, $('#checkbox_month30').checked); $('#text_month30').innerText = month30_card; // 68月卡 const { card: month68_card, ticket: month68_ticket } = month68(monthR30, dayR30, $('#checkbox_month68').checked); $('#text_month68Card').innerText = month68_card; $('#text_month68Ticket').innerText = month68_ticket;

const month128_card = month128(monthR30, dayR30, $('#checkbox_month128').checked); $('#text_month128Card').innerText = month128_card;

// 不稳定收入 const unstable_ticket = unstable($('#checkbox_unstable').checked, arr.length - 1); $('#text_unstable').innerText = unstable_ticket;

// 版本更新收入 const update_card = update(arr.length - 1); $('#text_update').innerText = update_card;

const manual_ticket = manual($('#checkbox_manual').checked, arr, s, e); $('#text_manual').innerText = manual_ticket;

const origin_card = $('#origin_card').value; const diy_card = $('#diy_card').value; const origin_ticket = $('#origin_ticket').value; const diy_ticket = $('#diy_ticket').value;

const increase_card = sum({ d_card, w_card, pc_card, nr_card, month30_card, month68_card, update_card }); $('#increase_card').innerText = '+' + increase_card; const future_card = increase_card + parseInt(origin_card) + parseInt(diy_card); $('#future_card').innerText = future_card;

const increase_ticket = sum({ month68_ticket, month128_card, manual_ticket, unstable_ticket, battlesMap_ticket }); $('#increase_ticket').innerText = '+' + increase_ticket; const future_ticket = increase_ticket + parseInt(origin_ticket) + parseInt(diy_ticket); $('#future_ticket').innerText = future_ticket;

$('#increase_total').innerText = '+' + (increase_card + increase_ticket); $('#future_total').innerText = future_card + future_ticket; } // Input事件 { $('#date_start').onchange = () => onInput(); $('#date_end').onchange = () => onInput();

$('#origin_card').onchange = () => onInput(); $('#diy_card').onchange = () => onInput(); $('#origin_ticket').onchange = () => onInput(); $('#diy_ticket').onchange = () => onInput();

$('#checkbox_startDay').oninput = () => onInput(); $('#checkbox_endDay').oninput = () => onInput(); $('#checkbox_startWeek').oninput = () => onInput(); $('#checkbox_endWeek').oninput = () => onInput(); $('#select_painCage').oninput = () => onInput(); $('#select_norman').oninput = () => onInput(); $('#select_battles').oninput = () => onInput(); $('#checkbox_unstable').oninput = () => onInput(); $('#checkbox_month30').oninput = $event => { checkOnClick($event); onInput(); }; $('#checkbox_month68').oninput = $event => { checkOnClick($event); onInput(); }; $('#checkbox_month128').oninput = $event => { checkOnClick($event); onInput(); }; $('#checkbox_manual').oninput = $event => { checkOnClick($event); onInput(); }; $('#checkbox_oneClick').oninput = $event => { $('#checkbox_month30').checked = $event.target.checked; $('#checkbox_month68').checked = $event.target.checked; $('#checkbox_month128').checked = $event.target.checked; $('#checkbox_manual').checked = $event.target.checked; onInput(); }; }

// 一键操作影响 function checkOnClick(e) { if (!e.target.checked) $('#checkbox_oneClick').checked = false; if ( $('#checkbox_month30').checked && $('#checkbox_month68').checked && $('#checkbox_month128').checked && $('#checkbox_manual').checked ) { $('#checkbox_oneClick').checked = true; } }

function dateDiff(start, end, startDay, endDay, startWeek, endWeek) { start = new Date(start); end = new Date(end); let day = null, week = null, monthR30 = null, dayR30 = null; if (end >= start) { monthR30 = end.getMonth() - start.getMonth(); if (monthR30 < 0) { monthR30 += 12 * (end.getFullYear() - start.getFullYear()); }

day = parseInt(Math.abs(end - start) / 1000 / 60 / 60 / 24) + 1; const endDay = end.getDay() == 0 ? 7 : end.getDay(); week = parseInt((day - (7 - start.getDay()) - endDay) / 7);

const start_dayR30 = 30 - start.getDate() + 1; const end_dayR30 = end.getDate() > 30 ? 30 : end.getDate(); const mid_dayR30 = monthR30 * 30;

if (monthR30 == 0) { dayR30 = end.getDate() - start.getDate(); } else if (monthR30 < 2) { dayR30 = start_dayR30 + end_dayR30; } else if (monthR30 > 1) { dayR30 = start_dayR30 + end_dayR30 + mid_dayR30; }

if (start.getDate() == 1) { monthR30++; } if (day <= 7) { week = 0; if (startWeek || endWeek) { week++; } } else { if (startWeek) { week++; } if (endWeek) { week++; } }

if (!startDay && day > 0) { day--; } if (!endDay && day > 0) { day--; } } return { day, week, monthR30, dayR30 }; }

function versionDiff(start, end, array) { let vaildArray = [], startVersion = {}; array.forEach(element => { let cur_date = element.date; if (start >= new Date(cur_date)) { startVersion = element; } if (Date.parse(new Date(cur_date)) && start < new Date(cur_date) && end >= new Date(cur_date)) { vaildArray.push(element); } });

if (vaildArray.length < 1) { $('#showVersion').innerText = startVersion.name + ' 版本内累计收益'; } else { $('#showVersion').innerText = startVersion.name + ' 到 ' + vaildArray[vaildArray.length - 1].name + ' 累计收益'; }

res = [startVersion, ...vaildArray];

return res; } // 计算日常 function daily(day) { let total = 0; total = 30 * day; return total; } // 计算周常 function weekly(week) { let total = 0; total = 1000 * week; return total; } // 计算幻痛囚笼 function painCage(week, option) { let card = week * parseInt(option); return card; } // 计算矿区 function normanRevival(week, option) { let card = week * parseInt(option); return card; } // 计算30月卡 function month30(day, check) { const base = 300, increase = 100, month = parseInt(day / 30) + 1; let total = 0;

if (check) { total = base * month + day * increase; } return total; } // 计算68月卡 function month68(monthR30, dayR30, check) { const base = 680, increase = 50; let card = 0, ticket = 0; if (check) { card = base * monthR30; ticket = dayR30 * increase; } return { card, ticket, }; } // 计算128月卡 function month128(monthR30, dayR30, check) { const base = 1280; let card = 0; if (check) { card = base * monthR30; } return card; } // 计算不稳定收入 function unstable(option, count) { let base = 900, total = 0; if (option) { total = base * count; } return total; } // 计算版本更新收入 function update(count) { let base = 1340, total = 0; total = base * count; return total; }

function manual(check, arr, s, e) { // 战令立即购买 1000活动券, 20级500, 30级500, 40级武器涂装, 50级500 let base = 1000, count = 0, total = 0, versionLength = arr.length;

if (check) { arr.forEach((item, index) => { if (index == 0 && new Date(item.date) - s < 0) { versionLength--; } if (s <= new Date(dateAdd(new Date(item.date), 10)) && new Date(dateAdd(new Date(item.date), 10)) <= e) { console.log(format(new Date(dateAdd(new Date(item.date), 10)))); console.log(format(new Date(e))); count++; } if (s <= new Date(dateAdd(new Date(item.date), 17)) && new Date(dateAdd(new Date(item.date), 17)) <= e) { console.log(format(new Date(dateAdd(new Date(item.date), 17)))); console.log(format(new Date(e))); count++; } if (s <= new Date(dateAdd(new Date(item.date), 24)) && new Date(dateAdd(new Date(item.date), 24)) <= e) { console.log(format(new Date(dateAdd(new Date(item.date), 24)))); console.log(format(new Date(e))); count++; } });

total = versionLength * base + count * 500; } return total; } // 计算历战映射(悖论,异相,裂变) function battlesMap(start, end, option) { const startDate = start; const endDate = end;

let count = 0;

const currentDate = new Date(startDate), restartDate = new Date(startDate); while (restartDate <= endDate) { if (restartDate.getDay() == 4) { count++; } restartDate.setDate(restartDate.getDate() + 1); // currentDate.setDate(currentDate.getDate() + 14); if ( endDate > restartDate && endDate.getDay() == 4 && endDate.getHours < 10 ) { count--; } }

return (option / 2) * count; }

const paradox = new Date('2023-06-08 10:00:00'); // 悖论(14莉莉丝) const outPhase = new Date('2023-06-22 10:00:00'); // 异相(14巫毒) const fission = new Date('2023-07-06 10:00:00'); // 裂变(14异种)) const pseudo = new Date('2023-08-31 10:00:00'); // 伪逆(14光辉) function clacCurrentBattlesMap() { const subzoneArr = [ { name: '伪逆分区(光辉)' }, { name: '悖论分区(莉莉丝)' }, // { name: '异相分区(巫毒)' }, { name: '裂变分区(异种)' }, ]; const date1OnlyDate = new Date('2023', '05', '08', '10', '00', '00'), date2OnlyDate = new Date( new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), new Date().getHours(), new Date().getMinutes(), new Date().getSeconds() );

const diffInMilliseconds = Math.abs(date2OnlyDate - date1OnlyDate);

const diffInDays = Math.ceil(diffInMilliseconds / (1000 * 60 * 60 * 24));

console.log(diffInDays);

let index = (Math.ceil(diffInDays / 14) % 3) - 1;

if (index > 2) { index = 0; } else if (index < 0) { index = 2; }

return subzoneArr[index]; }

function sum(obj) { let sum = 0; sum = Object.values(obj).reduce((pre, curr) => pre + curr); return sum; } }]); </script>