TXT基础课程,检测与执行第19课
<h1><a href="https://fanm37t2tx.feishu.cn/minutes/obcnyy17b618f8z33r442c38?from=from_copylink">视频课程</a></h1><h3>游戏脚本检测执行指令实战教案</h3>
<p><strong>课程主题</strong>:游戏脚本检测执行指令解析与实战应用(终章)<br />
<strong>适用对象</strong>:游戏脚本开发进阶学习者(已掌握基础指令)<br />
<strong>课时</strong>:1课时(45分钟)</p>
<hr />
<h3><strong>一、课程目标</strong></h3>
<p>通过本节课学习,掌握游戏中“检测执行”模块剩余核心指令的功能、参数及实际应用场景,能够独立完成以下任务:</p>
<ol>
<li>背包/身上物品检测与操作(如删除、变量设置);</li>
<li>角色状态与战斗功能控制(如Buff添加/检测、战斗力刷新);</li>
<li>多货币关联扣除与等级组锁定;</li>
<li>实战场景中检测指令的综合应用(如任务引导、装备洗练)。</li>
</ol>
<hr />
<h3><strong>二、重点知识讲解</strong></h3>
<h4><strong>模块1:背包与物品检测指令</strong></h4>
<p><strong>1. 检测背包/身上物品(CheckItem系列)</strong></p>
<ul>
<li><strong>功能</strong>:检测背包或角色身上是否存在指定物品(支持通过物品ID或名称)。</li>
<li><strong>核心指令</strong>:
<ul>
<li><code>CheckItemIDX(物品IDX, 背包/身上标识)</code>:检测指定IDX物品是否存在(背包/身上)。</li>
<li><code>CheckItem(物品名称, 数量)</code>:检测指定名称物品是否存在(数量可选)。</li>
</ul>
</li>
<li><strong>特点</strong>:
<ul>
<li>实际开发中更常用<code>CheckItem(名称)</code>,因物品名称比IDX更易维护;</li>
<li><code>CheckBagItemIDX</code>与<code>CheckItemIDX</code>功能重叠,需根据引擎版本选择。</li>
</ul>
</li>
</ul>
<p><strong>2. 删除物品(DeleteItem)</strong></p>
<ul>
<li><strong>功能</strong>:删除背包或身上指定物品(通过IDX或名称)。</li>
<li><strong>指令格式</strong>:<code>DeleteItem(物品IDX/名称, 删除数量)</code>。</li>
<li><strong>返回值</strong>:删除成功返回1,失败返回0(如物品不存在)。</li>
</ul>
<h4><strong>模块2:角色状态与战斗功能控制</strong></h4>
<p><strong>1. 设置角色足迹(SetFootprint)</strong></p>
<ul>
<li><strong>功能</strong>:为角色设置临时足迹特效(需引擎支持对应特效资源)。</li>
<li><strong>指令格式</strong>:<code>SetFootprint(足迹ID, 持续时间)</code>。</li>
<li><strong>注意</strong>:需提前在引擎中配置足迹特效,否则无法生效。</li>
</ul>
<p><strong>2. 添加/检测Buff(AddBuff/HasBuff)</strong></p>
<ul>
<li><strong>功能</strong>:
<ul>
<li><code>AddBuff(BuffID, 持续时间)</code>:为角色添加指定Buff(如魔法盾);</li>
<li><code>HasBuff(BuffID)</code>:检测角色是否携带指定Buff。</li>
</ul>
</li>
<li><strong>实战场景</strong>:技能效果触发(如中毒、加速)、状态免疫判断。</li>
</ul>
<p><strong>3. 战斗力刷新(RefreshFightPower)</strong></p>
<ul>
<li><strong>功能</strong>:强制刷新角色战斗力(配合属性表<code>ATD_Story</code>使用,属性系数影响战力计算)。</li>
<li><strong>指令格式</strong>:<code>RefreshFightPower(0/1)</code>(0=延迟刷新,1=立即刷新)。</li>
</ul>
<h4><strong>模块3:多货币关联与等级控制</strong></h4>
<p><strong>1. 多货币关联扣除(CheckBindMoney)</strong></p>
<ul>
<li><strong>功能</strong>:按优先级扣除绑定货币(如绑定元宝→绑定金币→普通元宝)。</li>
<li><strong>规则</strong>:
<ul>
<li>优先扣除绑定货币(配置字段<code>IServed</code>设置优先级);</li>
<li>绑定货币扣完后,扣除普通货币。</li>
</ul>
</li>
<li><strong>指令</strong>:<code>CheckBindMoney(货币类型, 扣除数量)</code>(仅支持扣除,需配合<code>GetBitMoney</code>检测余额)。</li>
</ul>
<p><strong>2. 等级组锁定(SetLevelLock)</strong></p>
<ul>
<li><strong>功能</strong>:临时锁定角色等级(经验累加但不升级),用于活动或任务限制。</li>
<li><strong>指令格式</strong>:<code>SetLevelLock(等级, 锁定类型)</code>(0=解锁,2=锁定)。</li>
<li><strong>注意</strong>:锁定为临时状态,小退后失效,需在登录触发中重复设置以保持效果。</li>
</ul>
<h4><strong>模块4:装备与变量高级操作</strong></h4>
<p><strong>1. 装备变量设置(SetEquipVariable)</strong></p>
<ul>
<li><strong>功能</strong>:为指定装备设置独立变量(数字/字符型),用于洗练、标记等玩法。</li>
<li><strong>指令格式</strong>:
<ul>
<li>数字型:<code>SetEquipVariable(装备位置, 变量索引, 数值)</code>;</li>
<li>字符型:<code>SetEquipVariableStr(装备位置, 变量索引, 字符串)</code>。</li>
</ul>
</li>
<li><strong>实战场景</strong>:装备洗练(锁定词条后随机生成其他属性)、装备溯源(标记获取途径)。</li>
</ul>
<h4><strong>模块5:其他实用指令</strong></h4>
<p><strong>1. 获取在线角色(GetOnlinePlayersIP)</strong></p>
<ul>
<li><strong>功能</strong>:获取指定IP下所有在线角色名称(用于反外挂或活动统计)。</li>
<li><strong>指令格式</strong>:<code>GetOnlinePlayersIP(IP地址, 结果变量, 长度限制)</code>。</li>
</ul>
<p><strong>2. 字符串处理(DeleteChar/RandomLine)</strong></p>
<ul>
<li><strong>功能</strong>:
<ul>
<li><code>DeleteChar(原字符串, 目标字符, 分隔符)</code>:删除原字符串中所有目标字符;</li>
<li><code>RandomLine(文本ID, 结果变量)</code>:从指定文本块中随机获取一行内容。</li>
</ul>
</li>
<li><strong>应用场景</strong>:任务描述动态生成、随机事件触发。</li>
</ul>
<hr />
<h3><strong>三、实战任务(课后练习)</strong></h3>
<ol>
<li><strong>洗装备玩法实现</strong>:
<ul>
<li>使用<code>BatchAddEquipAttr</code>为武器随机添加3条属性(暴击几率、伤害加成、攻击速度);</li>
<li>结合<code>SetEquipVariable</code>锁定1条属性,允许玩家重新洗练其他属性。</li>
</ul>
</li>
<li><strong>多货币消费场景</strong>:
<ul>
<li>设计“购买稀有道具”功能,优先扣除绑定元宝→绑定金币→普通元宝;</li>
<li>使用<code>CheckBindMoney</code>检测余额,不足时提示玩家充值。</li>
</ul>
</li>
<li><strong>等级组限时活动</strong>:
<ul>
<li>在“限时冲级赛”中,使用<code>SetLevelLock</code>锁定玩家等级(经验累加但不升级);</li>
<li>活动结束后自动解锁(小退后失效,需在登录触发中重置)。</li>
</ul>
</li>
</ol>
<hr />
<h3><strong>四、总结与注意事项</strong></h3>
<ol>
<li><strong>指令性能</strong>:高频触发指令(如入包触发中的<code>SetItemBindRule</code>)需避免滥用,防止服务器卡顿。</li>
<li><strong>引擎依赖</strong>:部分指令(如<code>SetFootprint</code>、<code>AddBuff</code>)需提前在引擎中配置资源或功能开关。</li>
<li><strong>测试验证</strong>:所有指令需在游戏内实际测试(如战斗力刷新需核对属性表系数,多货币扣除需验证优先级)。</li>
<li><strong>异常处理</strong>:删除物品、设置变量等操作需添加错误判断(如物品不存在时提示玩家)。</li>
</ol>
<p><strong>课后思考</strong>:如何利用<code>RandomLine</code>和<code>SetEquipVariable</code>实现“每日随机任务”功能?(提示:从文本块中随机获取任务描述,为玩家装备设置任务标记,完成后解锁奖励。)</p>
页:
[1]