|
《传奇引擎脚本开发——TXT基础语法与QF/QM触发》教案
一、课程基本信息
- 课程名称:传奇引擎脚本开发——TXT基础语法与QF/QM触发
- 授课对象:已掌握变量与常量基础的传奇引擎开发者(初级)
- 课时:90分钟
- 教学目标:
- 掌握TXT基础语法(检测、执行、展示类指令)的含义与用法;
- 熟悉QF与QM触发字段的分类、应用场景及触发逻辑;
- 能区分高频触发与低频触发场景,合理选择触发字段;
- 理解QF与QM的区别及合并设置方法。
二、教学重难点
- 重点:
- TXT基础语法(仅if、仅act、else act、c、call)的功能与示例;
- 常用QF触发字段(魔法攻击、物理攻击、任务相关、复活/升级触发等)的应用场景;
- QF与QM的区别及合并设置方法。
- 难点:
- 触发字段的触发逻辑(如“被物理攻击触发”与“物理攻击触发”的区别);
- call指令的使用限制(高频触发的延迟问题);
- QF与QM合并后的脚本管理(如机器人脚本的迁移)。
三、教学准备
- 软件:传奇引擎编辑器(M2引擎)、VSCode(或引擎自带脚本编辑器)、可视化文本编辑器(Control+F11);
- 示例文件:
- TXT基础语法模板(含仅if、仅act、else act、c指令);
- QF触发字段测试脚本(魔法攻击触发加元宝、点击任务触发传送等);
- QM触发字段示例(服务器启动触发清空数据、登录触发初始化);
- 教学PPT:TXT语法分类图、QF/QM触发字段对照表、合并设置流程图。
四、教学过程
1. 导入(10分钟)
- 回顾旧知:提问上节课内容(变量与常量的分类及操作),确认学生对“变量存储数据、常量固定不可改”的理解。
- 引入新课:通过实际需求引出TXT语法与触发的必要性:
- 场景1:玩家等级>50级时显示提示——需检测语法(仅if)与展示语法(c);
- 场景2:使用魔法攻击时获得元宝——需魔法攻击触发字段(QF);
- 场景3:点击任务按钮传送地图——需点击任务触发字段(QF);
- 场景4:服务器启动时清空沙巴克数据——需服务器启动触发字段(QM)。
2. 新授(50分钟)
2.1 TXT基础语法(20分钟)
- 核心指令分类:检测类(仅if)、执行类(仅act、else act)、展示类(c、BLSEC)、调用类(call)。
指令 |
功能 |
示例 |
仅if |
检测条件是否满足(可多个条件并列) |
仅if check level > 50 (检测等级>50级) |
仅act |
条件满足时执行后续指令 |
仅act money + 100 (满足条件则加100金币) |
else act |
条件不满足时执行后续指令 |
else act sendmsg "等级不足50级!" |
c |
条件满足时展示文本(PC端/手机端通用) |
c 朱栋赤月祖玛大厅 (展示多行文本,可通过可视化编辑器排版) |
BLSEC |
条件不满足时展示文本 |
BLSEC sendmsg "未满足条件,无法查看!" |
call |
调用外部TXT脚本(避免QF脚本冗余) |
call 装备回收 (调用“装备回收.txt”脚本) |
- 关键说明:
- 仅if可同时检测多个条件(如
仅if check level > 50 and check money > 1000 );
- call指令在高频触发(如攻击触发)中可能增加服务器负载,需谨慎使用;
- 可视化编辑器(Control+F11)可快速排版多行文本(如任务提示、活动公告)。
2.2 QF触发字段(25分钟)
- 定义:QF(触发脚本)是引擎预封装的触发条件字段,用于在特定游戏行为发生时执行脚本(如攻击、任务、复活等)。
- 常用QF触发字段分类及示例:
触发类型 |
触发场景 |
示例脚本 |
攻击相关 |
魔法攻击/物理攻击/被攻击时触发 |
Magic attack: money + 1 (魔法攻击加1元宝) 被物理攻击触发: dec hp 10 (被攻击减10血) |
装备相关 |
穿戴/脱下装备、切换装备位置触发 |
穿戴任意装备触发: mov n1 1 (穿戴装备时设置变量n1=1) 脱下装备触发: sendmsg "装备已卸下!" |
任务相关 |
点击任务、完成任务、删除任务触发 |
点击任务触发: teleport 100,200 (点击任务传送至坐标100,200) 完成任务触发: add exp 500 (完成任务加500经验) |
角色状态相关 |
复活、升级、HP/MP变化触发 |
复活触发: set hp 100% (复活后回满血) 升级触发: sendmsg "恭喜升级!" |
交互相关 |
聊天、加好友、创建行会触发 |
聊天触发: if level < 50 then cancel() (等级<50禁止聊天) 加好友触发: friend add (自动同意加好友) |
- 高频触发与低频触发:
- 高频触发(如攻击、入包、跑步):避免使用call指令,防止服务器延迟;
- 低频触发(如点击NPC、定时器):可使用call指令,脚本更整洁。
2.3 QM触发字段(10分钟)
- 定义:QM(事件脚本)用于处理服务器级事件(如启动、登录、定时器)或全局变量操作。
- 常用QM触发字段及示例:
触发类型 |
触发场景 |
示例脚本 |
服务器启动 |
服务器启动时初始化数据(如清空沙巴克归属) |
服务器启动触发: set 沙巴克归属 0 (重置沙巴克归属) |
玩家登录 |
玩家登录时检测状态(如VIP等级、充值金额) |
玩家登录触发: if vip_level < 1 then sendmsg "请充值成为VIP!" |
定时器 |
全局/个人定时任务(如每日0点重置活动) |
全局定时器触发(每日0点): reset 活动数据 (重置活动数据) |
全服调用 |
向所有在线玩家发送指令(如公告、提问) |
全服调用: sendmsg "服务器将于10分钟后维护!" |
2.4 QF与QM的区别与合并(5分钟)
- 区别:
- QF:存储触发脚本(如攻击触发、任务触发),面向玩家或服务器;
- QM:存储事件脚本(如服务器启动、登录、定时器),面向服务器或全局。
- 合并设置:
- 路径:M2引擎→选项→data表设置→Lua设置→勾选“合并QF与QM触发”;
- 注意:合并后需将QM脚本(如服务器启动触发)剪切至QF,机器人脚本也需同步迁移。
3. 巩固练习(15分钟)
- 任务1:使用TXT基础语法实现“等级提示”:
- 任务2:使用QF触发字段实现“魔法攻击加元宝”:
- 要求:玩家使用魔法攻击时,元宝+1;
- 关键代码:
Magic attack:
money + 1
- 任务3:区分QF与QM的使用场景:
- 问题:服务器启动时清空沙巴克数据,应使用QF还是QM?
- 答案:QM(服务器启动触发属于QM字段)。
4. 总结(5分钟)
- 核心内容回顾:
- TXT基础语法:仅if(检测)、仅act(执行)、else act(否则执行)、c(展示)、call(调用);
- QF触发字段:攻击、装备、任务、复活等高频场景的应用;
- QM触发字段:服务器启动、登录、定时器等全局事件的应用;
- QF与QM的区别及合并方法。
- 注意事项:
- 高频触发避免使用call指令,防止服务器延迟;
- 可视化编辑器可提升多行文本排版效率;
- 合并QF与QM后需检查脚本路径,避免功能失效。
五、作业布置
- 基础题:编写TXT脚本,使用“仅if+仅act+c”实现“金币≥1000时显示‘富翁’,否则显示‘穷鬼’”;
- 进阶题:使用QF触发字段“点击任务触发”,实现点击任务后传送至指定地图(如100,200);
- 拓展题:对比QF与QM的触发字段,整理一份“常用触发字段分类表”(包含字段名称、触发场景、示例代码)。
六、教学反思(课后填写)
- 学生对“触发字段的分类与应用场景”是否理解?是否混淆高频/低频触发的使用限制?
- TXT基础语法(如call指令)的实践操作是否流畅?是否需要补充更多示例?
- QF与QM合并设置的步骤是否清晰?学生能否独立完成脚本迁移?
|
|