卡片数据

来自LoveLive Wiki
跳到导航 跳到搜索

var sktype;(function(sktype){sktype[sktype["score_bad"]=1]="score_bad";sktype[sktype["judge"]=2]="judge";sktype[sktype["heal"]=3]="heal";sktype[sktype["score_perfect"]=4]="score_perfect"})(sktype||(sktype={}));var trtype;(function(trtype){trtype[trtype["note"]=1]="note";trtype[trtype["combo"]=2]="combo";trtype[trtype["perfect"]=3]="perfect";trtype[trtype["time"]=4]="time"})(trtype||(trtype={}));var changemod;(function(changemod){changemod[changemod["constant"]=0]="constant";changemod[changemod["lvall"]=1]="lvall";changemod[changemod["lv2468"]=2]="lv2468";changemod[changemod["lv258"]=3]="lv258";changemod[changemod["lv47"]=4]="lv47";changemod[changemod["lv59"]=5]="lv59";changemod[changemod["lv5"]=6]="lv5"})(changemod||(changemod={}));var tgtype;(function(tgtype){tgtype[tgtype["none"]=-1]="none";tgtype[tgtype["all"]=0]="all";tgtype[tgtype["muse"]=100]="muse";tgtype[tgtype["aqours"]=200]="aqours";tgtype[tgtype["niji"]=300]="niji";tgtype[tgtype["liella"]=400]="liella";tgtype[tgtype["yohane"]=600]="yohane";tgtype[tgtype["pts"]=101]="pts";tgtype[tgtype["llw"]=102]="llw";tgtype[tgtype["bibi"]=103]="bibi";tgtype[tgtype["cyr"]=201]="cyr";tgtype[tgtype["aaa"]=202]="aaa";tgtype[tgtype["gk"]=203]="gk";tgtype[tgtype["dd"]=301]="dd";tgtype[tgtype["azn"]=302]="azn";tgtype[tgtype["q4"]=303]="q4";tgtype[tgtype["r3b"]=304]="r3b";tgtype[tgtype["5r5"]=401]="5r5";tgtype[tgtype["cc"]=402]="cc";tgtype[tgtype["kds"]=403]="kds"})(tgtype||(tgtype={}));const sif2_card_data=new Map();function sif2_skill_description(skill){let template=null;switch(skill.type){case sktype.score_bad:template="每{0}{10}有{1}%概率
在{2}秒内{11}点击分数增加{3}";break;case sktype.judge:template="每{0}{10}有{1}%概率
在{2}秒内{11}PERFECT判定范围扩大{3}阶";break;case sktype.heal:template="每{0}{10}有{1}%概率
回复{3}体力";break;case sktype.score_perfect:template="每{0}{10}有{1}%概率
在{2}秒内{11}PERFECT时点击分数增加{3}";break}template=template.replace("{0}",(skill.tr/(skill.trigger===trtype.time?1000:1)).toString());template=template.replace("{10}",{1:"个节奏图示",2:"COMBO",3:"次PERFECT",4:"秒"}[skill.trigger]);template=template.replace("{1}",(skill.pb/100).toString());template=template.replace("{2}",(skill.tm/1000).toString());template=template.replace("{3}",(skill.ev).toString());template=template.replace("{11}",skill.target!==0?`使${{100:"μ's",200:"Aqours",300:"虹咲",400:"Liella!",600:"幻日"}[skill.target]}成员的`:"");return template}const sif2_character_name=new Map([[1001,"穗乃果"],[1002,"绘里"],[1003,"小鸟"],[1004,"海未"],[1005,"凛"],[1006,"真姬"],[1007,"希"],[1008,"花阳"],[1009,"妮可"],[2001,"千歌"],[2002,"梨子"],[2003,"果南"],[2004,"黛雅"],[2005,"曜"],[2006,"善子"],[2007,"花丸"],[2008,"鞠莉"],[2009,"露比"],[3001,"步梦"],[3002,"霞"],[3003,"雫"],[3004,"果林"],[3005,"爱"],[3006,"彼方"],[3007,"雪菜"],[3008,"艾玛"],[3009,"璃奈"],[3010,"栞子"],[3011,"米娅"],[3012,"岚珠"],[4001,"香音"],[4002,"可可"],[4003,"千砂都"],[4004,"堇"],[4005,"恋"],[4006,"希奈子"],[4007,"芽衣"],[4008,"四季"],[4009,"夏美"],[4010,"薇恩"],[4011,"冬毬"],[6001,"Yohane"],[6002,"Hanamaru"],[6003,"Dia"],[6004,"Ruby"],[6005,"Chika"],[6006,"You"],[6007,"Kanan"],[6008,"Riko"],[6009,"Mari"]]);function gettext(){return $('#card-data').text()}function sif2_cardlist_init(){const text=gettext();text.split('\n').forEach((line)=>{const parts=line.split('|');const[,name]=parts[0].split(',');const[id,,type,rarity,hp1,smile,pure,cool]=parts[0].split(',').map(v=>parseInt(v));const{masterCharacterId}=parse_id(id);const skill_by_level=parse_skill(parts[2].split(',').map(v=>parseInt(v)));const[ce1,cetg1,cev1,ce2,cetg2,cev2]=parts[1].split(',').map(v=>parseInt(v));sif2_card_data.set(id,{id,masterCharacterId,name,type,rarity,hp:hp1-1,smile,pure,cool,skill_by_level,center_skill:{type_1:ce1,target_1:cetg1,value_1:cev1,type_2:ce2,target_2:cetg2,value_2:cev2,},})})}function parse_id(id){const masterCharacterId=Math.floor(id/10000);const illustId=[("00000"+masterCharacterId.toString()).slice(-5),("0000"+(id%10000).toString()).slice(-4),"00"].join('_');const evolveIllustId=[("00000"+masterCharacterId.toString()).slice(-5),("0000"+(id%10000).toString()).slice(-4),"01"].join('_');return{id,masterCharacterId,illustId,evolveIllustId}}function parse_skill([sktype,trtype,tgtype,tr_cm,tr_lv1,tr_up,pb_cm,pb_lv1,pb_up,tm_cm,tm_lv1,tm_up,ev_cm,ev_lv1,ev_up]){const skill_by_level=new Map();const trlist=parse_changemod(tr_cm,tr_lv1,tr_up);const pblist=parse_changemod(pb_cm,pb_lv1,pb_up);const tmlist=parse_changemod(tm_cm,tm_lv1,tm_up);const evlist=parse_changemod(ev_cm,ev_lv1,ev_up);for(let lv=1;lv<=9;lv+=1){skill_by_level.set(lv,{type:sktype,trigger:trtype,target:tgtype,tr:trlist[lv-1],pb:pblist[lv-1],tm:tmlist[lv-1],ev:evlist[lv-1],})}return skill_by_level}function parse_changemod(cm,lv1,up){const vlist=[1,2,3,4,5,6,7,8,9];switch(cm){case changemod.constant:return vlist.map((v)=>0*up+lv1);case changemod.lvall:return vlist.map((v)=>(v-1)*up+lv1);case changemod.lv2468:return vlist.map((v)=>Math.floor(v/2)*up+lv1);case changemod.lv258:return vlist.map((v)=>Math.floor((v+1)/3)*up+lv1);case changemod.lv47:return vlist.map((v)=>Math.floor((v-1)/3)*up+lv1);case changemod.lv59:return vlist.map((v)=>Math.floor((v-1)/4)*up+lv1);case changemod.lv5:return vlist.map((v)=>lv1+(v>=5&&up||0))}}sif2_cardlist_init();

const sif2_card_image = new Map(); function sif2_card_image_init() { $('#card-icon-data').html().split('\n').forEach((line)=>{ const [id_str, src1, src2] = line.split(','); sif2_card_image.set(parseInt(id_str), [src1, src2]); }) } const border_src_type_rarity = [,[,["f_1_1"],["f_1_2"],["f_1_3"]],[,["f_2_1"],["f_2_2"],["f_2_3"]],[,["f_3_1"],["f_3_2"],["f_3_3"]]]; const background_src_type_rarity = [,[,["b_1_1_1","b_1_1_2"],["b_0_0_0","b_0_0_0"],["b_0_0_0","b_0_0_0"]],[,["b_2_1_1","b_2_1_2"],["b_0_0_0","b_0_0_0"],["b_0_0_0","b_0_0_0"]],[,["b_3_1_1","b_3_1_2"],["b_0_0_0","b_0_0_0"],["b_0_0_0","b_0_0_0"]]]; /* 默认格式为png,允许的非png格式后缀 */ const enabled_not_raw_suffix = new Set(["jpg","jpeg","webp","png"]); function sif2_card_image_refresh() { $('[data-card-icon]').each(function(){ const $this = $(this); if ($('img', $this)[0]) return; const card_id = parseInt($this.attr('data-card-icon')); if (!sif2_card_data.has(card_id)) {console.warn('sif2_card_image_refresh: id ' + card_id + ' does not exist in sif2_card_data'); return;} let src1, src2; if(!sif2_card_image.has(card_id)){console.warn('sif2_card_image_refresh: card id',$this.attr('data-card-icon'),'icon not found');src1="d562l9";src2="d562l9"} else ([src1, src2] = sif2_card_image.get(card_id)); const {type,rarity,name,masterCharacterId} = sif2_card_data.get(card_id); const src_border = border_src_type_rarity[type][rarity]; const [bgsrc1, bgsrc2] = background_src_type_rarity[type][rarity]; /* 识别JSCardIcon/Source中的非png格式后缀 */ let src1_suf, src2_suf; { const src1_suffix = src1.split(".").pop(); const src2_suffix = src2.split(".").pop(); if (enabled_not_raw_suffix.has(src1_suffix)) src1_suf = src1; else src1_suf = src1 + ".png"; if (enabled_not_raw_suffix.has(src2_suffix)) src2_suf = src2; else src2_suf = src2 + ".png"; } $this.html(`<div style="background-image: url('https://s1.imagehub.cc/images/2023/04/29/${bgsrc1}.png')"><img src="https://s1.imagehub.cc/images/${src1_suf}"></div><div style="background-image: url('https://s1.imagehub.cc/images/2023/04/29/${bgsrc2}.png')"><img src="https://s1.imagehub.cc/images/${src2_suf}"></div><div><img src="https://s1.imagehub.cc/images/2023/04/29/${src_border}.png"></div>`); $this.attr("title",`${name} ${sif2_character_name.get(masterCharacterId)}`); }); } sif2_card_image_init(); sif2_card_image_refresh();

[data-card-icon] { display: inline-block; position: relative; width: calc(64px + 2vw); height: calc(64px + 2vw); } [data-card-icon] > div { background-size: 100% 100%; position: absolute; width: 100%; height: 100%; } /* hover切换图片 hove-swap-image */ [data-card-icon] > div:nth-child(2) { position: absolute; top: 0; left: 0; transition: mask-position, -webkit-mask-position 0.5s; mask-image: linear-gradient(135deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.33) 40%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 1)100%), linear-gradient(225deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.5) 40%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 1)100%); -webkit-mask-image: linear-gradient(135deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.33) 40%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 1)100%), linear-gradient(225deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.5) 40%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 1)100%); mask-composite: source-in; -webkit-mask-composite: source-in; mask-repeat: no-repeat; -webkit-mask-repeat: no-repeat; mask-size: 100% 320%; -webkit-mask-size: 100% 320%; mask-position: 0% 0%; -webkit-mask-position: 0% 0%; } [data-card-icon]:hover > div:nth-child(2), .hover-swap-image-trigger:hover [data-card-icon] > div:nth-child(2) { mask-position: 0% 100%; -webkit-mask-position: 0% 100%; } [data-card-icon] img { width: 100%; height: 100%; }

