临时突破增加人物等级上限+1,最高超脱100次,高人一级立于不败!
每日00.00清理所有临时超脱等级,恢复到正常状态等级,请慎重!!!
当前已经超脱:XX 次
每次超脱消耗:女娲石+天宫之锤+钻石 主要是XX 的显示
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-07 18:47:13 |
👁️ 阅读: 10
根据浮生梦老师前端课程内容,要实现这个超脱等级显示功能,可以创建一个界面来展示相关信息。以下是完整的Lua脚本实现:
```lua
-- 创建主窗口
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 设置背景图片
local background = GUI:Image_Create(parent, "bg", 0, 0, "res/public_win32/1900000610.png")
GUI:setPosition(background, 0, 0)
-- 创建标题文本
local title = GUI:Text_Create(parent, "Text_title", 100, 50, 24, "#ff0000", "临时突破系统")
GUI:Text_setFontName(title, "fonts/font5.ttf")
-- 创建描述文本1
local desc1 = GUI:Text_Create(parent, "Text_desc1", 100, 100, 16, "#ffffff",
"临时突破增加人物等级上限+1,最高超脱100次,高人一级立于不败!")
GUI:Text_setFontName(desc1, "fonts/font5.ttf")
-- 创建描述文本2
local desc2 = GUI:Text_Create(parent, "Text_desc2", 100, 130, 16, "#ffff00",
"每日00.00清理所有临时超脱等级,恢复到正常状态等级,请慎重!!!")
GUI:Text_setFontName(desc2, "fonts/font5.ttf")
-- 获取当前超脱次数(从服务端获取)
local currentCount = SL:GetMetaValue("TEMP_BREAK_COUNT", 0) or 0
-- 创建当前超脱次数显示
local countText = GUI:Text_Create(parent, "Text_count", 100, 180, 20, "#00ff00",
"当前已经超脱:" .. currentCount .. " 次")
GUI:Text_setFontName(countText, "fonts/font5.ttf")
-- 创建消耗材料显示
local costText = GUI:Text_Create(parent, "Text_cost", 100, 220, 18, "#ff9900",
"每次超脱消耗:女娲石 + 天宫之锤 + 钻石")
GUI:Text_setFontName(costText, "fonts/font5.ttf")
-- 创建突破按钮
local breakButton = GUI:Button_Create(parent, "btn_break", 150, 280, "res/public_win32/1900000612.png")
GUI:Button_setTitleText(breakButton, "开始突破")
-- 按钮点击事件
GUI:addOnClickEvent(breakButton, function()
-- 检查是否达到上限
if currentCount >= 100 then
SL:Print("已达到最大超脱次数!")
return
end
-- 发送突破请求到服务端
SL:SendMsg("TEMP_BREAK_REQUEST", {count = currentCount + 1})
-- 更新显示
currentCount = currentCount + 1
GUI:Text_setString(countText, "当前已经超脱:" .. currentCount .. " 次")
-- 播放突破动画
local function breakEffect()
SL:Print("突破成功!等级上限+1")
end
GUI:runAction(breakButton,
GUI:ActionSequence(
GUI:ActionScaleTo(0.1, 1.4),
GUI:ActionScaleTo(0.1, 1),
GUI:CallFunc(breakEffect)
)
)
end)
-- 创建关闭按钮
local closeButton = GUI:Button_Create(parent, "btn_close", 400, 50, "res/public_win32/1900000612.png")
GUI:Button_setTitleText(closeButton, "关闭")
GUI:addOnClickEvent(closeButton, function()
if not GUI:Win_IsNull(parent) then
GUI:removeFromParent(parent)
end
end)
-- 添加定时器更新显示(每5秒更新一次)
SL:Schedule(function()
local newCount = SL:GetMetaValue("TEMP_BREAK_COUNT", 0) or 0
if newCount ~= currentCount then
currentCount = newCount
GUI:Text_setString(countText, "当前已经超脱:" .. currentCount .. " 次")
end
end, 5)
```
**功能说明:**
1. **界面布局**:
- 使用`res/public_win32/1900000610.png`作为背景
- 使用`res/public_win32/1900000612.png`作为按钮样式
- 所有文本使用`fonts/font5.ttf`字体
2. **核心功能**:
- 通过`SL:GetMetaValue("TEMP_BREAK_COUNT", 0)`获取当前超脱次数
- 突破按钮点击时发送`SL:SendMsg("TEMP_BREAK_REQUEST")`到服务端
- 按钮点击时有缩放动画效果
3. **数据更新**:
- 使用定时器每5秒从服务端同步一次数据
- 实时更新显示当前超脱次数
4. **注意事项**:
- 突破次数上限为100次
- 每日0点会自动清零(由服务端处理)
- 消耗材料的具体数值需要服务端配置
这个脚本实现了完整的临时突破系统界面,包括数据显示、按钮交互和动画效果。记得在服务端配置好对应的`TEMP_BREAK_COUNT`变量和突破请求处理逻辑。
← 返回问答库