抽卡模拟器测试版
更新日期: 2024-10-21 最新编辑:木丶阿伦
var roles_3 = [ { name: '马努埃尔'},{ name: '伊布林'}, { name: '哈利'}, { name: '霍尔赫'}, { name: '萨莉亚'}, { name: '佩妮'}, { name: '迪艾格'}, { name: '费丽妮'}, { name: '比利'}, { name: '赫塞'}, { name: '帕尔'}, { name: '特利'}, { name: '弗昂'}, { name: '卡萝尔'}, { name: '科妮'}, { name: '古提'}, { name: '薇薇安'}, { name: '萨妮'}, { name: '伍格'}, { name: '南娜'}, { name: '梅妮'}, { name: '弗利欧'}, { name: '尤妮丝'}, { name: '多利'}]; var roles_4 = [ { name: '普利基特' },{ name: '洛洛'},{ name: '雪娜'},{ name: '约伦'},{ name: '勒凡'},{ name: '波拉'},{ name: '艾弗伦'},{ name: '肯尼斯'},{ name: '科尔尼利亚'},{ name: '杜兰'},{ name: '纳尔'},{ name: '梅贝儿'},{ name: '伊利斯'},{ name: '法维欧'},{ name: '莉塔'},{ name: '歇尔薇'},{ name: '罗迪恩'},{ name: '玛德蕾妮'},{ name: '诺艾尔'},{ name: '塞德里克'},{ name: '梅诺'},{ name: '巴拉德'},{ name: '贝尔加'},{ name: '阿孜莱特'},{ name: '卡米拉'},{ name: '迈尔斯'},{ name: '贝尔特朗'},{ name: '洁卡莉特'},{ name: '塔希尔'},{ name: '特里休'},{ name: '阿什兰'},{ name: '劳拉'},{ name: '佩雷迪尔'},{ name: '米娜'},{ name: '卢塞塔'},{ name: '拉莫纳'},{ name: '梅蕾特'},{ name: '皮雅'},{ name: '哈因茨'},{ name: '德文'},{ name: '克雷斯'},{ name: '卡尔茨'},{ name: '温格特'}]; var roles_5 = [
{ name: '洁卡莉特Ex'
}, {
name: '亚芬'
}, {
name: '乌·鲁代'
}, {
name: '泰蕾兹'
}, {
name: '莱欧尼尔'
}, {
name: '海茵特'
}, {
name: '普里姆萝洁'
}, {
name: '赛拉斯'
}, {
name: '斯凯亚克罗'
}, {
name: '菲欧儿'
}, {
name: '米罗德'
}, {
name: '薇欧拉'
}, {
name: '莉妮特'
}, {
name: '吉尔德罗伊'
}, {
name: '特欧'
}, {
name: '索菲亚'
}, {
name: '拉斯'
}, {
name: '赛西莉'
}, {
name: '莲见'
}, {
name: '尼兰娜拉'
}, {
name: '欧尔贝克'
}, {
name: '欧菲莉亚'
}, {
name: '希斯柯特'
}, {
name: '哈雷'
}, {
name: '索蕾犹'
}, {
name: '爱丽莎'
}, {
name: '泰里翁'
}, {
name: '莫露露'
}, {
name: '贝兹'
}, {
name: '闪达'
} ]; var roles_5_new = [] var step_count = [7,8,10,10,10]
// 卢米斯 var role_sg_5_2 = [{
name: "卢米斯", isUp: true, weight: 1
}] // 江连 var role_sg_5 = [{
name: "江连", isUp: true, weight: 1
}] // 追忆 克拉乌泽 var roles_zy_5_2 = [{
name: "克拉乌泽", isUp: true, weight: 1
}]; var roles_zy_5_other_2 = [{
name: "利夏尔", isUp: false, weight: 1
},{
name: "雷比娜", isUp: false, weight: 1
}]; var roles_zy_5_step_2 = [{
name: "克拉乌泽", isUp: true, weight: 2
},{
name: "雷比娜", isUp: false, weight: 1
}, {
name: "利夏尔", isUp: false, weight: 1
}]; // 圣炎:泽妮亚 var roles_sy_5 = [
{ name: "泽妮亚", isUp: true, weight: 1 }
] var roles_sy_5_other = [
{ name: "奥黛特", isUp: false, weight: 1 }, { name: "多萝德娅", isUp: false, weight: 1 }
] var roles_sy_5_step = [
{ name: "泽妮亚", isUp: true, weight: 2 }, { name: "奥黛特", isUp: false, weight: 1 }, { name: "多萝德娅", isUp: false, weight: 1 }
] // 联动:三角战略 var roles_sj_5 = [
{ name: "芙蕾德丽卡", keyName: "芙德丽卡", isUp: true, weight: 1
}, {
name: "罗兰", isUp: true, weight: 1
} ];
var pools = [
{ name: "联动:三角战略", btn_1: true, btn_10: true, step: false, stepRole: [], stepCount: [], roleType: [{ // 5 芙蕾德丽卡 罗兰 num: 1, maxStar: 5, thisStar: 5, isUp: true, roles: roles_sj_5 }, { // 4.5 芙蕾德丽卡 罗兰 num: 1, maxStar: 5, thisStar: 4, isUp: true, roles: roles_sj_5 }, { // 5其他 num: 1, maxStar: 5, thisStar: 5, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4.5其他 num: 1, maxStar: 5, thisStar: 4, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4星 num: 18, maxStar: 4, thisStar: 4, isUp: false, roles: roles_4 }, { // 3.5星 num: 40, maxStar: 4, thisStar: 3, isUp: false, roles: roles_4 }, { // 3星 num: 38, maxStar: 3, thisStar: 3, isUp: false, roles: roles_3 } ] }, { name: "联动:三角战略(阶梯)", btn_1: false, btn_10: true, step: true, stepRole: roles_sj_5, stepCount: step_count, roleType: [{ // 5 芙蕾德丽卡 罗兰 num: 1, maxStar: 5, thisStar: 5, isUp: true, roles: roles_sj_5 }, { // 4.5 芙蕾德丽卡 罗兰 num: 1, maxStar: 5, thisStar: 4, isUp: true, roles: roles_sj_5 }, { // 5其他 num: 1, maxStar: 5, thisStar: 5, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4.5其他 num: 1, maxStar: 5, thisStar: 4, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4星 num: 18, maxStar: 4, thisStar: 4, isUp: false, roles: roles_4 }, { // 3.5星 num: 40, maxStar: 4, thisStar: 3, isUp: false, roles: roles_4 }, { // 3星 num: 38, maxStar: 3, thisStar: 3, isUp: false, roles: roles_3 } ] }, { name: "圣炎的引导:泽妮亚", btn_1: true, btn_10: true, step: false, stepRole: [], stepCount: [], roleType: [ { // 5 泽妮亚 num: 0.8, maxStar: 5, thisStar: 5, isUp: true, roles: roles_sy_5 }, { // 4.5 泽妮亚 num: 0.4, maxStar: 5, thisStar: 4, isUp: true, roles: roles_sy_5 },{ // 5 其他圣炎 num: 0.2, maxStar: 5, thisStar: 5, isUp: false, roles: roles_sy_5_other }, { // 4.5 其他圣炎 num: 0.6, maxStar: 5, thisStar: 4, isUp: false, roles: roles_sy_5_other }, { // 5其他 num: 1, maxStar: 5, thisStar: 5, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4.5其他 num: 1, maxStar: 5, thisStar: 4, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4星 num: 96, maxStar: 4, thisStar: 4, isUp: false, roles: roles_4 } ] }, { name: "闪光的旅人:江连", btn_1: true, btn_10: true, step: false, stepRole: [], stepCount: [], roleType: [{ // 5江连 num: 0.8, maxStar: 5, thisStar: 5, isUp: true, roles: role_sg_5 }, { // 4.5江连 num: 0.4, maxStar: 5, thisStar: 4, isUp: true, roles: role_sg_5 }, { // 5其他 num: 1.2, maxStar: 5, thisStar: 5, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4.5其他 num: 1.6, maxStar: 5, thisStar: 4, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4星 num: 18, maxStar: 4, thisStar: 4, isUp: false, roles: roles_4 }, { // 3.5星 num: 40, maxStar: 4, thisStar: 3, isUp: false, roles: roles_4 }, { // 3星 num: 38, maxStar: 3, thisStar: 3, isUp: false, roles: roles_3 } ] },
{
name: "闪光的旅人:卢米斯", btn_1: true, btn_10: true, step: false, stepRole: [], stepCount: [], roleType: [{ // 5卢米斯 num: 0.8, maxStar: 5, thisStar: 5, isUp: true, roles: role_sg_5_2 }, { // 4.5卢米斯 num: 0.4, maxStar: 5, thisStar: 4, isUp: true, roles: role_sg_5_2 }, { // 5其他 num: 1.2, maxStar: 5, thisStar: 5, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4.5其他 num: 1.6, maxStar: 5, thisStar: 4, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4星 num: 18, maxStar: 4, thisStar: 4, isUp: false, roles: roles_4 }, { // 3.5星 num: 40, maxStar: 4, thisStar: 3, isUp: false, roles: roles_4 }, { // 3星 num: 38, maxStar: 3, thisStar: 3, isUp: false, roles: roles_3 } ]
}, {
name: "邂逅的旅人们", btn_1: true, btn_10: true, step: false, stepRole: [], stepCount: [], roleType: [{ // 5其他 num: 2, maxStar: 5, thisStar: 5, isUp: false, roles: roles_5.concat(roles_5_new) }, { // 4.5其他 num: 2, maxStar: 5, thisStar: 4, isUp: false, roles: roles_5 }, { // 4星 num: 18, maxStar: 4, thisStar: 4, isUp: false, roles: roles_4 }, { // 3.5星 num: 40, maxStar: 4, thisStar: 3, isUp: false, roles: roles_4 }, { // 3星 num: 38, maxStar: 3, thisStar: 3, isUp: false, roles: roles_3 } ]
}, {
name: "历战的旅人们", btn_1: true, btn_10: false, step: false, stepRole: [], stepCount: [], roleType: [{ // 5其他 num: 100, maxStar: 5, thisStar: 5, isUp: true, roles: roles_5.concat(roles_5_new) }]
} ];
var updateDate = "2024年10月10日"; var currPool = {}; var poolName = ""; var poolRoleTyels = []; var numStep = [];
var stepPoolIndex = 0;
var arr_result = []; var max_result_level = 3; var step = 0;
var total_num = 0;
var total_diamond_num = 0;
var up_num = 0;
var arr_ups = [];
var arr_not_ups = [];
var up_half_num = 0;
var other_num = 0;
var other_half_num = 0;
// 截取字符串 function extractContentBetweenStrings(text, start, end) { var pattern = new RegExp(start + '((.*?)(?=' + end + '))', 'gm'); var matches = text.match(pattern); if (matches) {
return matches[0].replace(start, );
} return null; }
function getRoles(count = 1) { for (var i = 0; i < count; i++) {
cardResult(i);
}
$("#ring").css("display", "none");
if (max_result_level == 5) {
$("#ring_2").css("display", "block")
} else if (max_result_level == 4) {
$("#ring_1").css("display", "block")
} else {
$("#ring_0").css("display", "block")
}
step = 2;
}
function cardResult(index) {
if (stepPoolIndex == 5 && index == 9) {
var arrRolesThis = currPool.stepRole; var stepRoleTotalNum = 0; arrRolesThis.forEach(item => { stepRoleTotalNum = stepRoleTotalNum + item.weight; }) var random_index = Math.floor(Math.random() * stepRoleTotalNum); for (var i = 0; i < arrRolesThis.length; i++) { var objThis = arrRolesThis[i]; if (random_index < objThis.weight) { var result = JSON.parse(JSON.stringify(objThis)); break; } else { random_index = random_index - objThis.weight; } } // var result = JSON.parse(JSON.stringify(arrRolesThis[random_index])); result.maxStar = 5; result.thisStar = 5; if (max_result_level < 5) { max_result_level = 5; } arr_result.push(result); if (result.isUp) { up_num = up_num + 1; arr_ups.push(result) } else { other_num = other_num + 1; arr_not_ups.push(result); }
} else {
var result_num = Math.floor(Math.random() * 1000) / 10.0; for (var i = 0; i < numStep.length; i++) { var thisStep = numStep[i]; if (result_num < thisStep) { var roleTypeThis = poolRoleTyels[i]; var arrRolesThis = roleTypeThis.roles; var random_index = Math.floor(Math.random() * arrRolesThis.length); var result = JSON.parse(JSON.stringify(arrRolesThis[random_index])); result.maxStar = roleTypeThis.maxStar; result.thisStar = roleTypeThis.thisStar; if (max_result_level < roleTypeThis.thisStar) { max_result_level = roleTypeThis.thisStar; } arr_result.push(result); console.log(result)
if (roleTypeThis.isUp && result.maxStar == 5 && result.thisStar == 5) { up_num = up_num + 1; arr_ups.push(result) } else if (!roleTypeThis.isUp && result.maxStar == 5 && result.thisStar == 5) { other_num = other_num + 1; arr_not_ups.push(result) } else if (roleTypeThis.isUp && result.maxStar == 5 && result.thisStar == 4) { up_half_num = up_half_num + 1; arr_ups.push(result) } else if (!roleTypeThis.isUp && result.maxStar == 5 && result.thisStar == 4) { other_half_num = other_half_num + 1; arr_not_ups.push(result) }
break
} }
}
}
function clickWindow() { if (step != 2) return; step = 3;
var obj_result_area = document.getElementsByClassName("result_area")[0]; obj_result_area.style = "display:flex;" // 正常流程 setTimeout(() => {
obj_result_area.style = "display:flex;background-image: url(https://i.17173cdn.com/g8bz6k/octopathsp/5/58/db_ck_bg.png?20240904091141);background-color:transparent;" $(".img_ring").each(function() { $(this).css("display", "none") }) var obj_all_result = document.getElementsByClassName("all_Result")[0]; if (currPool.name == '邂逅的旅人们') {
obj_all_result.innerHTML = "
" + "
";
} else if (currPool.name == '历战的旅人们') {
obj_all_result.innerHTML = "
"
} else { var arrUpRoles = []; var arrUpRolesData = []; arr_ups.forEach(item => { var name = item.name; var indexThis = arrUpRoles.indexOf(name); if (indexThis >= 0) { arrUpRolesData[indexThis].count++ } else { arrUpRoles.push(name); arrUpRolesData.push({ name: name, count: 1 }) } }) var arrNotUpRoles = []; var arrNotUpRolesData = []; arr_not_ups.forEach(item => { var name = item.name; var indexThis = arrNotUpRoles.indexOf(name); if (indexThis >= 0) { arrNotUpRolesData[indexThis].count++ } else { arrNotUpRoles.push(name); arrNotUpRolesData.push({ name: name, count: 1 }) } })
console.log(arrUpRoles) console.log(arrUpRolesData) console.log(arrNotUpRoles) console.log(arrNotUpRolesData)
var strUps = "" arrUpRolesData.forEach(item => { strUps = strUps + ',' + item.name + ' ' + item.count + '个' }) if (strUps.length > 0) { strUps = '抽到 ' + strUps.substring(1); } else { strUps = '暂未抽到当期UP角色'; } var strNotUps = "" arrNotUpRolesData.forEach(item => { strNotUps = strNotUps + ',' + item.name + ' ' + item.count + '个' }) if (strNotUps.length > 0) { strNotUps = '其他5星角色 ' + strNotUps.substring(1) + ' 共计' + (other_num + other_half_num) + '个'; } else { strNotUps = '暂未抽到其他5星角色'; }
obj_all_result.innerHTML = "
" + "
" + // "抽到5星当期UP角色" + up_num + "次,4.5星当期UP角色" + up_half_num + "次" + // "
" + "
";
} showResults();
}, 2500)
}
function showResults() { var str_html = ""; for (var i = 0; i < arr_result.length; i++) {
var objThis = arr_result[i];
str_html = str_html + "
for (var j = 0; j < objThis.thisStar; j++) { str_html = str_html + "★" } if (objThis.maxStar > objThis.thisStar) { str_html = str_html + "☆" }
var roleData = getRoleDataWithRoleName(objThis.keyName || objThis.name); if(roleData[0] == undefined || roleData[2] == undefined) { console.log(roleData) debugger } var img_lh = "https://wiki.17173.com/octopathsp/thumb.php?f=角色立绘-角色编号" + roleData[0] + ".png&width=200x"; var img_xs = "https://wiki.17173.com/octopathsp/thumb.php?f=" + roleData[2] + ".png&width=90x";
"
}
$(".result_area").each(function() {
$(this).html(str_html).load()
})
setTimeout(() => {
step = 0;
}, 1000) }
function clickStart(count = 1) {
if (step != 0) return step = 1; max_result_level = 3; arr_result = [];
if (currPool.step) {
if (stepPoolIndex >= currPool.stepCount.length) { stepPoolIndex = 0 } var countThis = currPool.stepCount[stepPoolIndex]; total_num = total_num + count; total_diamond_num = total_diamond_num + countThis * 30; stepPoolIndex = stepPoolIndex + 1;
} else {
total_num = total_num + count; total_diamond_num = total_diamond_num + count * 30;
}
setTimeout(function() {
$("#window_area").css("background-color", "transparent");
}, 1000)
var obj_result_area = document.getElementsByClassName("result_area")[0]; obj_result_area.style = "display:none;background-color:#FFFFFF;" obj_result_area.innerHTML = "";
getRoles(count);
}
function initPool(index) { try {
if (pools.length > index) { currPool = pools[index]; } else { currPool = pools[0]; }
} catch (e) {
if (e.message == 'pools is not defined') { setTimeout(() => { initPool(index) }, 1000) }
}
poolName = currPool.name; poolRoleTyels = currPool.roleType; numStep = []; stepPoolIndex = 0;
var numCurr = 0; poolRoleTyels.forEach(item => {
numCurr = numCurr + item.num; numStep.push(numCurr.toFixed(2))
})
$('#pool_title').html(poolName);
if (currPool.btn_1) {
$('#btn_start_1').css("display", "block")
} else {
$('#btn_start_1').css("display", "none")
}
if (currPool.btn_10) {
$('#btn_start_10').css("display", "block")
} else {
$('#btn_start_10').css("display", "none")
} }
function initFunc() {
$(document).ready(function() {
var queryString = window.location.search; var urlParams = new URLSearchParams(queryString); var poolIndex = urlParams.get("index") || 0; initPool(poolIndex)
for (var i = 0; i < pools.length; i++) { var poolThis = pools[i];
var $button = $('
class: 'btn_change_pool', text: poolThis.name, "index": i }).on('click', function() { var dataIndex = $(this).attr("data-index"); var url = new URL(window.location.href); url.searchParams.set("index", dataIndex); window.location.href = url.href; }); $button.attr("data-index", i); $('.change_pool').append($button); }
$('#btn_start_1').on("click", function() { clickStart(1)
}); $('#btn_start_10').on("click", () => { clickStart(10) }); $('#window_area').on("click", () => { clickWindow() });
});
}
initFunc()