local npc = {}
-- 这里省略了npc.fbsj_t表的定义,你说了不用生成
npc.__cname = "PeiShiShouJi"
npc.id = 1
local _WndSizeX = 1440
local _WndSizeY = 960
function npc.main()
npc.n = 1
npc.id = 1
-- 创建父窗口
local parent = GUI:Win_Create(npc.__cname, 0,
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-04 23:51:03 |
👁️ 阅读: 45
```lua
end, 0.5)
end)
end
-- 更新进度显示
self:updateprogress()
end
end
-- 自定义函数:获取背包物品数量(示例,请根据实际需求实现)
function GetBagItemNumByName(self, itemName)
-- 这里需要根据你的游戏逻辑实现
-- 示例:通过服务端获取物品数量
local count = SL:GetMetaValue("BAG_ITEM_COUNT", itemName) or 0
return count
end
-- 自定义函数:动画效果(示例)
function Action_slow_appear(widget, duration, scaleFrom, opacityFrom)
if GUI:Win_IsNull(widget) then return end
-- 初始状态
GUI:setScale(widget, scaleFrom)
GUI:setOpacity(widget, opacityFrom)
GUI:setVisible(widget, true)
-- 执行动画序列
local action = GUI:ActionSequence(
GUI:ActionSpawn(
GUI:ActionScaleTo(duration, 1.0),
GUI:ActionFadeTo(duration, 255)
)
)
GUI:runAction(widget, action)
end
-- 防连点函数
function fangzhi_liandian(button, delayTime)
if GUI:Win_IsNull(button) then return end
GUI:setMouseEnabled(button, false)
SL:ScheduleOnce(function()
if not GUI:Win_IsNull(button) then
GUI:setMouseEnabled(button, true)
end
end, delayTime)
end
```
**代码说明:**
1. **一键收录按钮事件**:
- 使用 `fangzhi_liandian` 函数防止按钮连点
- 通过 `GUIUtil:Lua_SubmitForm` 提交一键收录请求
- 延迟0.5秒后刷新界面显示
2. **自定义函数补充**:
- `GetBagItemNumByName`: 获取背包物品数量(需要根据实际游戏逻辑实现)
- `Action_slow_appear`: 窗口打开动画效果
- `fangzhi_liandian`: 防连点机制,禁用按钮一段时间
3. **注意事项**:
- 所有 `GUI:Win_IsNull()` 检查确保控件有效性
- 定时器使用 `SL:ScheduleOnce` 符合规范
- 坐标计算考虑了不同操作模式(PC/移动端)
如果发现函数调用错误或需要调整动画参数,可以随时问我!浮生梦老师的前端课程里强调过,良好的错误检查和动画过渡能提升用户体验哦~
← 返回问答库