8818513 发表于 5 天前

TXT基础课程,检测与执行第4课外部____2025年7月11日

<h1><a href="https://fanm37t2tx.feishu.cn/minutes/obcnlv261d2256zd9nb4s129?from=from_copylink">视频课程</a></h1>
<h3>《传奇引擎脚本开发——高级指令与功能实现》教案</h3>
<hr />
<h4>​<strong>​一、课程基本信息​</strong>​</h4>
<ul>
<li>​<strong>​课程名称​</strong>​:传奇引擎脚本开发——高级指令与功能实现</li>
<li>​<strong>​授课对象​</strong>​:已掌握TXT基础语法与QF/QM触发的传奇引擎开发者(中级)</li>
<li>​<strong>​课时​</strong>​:90分钟</li>
<li>​<strong>​教学目标​</strong>​:
<ol>
<li>掌握装备内观修改、特效设置、延迟消息等核心指令的功能与参数;</li>
<li>能独立编写背包管理、权限检测、伤害吸收等实用脚本;</li>
<li>理解指令在实际游戏场景中的应用逻辑(如装备幻化、全屏攻击、怪物数量检测);</li>
<li>提升脚本调试与优化能力,避免常见错误。</li>
</ol>
</li>
</ul>
<h4>​<strong>​二、教学重难点​</strong>​</h4>
<ul>
<li>​<strong>​重点​</strong>​:
<ul>
<li>装备内观修改(<code>look</code>指令)、特效设置(<code>set effect</code>)、延迟消息(<code>delay goto</code>)的功能与参数;</li>
<li>背包格子管理(<code>open bag</code>)、权限检测(<code>is domain</code>)、伤害吸收(<code>damage absorb</code>)的实际应用;</li>
<li>怪物数量检测(<code>count monster</code>)、装备改名(<code>rename item</code>)的场景化使用。</li>
</ul>
</li>
<li>​<strong>​难点​</strong>​:
<ul>
<li>附加伤害效果(<code>extra damage</code>)的多参数协同(如击退、中毒、麻痹);</li>
<li>伤害吸收比例(千分比)与成功率的实际计算逻辑;</li>
<li>多级脚本传递(如获取他人行会名称)的实现方法。</li>
</ul>
</li>
</ul>
<h4>​<strong>​三、教学准备​</strong>​</h4>
<ul>
<li>软件:传奇引擎编辑器(M2引擎)、VSCode(或引擎自带脚本编辑器)、游戏客户端(测试用);</li>
<li>示例文件:
<ul>
<li>装备幻化脚本(<code>look</code>指令修改武器外观);</li>
<li>全屏攻击脚本(<code>extra damage</code>实现群体伤害+特效);</li>
<li>背包管理脚本(<code>open bag</code>扩展格子+<code>count item</code>检测剩余空间);</li>
<li>伤害吸收脚本(<code>damage absorb</code>设置吸收值+触发逻辑);</li>
</ul>
</li>
<li>教学PPT:指令分类图、参数对照表、场景化脚本示例。</li>
</ul>
<h4>​<strong>​四、教学过程​</strong>​</h4>
<hr />
<h5>​<strong>​1. 导入(10分钟)​</strong>​</h5>
<ul>
<li>​<strong>​回顾旧知​</strong>​:提问上节课内容(TXT基础语法、QF/QM触发),确认学生对“检测-执行-展示”逻辑的理解。</li>
<li>​<strong>​引入新课​</strong>​:通过实际游戏需求引出高级指令的必要性:
<ul>
<li>场景1:玩家希望武器外观随装备幻化改变(需<code>look</code>指令修改<code>looks</code>值);</li>
<li>场景2:BOSS战中需全屏攻击+群体中毒(需<code>extra damage</code>指令);</li>
<li>场景3:背包格子不足时自动回收(需<code>count item</code>检测剩余空间+<code>open bag</code>扩展);</li>
<li>场景4:管理员登录时开启无敌模式(需<code>is domain</code>检测权限+<code>set mode</code>设置模式)。</li>
</ul>
</li>
</ul>
<h5>​<strong>​2. 新授(50分钟)​</strong>​</h5>
<h6>​<strong>​2.1 装备内观与特效设置(15分钟)​</strong>​</h6>
<ul>
<li>​<strong>​核心指令1:修改装备内观(<code>look</code>)​</strong>​
<ul>
<li>​<strong>​功能​</strong>​:修改装备的<code>looks</code>值(对应<code>play show</code>文件夹中的图片序列),仅改变外观,不影响属性。</li>
<li>​<strong>​参数​</strong>​:<code>look(装备位置, 新looks值)</code>;</li>
<li>​<strong>​示例​</strong>​:将武器外观改为屠龙(<code>looks=57</code>):
<pre><code>look(武器位置, 57)// 武器位置=0(主手)/1(副手)
</code></pre>
</li>
<li>​<strong>​应用场景​</strong>​:装备幻化、衣橱系统(玩家付费更换武器造型)。</li>
</ul>
</li>
<li>​<strong>​核心指令2:设置装备内观特效(<code>set effect</code>)​</strong>​
<ul>
<li>​<strong>​功能​</strong>​:为装备添加临时或永久特效(如光效、粒子),参数包括背包特效编号、内观特效编号、层级等。</li>
<li>​<strong>​参数​</strong>​:<code>set effect(背包特效编号, 内观特效编号, 内观层级)</code>;</li>
<li>​<strong>​示例​</strong>​:为武器添加ID为8001的光效:
<pre><code>set effect(8001, 8001, 0)// 0为默认层级
</code></pre>
</li>
<li>​<strong>​注意​</strong>​:特效为临时生效(小退后消失),如需永久保存需额外脚本支持。</li>
</ul>
</li>
</ul>
<h6>​<strong>​2.2 延迟消息与模式设置(10分钟)​</strong>​</h6>
<ul>
<li>​<strong>​核心指令1:延迟跳转(<code>delay goto</code>)​</strong>​
<ul>
<li>​<strong>​功能​</strong>​:延迟指定时间后跳转至指定触发字段(如怪物死亡后延迟跳转至奖励脚本)。</li>
<li>​<strong>​参数​</strong>​:<code>delay goto(延迟时间ms, 目标触发字段)</code>;</li>
<li>​<strong>​示例​</strong>​:击杀稻草人后2秒跳转至奖励脚本:
<pre><code>kill monster 稻草人
delay goto(2000, at 稻草人奖励)// 2000ms=2秒
</code></pre>
</li>
</ul>
</li>
<li>​<strong>​核心指令2:设置人物模式(<code>set mode</code>)​</strong>​
<ul>
<li>​<strong>​功能​</strong>​:设置玩家管理员模式(无敌、隐身),需配合权限检测(<code>is domain</code>)。</li>
<li>​<strong>​参数​</strong>​:<code>set mode(模式值)</code>(模式值:1=无敌,2=隐身,3=无敌+隐身);</li>
<li>​<strong>​示例​</strong>​:管理员登录时开启无敌模式:
<pre><code>player login trigger
    if is domain(管理员账号)
      set mode(3)// 开启无敌+隐身
      sendmsg &quot;管理员模式已开启!&quot;
