TXT实战课程,签到系统
<h1><a href="https://fanm37t2tx.feishu.cn/minutes/obcn32m331e57m9r87836o21?from=from_copylink">视频课程</a></h1><h3>游戏签到奖励系统开发教案(30天签到+连续签到功能)</h3>
<hr />
<h4><strong>课程主题</strong>:游戏签到奖励系统开发(30天签到+连续签到功能)</h4>
<p><strong>适用对象</strong>:已掌握基础脚本编写、UI界面搭建及变量存储的游戏开发者(需熟悉CSV读表、容器布局、事件触发等基础操作)<br />
<strong>课时</strong>:1课时(45分钟)</p>
<hr />
<h3><strong>一、课程目标</strong></h3>
<p>通过本节课学习,掌握游戏中“30天签到奖励系统”的全流程开发方法,能够独立完成以下任务:</p>
<ol>
<li>搭建30天签到界面(含日期显示、奖励预览、已签到状态标记);</li>
<li>编写脚本实现签到逻辑(判断是否已签到、发放奖励、记录签到状态);</li>
<li>实现连续签到功能(统计连续签到天数、发放额外奖励);</li>
<li>处理补签功能(弹窗提示、扣除元宝、补签操作);</li>
<li>排查界面布局、变量作用域、读表错误等常见问题。</li>
</ol>
<hr />
<h3><strong>二、重点知识讲解</strong></h3>
<h4><strong>模块1:签到界面搭建</strong></h4>
<p><strong>1. 界面结构设计</strong></p>
<ul>
<li><strong>核心容器</strong>:使用“列表容器”作为主框架(尺寸建议:宽580,高330),内部嵌套“基础容器”用于布局签到项;</li>
<li><strong>签到项布局</strong>:每个签到项包含日期文本(如“第1天”)、奖励预览(物品图标+数量)、已签到状态标记(如“已完成”图标);</li>
<li><strong>坐标调整</strong>:通过循环计算每个签到项的X/Y坐标(如每行6个,X坐标=10+80×列索引,Y坐标=10+120×行索引),确保排列整齐。</li>
</ul>
<p><strong>2. UI元素配置</strong></p>
<ul>
<li><strong>日期文本</strong>:绑定CSV表中“天数”列(如第1天→第30天);</li>
<li><strong>奖励预览</strong>:从物品表(item)读取奖励ID、名称、数量,通过“物品框”组件显示;</li>
<li><strong>已签到标记</strong>:使用“图片组件”,默认隐藏,签到后显示“已完成”图标(如“check.png”)。</li>
</ul>
<h4><strong>模块2:签到脚本逻辑</strong></h4>
<p><strong>1. 初始化与读表</strong></p>
<ul>
<li><strong>全局变量声明</strong>:使用T变量(如T90)存储签到状态(主键为天数,值为“已签到”);使用U变量(如U90)存储连续签到次数;</li>
<li><strong>读表逻辑</strong>:在<code>loading</code>触发中读取CSV表(签到奖励表),获取30天的奖励配置(物品ID、数量);</li>
<li><strong>状态校验</strong>:进入签到界面时,通过<code>GetVariableValue</code>获取T90中当前天数的签到状态,判断是否已签到(提示“已签到”或允许操作)。</li>
</ul>
<p><strong>2. 签到核心逻辑</strong></p>
<ul>
<li><strong>点击签到触发</strong>:为“签到按钮”绑定<code>OnClick</code>事件,参数为当前天数(如点击第5天,参数=5);</li>
<li><strong>条件判断</strong>:
<ul>
<li>若当前天数>开服天数(通过常量<code>开服day</code>判断),提示“未到签到时间”;</li>
<li>若已签到(T90中存在记录),提示“今日已签到”;</li>
<li>否则,发放奖励(<code>GiveItem</code>),并记录签到状态(<code>SetVariableValue(T90, 天数, "已签到")</code>)。</li>
</ul>
</li>
</ul>
<p><strong>3. 连续签到逻辑</strong></p>
<ul>
<li><strong>连续签到判断</strong>:点击签到后,获取前一天(参数-1)的签到状态(T90中查询);</li>
<li><strong>连续签到计数</strong>:若前一天已签到,U90(连续签到次数)+1;否则重置U90=1;</li>
<li><strong>连续奖励发放</strong>:若U90达到目标值(如2天、5天、12天),发放额外奖励(从连续奖励表读取),并标记奖励已领取(T90记录“连续签到第X天已领取”)。</li>
</ul>
<h4><strong>模块3:补签功能实现</strong></h4>
<p><strong>1. 补签触发</strong>:在签到界面添加“补签”按钮,点击后弹出确认窗口(<code>ShowMessage</code>);<br />
<strong>2. 条件校验</strong>:</p>
<ul>
<li>检查当前天数是否≤开服天数(避免补签未来天数);</li>
<li>检查是否已补签过(T90记录“第X天已补签”);</li>
<li>检查元宝是否足够(<code>CheckMoney(元宝, 50)</code>);<br />
<strong>3. 补签操作</strong>:</li>
<li>扣除元宝(<code>ChangeMoney(元宝, -50)</code>);</li>
<li>发放当日奖励(<code>GiveItem</code>);</li>
<li>记录补签状态(<code>SetVariableValue(T90, 天数, "已补签")</code>);</li>
<li>刷新界面(重新加载签到项状态)。</li>
</ul>
<h4><strong>模块4:常见问题与排查</strong></h4>
<table>
<thead>
<tr>
<th>问题现象</th>
<th>可能原因</th>
<th>解决方法</th>
</tr>
</thead>
<tbody>
<tr>
<td>签到项排列错乱</td>
<td>容器尺寸过小/坐标计算错误</td>
<td>调整列表容器尺寸(如宽600),重新计算X/Y坐标(每行6个,X=10+80×列索引)</td>
</tr>
<tr>
<td>签到状态未保存</td>
<td>T变量未正确设置主键/值</td>
<td>检查<code>SetVariableValue</code>参数(主键=天数,值=“已签到”)</td>
</tr>
<tr>
<td>连续签到次数未累加</td>
<td>未获取前一天签到状态(T90查询错误)</td>
<td>确认前一天参数(参数-1)是否正确,检查T90中是否存在前一天记录</td>
</tr>
<tr>
<td>补签弹窗无响应</td>
<td><code>ShowMessage</code>指令参数错误(如按钮文本未设置)</td>
<td>检查弹窗参数(标题、内容、确认/取消按钮文本)</td>
</tr>
</tbody>
</table>
<hr />
<h3><strong>三、实战任务(课后练习)</strong></h3>
<ol>
<li><strong>基础签到功能</strong>:
<ul>
<li>搭建30天签到界面(含日期、奖励预览、已签到标记);</li>
<li>编写脚本实现签到逻辑(发放奖励、记录状态、判断是否已签到)。</li>
</ul>
</li>
<li><strong>连续签到功能</strong>:
<ul>
<li>统计连续签到天数(U90变量);</li>
<li>达到目标连续天数(如2天、5天)时发放额外奖励。</li>
</ul>
</li>
<li><strong>补签功能</strong>:
<ul>
<li>添加补签按钮,实现弹窗确认;</li>
<li>校验元宝是否足够,扣除元宝后补签并刷新界面。</li>
</ul>
</li>
</ol>
<hr />
<h3><strong>四、总结与注意事项</strong></h3>
<ol>
<li><strong>核心规则</strong>:
<ul>
<li>签到状态需通过T变量长期存储(主键为天数,值为“已签到”/“已补签”);</li>
<li>连续签到次数通过U变量动态更新(每次签到时检查前一天状态);</li>
<li>界面布局需提前计算容器尺寸与坐标,避免元素重叠或错位。</li>
</ul>
</li>
<li><strong>优化建议</strong>:
<ul>
<li>使用“九宫格”优化图片显示(避免拉伸失真);</li>
<li>封装通用函数(如<code>CheckSignInStatus(day)</code>),减少重复代码;</li>
<li>测试时使用“范围刷怪”工具模拟多玩家场景,验证签到逻辑稳定性。</li>
</ul>
</li>
</ol>
<p><strong>课后思考</strong>:如何实现“累计签到奖励”(如累计签到10天送稀有道具)?(提示:新增T变量记录累计天数,达到阈值时触发奖励发放。)</p>
页:
[1]