用AI生成些游戏小工具玩玩。
场景应用
天龙八部玩法多种多样,卡级也是,卡90级,卡102级等还是比较多,玩家想知道具体要多少经验和金钱。
89↑90级,需6本心法都80级,需经验:105,696,765;需金钱:2062金 85银 63铜。约么:1.6亿经验,2.1千金
89↑100级,需6本心法都90级,需经验:280,840,148;需金钱:1533金 18银 85铜。约么:2.8亿经验,1.6千金
工具生成
- 搜索数据
升90心法所需经验及金钱汇总,将需要的那部分表格数据截图下来,长截图小技巧,用chrome浏览器自带的长截图功能(F12开启控制台,按Ctrl+Shif+P,输入full,选Capture full size screenshot),当然你也可以去安装个带网页长截图功能的插件或工具啥的。
levelMoney.png - AI提示语
生成心法消耗计算器:
1、读取图片的内容,转换data.json数据
2、根据生成的json数据,写一个自动计算达到对应等级所需的消耗经验值和金钱的工具:可输入或选择开始等级,截止等级;可输入或选择第一本到第六本心法,可多选可单选;金钱换算比例:1金=100银,1银=100铜;
结果截图:

leveMoney2.png
生成的页面源码:xinfa_calc.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>天龙八部心法消耗计算器</title>
<style>
:root {
--primary: #4f46e5;
--primary-hover: #4338ca;
--bg-grad: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
}
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
background-image: var(--bg-grad);
color: #1f2937;
margin: 0;
padding: 20px;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
.container {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(12px);
padding: 40px;
border-radius: 24px;
box-shadow: 0 20px 40px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.05);
width: 100%;
max-width: 520px;
transition: transform 0.3s ease;
border: 1px solid rgba(255,255,255,0.6);
}
h1 {
text-align: center;
color: #111827;
margin-bottom: 32px;
font-weight: 800;
font-size: 28px;
letter-spacing: -0.02em;
background: linear-gradient(to right, #4f46e5, #9333ea);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
position: relative;
}
.form-group { margin-bottom: 24px; }
label {
display: block;
margin-bottom: 8px;
font-size: 13px;
font-weight: 700;
color: #4b5563;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.input-row { display: flex; gap: 16px; align-items: flex-end; }
.input-wrapper { flex: 1; }
input[type="number"] {
width: 100%;
padding: 14px 16px;
border: 2px solid #e5e7eb;
border-radius: 12px;
font-size: 18px;
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
background: #f9fafb;
color: #111827;
box-sizing: border-box;
font-weight: 600;
font-family: inherit;
}
input[type="number"]:focus {
border-color: var(--primary);
background: #fff;
outline: none;
box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.1);
}
.arrow-icon {
color: #9ca3af;
font-size: 24px;
padding-bottom: 12px;
font-family: sans-serif;
font-weight: 300;
}
.checkbox-group { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.checkbox-item {
position: relative;
display: flex; align-items: center; justify-content: center;
padding: 14px; border-radius: 12px;
border: 2px solid #e5e7eb; cursor: pointer;
transition: all 0.2s; font-weight: 600; color: #6b7280; font-size: 14px;
user-select: none;
background: #fff;
}
.checkbox-item:hover { border-color: #d1d5db; background: #f9fafb; transform: translateY(-1px); }
.checkbox-item.checked {
background: #eef2ff;
border-color: var(--primary);
color: var(--primary);
box-shadow: 0 4px 6px -1px rgba(79, 70, 229, 0.1);
}
.checkbox-item input { display: none; }
.btn {
width: 100%; padding: 18px;
background: linear-gradient(135deg, var(--primary) 0%, #7c3aed 100%);
color: white; border: none; border-radius: 14px;
font-size: 16px; font-weight: 700; letter-spacing: 0.02em;
cursor: pointer; transition: all 0.3s; margin-top: 16px;
box-shadow: 0 10px 15px -3px rgba(79, 70, 229, 0.3);
position: relative; overflow: hidden;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 20px 25px -5px rgba(79, 70, 229, 0.4); }
.btn:active { transform: scale(0.98); }
.error-msg {
color: #ef4444;
font-size: 13px; margin-top: 12px;
min-height: 20px; text-align: center;
font-weight: 600; opacity: 0; transition: opacity 0.3s;
}
.error-msg.visible { opacity: 1; }
.result-card {
margin-top: 10px; background: #fff;
border-radius: 16px; padding: 24px;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05);
border: 1px solid #f3f4f6;
display: none;
animation: popIn 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes popIn {
from { opacity: 0; transform: scale(0.95) translateY(10px); }
to { opacity: 1; transform: scale(1) translateY(0); }
}
.result-item { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px dashed #e5e7eb; }
.result-item:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
.result-label { color: #6b7280; font-size: 14px; font-weight: 600; margin-top: 4px; }
.result-value { font-weight: 800; color: #111827; font-size: 22px; font-family: 'JetBrains Mono', Consolas, monospace; letter-spacing: -0.05em; }
.money-text {
background: linear-gradient(to right, #d97706, #b45309);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.helper-text { font-size: 12px; color: #9ca3af; text-align: center; margin-top: 30px; font-weight: 500;}
</style>
</head>
<body>
<div class="container">
<h1>心法消耗计算器</h1>
<div class="form-group">
<div class="input-row">
<div class="input-wrapper">
<label>起始等级</label>
<input type="number" id="startLevel" value="10" min="10" max="118">
</div>
<div class="arrow-icon">→</div>
<div class="input-wrapper">
<label>目标等级</label>
<input type="number" id="endLevel" value="80" min="11" max="119">
</div>
</div>
</div>
<div class="form-group">
<label>选择修炼心法</label>
<div class="checkbox-group" id="xinfaGroup">
<!-- Generated by JS -->
</div>
</div>
<button class="btn" onclick="calculate()">计算消耗</button>
<div class="error-msg" id="errorMsg"></div>
<div class="result-card" id="resultCard">
<div class="result-item">
<span class="result-label">所需总经验</span>
<span class="result-value" id="resExp">0</span>
</div>
<div class="result-item">
<span class="result-label">所需总金钱</span>
<div style="text-align: right;">
<span class="result-value money-text" id="resMoney">0金 0银</span>
<div style="font-size:13px; color:#9ca3af; font-weight:500; margin-top:4px;">(共 <span id="resMoneyRaw">0</span> 铜)</div>
</div>
</div>
</div>
<div class="helper-text">数据来源:天龙八部经典版心法表</div>
</div>
<script>
// ---------------- DATA START ----------------
const RAW_DATA = [
{
"level": "10-11(称11)",
"xinfa_1": {
"money": "55铜",
"exp": "585"
},
"xinfa_236": {
"money": "3银08铜",
"exp": "1,755"
},
"xinfa_45": {
"money": "83铜",
"exp": "878"
}
},
{
"level": "12",
"xinfa_1": {
"money": "60铜",
"exp": "648"
},
"xinfa_236": {
"money": "3银36铜",
"exp": "1,944"
},
"xinfa_45": {
"money": "90铜",
"exp": "972"
}
},
{
"level": "13",
"xinfa_1": {
"money": "65铜",
"exp": "740"
},
"xinfa_236": {
"money": "3银64铜",
"exp": "2,219"
},
"xinfa_45": {
"money": "98铜",
"exp": "1,109"
}
},
{
"level": "14",
"xinfa_1": {
"money": "70铜",
"exp": "837"
},
"xinfa_236": {
"money": "3银92铜",
"exp": "2,511"
},
"xinfa_45": {
"money": "1银05铜",
"exp": "1,256"
}
},
{
"level": "15",
"xinfa_1": {
"money": "75铜",
"exp": "969"
},
"xinfa_236": {
"money": "4银20铜",
"exp": "2,907"
},
"xinfa_45": {
"money": "1银13铜",
"exp": "1,454"
}
},
{
"level": "16",
"xinfa_1": {
"money": "84铜",
"exp": "1,110"
},
"xinfa_236": {
"money": "4银70铜",
"exp": "3,330"
},
"xinfa_45": {
"money": "1银26铜",
"exp": "1,665"
}
},
{
"level": "17",
"xinfa_1": {
"money": "1银08铜",
"exp": "1,292"
},
"xinfa_236": {
"money": "6银02铜",
"exp": "3,875"
},
"xinfa_45": {
"money": "1银61铜",
"exp": "1,937"
}
},
{
"level": "18",
"xinfa_1": {
"money": "1银35铜",
"exp": "1,518"
},
"xinfa_236": {
"money": "7银56铜",
"exp": "4,554"
},
"xinfa_45": {
"money": "2银03铜",
"exp": "2,277"
}
},
{
"level": "19",
"xinfa_1": {
"money": "1银68铜",
"exp": "1,794"
},
"xinfa_236": {
"money": "9银40铜",
"exp": "5,382"
},
"xinfa_45": {
"money": "2银52铜",
"exp": "2,691"
}
},
{
"level": "20",
"xinfa_1": {
"money": "2银86铜",
"exp": "2,124"
},
"xinfa_236": {
"money": "16银02铜",
"exp": "6,372"
},
"xinfa_45": {
"money": "4银29铜",
"exp": "3,186"
}
},
{
"level": "21",
"xinfa_1": {
"money": "3银52铜",
"exp": "2,513"
},
"xinfa_236": {
"money": "19银70铜",
"exp": "7,538"
},
"xinfa_45": {
"money": "5银28铜",
"exp": "3,769"
}
},
{
"level": "22",
"xinfa_1": {
"money": "4银29铜",
"exp": "2,964"
},
"xinfa_236": {
"money": "24银03铜",
"exp": "8,892"
},
"xinfa_45": {
"money": "6银44铜",
"exp": "4,446"
}
},
{
"level": "23",
"xinfa_1": {
"money": "5银19铜",
"exp": "3,483"
},
"xinfa_236": {
"money": "29银07铜",
"exp": "10,449"
},
"xinfa_45": {
"money": "7银79铜",
"exp": "5,225"
}
},
{
"level": "24",
"xinfa_1": {
"money": "6银24铜",
"exp": "4,074"
},
"xinfa_236": {
"money": "34银92铜",
"exp": "12,222"
},
"xinfa_45": {
"money": "9银36铜",
"exp": "6,111"
}
},
{
"level": "25",
"xinfa_1": {
"money": "7银44铜",
"exp": "4,785"
},
"xinfa_236": {
"money": "41银66铜",
"exp": "14,355"
},
"xinfa_45": {
"money": "11银16铜",
"exp": "7,178"
}
},
{
"level": "26",
"xinfa_1": {
"money": "8银81铜",
"exp": "5,625"
},
"xinfa_236": {
"money": "49银34铜",
"exp": "16,875"
},
"xinfa_45": {
"money": "13银22铜",
"exp": "8,438"
}
},
{
"level": "27",
"xinfa_1": {
"money": "10银38铜",
"exp": "6,557"
},
"xinfa_236": {
"money": "58银10铜",
"exp": "19,670"
},
"xinfa_45": {
"money": "15银56铜",
"exp": "9,835"
}
},
{
"level": "28",
"xinfa_1": {
"money": "12银14铜",
"exp": "7,584"
},
"xinfa_236": {
"money": "67银96铜",
"exp": "22,752"
},
"xinfa_45": {
"money": "18银21铜",
"exp": "11,376"
}
},
{
"level": "29",
"xinfa_1": {
"money": "14银13铜",
"exp": "8,712"
},
"xinfa_236": {
"money": "79银11铜",
"exp": "26,136"
},
"xinfa_45": {
"money": "21银19铜",
"exp": "13,068"
}
},
{
"level": "30",
"xinfa_1": {
"money": "15银13铜",
"exp": "10,302"
},
"xinfa_236": {
"money": "84银71铜",
"exp": "30,906"
},
"xinfa_45": {
"money": "22银69铜",
"exp": "15,453"
}
},
{
"level": "31",
"xinfa_1": {
"money": "16银85铜",
"exp": "12,023"
},
"xinfa_236": {
"money": "94银36铜",
"exp": "36,068"
},
"xinfa_45": {
"money": "25银27铜",
"exp": "18,043"
}
},
{
"level": "32",
"xinfa_1": {
"money": "18银71铜",
"exp": "13,878"
},
"xinfa_236": {
"money": "1金04银78铜",
"exp": "41,634"
},
"xinfa_45": {
"money": "28银07铜",
"exp": "20,817"
}
},
{
"level": "33",
"xinfa_1": {
"money": "20银73铜",
"exp": "15,873"
},
"xinfa_236": {
"money": "1金16银07铜",
"exp": "47,619"
},
"xinfa_45": {
"money": "31银09铜",
"exp": "23,810"
}
},
{
"level": "34",
"xinfa_1": {
"money": "22银90铜",
"exp": "18,012"
},
"xinfa_236": {
"money": "1金28银24铜",
"exp": "54,036"
},
"xinfa_45": {
"money": "34银35铜",
"exp": "27,018"
}
},
{
"level": "35",
"xinfa_1": {
"money": "25银24铜",
"exp": "20,300"
},
"xinfa_236": {
"money": "1金41银35铜",
"exp": "60,899"
},
"xinfa_45": {
"money": "37银86铜",
"exp": "30,449"
}
},
{
"level": "36",
"xinfa_1": {
"money": "27银76铜",
"exp": "22,740"
},
"xinfa_236": {
"money": "1金55银43铜",
"exp": "68,220"
},
"xinfa_45": {
"money": "61银63铜",
"exp": "34,110"
}
},
{
"level": "37",
"xinfa_1": {
"money": "30银45铜",
"exp": "25,338"
},
"xinfa_236": {
"money": "1金70银53铜",
"exp": "76,014"
},
"xinfa_45": {
"money": "45银68铜",
"exp": "38,007"
}
},
{
"level": "38",
"xinfa_1": {
"money": "33银34铜",
"exp": "28,098"
},
"xinfa_236": {
"money": "1金86银70铜",
"exp": "84,294"
},
"xinfa_45": {
"money": "50银01铜",
"exp": "42,147"
}
},
{
"level": "39",
"xinfa_1": {
"money": "36银43铜",
"exp": "31,025"
},
"xinfa_236": {
"money": "2金04银00铜",
"exp": "93,074"
},
"xinfa_45": {
"money": "54银64铜",
"exp": "46,537"
}
},
{
"level": "40",
"xinfa_1": {
"money": "39银73铜",
"exp": "34,155"
},
"xinfa_236": {
"money": "2金22银47铜",
"exp": "102,465"
},
"xinfa_45": {
"money": "59银59铜",
"exp": "51,233"
}
},
{
"level": "41",
"xinfa_1": {
"money": "54银05铜",
"exp": "37,497"
},
"xinfa_236": {
"money": "3金02银70铜",
"exp": "112,490"
},
"xinfa_45": {
"money": "81银08铜",
"exp": "56,245"
}
},
{
"level": "42",
"xinfa_1": {
"money": "58银73铜",
"exp": "41,055"
},
"xinfa_236": {
"money": "3金28银89铜",
"exp": "123,165"
},
"xinfa_45": {
"money": "88银10铜",
"exp": "61,583"
}
},
{
"level": "43",
"xinfa_1": {
"money": "63银71铜",
"exp": "44,838"
},
"xinfa_236": {
"money": "3金56银78铜",
"exp": "134,514"
},
"xinfa_45": {
"money": "95银57铜",
"exp": "67,257"
}
},
{
"level": "44",
"xinfa_1": {
"money": "68银99铜",
"exp": "48,852"
},
"xinfa_236": {
"money": "3金86银36铜",
"exp": "146,556"
},
"xinfa_45": {
"money": "1金03银49铜",
"exp": "73,278"
}
},
{
"level": "45",
"xinfa_1": {
"money": "74银60铜",
"exp": "53,104"
},
"xinfa_236": {
"money": "4金17银74铜",
"exp": "159,312"
},
"xinfa_45": {
"money": "1金11银89铜",
"exp": "79,656"
}
},
{
"level": "46",
"xinfa_1": {
"money": "80银54铜",
"exp": "57,600"
},
"xinfa_236": {
"money": "4金51银00铜",
"exp": "172,800"
},
"xinfa_45": {
"money": "1金20银80铜",
"exp": "86,400"
}
},
{
"level": "47",
"xinfa_1": {
"money": "86银82铜",
"exp": "62,348"
},
"xinfa_236": {
"money": "4金86银20铜",
"exp": "187,043"
},
"xinfa_45": {
"money": "1金30银23铜",
"exp": "93,521"
}
},
{
"level": "48",
"xinfa_1": {
"money": "93银47铜",
"exp": "67,353"
},
"xinfa_236": {
"money": "5金23银40铜",
"exp": "202,059"
},
"xinfa_45": {
"money": "1金40银20铜",
"exp": "101,030"
}
},
{
"level": "49",
"xinfa_1": {
"money": "1金00银48铜",
"exp": "72,624"
},
"xinfa_236": {
"money": "5金62银68铜",
"exp": "217,871"
},
"xinfa_45": {
"money": "1金50银72铜",
"exp": "108,935"
}
},
{
"level": "50",
"xinfa_1": {
"money": "1金13银75铜",
"exp": "78,165"
},
"xinfa_236": {
"money": "6金36银97铜",
"exp": "234,495"
},
"xinfa_45": {
"money": "1金70银62铜",
"exp": "117,248"
}
},
{
"level": "51",
"xinfa_1": {
"money": "1金16银60铜",
"exp": "83,985"
},
"xinfa_236": {
"money": "6金52银94铜",
"exp": "251,955"
},
"xinfa_45": {
"money": "1金74银90铜",
"exp": "125,978"
}
},
{
"level": "52",
"xinfa_1": {
"money": "1金22银78铜",
"exp": "90,090"
},
"xinfa_236": {
"money": "6金87银57铜",
"exp": "270,270"
},
"xinfa_45": {
"money": "1金84银17铜",
"exp": "135,135"
}
},
{
"level": "53",
"xinfa_1": {
"money": "1金29银80铜",
"exp": "96,487"
},
"xinfa_236": {
"money": "7金26银85铜",
"exp": "289,461"
},
"xinfa_45": {
"money": "1金94银69铜",
"exp": "144,731"
}
},
{
"level": "54",
"xinfa_1": {
"money": "1金40银00铜",
"exp": "103,182"
},
"xinfa_236": {
"money": "7金84银00铜",
"exp": "309,546"
},
"xinfa_45": {
"money": "2金10银00铜",
"exp": "154,773"
}
},
{
"level": "55",
"xinfa_1": {
"money": "1金46银32铜",
"exp": "110,183"
},
"xinfa_236": {
"money": "8金19银37铜",
"exp": "330,548"
},
"xinfa_45": {
"money": "2金19银48铜",
"exp": "165,274"
}
},
{
"level": "56",
"xinfa_1": {
"money": "1金53银32铜",
"exp": "117,495"
},
"xinfa_236": {
"money": "8金58银61铜",
"exp": "352,485"
},
"xinfa_45": {
"money": "2金29银99铜",
"exp": "176,243"
}
},
{
"level": "57",
"xinfa_1": {
"money": "1金61银16铜",
"exp": "125,127"
},
"xinfa_236": {
"money": "9金02银49铜",
"exp": "375,380"
},
"xinfa_45": {
"money": "2金41银74铜",
"exp": "187,690"
}
},
{
"level": "58",
"xinfa_1": {
"money": "1金69银83铜",
"exp": "133,083"
},
"xinfa_236": {
"money": "9金51银03铜",
"exp": "399,249"
},
"xinfa_45": {
"money": "2金54银74铜",
"exp": "199,625"
}
},
{
"level": "59",
"xinfa_1": {
"money": "1金79银33铜",
"exp": "141,372"
},
"xinfa_236": {
"money": "10金04银22铜",
"exp": "424,116"
},
"xinfa_45": {
"money": "2金68银99铜",
"exp": "212,058"
}
},
{
"level": "60",
"xinfa_1": {
"money": "1金89银66铜",
"exp": "150,000"
},
"xinfa_236": {
"money": "10金62银06铜",
"exp": "450,000"
},
"xinfa_45": {
"money": "2金84银48铜",
"exp": "225,000"
}
},
{
"level": "61",
"xinfa_1": {
"money": "2金00银81铜",
"exp": "158,974"
},
"xinfa_236": {
"money": "11金24银56铜",
"exp": "476,922"
},
"xinfa_45": {
"money": "3金01银22铜",
"exp": "238,461"
}
},
{
"level": "62",
"xinfa_1": {
"money": "2金12银80铜",
"exp": "168,300"
},
"xinfa_236": {
"money": "11金91银70铜",
"exp": "504,900"
},
"xinfa_45": {
"money": "3金19银21铜",
"exp": "252,450"
}
},
{
"level": "63",
"xinfa_1": {
"money": "2金25银63铜",
"exp": "177,968"
},
"xinfa_236": {
"money": "12金63银50铜",
"exp": "533,957"
},
"xinfa_45": {
"money": "3金38银44铜",
"exp": "266,978"
}
},
{
"level": "64",
"xinfa_1": {
"money": "2金39银28铜",
"exp": "188,037"
},
"xinfa_236": {
"money": "13金39银94铜",
"exp": "564,111"
},
"xinfa_45": {
"money": "3金58银91铜",
"exp": "282,056"
}
},
{
"level": "65",
"xinfa_1": {
"money": "2金53银76铜",
"exp": "198,462"
},
"xinfa_236": {
"money": "14金21银04铜",
"exp": "595,385"
},
"xinfa_45": {
"money": "3金80银64铜",
"exp": "297,692"
}
},
{
"level": "66",
"xinfa_1": {
"money": "2金69银07铜",
"exp": "209,738"
},
"xinfa_236": {
"money": "15金06银79铜",
"exp": "629,213"
},
"xinfa_45": {
"money": "4金03银61铜",
"exp": "314,606"
}
},
{
"level": "67",
"xinfa_1": {
"money": "2金85银21铜",
"exp": "222,319"
},
"xinfa_236": {
"money": "15金97银20铜",
"exp": "666,957"
},
"xinfa_45": {
"money": "4金27银82铜",
"exp": "333,479"
}
},
{
"level": "68",
"xinfa_1": {
"money": "3金02银19铜",
"exp": "236,250"
},
"xinfa_236": {
"money": "16金92银25铜",
"exp": "708,750"
},
"xinfa_45": {
"money": "4金53银28铜",
"exp": "354,375"
}
},
{
"level": "69",
"xinfa_1": {
"money": "3金19银99铜",
"exp": "251,577"
},
"xinfa_236": {
"money": "17金91银96铜",
"exp": "754,730"
},
"xinfa_45": {
"money": "4金79银99铜",
"exp": "377,365"
}
},
{
"level": "70",
"xinfa_1": {
"money": "3金38银63铜",
"exp": "268,343"
},
"xinfa_236": {
"money": "18金96银31铜",
"exp": "805,028"
},
"xinfa_45": {
"money": "5金07银94铜",
"exp": "402,514"
}
},
{
"level": "71",
"xinfa_1": {
"money": "3金58银09铜",
"exp": "286,594"
},
"xinfa_236": {
"money": "20金05银32铜",
"exp": "859,782"
},
"xinfa_45": {
"money": "5金37银14铜",
"exp": "429,891"
}
},
{
"level": "72",
"xinfa_1": {
"money": "3金78银39铜",
"exp": "306,375"
},
"xinfa_236": {
"money": "21金18银98铜",
"exp": "919,125"
},
"xinfa_45": {
"money": "5金67银59铜",
"exp": "459,536"
}
},
{
"level": "73",
"xinfa_1": {
"money": "3金99银52铜",
"exp": "327,732"
},
"xinfa_236": {
"money": "22金37银29铜",
"exp": "983,195"
},
"xinfa_45": {
"money": "5金99银28铜",
"exp": "571,597"
}
},
{
"level": "74",
"xinfa_1": {
"money": "4金21银47铜",
"exp": "350,708"
},
"xinfa_236": {
"money": "23金60银25铜",
"exp": "1,052,123"
},
"xinfa_45": {
"money": "6金32银21铜",
"exp": "526,061"
}
},
{
"level": "75",
"xinfa_1": {
"money": "4金44银26铜",
"exp": "376,534"
},
"xinfa_236": {
"money": "24金87银87铜",
"exp": "1,129,602"
},
"xinfa_45": {
"money": "6金66银39铜",
"exp": "564,801"
}
},
{
"level": "76",
"xinfa_1": {
"money": "4金67银88铜",
"exp": "405,300"
},
"xinfa_236": {
"money": "26金20银13铜",
"exp": "1,215,900"
},
"xinfa_45": {
"money": "7金01银82铜",
"exp": "607,950"
}
},
{
"level": "77",
"xinfa_1": {
"money": "4金92银33铜",
"exp": "437,097"
},
"xinfa_236": {
"money": "27金57银05铜",
"exp": "1,311,290"
},
"xinfa_45": {
"money": "7金38银50铜",
"exp": "655,645"
}
},
{
"level": "78",
"xinfa_1": {
"money": "5金17银61铜",
"exp": "472,013"
},
"xinfa_236": {
"money": "28金98银62铜",
"exp": "1,416,038"
},
"xinfa_45": {
"money": "7金76银42铜",
"exp": "708,019"
}
},
{
"level": "79",
"xinfa_1": {
"money": "5金43银72铜",
"exp": "510,139"
},
"xinfa_236": {
"money": "30金44银84铜",
"exp": "1,530,417"
},
"xinfa_45": {
"money": "8金15银58铜",
"exp": "765,219"
}
},
{
"level": "80",
"xinfa_1": {
"money": "5金70银66铜",
"exp": "561,645"
},
"xinfa_236": {
"money": "31金95银71铜",
"exp": "1,684,935"
},
"xinfa_45": {
"money": "8金56银00铜",
"exp": "842,468"
}
},
{
"level": "81",
"xinfa_1": {
"money": "5金98银44铜",
"exp": "639,732"
},
"xinfa_236": {
"money": "33金51银24铜",
"exp": "1,919,195"
},
"xinfa_45": {
"money": "8金97银65铜",
"exp": "959,597"
}
},
{
"level": "82",
"xinfa_1": {
"money": "6金27银04铜",
"exp": "758,198"
},
"xinfa_236": {
"money": "35金11银41铜",
"exp": "2,274,593"
},
"xinfa_45": {
"money": "9金40银56铜",
"exp": "1,137,296"
}
},
{
"level": "83",
"xinfa_1": {
"money": "6金56银47铜",
"exp": "931,444"
},
"xinfa_236": {
"money": "36金76银24铜",
"exp": "2,794,332"
},
"xinfa_45": {
"money": "9金84银71铜",
"exp": "1,397,116"
}
},
{
"level": "84",
"xinfa_1": {
"money": "6金86银4铜",
"exp": "1,174,470"
},
"xinfa_236": {
"money": "38金45银72铜",
"exp": "3,523,410"
},
"xinfa_45": {
"money": "10金30银10铜",
"exp": "1,761,705"
}
},
{
"level": "85",
"xinfa_1": {
"money": "7金17银83铜",
"exp": "1,502,877"
},
"xinfa_236": {
"money": "40金19银85铜",
"exp": "4,508,630"
},
"xinfa_45": {
"money": "10金76银75铜",
"exp": "2,254,315"
}
},
{
"level": "86",
"xinfa_1": {
"money": "7金49银76铜",
"exp": "1,932,863"
},
"xinfa_236": {
"money": "41金98银63铜",
"exp": "5,798,588"
},
"xinfa_45": {
"money": "11金24银63铜",
"exp": "2,899,294"
}
},
{
"level": "87",
"xinfa_1": {
"money": "7金82银51铜",
"exp": "2,481,229"
},
"xinfa_236": {
"money": "43金82银06铜",
"exp": "7,443,687"
},
"xinfa_45": {
"money": "11金73银77铜",
"exp": "3,721,844"
}
},
{
"level": "88",
"xinfa_1": {
"money": "8金16银10铜",
"exp": "3,165,375"
},
"xinfa_236": {
"money": "45金70银14铜",
"exp": "9,496,125"
},
"xinfa_45": {
"money": "12金24银15铜",
"exp": "4,748,063"
}
},
{
"level": "89",
"xinfa_1": {
"money": "8金50银52铜",
"exp": "4,003,302"
},
"xinfa_236": {
"money": "47金62银88铜",
"exp": "12,009,905"
},
"xinfa_45": {
"money": "12金75银57铜",
"exp": "6,004,952"
}
},
{
"level": "90",
"xinfa_1": {
"money": "8金85银76铜",
"exp": "5,013,608"
},
"xinfa_236": {
"money": "49金60银27铜",
"exp": "15,040,823"
},
"xinfa_45": {
"money": "13金28银64铜",
"exp": "7,520,411"
}
}
];
// ---------------- DATA END ----------------
// Process Data
const DATA = RAW_DATA.map(item => {
// Fix RegExp issue logic in JS
const reg = new RegExp(/\d+/g);
const matches = item.level.match(reg);
const level = matches ? parseInt(matches[matches.length - 1]) : 0;
return { ...item, _level: level };
}).sort((a, b) => a._level - b._level);
function init() {
const group = document.getElementById('xinfaGroup');
for (let i = 1; i <= 6; i++) {
const div = document.createElement('div');
div.className = 'checkbox-item checked';
div.innerHTML = `
<span>第 ${i} 本</span>
<input type="checkbox" value="${i}" checked onchange="toggleCheckbox(this)">
`;
div.onclick = function(e) {
if (e.target.tagName !== 'INPUT') {
const cb = this.querySelector('input');
cb.checked = !cb.checked;
toggleCheckbox(cb);
}
};
group.appendChild(div);
}
}
function toggleCheckbox(el) {
const parent = el.parentElement;
if (el.checked) parent.classList.add('checked');
else parent.classList.remove('checked');
}
function parseMoneyToCopper(str) {
if (!str) return 0;
let copper = 0;
const goldMatch = str.match(/(\d+)金/);
const silverMatch = str.match(/(\d+)银/);
const copperMatch = str.match(/(\d+)铜/);
if (goldMatch) copper += parseInt(goldMatch[1]) * 10000;
if (silverMatch) copper += parseInt(silverMatch[1]) * 100;
if (copperMatch) copper += parseInt(copperMatch[1]);
if (!goldMatch && !silverMatch && !copperMatch && /^\d+$/.test(str)) {
return parseInt(str);
}
return copper;
}
function parseExp(str) {
if (!str) return 0;
return parseInt(str.replace(/[,,\s]/g, '')) || 0;
}
function formatMoney(copper) {
const gold = Math.floor(copper / 10000);
const silver = Math.floor((copper % 10000) / 100);
const cop = copper % 100;
let res = '';
if (gold > 0) res += `${gold}金`;
if (silver > 0) res += ` ${silver}银`;
if (cop > 0) res += ` ${cop}铜`;
if (res === '') res = '0铜';
return res.trim(); // Trim leading/trailing spaces
}
function calculate() {
const startStr = document.getElementById('startLevel').value;
const endStr = document.getElementById('endLevel').value;
const errorMsg = document.getElementById('errorMsg');
const resultCard = document.getElementById('resultCard');
if (!startStr || !endStr) {
showError("请输入有效的起止等级");
return;
}
const startLevel = parseInt(startStr);
const endLevel = parseInt(endStr);
if (startLevel >= endLevel) {
showError("目标等级必须大于起始等级");
return;
}
// Limit check based on available data
if (startLevel < 10) {
showError("起始等级最低为10级");return;
}
if (endLevel > 119) {
// Just a warning, calculation will just use max available
}
const selectedBooks = [];
document.querySelectorAll('#xinfaGroup input:checked').forEach(cb => {
selectedBooks.push(parseInt(cb.value));
});
if (selectedBooks.length === 0) {
showError("请至少选择一本心法");
return;
}
errorMsg.classList.remove('visible');
let totalExp = 0;
let totalCopper = 0;
for (let lv = startLevel + 1; lv <= endLevel; lv++) {
const item = DATA.find(d => d._level === lv);
if (!item) continue;
selectedBooks.forEach(bookIdx => {
let costObj = null;
if (bookIdx === 1) costObj = item.xinfa_1;
else if ([2, 3, 6].includes(bookIdx)) costObj = item.xinfa_236;
else if ([4, 5].includes(bookIdx)) costObj = item.xinfa_45;
if (costObj) {
totalExp += parseExp(costObj.exp);
totalCopper += parseMoneyToCopper(costObj.money);
}
});
}
document.getElementById('resExp').innerText = totalExp.toLocaleString();
document.getElementById('resMoney').innerText = formatMoney(totalCopper);
document.getElementById('resMoneyRaw').innerText = totalCopper.toLocaleString();
resultCard.style.display = 'block';
// Trigger reflow for animation
resultCard.style.animation = 'none';
resultCard.offsetHeight; /* trigger reflow */
resultCard.style.animation = null;
}
function showError(msg) {
const el = document.getElementById('errorMsg');
el.innerText = msg;
el.classList.add('visible');
document.getElementById('resultCard').style.display = 'none';
}
init();
</script>
</body>
</html>
注:如果数据源有错误,可以在html源码的RAW_DATA 里修改,level:心法等级,xinfa_1:第一本心法,xinfa_236:第二、三、六本心法,xinfa_45:第四、五本心法,money:心法需要的金钱,exp:心法需要的经验