[data-attr="1"] > :is(.smile, .smile-power) { font-weight: bold; } [data-attr="2"] > :is(.pure, .pure-power) { font-weight: bold; } [data-attr="3"] > :is(.cool, .cool-power) { font-weight: bold; } td:is(.smile, .smile-power) { color: red; } td:is(.pure, .pure-power) { color: green; } td:is(.cool, .cool-power) { color: blue; } #card-display [data-attr="1"] { background-color: #ff00001f; } #card-display [data-attr="2"] { background-color: #00ff001f; } #card-display [data-attr="3"] { background-color: #0000ff1f; } #card-display [data-attr="1"]:hover { background-color: #ff00003f; } #card-display [data-attr="2"]:hover { background-color: #00ff004f; } #card-display [data-attr="3"]:hover { background-color: #0000ff4f; }
稀有度 属性 头像 Smile Pure Cool 技能效果 技能等效数值 Smile Pure Cool

var sktype;(function(sktype){sktype[sktype["score_bad"]=1]="score_bad";sktype[sktype["judge"]=2]="judge";sktype[sktype["heal"]=3]="heal";sktype[sktype["score_perfect"]=4]="score_perfect"})(sktype||(sktype={}));var trtype;(function(trtype){trtype[trtype["note"]=1]="note";trtype[trtype["combo"]=2]="combo";trtype[trtype["perfect"]=3]="perfect";trtype[trtype["time"]=4]="time"})(trtype||(trtype={}));var tgtype;(function(tgtype){tgtype[tgtype["none"]=-1]="none";tgtype[tgtype["all"]=0]="all";tgtype[tgtype["muse"]=100]="muse";tgtype[tgtype["aqours"]=200]="aqours";tgtype[tgtype["niji"]=300]="niji";tgtype[tgtype["liella"]=400]="liella";tgtype[tgtype["yohane"]=600]="yohane";tgtype[tgtype["pts"]=101]="pts";tgtype[tgtype["llw"]=102]="llw";tgtype[tgtype["bibi"]=103]="bibi";tgtype[tgtype["cyr"]=201]="cyr";tgtype[tgtype["aaa"]=202]="aaa";tgtype[tgtype["gk"]=203]="gk";tgtype[tgtype["dd"]=301]="dd";tgtype[tgtype["azn"]=302]="azn";tgtype[tgtype["q4"]=303]="q4";tgtype[tgtype["r3b"]=304]="r3b"})(tgtype||(tgtype={}));function sif2_card_rank_init(){var table_lines=[];sif2_card_data.forEach(function(_a){var id=_a.id,masterCharacterId=_a.masterCharacterId,name=_a.name,type=_a.type,rarity=_a.rarity,hp=_a.hp,smile=_a.smile,pure=_a.pure,cool=_a.cool,skill_by_level=_a.skill_by_level,center_skill=_a.center_skill;table_lines.push("<tr data-sif2-card-id=\"".concat(id,"\" data-rarity=\"").concat(rarity,"\" data-attr=\"").concat(type,"\" data-character=\"").concat(masterCharacterId,"\" class=\"hover-swap-image-trigger\">\n<td data-sort-value=\"").concat(rarity,"\">").concat({1:"R",2:"SR",3:"UR"}[rarity],"</td>\n<td data-sort-value=\"").concat(type,"\">").concat({1:"Smile",2:"Pure",3:"Cool"}[type],"</td>\n<td data-sort-value=\"").concat(rarity,"/").concat(type,"/").concat(id,"\"><div data-card-icon=\"").concat(id,"\"></div></td>\n<td data-sort-value=\"").concat(smile,"\" class=\"smile\">").concat(smile,"</td>\n<td data-sort-value=\"").concat(pure,"\" class=\"pure\">").concat(pure,"</td>\n<td data-sort-value=\"").concat(cool,"\" class=\"cool\">").concat(cool,"</td>\n<td data-sort-value=\"").concat(skill_by_level.get(1).type,"/").concat(skill_by_level.get(1).trigger,"/").concat(skill_by_level.get(1).target,"\" class=\"skill-description\"></td>\n<td class=\"skill-power\"></td>\n<td class=\"smile-power\"></td>\n<td class=\"pure-power\"></td>\n<td class=\"cool-power\"></td>\n</tr>"))});table_lines.forEach(function(s){initial_submit(s)})}function initial_submit(string){$('#card-display > tbody').append(string)}function update_submit(id,skill_description,skill_value,smile_power,pure_power,cool_power){$("[data-sif2-card-id=\"".concat(id,"\"] > .skill-description")).html(skill_description);$("[data-sif2-card-id=\"".concat(id,"\"] > .skill-power")).html(Math.round(skill_value).toString());$("[data-sif2-card-id=\"".concat(id,"\"] > .smile-power")).html(Math.round(smile_power).toString());$("[data-sif2-card-id=\"".concat(id,"\"] > .pure-power")).html(Math.round(pure_power).toString());$("[data-sif2-card-id=\"".concat(id,"\"] > .cool-power")).html(Math.round(cool_power).toString())}var background_settings={chart_time_sec:100,total_notes:800,press_rate:8,swing_rate:15,perfect_rate:96,song_group:tgtype.none,ally_average:4000,center_bonus:20,group_weight:30,attr_weight:50,self_weight:10,is_group:false,skill_level_r:3,skill_level_sr:5,skill_level_ur:9};function sif2_card_rank_update(){sif2_card_data.forEach(function(value,key){var id=key;var _a=sif2_card_data.get(id),rarity=_a.rarity,masterCharacterId=_a.masterCharacterId,attribute=_a.type,smile=_a.smile,pure=_a.pure,cool=_a.cool,skill_by_level=_a.skill_by_level;var skill_level_r=background_settings.skill_level_r,skill_level_sr=background_settings.skill_level_sr,skill_level_ur=background_settings.skill_level_ur,total_notes=background_settings.total_notes,press_rate=background_settings.press_rate,swing_rate=background_settings.swing_rate,perfect_rate=background_settings.perfect_rate,chart_time_sec=background_settings.chart_time_sec,song_group=background_settings.song_group,self_weight=background_settings.self_weight,center_bonus=background_settings.center_bonus,group_weight=background_settings.group_weight,attr_weight=background_settings.attr_weight,ally_average=background_settings.ally_average;var skill_level=0;switch(rarity){case 1:skill_level=skill_level_r;break;case 2:skill_level=skill_level_sr;break;case 3:skill_level=skill_level_ur;break}var skill_current=skill_by_level.get(skill_level);var trigger=skill_current.trigger,target=skill_current.target,tr=skill_current.tr,type=skill_current.type,tm=skill_current.tm,pb=skill_current.pb,ev=skill_current.ev;var chances=(trigger===trtype.time?chart_time_sec*1000:total_notes)*((trigger===trtype.note||trigger===trtype.perfect)&&(1+press_rate/100)||1)/tr*(trigger===trtype.perfect?(perfect_rate/100):1)-0.5;var gap_ratio=0,enable_softcap=true;if(type===sktype.score_bad||type===sktype.score_perfect||type===sktype.judge){if(trigger===trtype.time){gap_ratio=tr/tm;enable_softcap=false}else if(trigger===trtype.combo)gap_ratio=tr/total_notes*chart_time_sec/(tm/1000);else if(trigger===trtype.note)gap_ratio=tr/(total_notes*(1+press_rate/100))*chart_time_sec/(tm/1000);else if(trigger===trtype.perfect)gap_ratio=tr/(perfect_rate/100)/(total_notes*(1+press_rate/100))*chart_time_sec/(tm/1000)}else enable_softcap=false;var r=enable_softcap?(0.6/Math.sqrt(tm/1000)):0;var loss_rates=[],loss_rate_raws=[];var loss_rate_raw=1;if(gap_ratio>0){while(true){if(loss_rate_raw<-50)throw new Error();loss_rates.push(enable_softcap?softcap(loss_rate_raw,r):Math.max(loss_rate_raw,0));loss_rate_raws.push(loss_rate_raw);if(loss_rate_raw<-r)break;loss_rate_raw-=gap_ratio}}var activates=chances*pb/10000-(chances*pb/10000-1)*loss_rates.reduce(function(prev,loss_rate,i){if(i>=1)prev+=loss_rate*(pb/10000)*Math.pow((1-pb/10000),(i-1));return prev},0)-loss_rate_raws.reduce(function(prev,loss_rate,i,a){if(i===0)return 0;if(a[i]>0)prev+=(a[i-1]+a[i])/2*(pb/10000)*Math.pow((1-pb/10000),(i-1));else if(a[i-1]>0)prev+=Math.pow(a[i-1],2)/(a[i-1]-a[i])/2*(pb/10000)*Math.pow((1-pb/10000),(i-1));return prev},0);var absolute_attribute=0,relative_attribute=0;if(type===sktype.score_bad||type===sktype.score_perfect){var score_once=ev*(tm/1000)*total_notes*(1+press_rate/100)/chart_time_sec*(type===sktype.score_perfect?(perfect_rate/100):1);absolute_attribute+=score_once*activates/(1/80*(1+center_bonus/100)*(1+group_weight/100*0.1)*(1+attr_weight/100*0.1)*(total_notes*(1+press_rate/100*1.5-swing_rate/100*0.5))*(0.88+0.12*perfect_rate/100)*(average_combo_bonus(total_notes)));if(target===tgtype.all)true;else if(target===tgtype.muse||target===tgtype.aqours||target===tgtype.niji||target===tgtype.liella)absolute_attribute*=0.5;else throw new Error();}else if(type===sktype.judge){var coverage_rate=activates*(tm/1000)/chart_time_sec;relative_attribute+=(0.88+0.12*(1-(1-perfect_rate/100)*(1-coverage_rate)))/(0.88+0.12*perfect_rate/100)-1}var smile_power=smile+absolute_attribute+(smile+8*ally_average)*(relative_attribute+(attribute===1&&(self_weight/(attr_weight+1000))||0)+(member_target_group_test(song_group,masterCharacterId)&&(self_weight/(group_weight+1000))||0));var pure_power=pure+absolute_attribute+(pure+8*ally_average)*(relative_attribute+(attribute===2&&(self_weight/(attr_weight+1000))||0)+(member_target_group_test(song_group,masterCharacterId)&&(self_weight/(group_weight+1000))||0));var cool_power=cool+absolute_attribute+(cool+8*ally_average)*(relative_attribute+(attribute===3&&(self_weight/(attr_weight+1000))||0)+(member_target_group_test(song_group,masterCharacterId)&&(self_weight/(group_weight+1000))||0));var skill_text=sif2_skill_description(skill_current);var skill_power=absolute_attribute+relative_attribute*(9*ally_average);update_submit(id,skill_text,skill_power,smile_power,pure_power,cool_power)})}function member_target_group_test(g,m){switch(g){case tgtype.none:return false;case tgtype.muse:return Math.floor(m/1000)===1;case tgtype.aqours:return Math.floor(m/1000)===2;case tgtype.niji:return Math.floor(m/1000)===3;case tgtype.liella:return Math.floor(m/1000)===4;;case tgtype.yohane:return Math.floor(m/1000)===6;case tgtype.pts:return m===1001||m===1003||m===1008;case tgtype.llw:return m===1004||m===1005||m===1007;case tgtype.bibi:return m===1002||m===1006||m===1009;case tgtype.cyr:return m===2001||m===2005||m===2009;case tgtype.aaa:return m===2003||m===2004||m===2007;case tgtype.gk:return m===2002||m===2006||m===2008;case tgtype.dd:return m===3004||m===3005;case tgtype.azn:return m===3001||m===3003||m===3007;case tgtype.q4:return m===3002||m===3006||m===3008||m===3009;case tgtype.r3b:return m===3010||m===3011||m===3012;default:throw new Error();}}function average_combo_bonus(n){if(n<=50)return 1;if(n<=100)return(50+1.1*(n-50))/n;if(n<=200)return(105+1.15*(n-100))/n;if(n<=400)return(220+1.2*(n-200))/n;if(n<=600)return(460+1.25*(n-400))/n;if(n<=800)return(710+1.3*(n-600))/n;return(970+1.35*(n-800))/n}function softcap(v,r){if(r===void 0){r=0.3}if(v<=-r)return 0;else if(v>=r)return v;else return Math.pow((v+r),2)/r/4}sif2_card_rank_init();