</code></pre>
</li>
</ul>
</li>
</ul>
<h6>​<strong>​2.3 背包管理与伤害吸收(15分钟)​</strong>​</h6>
<ul>
<li>​<strong>​核心指令1:背包格子管理(<code>open bag</code>)​</strong>​
<ul>
<li>​<strong>​功能​</strong>​:扩展或收缩玩家背包格子,需结合常量(如<code>empty_bag</code>剩余空间、<code>used_bag</code>已用空间)。</li>
<li>​<strong>​参数​</strong>​:<code>open bag(目标格子数)</code>;</li>
<li>​<strong>​示例​</strong>​:扩展背包至80格:
<pre><code>open bag(80)// 最大支持126格
</code></pre>
</li>
<li>​<strong>​应用场景​</strong>​:装备回收系统(检测<code>empty_bag&lt;10</code>时自动回收)。</li>
</ul>
</li>
<li>​<strong>​核心指令2:伤害吸收(<code>damage absorb</code>)​</strong>​
<ul>
<li>​<strong>​功能​</strong>​:为玩家设置伤害吸收护盾(如吸收20%伤害),参数包括吸收值、比例、成功率(千分比)。</li>
<li>​<strong>​参数​</strong>​:<code>damage absorb(吸收值, 吸收比例, 成功率)</code>;</li>
<li>​<strong>​示例​</strong>​:设置吸收1000点伤害(20%比例,95%成功率):
<pre><code>damage absorb(1000, 200, 950)// 200=20%(千分比),950=95%
</code></pre>
</li>
<li>​<strong>​注意​</strong>​:吸收比例为千分比(非百分比),成功率需通过<code>success rate</code>检测。</li>
</ul>
</li>
</ul>
<h6>​<strong>​2.4 怪物检测与装备改名(10分钟)​</strong>​</h6>
<ul>
<li>​<strong>​核心指令1:怪物数量检测(<code>count monster</code>)​</strong>​
<ul>
<li>​<strong>​功能​</strong>​:统计当前地图指定怪物数量(活/死),用于BOSS战刷新逻辑。</li>
<li>​<strong>​参数​</strong>​:<code>count monster(地图编号, 怪物名称)</code>;</li>
<li>​<strong>​示例​</strong>​:统计当前地图白野猪数量:
<pre><code>count monster(map当前, 白野猪)// 返回[存活数, 死亡数]
</code></pre>
</li>
<li>​<strong>​应用场景​</strong>​:怪物攻城(存活数=0时刷新下一波)。</li>
</ul>
</li>
<li>​<strong>​核心指令2:装备改名(<code>rename item</code>)​</strong>​
<ul>
<li>​<strong>​功能​</strong>​:修改装备名称(如将“八荒”改为“屠龙刀”),需配合<code>look</code>指令同步外观。</li>
<li>​<strong>​参数​</strong>​:<code>rename item(装备位置, 新名称)</code>;</li>
<li>​<strong>​示例​</strong>​:修改武器名称为“屠龙刀”:
<pre><code>rename item(武器位置, 屠龙刀)
</code></pre>
</li>
</ul>
</li>
</ul>
<h5>​<strong>​3. 巩固练习(15分钟)​</strong>​</h5>
<ul>
<li>​<strong>​任务1​</strong>​:使用<code>look</code>指令实现“武器幻化”:
<ul>
<li>要求:玩家使用“幻化符”后,武器外观变为指定ID(如57),脚本需检测背包中是否存在幻化符。</li>
<li>关键代码:
<pre><code>use item 幻化符
    if count item(幻化符) &gt;= 1
      look(武器位置, 57)// 修改weapons为57号外观
      dec item(幻化符, 1)// 消耗1个幻化符
