找回密码
 register
搜索
查看: 33|回复: 0

FeelFeedBack800 七日登录活动改期教程

[复制链接]
  • 打卡等级:本地老炮
  • 打卡总天数:565
  • 打卡月天数:1
  • 打卡总奖励:562
  • 最近打卡:2026-08-01 01:11:19
Waylee 发表于 2026-7-23 10:43 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

适用范围

本文适用于复用既有 FeelFeedBack800 七日登录 UI、仅调整活动日期的场景。

当前服务端脚本:

服务端/ubuntu/tlbb/services/scripts/Reward/FeelFeedBack800.lua

活动脚本 ID 为 792012。客户端界面通过服务端 UI 指令接收活动最后日期,因此日期调整不需要修改客户端文件。

结论

只改活动时间、奖励内容不变时,只需修改服务端 FeelFeedBack800.lua 顶部的四个常量:

local ACTIVITY_VERSION = 260723
local ACTIVITY_START_TIME = os.time({ year = 2026, month = 7, day = 23, hour = 0, min = 0, sec = 0 })
local ACTIVITY_END_TIME = os.time({ year = 2026, month = 7, day = 30, hour = 0, min = 0, sec = 0 })
local ACTIVITY_LAST_DAY = 20260729

不需要修改:

  • 客户端/Interface/FeelFeedBack800/FeelFeedBack800.lua
  • services/scripts/scripts.lua 的脚本注册
  • services/scripts/obj/item/FeelFeedBack800Gift.lua

日期规则

活动开启判断为:

now >= ACTIVITY_START_TIME and now < ACTIVITY_END_TIME

这是半开区间。若活动希望覆盖 开始日结束日 的完整自然日,ACTIVITY_END_TIME 必须写为结束日的下一天零点。

目标活动日期 ACTIVITY_START_TIME ACTIVITY_END_TIME ACTIVITY_LAST_DAY
2026-07-23 至 2026-07-29 2026-07-23 00:00:00 2026-07-30 00:00:00 20260729

不要把结束时间写成 2026-07-29 00:00:00,否则 7 月 29 日全天都会关闭活动。

四个常量的职责

常量 用途 改期要求
ACTIVITY_VERSION 区分活动期次,并隔离玩家旧的登录天数和领奖记录 每一期使用新的唯一值,建议 YYMMDD,例如 260723
ACTIVITY_START_TIME 开放的起始时刻 通常写活动首日 00:00:00
ACTIVITY_END_TIME 开放的排他结束时刻 写最后一天的下一日 00:00:00
ACTIVITY_LAST_DAY 下发给 UI 的展示截止日期 YYYYMMDD,例如 20260729

ACTIVITY_VERSION 不能省略。登录天数记录在任务数据槽 137,领奖状态在槽 136;版本变化后,ResetOldActivityData() 会清空旧期数据,避免上一期的领取记录影响新一期。

客户端 UI 为什么不需要改日期

服务端 OnOpenMainWindow() 通过 UI 指令 79201202 下发:

self:UICommand_AddInt(1)
self:UICommand_AddInt(nTime)
self:UICommand_AddInt(nLingQu)
self:UICommand_AddInt(ACTIVITY_LAST_DAY)
self:DispatchUICommand(selfId, 79201202)

客户端 FeelFeedBack800_OnEvent() 读取第 4 个参数,拆出月、日后显示:

g_FeelFeedBack800_MD_LastDay = Get_XParam_INT(3)
local nMDLast = math.mod(g_FeelFeedBack800_MD_LastDay, 10000)
local nMDMonth = math.floor(nMDLast / 100)
local nMDMDay = math.mod(nMDLast, 100)
FeelFeedBack800_Text2:SetText(ScriptGlobal_Format("#{QRDL_20211229_18}", nMDMonth, nMDMDay))

因此客户端没有写死本期的具体日期。服务端改好 ACTIVITY_LAST_DAY 后,玩家重新打开活动窗口即可看到新日期。

改奖励时的额外要求

本教程的“只改一个服务端文件”结论只适用于改期,不适用于改奖励。

  • 服务端 g_FeelFeedBack800_PrizeList 决定实际发放的物品和数量。
  • 客户端 g_FeelFeedBack800_PrizeList 决定界面显示的物品和数量。

修改奖励时,两端都要同步,否则玩家看到的奖励可能与实际获得的奖励不同。客户端文件仅在奖励、图标数量、界面布局或文案需要调整时才需要改动;单纯改日期不要修改客户端。

上线步骤

  1. 修改四个活动常量。
  2. 用 Lua 编译器执行语法检查:
luac -p services/scripts/Reward/FeelFeedBack800.lua
  1. 通过现有脚本热重载机制重载 FeelFeedBack800,或重启相应服务。
  2. 使用活动期间角色重新打开活动界面,确认截止日期显示为预期日期。
  3. 用未参与过本期的角色确认首次登录计为第 1 天;用上一期已有记录的角色确认数据已按新版本重置。
  4. 在结束日当天确认活动仍可领取,并在次日 00:00 后确认活动关闭。

常见错误

现象 原因 修复
最后一天零点后活动就关闭 ACTIVITY_END_TIME 写成最后一天零点 改为下一天零点
新一期仍显示旧领奖状态 没有修改 ACTIVITY_VERSION 使用新的唯一版本号
UI 日期没刷新 脚本未重载,或玩家未重新打开窗口 重载脚本并重新打开窗口
UI 显示奖励与实际发奖不同 只改了服务端或客户端其中一侧奖励表 修改奖励时同步两端表
您需要登录后才可以回帖 登录 | register

本版积分规则

QQ|手机版|雪舞知识库 ( 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 )|天天打卡

GMT+8, 2026-8-3 14:08 , Processed in 0.072881 second(s), 29 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表