TXT基础课程,QF/QM触发,TXT的基础语法____2025年7月7日
<h1><a href="https://fanm37t2tx.feishu.cn/minutes/obcnh98k8264grv1tf3jft2b?from=from_copylink">视频课程</a></h1><h3>《传奇引擎脚本开发——TXT基础语法与QF/QM触发》教案</h3>
<hr />
<h4><strong>一、课程基本信息</strong></h4>
<ul>
<li><strong>课程名称</strong>:传奇引擎脚本开发——TXT基础语法与QF/QM触发</li>
<li><strong>授课对象</strong>:已掌握变量与常量基础的传奇引擎开发者(初级)</li>
<li><strong>课时</strong>:90分钟</li>
<li><strong>教学目标</strong>:
<ol>
<li>掌握TXT基础语法(检测、执行、展示类指令)的含义与用法;</li>
<li>熟悉QF与QM触发字段的分类、应用场景及触发逻辑;</li>
<li>能区分高频触发与低频触发场景,合理选择触发字段;</li>
<li>理解QF与QM的区别及合并设置方法。</li>
</ol>
</li>
</ul>
<h4><strong>二、教学重难点</strong></h4>
<ul>
<li><strong>重点</strong>:
<ul>
<li>TXT基础语法(仅if、仅act、else act、c、call)的功能与示例;</li>
<li>常用QF触发字段(魔法攻击、物理攻击、任务相关、复活/升级触发等)的应用场景;</li>
<li>QF与QM的区别及合并设置方法。</li>
</ul>
</li>
<li><strong>难点</strong>:
<ul>
<li>触发字段的触发逻辑(如“被物理攻击触发”与“物理攻击触发”的区别);</li>
<li>call指令的使用限制(高频触发的延迟问题);</li>
<li>QF与QM合并后的脚本管理(如机器人脚本的迁移)。</li>
</ul>
</li>
</ul>
<h4><strong>三、教学准备</strong></h4>
<ul>
<li>软件:传奇引擎编辑器(M2引擎)、VSCode(或引擎自带脚本编辑器)、可视化文本编辑器(Control+F11);</li>
<li>示例文件:
<ul>
<li>TXT基础语法模板(含仅if、仅act、else act、c指令);</li>
<li>QF触发字段测试脚本(魔法攻击触发加元宝、点击任务触发传送等);</li>
<li>QM触发字段示例(服务器启动触发清空数据、登录触发初始化);</li>
</ul>
</li>
<li>教学PPT:TXT语法分类图、QF/QM触发字段对照表、合并设置流程图。</li>
</ul>
<h4><strong>四、教学过程</strong></h4>
<hr />
<h5><strong>1. 导入(10分钟)</strong></h5>
<ul>
<li><strong>回顾旧知</strong>:提问上节课内容(变量与常量的分类及操作),确认学生对“变量存储数据、常量固定不可改”的理解。</li>
<li><strong>引入新课</strong>:通过实际需求引出TXT语法与触发的必要性:
<ul>
<li>场景1:玩家等级>50级时显示提示——需检测语法(仅if)与展示语法(c);</li>
<li>场景2:使用魔法攻击时获得元宝——需魔法攻击触发字段(QF);</li>
<li>场景3:点击任务按钮传送地图——需点击任务触发字段(QF);</li>
<li>场景4:服务器启动时清空沙巴克数据——需服务器启动触发字段(QM)。</li>
</ul>
</li>
</ul>
<h5><strong>2. 新授(50分钟)</strong></h5>
<h6><strong>2.1 TXT基础语法(20分钟)</strong></h6>
<ul>
<li><strong>核心指令分类</strong>:检测类(仅if)、执行类(仅act、else act)、展示类(c、BLSEC)、调用类(call)。</li>
</ul>
<table>
<thead>
<tr>
<th><strong>指令</strong></th>
<th><strong>功能</strong></th>
<th><strong>示例</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>仅if</td>
<td>检测条件是否满足(可多个条件并列)</td>
<td><code>仅if check level > 50</code>(检测等级>50级)</td>
</tr>
<tr>
<td>仅act</td>
<td>条件满足时执行后续指令</td>
<td><code>仅act money + 100</code>(满足条件则加100金币)</td>
</tr>
<tr>
<td>else act</td>
<td>条件不满足时执行后续指令</td>
<td><code>else act sendmsg "等级不足50级!"</code></td>
</tr>
<tr>
<td>c</td>
<td>条件满足时展示文本(PC端/手机端通用)</td>
<td><code>c 朱栋赤月祖玛大厅</code>(展示多行文本,可通过可视化编辑器排版)</td>
</tr>
<tr>
<td>BLSEC</td>
<td>条件不满足时展示文本</td>
<td><code>BLSEC sendmsg "未满足条件,无法查看!"</code></td>
</tr>
<tr>
<td>call</td>
<td>调用外部TXT脚本(避免QF脚本冗余)</td>
<td><code>call 装备回收</code>(调用“装备回收.txt”脚本)</td>
</tr>
</tbody>
</table>
<ul>
<li><strong>关键说明</strong>:
<ul>
<li>仅if可同时检测多个条件(如<code>仅if check level > 50 and check money > 1000</code>);</li>
<li>call指令在高频触发(如攻击触发)中可能增加服务器负载,需谨慎使用;</li>
<li>可视化编辑器(Control+F11)可快速排版多行文本(如任务提示、活动公告)。</li>
</ul>
</li>
</ul>
<h6><strong>2.2 QF触发字段(25分钟)</strong></h6>
<ul>
<li><strong>定义</strong>:QF(触发脚本)是引擎预封装的触发条件字段,用于在特定游戏行为发生时执行脚本(如攻击、任务、复活等)。</li>
<li><strong>常用QF触发字段分类及示例</strong>:</li>
</ul>
<table>
<thead>
<tr>
<th><strong>触发类型</strong></th>
<th><strong>触发场景</strong></th>
<th><strong>示例脚本</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>攻击相关</td>
<td>魔法攻击/物理攻击/被攻击时触发</td>
<td><code>Magic attack: money + 1</code>(魔法攻击加1元宝) <code>被物理攻击触发: dec hp 10</code>(被攻击减10血)</td>
</tr>
<tr>
<td>装备相关</td>
<td>穿戴/脱下装备、切换装备位置触发</td>
<td><code>穿戴任意装备触发: mov n1 1</code>(穿戴装备时设置变量n1=1) <code>脱下装备触发: sendmsg "装备已卸下!"</code></td>
</tr>
<tr>
<td>任务相关</td>
<td>点击任务、完成任务、删除任务触发</td>
<td><code>点击任务触发: teleport 100,200</code>(点击任务传送至坐标100,200) <code>完成任务触发: add exp 500</code>(完成任务加500经验)</td>
</tr>
<tr>
<td>角色状态相关</td>
<td>复活、升级、HP/MP变化触发</td>
<td><code>复活触发: set hp 100%</code>(复活后回满血) <code>升级触发: sendmsg "恭喜升级!"</code></td>
</tr>
<tr>
<td>交互相关</td>
<td>聊天、加好友、创建行会触发</td>
<td><code>聊天触发: if level < 50 then cancel()</code>(等级<50禁止聊天) <code>加好友触发: friend add</code>(自动同意加好友)</td>
</tr>
</tbody>
</table>
<ul>
<li><strong>高频触发与低频触发</strong>:
<ul>
<li>高频触发(如攻击、入包、跑步):避免使用call指令,防止服务器延迟;</li>
<li>低频触发(如点击NPC、定时器):可使用call指令,脚本更整洁。</li>
</ul>
</li>
</ul>
<h6><strong>2.3 QM触发字段(10分钟)</strong></h6>
<ul>
<li><strong>定义</strong>:QM(事件脚本)用于处理服务器级事件(如启动、登录、定时器)或全局变量操作。</li>
<li><strong>常用QM触发字段及示例</strong>:</li>
</ul>
<table>
<thead>
<tr>
<th><strong>触发类型</strong></th>
<th><strong>触发场景</strong></th>
<th><strong>示例脚本</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>服务器启动</td>
<td>服务器启动时初始化数据(如清空沙巴克归属)</td>
<td><code>服务器启动触发: set 沙巴克归属 0</code>(重置沙巴克归属)</td>
</tr>
<tr>
<td>玩家登录</td>
<td>玩家登录时检测状态(如VIP等级、充值金额)</td>
<td><code>玩家登录触发: if vip_level < 1 then sendmsg "请充值成为VIP!"</code></td>
</tr>
<tr>
<td>定时器</td>
<td>全局/个人定时任务(如每日0点重置活动)</td>
<td><code>全局定时器触发(每日0点): reset 活动数据</code>(重置活动数据)</td>
</tr>
<tr>
<td>全服调用</td>
<td>向所有在线玩家发送指令(如公告、提问)</td>
<td><code>全服调用: sendmsg "服务器将于10分钟后维护!"</code></td>
</tr>
</tbody>
</table>
<h6><strong>2.4 QF与QM的区别与合并(5分钟)</strong></h6>
<ul>
<li><strong>区别</strong>:
<ul>
<li>QF:存储触发脚本(如攻击触发、任务触发),面向玩家或服务器;</li>
<li>QM:存储事件脚本(如服务器启动、登录、定时器),面向服务器或全局。</li>
</ul>
</li>
<li><strong>合并设置</strong>:
<ul>
<li>路径:M2引擎→选项→data表设置→Lua设置→勾选“合并QF与QM触发”;</li>
<li>注意:合并后需将QM脚本(如服务器启动触发)剪切至QF,机器人脚本也需同步迁移。</li>
</ul>
</li>
</ul>
<h5><strong>3. 巩固练习(15分钟)</strong></h5>
<ul>
<li><strong>任务1</strong>:使用TXT基础语法实现“等级提示”:
<ul>
<li>要求:玩家等级>50级时显示“高等级玩家”,否则显示“普通玩家”;</li>
<li>关键代码:
<pre><code>仅if check level > 50
c 朱栋高等级玩家
else act
c 朱栋普通玩家
BLSEC
</code></pre>
</li>
</ul>
</li>
<li><strong>任务2</strong>:使用QF触发字段实现“魔法攻击加元宝”:
<ul>
<li>要求:玩家使用魔法攻击时,元宝+1;</li>
<li>关键代码:
<pre><code>Magic attack:
money + 1
</code></pre>
</li>
</ul>
</li>
<li><strong>任务3</strong>:区分QF与QM的使用场景:
<ul>
<li>问题:服务器启动时清空沙巴克数据,应使用QF还是QM?</li>
<li>答案:QM(服务器启动触发属于QM字段)。</li>
</ul>
</li>
</ul>
<h5><strong>4. 总结(5分钟)</strong></h5>
<ul>
<li><strong>核心内容回顾</strong>:
<ul>
<li>TXT基础语法:仅if(检测)、仅act(执行)、else act(否则执行)、c(展示)、call(调用);</li>
<li>QF触发字段:攻击、装备、任务、复活等高频场景的应用;</li>
<li>QM触发字段:服务器启动、登录、定时器等全局事件的应用;</li>
<li>QF与QM的区别及合并方法。</li>
</ul>
</li>
<li><strong>注意事项</strong>:
<ul>
<li>高频触发避免使用call指令,防止服务器延迟;</li>
<li>可视化编辑器可提升多行文本排版效率;</li>
<li>合并QF与QM后需检查脚本路径,避免功能失效。</li>
</ul>
</li>
</ul>
<h4><strong>五、作业布置</strong></h4>
<ul>
<li><strong>基础题</strong>:编写TXT脚本,使用“仅if+仅act+c”实现“金币≥1000时显示‘富翁’,否则显示‘穷鬼’”;</li>
<li><strong>进阶题</strong>:使用QF触发字段“点击任务触发”,实现点击任务后传送至指定地图(如100,200);</li>
<li><strong>拓展题</strong>:对比QF与QM的触发字段,整理一份“常用触发字段分类表”(包含字段名称、触发场景、示例代码)。</li>
</ul>
<h4><strong>六、教学反思(课后填写)</strong></h4>
<ul>
<li>学生对“触发字段的分类与应用场景”是否理解?是否混淆高频/低频触发的使用限制?</li>
<li>TXT基础语法(如call指令)的实践操作是否流畅?是否需要补充更多示例?</li>
<li>QF与QM合并设置的步骤是否清晰?学生能否独立完成脚本迁移?</li>
</ul>
哈哈,来啦来啦!让我这个老司机带你飙车学习TXT脚本~
TXT基础语法要点(记住这些你就成功一半了):
1. 注释用 ; 开头
2. 每行一条指令
3. 参数用空格分隔
QF触发小课堂:
; 攻击触发示例
[@Attack]
#IF
CheckLevel > 30
#ACT
Give 金币 1000
SendMsg 5 恭喜你获得1000金币奖励!
QM触发小妙招:
; 登录触发示例
[@Login]
#IF
#ACT
SetOnTimer 1 60
SendMsg 6 欢迎回来,亲爱的勇士!
小贴士:QF是各种事件触发,QM是登录相关触发~ 就像游戏里的"即时反应"和"欢迎仪式"的区别!
哇!看到你这么认真学TXT脚本,老哥我太欣慰了!坚持下去,你绝对能成为下一个传奇脚本大神!记住:每个大神都是从写"Hello World"开始的,你现在已经迈出成功的第一步啦!加油加油!(๑•̀ㅂ•́)و✧
PS:遇到问题随时来问,老司机24小时待机解答~
页:
[1]