升90,100心法所需经验及金钱汇总-天龙八部·经典服-AI使用

用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千金

工具生成

  1. 搜索数据
    升90心法所需经验及金钱汇总,将需要的那部分表格数据截图下来,长截图小技巧,用chrome浏览器自带的长截图功能(F12开启控制台,按Ctrl+Shif+P,输入full,选Capture full size screenshot),当然你也可以去安装个带网页长截图功能的插件或工具啥的。
    levelMoney.png
  2. 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:心法需要的经验

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容