找回密码
 立即注册
    查看: 8|回复: 0

    TXT实战课程,签到系统

    [复制链接]

    71

    主题

    2

    回帖

    325

    积分

    积分
    325
    发表于 昨天 09:56 AM | 显示全部楼层 |阅读模式

    视频课程

    游戏签到奖励系统开发教案(30天签到+连续签到功能)


    ​课程主题​​:游戏签到奖励系统开发(30天签到+连续签到功能)

    ​适用对象​​:已掌握基础脚本编写、UI界面搭建及变量存储的游戏开发者(需熟悉CSV读表、容器布局、事件触发等基础操作)
    ​课时​​:1课时(45分钟)


    ​一、课程目标​

    通过本节课学习,掌握游戏中“30天签到奖励系统”的全流程开发方法,能够独立完成以下任务:

    1. 搭建30天签到界面(含日期显示、奖励预览、已签到状态标记);
    2. 编写脚本实现签到逻辑(判断是否已签到、发放奖励、记录签到状态);
    3. 实现连续签到功能(统计连续签到天数、发放额外奖励);
    4. 处理补签功能(弹窗提示、扣除元宝、补签操作);
    5. 排查界面布局、变量作用域、读表错误等常见问题。

    ​二、重点知识讲解​

    ​模块1:签到界面搭建​

    ​1. 界面结构设计​

    • ​核心容器​​:使用“列表容器”作为主框架(尺寸建议:宽580,高330),内部嵌套“基础容器”用于布局签到项;
    • ​签到项布局​​:每个签到项包含日期文本(如“第1天”)、奖励预览(物品图标+数量)、已签到状态标记(如“已完成”图标);
    • ​坐标调整​​:通过循环计算每个签到项的X/Y坐标(如每行6个,X坐标=10+80×列索引,Y坐标=10+120×行索引),确保排列整齐。

    ​2. UI元素配置​

    • ​日期文本​​:绑定CSV表中“天数”列(如第1天→第30天);
    • ​奖励预览​​:从物品表(item)读取奖励ID、名称、数量,通过“物品框”组件显示;
    • ​已签到标记​​:使用“图片组件”,默认隐藏,签到后显示“已完成”图标(如“check.png”)。

    ​模块2:签到脚本逻辑​

    ​1. 初始化与读表​

    • ​全局变量声明​​:使用T变量(如T90)存储签到状态(主键为天数,值为“已签到”);使用U变量(如U90)存储连续签到次数;
    • ​读表逻辑​​:在loading触发中读取CSV表(签到奖励表),获取30天的奖励配置(物品ID、数量);
    • ​状态校验​​:进入签到界面时,通过GetVariableValue获取T90中当前天数的签到状态,判断是否已签到(提示“已签到”或允许操作)。

    ​2. 签到核心逻辑​

    • ​点击签到触发​​:为“签到按钮”绑定OnClick事件,参数为当前天数(如点击第5天,参数=5);
    • ​条件判断​​:
      • 若当前天数>开服天数(通过常量开服day判断),提示“未到签到时间”;
      • 若已签到(T90中存在记录),提示“今日已签到”;
      • 否则,发放奖励(GiveItem),并记录签到状态(SetVariableValue(T90, 天数, "已签到"))。

    ​3. 连续签到逻辑​

    • ​连续签到判断​​:点击签到后,获取前一天(参数-1)的签到状态(T90中查询);
    • ​连续签到计数​​:若前一天已签到,U90(连续签到次数)+1;否则重置U90=1;
    • ​连续奖励发放​​:若U90达到目标值(如2天、5天、12天),发放额外奖励(从连续奖励表读取),并标记奖励已领取(T90记录“连续签到第X天已领取”)。

    ​模块3:补签功能实现​

    ​1. 补签触发​​:在签到界面添加“补签”按钮,点击后弹出确认窗口(ShowMessage);
    ​2. 条件校验​​:

    • 检查当前天数是否≤开服天数(避免补签未来天数);
    • 检查是否已补签过(T90记录“第X天已补签”);
    • 检查元宝是否足够(CheckMoney(元宝, 50));
      ​3. 补签操作​​:
    • 扣除元宝(ChangeMoney(元宝, -50));
    • 发放当日奖励(GiveItem);
    • 记录补签状态(SetVariableValue(T90, 天数, "已补签"));
    • 刷新界面(重新加载签到项状态)。

    ​模块4:常见问题与排查​

    问题现象 可能原因 解决方法
    签到项排列错乱 容器尺寸过小/坐标计算错误 调整列表容器尺寸(如宽600),重新计算X/Y坐标(每行6个,X=10+80×列索引)
    签到状态未保存 T变量未正确设置主键/值 检查SetVariableValue参数(主键=天数,值=“已签到”)
    连续签到次数未累加 未获取前一天签到状态(T90查询错误) 确认前一天参数(参数-1)是否正确,检查T90中是否存在前一天记录
    补签弹窗无响应 ShowMessage指令参数错误(如按钮文本未设置) 检查弹窗参数(标题、内容、确认/取消按钮文本)

    ​三、实战任务(课后练习)​

    1. ​基础签到功能​​:
      • 搭建30天签到界面(含日期、奖励预览、已签到标记);
      • 编写脚本实现签到逻辑(发放奖励、记录状态、判断是否已签到)。
    2. ​连续签到功能​​:
      • 统计连续签到天数(U90变量);
      • 达到目标连续天数(如2天、5天)时发放额外奖励。
    3. ​补签功能​​:
      • 添加补签按钮,实现弹窗确认;
      • 校验元宝是否足够,扣除元宝后补签并刷新界面。

    ​四、总结与注意事项​

    1. ​核心规则​​:
      • 签到状态需通过T变量长期存储(主键为天数,值为“已签到”/“已补签”);
      • 连续签到次数通过U变量动态更新(每次签到时检查前一天状态);
      • 界面布局需提前计算容器尺寸与坐标,避免元素重叠或错位。
    2. ​优化建议​​:
      • 使用“九宫格”优化图片显示(避免拉伸失真);
      • 封装通用函数(如CheckSignInStatus(day)),减少重复代码;
      • 测试时使用“范围刷怪”工具模拟多玩家场景,验证签到逻辑稳定性。

    ​课后思考​​:如何实现“累计签到奖励”(如累计签到10天送稀有道具)?(提示:新增T变量记录累计天数,达到阈值时触发奖励发放。)

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则