|
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>怪物代码测试</title>
- <script type="text/javascript" src="parseCard.js" ></script>
- <script type="text/javascript">
- var cards;
- var pcards;
- var mid;
- var GM_xmlhttpRequest = function(GM_param) {
- var xhr = new XMLHttpRequest(); //创建XMLHttpRequest对象
- xhr.open(GM_param.method, GM_param.url, true);
- if (GM_param.responseType) xhr.responseType = GM_param.responseType;
- if (GM_param.overrideMimeType) xhr.overrideMimeType(GM_param.overrideMimeType);
- xhr.onreadystatechange = function() //设置回调函数
- {
- if (xhr.readyState === xhr.DONE) {
- if (xhr.status === 200 && GM_param.onload)
- GM_param.onload(xhr);
- if (xhr.status !== 200 && GM_param.onerror)
- GM_param.onerror(xhr);
- }
- }
- for (var header in GM_param.headers) {
- xhr.setRequestHeader(header, GM_param.headers[header]);
- }
- xhr.send(GM_param.data ? GM_param.data : null);
- }
-
- function g(id)
- {
- let m = cards[id];
-
- console.log("原始数组",m);
- console.log("已解析对象",pcards[id]); //输出人家大佬的格式
-
- var pn = ["火","水","木","光","暗"];
- var p = [pn[m[2]]||"无", pn[m[3]]||"无"];
- var tn = ["0进化","1平衡","2体力","3回复","4龙","5神","6攻击","7恶魔","8机械","9","10","11","12觉醒","13","14强化","15卖钱"];
-
- //因为觉醒数量的不一样,所以需要制定序号
- var awokenCIdx = 58+m[57]*3; //awoken Count Index,觉醒数量的序号
- var superAwokenIdx = awokenCIdx+1+m[awokenCIdx]; //super awoken Index,超觉醒的序号
-
- //类型
- var type = [];
- type.push(tn[m[5]]);
- if (m[6]!=-1) //第二个type
- type.push(tn[m[6]]);
- if (m[superAwokenIdx+3]!=-1) //第三个type要倒着来
- type.push(tn[m[superAwokenIdx+3]]);
- console.log("No.%d %s [%s/%s],Lv%d,类型:%s,%d星,COST%d,%s个觉醒,三维%s,110级增长%d%%,%s当二技,1级吃经验%d,1级卖¥%d,%dMP,成长类型%d,升2级经验%d,技能编号%d,队长%d,进化链根%d,%s究极退化为%d,进化素材ID[%d,%d,%d,%d,%d]",
- m[0], //ID
- m[1], //名字
- p[0],p[1], //属性
- m[10], //最大等级
- type.join("|"), //类型
- m[7], //星级
- m[8], //cost
- m[58+m[57]*3], //觉醒数
- m[14]+"-"+m[15]+"/"+m[17]+"-"+m[18]+"/"+m[20]+"-"+m[21], //三维
- m[superAwokenIdx+9], //110级增长
- m[superAwokenIdx+7] & 1?"能":"不能", //二技
- Math.round(m[11]/4), //1级经验,每级,直接乘
- Math.round(m[13]/10), //1级卖钱
- m[superAwokenIdx+4], //MP
- m[23], //成长类型
- Math.round(m[23] * Math.pow((2 - 1) / 98,m[24])), //1级升2级经验
- m[25], //技能编号
- m[26], //队长技能编号
- m[superAwokenIdx+1], //进化根编号
- m[4]?"可":"不可", //可退化?
- m[40], //可退化?
- m[41],m[42],m[43],m[44],m[45], //进化素材ID 1-5
- );
- }
- GM_xmlhttpRequest({
- method: "GET",
- url:"ja-card.json",
- onload: function(response) {
- const originalJSON = JSON.parse(response.response);
- cards = originalJSON.card;
- pcards = cards.map(c=>{
- let card = new Card(c);
- //将可能的flag显示为二进制
- card.unk01bin = card.unk01.toString(2);
- card.unk02bin = card.unk02.toString(2);
- card.unk03bin = card.unk03.toString(2);
- card.unk04bin = card.unk04.toString(2);
- card.unk05bin = card.unk05.toString(2);
- card.unk06bin = card.unk06.toString(2);
- card.unk07bin = card.unk07.toString(2);
- card.unk08bin = card.unk08.toString(2); //已知一些flag
- return card;
- });
- },
- onerror: function(response) {
- console.error("怪物数据获取错误",response);
- }
- });
- </script>
- </head>
-
- <body>
- <script type="text/javascript">
- window.onload = function()
- {
- mid = document.querySelector("#mid");
- }
- </script>
- <input type="number" id="mid"><input type="button" value="获取怪物" onclick="g(parseInt(mid.value,10));">
- </body>
- </html>
|