</code></pre>
</li>
</ul>
</li>
<li>​<strong>​任务2​</strong>​:使用<code>extra damage</code>实现“全屏冰冻攻击”:
<ul>
<li>要求:玩家释放技能时,对10米内所有怪物造成冰冻效果(附加状态8,持续时间2秒)。</li>
<li>关键代码:
<pre><code>skill cast 冰箭术
    extra damage(1000, 0, 0, 8, 2, 0, 10)// 1000伤害,附加冰冻(状态8,持续2秒),范围10米
</code></pre>
</li>
</ul>
</li>
<li>​<strong>​任务3​</strong>​:使用<code>count monster</code>实现“BOSS自动刷新”:
<ul>
<li>要求:当前地图BOSS“祖玛教主”死亡后,30秒内无存活BOSS则刷新。</li>
<li>关键代码:
<pre><code>kill monster 祖玛教主
    delay goto(30000, 刷新祖玛教主)// 30秒后执行刷新
</code></pre>
</li>
</ul>
</li>
</ul>
<h5>​<strong>​4. 总结(5分钟)​</strong>​</h5>
<ul>
<li>​<strong>​核心内容回顾​</strong>​:
<ul>
<li>装备内观修改(<code>look</code>)与特效设置(<code>set effect</code>)用于外观定制;</li>
<li>延迟消息(<code>delay goto</code>)与模式设置(<code>set mode</code>)用于流程控制与权限管理;</li>
<li>背包管理(<code>open bag</code>)与伤害吸收(<code>damage absorb</code>)用于数值平衡;</li>
<li>怪物检测(<code>count monster</code>)与装备改名(<code>rename item</code>)用于场景交互。</li>
</ul>
</li>
<li>​<strong>​注意事项​</strong>​:
<ul>
<li>高频触发(如攻击)避免使用<code>call</code>指令,防止服务器延迟;</li>
<li>伤害吸收比例为千分比(如200=20%),需与百分比区分;</li>
<li>多级脚本传递(如获取他人行会名称)需使用<code>sendmsg</code>+全局变量。</li>
</ul>
</li>
</ul>
<h4>​<strong>​五、作业布置​</strong>​</h4>
<ul>
<li>​<strong>​基础题​</strong>​:编写脚本,使用<code>look</code>指令实现“武器外观随等级变化”(等级<50为木剑,≥50为铁剑);</li>
<li>​<strong>​进阶题​</strong>​:使用<code>extra damage</code>实现“群体中毒攻击”(对5米内所有敌人附加中毒状态,持续5秒);</li>
<li>​<strong>​拓展题​</strong>​:使用<code>count monster</code>+<code>open bag</code>实现“自动回收系统”(背包剩余空间<10时回收所有垃圾装备)。</li>
</ul>
<h4>​<strong>​六、教学反思(课后填写)​</strong>​</h4>
<ul>
<li>学生对“多参数指令(如<code>extra damage</code>)”的理解是否到位?是否出现参数顺序错误?</li>
<li>背包管理脚本的实际操作是否流畅?是否需要补充更多常量示例?</li>
<li>伤害吸收与模式设置的结合使用是否清晰?学生能否独立完成权限检测+效果设置的脚本?</li>
</ul>

飓风_Ai 发表于 5 天前

哈哈,看来你正在认真学习传奇脚本开发啊!这份教案内容相当专业,让我来帮你梳理几个重点:

1. 装备外观修改(look指令)是让武器变帅的关键,记住武器位置0是主手,1是副手哦!

2. 特效设置(set effect)能让装备发光发亮,但要注意小退会消失,想永久保存得动点脑筋~

3. 延迟消息(delay goto)就像定时闹钟,2000ms=2秒,别数错啦!

4. 伤害吸收(damage absorb)用的是千分比计算,数学不好的同学要准备计算器啦!


// 举个简单的装备幻化例子:
[@main]
#IF
checkitem 屠龙刀 1
#ACT
look 0 57
sendmsg 6 "你的武器已经变成屠龙刀外观啦!"


记住啊小伙子/小姑娘,你现在学的这些高级指令,将来都是能让你成为传奇脚本大神的基石!遇到困难不要怕,多练习多测试,你一定能行的!

加油!期待看到你写出炫酷的全屏攻击脚本!(ง •̀_•́)ง

PS:如果遇到具体问题,随时来问我这个"老油条"~
页: [1]
查看完整版本: TXT基础课程,检测与执行第4课外部____2025年7月11日