素材 #17

Merged
Ghost merged 1 commits from why_ga into main 2026-09-02 11:36:09 +08:00
10 changed files with 18 additions and 17 deletions
Showing only changes of commit 498487dbdd - Show all commits
Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

+18 -17
View File
@@ -199,6 +199,7 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa
}
.top-icon:hover{background:linear-gradient(135deg, rgba(139,92,246,.28), rgba(74,175,255,.22)); border-color:rgba(139,92,246,.55); color:#fff; transform:translateY(-2px); box-shadow:0 6px 18px rgba(80,120,255,.35);}
.top-icon:active{transform:translateY(0);}
.top-icon img{width:62%;height:62%;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));pointer-events:none;}
.top-icon-badge{
position:absolute; top:-3px; right:-3px; min-width:18px; height:18px; padding:0 5px;
font-size:11px; font-weight:800; color:#fff; background:#ef4444; border-radius:999px;
@@ -948,15 +949,15 @@ body { background: #0a0e17; overflow: hidden; font-family: 'Microsoft YaHei', sa
<!-- 场景悬浮工具条:顶部栏正下方、浮于场景画面上 -->
<div id="sceneToolbar">
<button class="top-icon" id="btnTask" type="button" title="任务">📜</button>
<button class="top-icon" id="btnMall" type="button" title="商城">🛒</button>
<button class="top-icon" id="btnMail" type="button" title="邮箱"><span class="ti-label">✉️</span><span class="top-icon-badge" id="topMailBadge" style="display:none;">0</span></button>
<button class="top-icon" id="btnSettings" type="button" title="设置">⚙️</button>
<button class="top-icon" id="btnWebsite" type="button" title="官网">🌐</button>
<button class="top-icon" id="btnNotice" type="button" title="公告">📢</button>
<button class="top-icon" id="btnRank" type="button" title="排行榜">🏅</button>
<button class="top-icon" id="btnCalendar" type="button" title="日历">📅</button>
<button class="top-icon" id="btnAuction" type="button" title="拍卖行">🔨</button>
<button class="top-icon" id="btnTask" type="button" title="任务"><img src="assets/icons/task.png?v=1" alt="任务"></button>
<button class="top-icon" id="btnMall" type="button" title="商城"><img src="assets/icons/shop.png?v=3" alt="商城"></button>
<button class="top-icon" id="btnMail" type="button" title="邮箱"><span class="ti-label"><img src="assets/icons/mail.png?v=1" alt="邮箱"></span><span class="top-icon-badge" id="topMailBadge" style="display:none;">0</span></button>
<button class="top-icon" id="btnSettings" type="button" title="设置"><img src="assets/icons/settings.png?v=1" alt="设置"></button>
<button class="top-icon" id="btnWebsite" type="button" title="官网"><img src="assets/icons/website.png?v=1" alt="官网"></button>
<button class="top-icon" id="btnNotice" type="button" title="公告"><img src="assets/icons/notice.png?v=1" alt="公告"></button>
<button class="top-icon" id="btnRank" type="button" title="排行榜"><img src="assets/icons/rank.png?v=1" alt="排行榜"></button>
<button class="top-icon" id="btnCalendar" type="button" title="日历"><img src="assets/icons/calendar.png?v=1" alt="日历"></button>
<button class="top-icon" id="btnAuction" type="button" title="拍卖行"><img src="assets/icons/auction.png?v=1" alt="拍卖行"></button>
</div>
<!-- 主沙盘底部功能框架(世界等级经验条置于最右侧) -->
@@ -2352,7 +2353,7 @@ async function openTaskPanel() {
await emitTaskEvent('panel_opened');
const body = `<div id="taskPanelBody">${renderTaskPanel()}</div>
<div style="text-align:center;color:#66788a;font-size:12px;margin-top:10px;">完成主线任务可获经验与金币,推动世界成长。</div>`;
openAppModal('📜 任务', body);
openAppModal('任务', body);
// 绑定领取按钮(setTimeout 等待 modal 注入 DOM)
setTimeout(() => {
document.querySelectorAll('.task-claim-btn').forEach(btn => {
@@ -7674,23 +7675,23 @@ if (typeof fitWorld === 'function') fitWorld();
if (btnTask) btnTask.addEventListener('click', () => { openTaskPanel(); });
const btnMall = document.getElementById('btnMall');
if (btnMall) btnMall.addEventListener('click', () => {
openAppModal('🛒 商城', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">商城系统即将开放<br><br>可购买皮肤、道具、加速器与会员服务。</div>');
openAppModal('商城', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">商城系统即将开放<br><br>可购买皮肤、道具、加速器与会员服务。</div>');
});
const btnNotice = document.getElementById('btnNotice');
if (btnNotice) btnNotice.addEventListener('click', () => {
openAppModal('📢 公告', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">公告系统即将开放<br><br>运营活动、版本更新与维护通知将在此集中展示,重要公告带红点提醒。</div>');
openAppModal('公告', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">公告系统即将开放<br><br>运营活动、版本更新与维护通知将在此集中展示,重要公告带红点提醒。</div>');
});
const btnRank = document.getElementById('btnRank');
if (btnRank) btnRank.addEventListener('click', () => {
openAppModal('🏅 排行榜', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">排行榜即将开放<br><br>世界等级、财富与成就榜单,激励你冲榜。</div>');
openAppModal('排行榜', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">排行榜即将开放<br><br>世界等级、财富与成就榜单,激励你冲榜。</div>');
});
const btnCalendar = document.getElementById('btnCalendar');
if (btnCalendar) btnCalendar.addEventListener('click', () => {
openAppModal('📅 日历', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">世界日历即将开放<br><br>限时副本、公会战与世界事件时间一目了然。</div>');
openAppModal('日历', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">世界日历即将开放<br><br>限时副本、公会战与世界事件时间一目了然。</div>');
});
const btnAuction = document.getElementById('btnAuction');
if (btnAuction) btnAuction.addEventListener('click', () => {
openAppModal('🔨 拍卖行', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">拍卖行即将开放<br><br>玩家之间自由交易道具、材料与稀有素材。</div>');
openAppModal('拍卖行', '<div style="text-align:center;padding:24px;color:#8899aa;font-size:13px;">拍卖行即将开放<br><br>玩家之间自由交易道具、材料与稀有素材。</div>');
});
// 通用弹窗
@@ -7774,7 +7775,7 @@ if (typeof fitWorld === 'function') fitWorld();
const btnSettings = document.getElementById('btnSettings');
if (btnSettings) btnSettings.addEventListener('click', () => {
const bgmEnabled = loadWorldBGMSetting();
openAppModal('⚙️ 设置', `
openAppModal('设置', `
<div class="settingRow"><span>背景音乐</span><span class="toggleSwitch${bgmEnabled ? ' active' : ''}" id="bgmToggle"></span></div>
<div class="settingRow"><span>音效</span><span class="toggleSwitch active" id="sfxToggle"></span></div>
<div class="settingRow"><span>通知推送</span><span class="toggleSwitch active" id="notifyToggle"></span></div>
@@ -7830,7 +7831,7 @@ if (typeof fitWorld === 'function') fitWorld();
// 邮件(从 API.mails() 动态取值)
const btnMail = document.getElementById('btnMail');
if (btnMail) btnMail.addEventListener('click', async () => {
openAppModal('✉️ 邮件', '<div style="text-align:center;padding:20px;color:#8899aa;font-size:13px;">加载中…</div>');
openAppModal('邮件', '<div style="text-align:center;padding:20px;color:#8899aa;font-size:13px;">加载中…</div>');
let mails = [];
try {
const resp = await API.mails();