This commit is contained in:
Evan
2026-08-31 14:05:47 +08:00
parent 74b983c74e
commit 6a3e797a9a
22965 changed files with 120 additions and 198 deletions

View File

@@ -1,12 +1,12 @@
// config.js // config.js
// const CONFIG = { // const CONFIG = {
// DataServerBaseUrl: "https://test.server.001code.com", // 在这里定义服务器地址 // DataServerBaseUrl: "https://server.001code.com", // 在这里定义服务器地址
// // DataServerBaseUrl: "https://test.server.001code.com", // 在这里定义服务器地址 // // DataServerBaseUrl: "https://server.001code.com", // 在这里定义服务器地址
// // DataServerBaseUrl: "https://test.server.001code.com", // // DataServerBaseUrl: "https://server.001code.com",
// // DataServerBaseUrl: "https://test.server.001code.com", // // DataServerBaseUrl: "https://server.001code.com",
// // DataServerBaseUrl: "https://test.server.001code.com", // // DataServerBaseUrl: "https://server.001code.com",
// // DataServerBaseUrl: "https://test.server.001code.com", // // DataServerBaseUrl: "https://server.001code.com",
// version : "2025010301", // version : "2025010301",
// unitycdndir : 'https://oss-rpwqy.jjwlcdn.com/001_code_unity_res_20250826', // unitycdndir : 'https://oss-rpwqy.jjwlcdn.com/001_code_unity_res_20250826',
// unitycdnbuilddir : 'https://oss-rpwqy.jjwlcdn.com/001_code_unity_res_20250826/Build', // unitycdnbuilddir : 'https://oss-rpwqy.jjwlcdn.com/001_code_unity_res_20250826/Build',
@@ -14,7 +14,7 @@
// // 可以根据需要添加其他配置 // // 可以根据需要添加其他配置
// disabledev: false, // disabledev: true,
// usecdn :true, //资源走CDN // usecdn :true, //资源走CDN
// lvlock :false, //关卡5关解锁,下一关加锁 // lvlock :false, //关卡5关解锁,下一关加锁
// lvlock_normal_learn :true, //常规关起锁 // lvlock_normal_learn :true, //常规关起锁
@@ -78,12 +78,12 @@
// const CONFIG = { // const CONFIG = {
// // DataServerBaseUrl: "https://test.server.001code.com", // 在这里定义服务器地址 // // DataServerBaseUrl: "https://server.001code.com", // 在这里定义服务器地址
// // DataServerBaseUrl: "https://test.server.001code.com", // 在这里定义服务器地址 // // DataServerBaseUrl: "https://server.001code.com", // 在这里定义服务器地址
// // DataServerBaseUrl: "https://test.server.001code.com", // // DataServerBaseUrl: "https://server.001code.com",
// DataServerBaseUrl: "https://test.server.001code.com", // DataServerBaseUrl: "https://server.001code.com",
// // DataServerBaseUrl: "https://test.server.001code.com", // // DataServerBaseUrl: "https://server.001code.com",
// // DataServerBaseUrl: "https://test.server.001code.com", // // DataServerBaseUrl: "https://server.001code.com",
// version : "2025011001", // version : "2025011001",
// unitycdndir : 'https://oss-rpwqy.jjwlcdn.com/001_code_unity_res_20250826', // unitycdndir : 'https://oss-rpwqy.jjwlcdn.com/001_code_unity_res_20250826',
// unitycdnbuilddir : 'https://oss-rpwqy.jjwlcdn.com/001_code_unity_res_20250826/Build', // unitycdnbuilddir : 'https://oss-rpwqy.jjwlcdn.com/001_code_unity_res_20250826/Build',
@@ -91,8 +91,8 @@
// // 可以根据需要添加其他配置 // // 可以根据需要添加其他配置
// // disabledev: false, // // disabledev: true,
// disabledev: false, // disabledev: true,
// usecdn :true, //资源走CDN // usecdn :true, //资源走CDN
// lvlock :false, //关卡5关解锁,下一关加锁 // lvlock :false, //关卡5关解锁,下一关加锁
// lvlock_normal_learn : !(typeof localStorage !== 'undefined' && // lvlock_normal_learn : !(typeof localStorage !== 'undefined' &&
@@ -157,12 +157,12 @@
const CONFIG = { const CONFIG = {
// DataServerBaseUrl: "https://test.server.001code.com", // 在这里定义服务器地址 // DataServerBaseUrl: "https://server.001code.com", // 在这里定义服务器地址
// DataServerBaseUrl: "https://test.server.001code.com", // 在这里定义服务器地址 // DataServerBaseUrl: "https://server.001code.com", // 在这里定义服务器地址
// DataServerBaseUrl: "https://test.server.001code.com", // DataServerBaseUrl: "https://server.001code.com",
DataServerBaseUrl: "https://test.server.001code.com", DataServerBaseUrl: "https://server.001code.com",
// DataServerBaseUrl: "https://test.server.001code.com", // DataServerBaseUrl: "https://server.001code.com",
// DataServerBaseUrl: "https://test.server.001code.com", // DataServerBaseUrl: "https://server.001code.com",
version: "2026071701", version: "2026071701",
@@ -182,7 +182,7 @@ const CONFIG = {
disabledev: false, disabledev: true,
usecdn: false, usecdn: false,
lvlock: false, lvlock: false,
lvlock_normal_learn: !(typeof localStorage !== 'undefined' && lvlock_normal_learn: !(typeof localStorage !== 'undefined' &&
@@ -230,60 +230,63 @@ const CONFIG = {
lastGameDefaultSkin: 0, lastGameDefaultSkin: 0,
checkGameStyle(realLvId) { checkGameStyle(realLvId) {
let gameStyle = 'SILU';
let gameDefaultSkin = 0;
if (realLvId >= this.BEGINNING_REAL_LVID && realLvId <= this.END_REAL_LVID) { // 暂时注释掉
realLvId = realLvId - this.BEGINNING_REAL_LVID;
if (realLvId >= 1 && realLvId <= 300) { // let gameStyle = 'SILU';
gameStyle = 'SILU'; // let gameDefaultSkin = 0;
gameDefaultSkin = 0;
} else if (realLvId >= 301 && realLvId <= 600) { // if (realLvId >= this.BEGINNING_REAL_LVID && realLvId <= this.END_REAL_LVID) {
gameStyle = 'redArmy'; // realLvId = realLvId - this.BEGINNING_REAL_LVID;
gameDefaultSkin = 2; // if (realLvId >= 1 && realLvId <= 300) {
} else if (realLvId >= 601 && realLvId <= 900) { // gameStyle = 'SILU';
gameStyle = 'numMan'; // gameDefaultSkin = 0;
gameDefaultSkin = 3; // } else if (realLvId >= 301 && realLvId <= 600) {
} else if (realLvId >= 901 && realLvId <= 1200) { // gameStyle = 'redArmy';
gameStyle = 'chinese'; // gameDefaultSkin = 2;
gameDefaultSkin = 1; // } else if (realLvId >= 601 && realLvId <= 900) {
} else if (realLvId >= 1201 && realLvId <= 1500) { // gameStyle = 'numMan';
gameStyle = 'snow'; // gameDefaultSkin = 3;
gameDefaultSkin = 4; // } else if (realLvId >= 901 && realLvId <= 1200) {
} else if (realLvId >= 1501 && realLvId <= 1800) { // gameStyle = 'chinese';
gameStyle = 'SILU'; // gameDefaultSkin = 1;
gameDefaultSkin = 0; // } else if (realLvId >= 1201 && realLvId <= 1500) {
} else { // gameStyle = 'snow';
gameStyle = 'SILU'; // gameDefaultSkin = 4;
gameDefaultSkin = 0; // } else if (realLvId >= 1501 && realLvId <= 1800) {
} // gameStyle = 'SILU';
} // gameDefaultSkin = 0;
// } else {
// gameStyle = 'SILU';
// gameDefaultSkin = 0;
// }
// }
if (gameStyle !== this.lastGameStyle) { // if (gameStyle !== this.lastGameStyle) {
window.unityInstance.SendMessage("GameController", "ChangeUIStyle", gameStyle); // window.unityInstance.SendMessage("GameController", "ChangeUIStyle", gameStyle);
this.lastGameStyle = gameStyle; // this.lastGameStyle = gameStyle;
} // }
// 尝试多次发送消息,以确保 Unity 场景和 Player 对象已加载 // // 尝试多次发送消息,以确保 Unity 场景和 Player 对象已加载
if (gameDefaultSkin !== this.lastGameDefaultSkin) { // if (gameDefaultSkin !== this.lastGameDefaultSkin) {
// 尝试多次发送消息,以确保 Unity 场景和 Player 对象已加载 // // 尝试多次发送消息,以确保 Unity 场景和 Player 对象已加载
const sendSkinMsg = (delay) => { // const sendSkinMsg = (delay) => {
setTimeout(() => { // setTimeout(() => {
if (window.unityInstance) { // if (window.unityInstance) {
try { // try {
window.unityInstance.SendMessage("Player", "CallChangeSkin", gameDefaultSkin); // window.unityInstance.SendMessage("Player", "CallChangeSkin", gameDefaultSkin);
console.log("CallChangeSkin sent >>> ", gameDefaultSkin); // console.log("CallChangeSkin sent >>> ", gameDefaultSkin);
} catch (e) { // } catch (e) {
console.log("Player not ready yet"); // console.log("Player not ready yet");
} // }
} // }
}, delay); // }, delay);
}; // };
sendSkinMsg(2000); // sendSkinMsg(2000);
sendSkinMsg(4000); // sendSkinMsg(4000);
sendSkinMsg(6000); // sendSkinMsg(6000);
this.lastGameDefaultSkin = gameDefaultSkin; // this.lastGameDefaultSkin = gameDefaultSkin;
} // }
} }
}; };

View File

@@ -58,7 +58,7 @@
<button class="pill" type="button">level C</button> <button class="pill" type="button">level C</button>
<button class="pill" type="button">level D</button> <button class="pill" type="button">level D</button>
<button class="pill" type="button">level E</button> <button class="pill" type="button">level E</button>
<!-- <button class="pill" type="button">level F</button> --> <button class="pill" type="button">level F</button>
</div> </div>
</section> </section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -16,6 +16,7 @@
var loadedLevelDbShards = new Set(); var loadedLevelDbShards = new Set();
var levelDbShardPromises = new Map(); var levelDbShardPromises = new Map();
var levelPackPromises = new Map(); var levelPackPromises = new Map();
var bundlePackPromises = new Map();
var loadedLevelIds = new Set(); var loadedLevelIds = new Set();
var levelPrefabsBundlePromise = null; var levelPrefabsBundlePromise = null;
@@ -585,9 +586,24 @@
} catch (e3) { /* ignore */ } } catch (e3) { /* ignore */ }
} }
function markLevelsSharingBundle(bundleName) {
var levels = levelsManifest && levelsManifest.levels;
var id;
if (!levels || !bundleName) return;
for (id in levels) {
if (!Object.prototype.hasOwnProperty.call(levels, id)) continue;
if (levels[id] && levels[id].bundle === bundleName) {
loadedLevelIds.add(String(id));
}
}
}
function ensureLevelPackLoaded(levelId, onProgress) { function ensureLevelPackLoaded(levelId, onProgress) {
levelId = String(levelId); levelId = String(levelId);
if (loadedLevelIds.has(levelId)) return Promise.resolve(); if (loadedLevelIds.has(levelId)) {
if (onProgress) onProgress(1);
return Promise.resolve();
}
if (levelPackPromises.has(levelId)) { if (levelPackPromises.has(levelId)) {
var pending = levelPackPromises.get(levelId); var pending = levelPackPromises.get(levelId);
if (onProgress) pending.then(function () { onProgress(1); }).catch(function () {}); if (onProgress) pending.then(function () { onProgress(1); }).catch(function () {});
@@ -596,14 +612,19 @@
var promise = ensureAssetsCoreLoaded().then(function () { var promise = ensureAssetsCoreLoaded().then(function () {
return ensureLevelsManifestLoaded(); return ensureLevelsManifestLoaded();
}).then(function () { }).then(function () {
if (loadedLevelIds.has(levelId)) return;
if (!levelsManifest || !levelsManifest.levels || !levelsManifest.levels[levelId]) { if (!levelsManifest || !levelsManifest.levels || !levelsManifest.levels[levelId]) {
return Promise.reject(new Error('关卡包未在 manifest 中: Level' + levelId)); return Promise.reject(new Error('关卡包未在 manifest 中: Level' + levelId));
} }
if (!streamingBase) return Promise.reject(new Error('streamingBase 未初始化')); if (!streamingBase) return Promise.reject(new Error('streamingBase 未初始化'));
var entry = levelsManifest.levels[levelId]; var entry = levelsManifest.levels[levelId];
var url = joinUrl(streamingBase, 'aa/WebGL/' + entry.bundle); var bundleName = entry.bundle;
if (bundlePackPromises.has(bundleName)) {
return bundlePackPromises.get(bundleName);
}
var url = joinUrl(streamingBase, 'aa/WebGL/' + bundleName);
dispatchLevelsBundleProgress(0); dispatchLevelsBundleProgress(0);
return fetchBinaryWithProgress( var download = fetchBinaryWithProgress(
url, url,
function (frac) { function (frac) {
dispatchLevelsBundleProgress(frac); dispatchLevelsBundleProgress(frac);
@@ -620,12 +641,17 @@
throw new Error('关卡包解压不完整: Level' + levelId); throw new Error('关卡包解压不完整: Level' + levelId);
} }
} }
loadedLevelIds.add(levelId); markLevelsSharingBundle(bundleName);
return invalidateLevelPrefabsBundle(); return invalidateLevelPrefabsBundle();
}).then(function () { }).then(function () {
dispatchLevelsBundleProgress(1); dispatchLevelsBundleProgress(1);
if (onProgress) onProgress(1); if (onProgress) onProgress(1);
}).catch(function (e) {
bundlePackPromises.delete(bundleName);
throw e;
}); });
bundlePackPromises.set(bundleName, download);
return download;
}).catch(function (e) { }).catch(function (e) {
levelPackPromises.delete(levelId); levelPackPromises.delete(levelId);
throw e; throw e;
@@ -1383,16 +1409,14 @@
throw new Error('catalog.json missing scenes_all/assets_all bundles: ' + names.join(', ')); throw new Error('catalog.json missing scenes_all/assets_all bundles: ' + names.join(', '));
} }
if (!levels) { if (!levels) {
/* levels_all 已废弃,改用 levels-manifest.json 按关分包 */ /* levels_all 已废弃,改用 levels-manifest.json 每 15 关一包 */
} }
return { scenes: scenes, assets: assets, levels: levels, all: names }; return { scenes: scenes, assets: assets, levels: levels, all: names };
} }
function loadLevelsManifest(base) { function loadLevelsManifest(base) {
var manifestUrl = joinUrl(base, 'aa/levels-manifest.json'); var manifestUrl = joinUrl(base, 'aa/levels-manifest.json');
return fetchLevelsDatabaseJson(manifestUrl).then(function (json) { return fetchLevelsDatabaseJson(manifestUrl).catch(function (e) {
return json;
}).catch(function (e) {
console.warn('[mstest5] levels-manifest.json 读取失败', e); console.warn('[mstest5] levels-manifest.json 读取失败', e);
return null; return null;
}); });
@@ -1585,11 +1609,19 @@
} }
var base = resolveStreamingBase(config); var base = resolveStreamingBase(config);
var catalogUrl = joinUrl(base, 'aa/catalog.json'); var catalogUrl = joinUrl(base, 'aa/catalog.json');
var catalogBr = catalogUrl.replace(/\.json(\?.*)?$/i, '.json.br$1');
return origFetch(catalogBr, { cache: 'no-cache' }).then(function (res) {
if (res.ok) return true;
return origFetch(catalogUrl, { cache: 'no-cache' }).then(function (plain) {
return plain.ok;
});
}).catch(function () {
return origFetch(catalogUrl, { cache: 'no-cache' }).then(function (res) { return origFetch(catalogUrl, { cache: 'no-cache' }).then(function (res) {
return res.ok; return res.ok;
}).catch(function () { }).catch(function () {
return false; return false;
}); });
});
} }
global.createUnityInstance = function (canvas, config, onProgress) { global.createUnityInstance = function (canvas, config, onProgress) {

Some files were not shown because too many files have changed in this diff Show More