sif2_card_rank_update(); sif2_card_image_refresh(); $('#background-settings').append('<input style="width:50%;" type="range" min="70" max="100" step="0.5" value="96" onchange="perfect_rate.value=background_settings.perfect_rate=this.value;sif2_card_rank_update();"></input>PERFECT率 - <output id="perfect_rate">96</output>%<br>'); $('#background-settings').append('<input style="width:50%;" type="range" min="300" max="1100" step="25" value="800" onchange="total_notes.value=background_settings.total_notes=this.value;sif2_card_rank_update();"></input>最大COMBO数 - <output id="total_notes">800</output><br>'); $('#background-settings').append('<input style="width:50%;" type="range" min="85" max="115" step="1" value="100" onchange="chart_time_sec.value=background_settings.chart_time_sec=this.value;sif2_card_rank_update();"></input>歌曲时长 - <output id="chart_time_sec">100</output> 秒<br>'); $('#background-settings').append('<input style="width:40%;" type="range" min="5" max="20" step="0.5" value="8" onchange="press_rate.value=background_settings.press_rate=this.value;sif2_card_rank_update();"></input>长押占比 - <output id="press_rate">8</output>%<br>'); $('#background-settings').append('<input style="width:40%;" type="range" min="0" max="50" step="0.5" value="15" onchange="swing_rate.value=background_settings.swing_rate=this.value;sif2_card_rank_update();"></input>滑键占比 - <output id="swing_rate">15</output>%<br>'); $('#background-settings').append('<input style="width:30%;" type="range" min="1" max="9" step="1" value="9" onchange="skill_level_ur.value=background_settings.skill_level_ur=parseInt(this.value);sif2_card_rank_update();"></input>UR技能等级 - <output id="skill_level_ur">9</output><br>'); $('#background-settings').append('<input style="width:30%;" type="range" min="1" max="5" step="1" value="5" onchange="skill_level_sr.value=background_settings.skill_level_sr=parseInt(this.value);sif2_card_rank_update();"></input>SR技能等级 - <output id="skill_level_sr">5</output><br>'); $('#background-settings').append('<input style="width:30%;" type="range" min="1" max="3" step="1" value="3" onchange="skill_level_r.value=background_settings.skill_level_r=parseInt(this.value);sif2_card_rank_update();"></input>R技能等级 - <output id="skill_level_r">3</output><br>');