8818513 发表于 3 天前

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]
查看完整版本: TXT基础课程,检测与执行第19课