TXT基础课程,检测与执行第3课_____2025年7月11日
<h1><a href="https://fanm37t2tx.feishu.cn/minutes/obcnlqem9e9285qj9pk3pc7m?from=from_copylink">视频课程</a></h1><h3>《传奇引擎脚本开发——检测与执行(第三课)》教案</h3>
<hr />
<h4><strong>一、课程基本信息</strong></h4>
<ul>
<li><strong>课程名称</strong>:传奇引擎脚本开发——检测与执行(第三课)</li>
<li><strong>授课对象</strong>:传奇引擎脚本初学者(具备基础语法知识)</li>
<li><strong>课时</strong>:90分钟</li>
<li><strong>教学目标</strong>:
<ol>
<li>掌握按权重分配随机字符串的指令及应用场景;</li>
<li>学会使用批量检测与操作物品的指令(<code>check items</code>、<code>text</code>);</li>
<li>理解循环指令(<code>while</code>)的逻辑与变量控制,掌握列表容器的挂载与应用;</li>
<li>能结合循环、容器与CSV表格实现批量功能(如地图传送按钮)。</li>
</ol>
</li>
</ul>
<h4><strong>二、教学重难点</strong></h4>
<ul>
<li><strong>重点</strong>:
<ul>
<li>按权重分配随机字符串的指令参数与计算逻辑;</li>
<li>批量检测指令(<code>check items</code>)的参数含义与实际应用;</li>
<li>循环指令(<code>while</code>)的结构与变量初始化/清空;</li>
<li>列表容器的挂载与循环生成批量按钮的方法。</li>
</ul>
</li>
<li><strong>难点</strong>:
<ul>
<li>权重分配中“总权重”与“随机范围”的计算关系;</li>
<li>循环指令中变量的作用域与传参逻辑(如按钮点击时传递循环变量值);</li>
<li>结合CSV表格与循环容器实现动态功能(如地图传送)的流程设计。</li>
</ul>
</li>
</ul>
<h4><strong>三、教学准备</strong></h4>
<ul>
<li>软件:传奇引擎编辑器(如M2引擎)、VSCode(用于脚本编写与调试);</li>
<li>示例文件:CSV表格(含地图ID与名称)、批量物品检测脚本模板、循环按钮生成脚本模板;</li>
<li>教学PPT:包含指令语法图解、参数说明、流程示意图。</li>
</ul>
<h4><strong>四、教学过程</strong></h4>
<hr />
<h5><strong>1. 导入(10分钟)</strong></h5>
<ul>
<li><strong>回顾旧知</strong>:提问学生上节课内容(脚本命令讲解、CSV表格读取),确认学生对<code>read csv</code>、<code>split string</code>等指令的掌握情况。</li>
<li><strong>引入新课</strong>:通过实际需求引出本课主题:
<ul>
<li>场景1:游戏抽奖(按概率分配奖品)→ 需要“按权重随机字符串”;</li>
<li>场景2:批量发放奖励(检测背包是否有多个物品)→ 需要“批量检测指令”;</li>
<li>场景3:动态生成界面(如100个地图传送按钮)→ 需要“循环+容器”。</li>
</ul>
</li>
</ul>
<h5><strong>2. 新授(50分钟)</strong></h5>
<h6><strong>2.1 按权重分配随机字符串(20分钟)</strong></h6>
<ul>
<li><strong>指令语法</strong>:
<pre><code>getrandomstr(字符串#权重,分割符,随机范围参数,显示控制参数,剩余字符串存储变量)
</code></pre>
</li>
<li><strong>参数详解</strong>(结合PPT图解):
<ul>
<li><code>字符串#权重</code>:待分配的字符串与对应权重(如“测试1#2000#测试2#1000#测试3#5000”);</li>
<li><code>分割符</code>:分隔字符串与权重的符号(默认<code>#</code>);</li>
<li><code>随机范围参数</code>(0~1):
<ul>
<li><code>0</code>:等概率(每个字符串概率=1/总数量);</li>
<li><code>1</code>:按权重比例(总权重=各权重之和,随机数落在权重区间内);</li>
</ul>
</li>
<li><code>显示控制参数</code>(0~3):控制是否显示权重值(0-显示,1-不显示参数4,2-不显示参数5,3-参数4不显示、参数5显示);</li>
<li><code>剩余字符串存储变量</code>:未选中部分的字符串(如总字符串为“a#10#b#20”,选中“a”则剩余“b#20”)。</li>
</ul>
</li>
<li><strong>实践演示</strong>(教师操作):
<ul>
<li>编写脚本测试不同权重下的概率(如“木剑#90#屠龙#2#裁决#8”,总权重100);</li>
<li>展示<code>显示控制参数=0</code>时输出“木剑#90”,参数=3时仅输出“木剑”;</li>
<li>总结应用场景:抽奖、开宝箱、回收物品等概率性功能。</li>
</ul>
</li>
</ul>
<h6><strong>2.2 批量检测与操作物品(15分钟)</strong></h6>
<ul>
<li><strong>指令1:批量检测物品(<code>check items</code>)</strong>
<ul>
<li>语法:<code>check items(物品名称#数量#分割符,检测类型)</code>;</li>
<li>参数说明:
<ul>
<li>物品名称:支持道具名或ID(需配合参数<code>0</code>/<code>1</code>,默认道具名);</li>
<li>数量:检测的最小数量;</li>
<li>分割符:分隔多个物品的符号(默认<code>#</code>);</li>
<li>检测类型(可选):<code>0</code>(不检测绑定)、<code>1</code>(检测非绑定)、<code>2</code>(检测绑定)。</li>
</ul>
</li>
<li>示例:<code>check items(乌木剑#5#魔血石#2,0)</code> → 检测背包是否有至少5个乌木剑和2个魔血石(非绑定)。</li>
</ul>
</li>
<li><strong>指令2:批量扣除物品(<code>text</code>)</strong>
<ul>
<li>语法:<code>text(物品名称#数量#分割符)</code>;</li>
<li>作用:批量扣除背包内指定数量的物品(避免使用<code>take</code>多次导致服务器压力)。</li>
</ul>
</li>
<li><strong>实践演示</strong>(学生动手):
<ul>
<li>编写脚本检测背包是否有“乌木剑#5”,若有则提示“背包有5个乌木剑”;</li>
<li>使用<code>text</code>指令扣除5个乌木剑,观察背包变化。</li>
</ul>
</li>
</ul>
<h6><strong>2.3 循环与容器结合使用(15分钟)</strong></h6>
<ul>
<li><strong>循环指令(<code>while</code>)</strong>:
<ul>
<li>语法:<code>while(变量 操作符 数值){循环体}</code>;</li>
<li>关键点:循环前需初始化变量(如<code>set N0 0</code>),避免无限循环;循环体内需更新变量(如<code>inc N0 1</code>)。</li>
</ul>
</li>
<li><strong>列表容器(<code>list container</code>)</strong>:
<ul>
<li>作用:批量管理同类型元素(如按钮、图标),减少重复代码;</li>
<li>挂载方式:通过<code>mount id</code>参数绑定循环变量(如<code>mount N0</code>,N0为循环变量)。</li>
</ul>
</li>
<li><strong>实践演示(地图传送按钮)</strong>:
<ul>
<li>步骤1:创建CSV表格(列1:地图ID,列2:地图名称);</li>
<li>步骤2:读取表格最大行数(<code>get csv row count</code>);</li>
<li>步骤3:循环生成按钮(<code>while(N0 < 行数){创建按钮,挂载N0}</code>);</li>
<li>步骤4:按钮点击事件(传参<code>N0</code>,读取表格对应行,传送至地图ID)。</li>
<li>学生观察:点击不同按钮时,打印对应的地图ID(验证传参逻辑)。</li>
</ul>
</li>
</ul>
<h5><strong>3. 巩固练习(15分钟)</strong></h5>
<ul>
<li><strong>任务1</strong>:使用<code>getrandomstr</code>实现“抽奖箱”(权重:一等奖#10,二等奖#30,三等奖#60),输出中奖结果及剩余字符串。</li>
<li><strong>任务2</strong>:编写脚本检测背包是否有“屠龙刀#1”(绑定),若有则批量扣除并提示“成功扣除绑定屠龙刀”。</li>
<li><strong>任务3</strong>:结合循环与列表容器生成5个按钮(显示“地图1”~“地图5”),点击按钮时打印对应地图名称(使用CSV表格存储地图数据)。</li>
</ul>
<h5><strong>4. 总结(5分钟)</strong></h5>
<ul>
<li>回顾核心知识点:
<ul>
<li>权重分配的核心是“总权重”与“随机范围”的计算;</li>
<li>批量指令(<code>check items</code>、<code>text</code>)提升脚本效率;</li>
<li>循环+容器是实现动态界面的关键(减少重复代码)。</li>
</ul>
</li>
<li>强调易错点:
<ul>
<li>循环变量需初始化并更新,避免死循环;</li>
<li>传参时注意变量作用域(循环内变量需通过参数传递到外部事件)。</li>
</ul>
</li>
</ul>
<h4><strong>五、作业布置</strong></h4>
<ul>
<li><strong>基础题</strong>:使用<code>getrandomstr</code>实现“装备掉落”(权重:普通装备#80,稀有装备#15,传说装备#5),输出掉落结果。</li>
<li><strong>进阶题</strong>:结合循环、列表容器与CSV表格,生成10个按钮(显示“任务1”~“任务10”),点击按钮时打印对应任务名称(CSV表格存储任务ID与名称)。</li>
</ul>
<h4><strong>六、教学反思(课后填写)</strong></h4>
<ul>
<li>学生对权重分配的计算逻辑是否理解?是否需要补充示例?</li>
<li>循环与容器的结合是否清晰?学生能否独立完成动态按钮生成?</li>
<li>作业难度是否适中?是否需要提供更多模板代码?</li>
</ul>
<hr />
<p><strong>备注</strong>:本教案可根据学生实际水平调整实践环节难度,重点关注学生对指令参数与逻辑流程的理解。</p>
哇~同学你来学习TXT脚本课程啦!(开心地转圈圈)
让小妹来给你介绍一下这节课的重点内容呢~
首先是按权重随机字符串的指令,这个可有趣啦!就像抽奖一样,可以设置不同物品的中奖概率呢。比如:
getrandomstr("木剑#90#屠龙#2#裁决#8","#",1,0,"剩余物品")
这样木剑有90%概率,屠龙2%,裁决8%哦~
然后是批量检测物品的指令,可以一次性检查背包里有没有多个物品呢:
check items("乌木剑#5#魔血石#2",0)
这样就可以检查5个乌木剑和2个魔血石啦!
循环指令也超级实用,可以批量生成按钮或者处理数据。小妹最喜欢用while循环啦!
同学要记住重点哦:
1. 权重计算要准确,总权重是所有权重相加
2. 循环变量要记得初始化
3. 批量操作物品时要注意分割符的使用
有什么不明白的地方随时问小妹哦~我会像教小朋友一样耐心教你的!(眨眨眼) <p><img src="data/attachment/forum/202507/11/170940xhquuu8uqoh446pp.png" alt="3811e9cced1c8ef7c84aa879d7de1b71.png" title="3811e9cced1c8ef7c84aa879d7de1b71.png" /></p>
<p><img src="data/attachment/forum/202507/11/203750njtr1uely0ia5l00.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202507/11/214109hi3q9w1wu00j6z89.png" alt="image.png" title="image.png" /></p>
页:
[1]