TXT基础课程,检测与执行第15课
<h1><a href="https://fanm37t2tx.feishu.cn/minutes/obcnv24nmng1sv4xp9vuvn24?from=from_copylink">视频课程</a></h1><h3>《传奇游戏引擎脚本开发——自定义按钮与高级指令应用》教案</h3>
<hr />
<h4><strong>课程名称</strong>:传奇游戏引擎脚本开发(四)——自定义按钮与高级指令应用</h4>
<p><strong>适用对象</strong>:传奇引擎(如996引擎)脚本开发学习者<br />
<strong>课时</strong>:2课时(90分钟)</p>
<hr />
<h3><strong>一、教学目标</strong></h3>
<ol>
<li><strong>知识目标</strong>:掌握自定义按钮的添加/删除指令、参数配置;理解自定义命令、自动寻路、字符串处理(比较/分割)指令的功能与语法。</li>
<li><strong>能力目标</strong>:能独立完成“顶部功能按钮”“GM权限按钮”“自动寻路任务”等脚本的编写与调试;能运用字符串指令处理游戏数据。</li>
<li><strong>情感目标</strong>:通过实操任务,提升学生对游戏交互功能的设计能力,培养严谨的代码调试习惯。</li>
</ol>
<hr />
<h3><strong>二、教学重点与难点</strong></h3>
<ul>
<li><strong>重点</strong>:自定义按钮的添加(主窗口ID、图标路径、坐标调整);自定义命令的配置与触发;自动寻路指令(<code>go to</code>)的应用。</li>
<li><strong>难点</strong>:主窗口ID与坐标的对应关系(如右上角/任务栏的坐标偏移);字符串分割与键值对的区分使用;自定义命令的调试与GM功能集成。</li>
</ul>
<hr />
<h3><strong>三、教学方法</strong></h3>
<ul>
<li><strong>讲解法</strong>:结合引擎指令语法,讲解自定义按钮、自定义命令等核心功能。</li>
<li><strong>演示法</strong>:通过可视化编辑器(如控制台+F11)演示按钮添加、坐标调整、脚本绑定等操作。</li>
<li><strong>任务驱动法</strong>:布置实操任务(如制作顶部按钮、GM权限检测),引导学生动手实践。</li>
</ul>
<hr />
<h3><strong>四、教学过程</strong></h3>
<h4><strong>(一)课程导入(10分钟)</strong></h4>
<p>通过回顾上节课内容(OK框功能与装备强化),引出本节课主题:“今天我们将学习游戏开发中与玩家交互密切的功能——自定义按钮与高级指令。自定义按钮是UI界面的核心组件,而高级指令(如自动寻路、字符串处理)则是实现复杂功能的关键。”</p>
<hr />
<h4><strong>(二)新授内容(50分钟)</strong></h4>
<h5><strong>1. 自定义按钮的添加与删除(20分钟)</strong></h5>
<ul>
<li><strong>功能说明</strong>:自定义按钮是游戏中用于触发特定功能的UI组件,常见于主界面、任务栏、背包等界面。</li>
<li><strong>关键指令与参数</strong>:
<ul>
<li><strong>添加自定义按钮</strong>:<code>ADD BUTTON(主窗口ID, 图标ID, 图标路径)</code>
<ul>
<li>主窗口ID:决定按钮显示位置(如101=主界面左上角,102=主界面右上角,104=主界面右下角,8=小地图界面)。</li>
<li>图标ID:自定义按钮的唯一标识(需全局唯一,避免与其他按钮冲突)。</li>
<li>图标路径:按钮素材路径(需存放在客户端<code>RES\CCUSTUN</code>目录下,命名避免中文)。</li>
</ul>
</li>
<li><strong>删除自定义按钮</strong>:<code>DEL BUTTON(按钮编号)</code>
<ul>
<li>按钮编号:通过<code>ADD BUTTON</code>返回的编号(或通过<code>GETBUTTONNUM</code>获取)。</li>
</ul>
</li>
</ul>
</li>
<li><strong>实操演示</strong>:
<ul>
<li>步骤1:在<code>RES\CCUSTUN</code>目录下添加自定义按钮素材(如“顶部按钮_01”“收缩按钮”),重命名为数字(避免中文)。</li>
<li>步骤2:在脚本中编写添加指令(如<code>ADD BUTTON(101, 100, "顶部按钮_01")</code>),绑定到登录触发(<code>login</code>)。</li>
<li>步骤3:调整坐标(通过F10系统功能类按钮拖动按钮至目标位置),解决坐标偏移问题(如右上角需负数坐标)。</li>
</ul>
</li>
</ul>
<hr />
<h5><strong>2. 自定义命令与GM功能(15分钟)</strong></h5>
<ul>
<li><strong>功能说明</strong>:自定义命令是游戏管理员(GM)的专用指令,可实现经验赠送、装备回收等功能。</li>
<li><strong>关键步骤</strong>:
<ol>
<li><strong>定义自定义命令</strong>:在引擎“游戏命令”配置中添加命令(如<code>命令一</code>),并绑定脚本。</li>
<li><strong>编写触发脚本</strong>:通过<code>IF 命令一==1 THEN ...</code>检测命令输入,执行对应逻辑(如<code>ADD EXP 100000</code>赠送经验)。</li>
<li><strong>GM权限检测</strong>:结合字符串比较指令(<code>STRCMP</code>),仅允许特定账号(如GM账号)使用(如<code>IF STRCMP(账号, "GM123")==0 THEN 显示按钮</code>)。</li>
</ol>
</li>
<li><strong>实操示例</strong>:
<pre><code>// 登录触发:检测是否为GM账号,显示自定义按钮
IF STRCMP(账号, "GM123")==0 THEN
ADD BUTTON(101, 200, "GM工具箱")// 添加GM工具箱按钮
ENDIF
</code></pre>
</li>
</ul>
<hr />
<h5><strong>3. 自动寻路与任务导航(10分钟)</strong></h5>
<ul>
<li><strong>功能说明</strong>:自动寻路指令可实现角色自动移动至指定坐标或NPC,常见于任务引导、传送功能。</li>
<li><strong>关键指令</strong>:
<ul>
<li><code>GO TO X,Y</code>:自动移动至指定坐标(如<code>GO TO 330,330</code>)。</li>
<li><code>GO TO NPC ID</code>:自动移动至指定NPC(如<code>GO TO 100</code>)。</li>
</ul>
</li>
<li><strong>进阶应用</strong>:
<ul>
<li><strong>小飞鞋功能</strong>:检测背包是否有“小飞鞋”道具,有则自动传送(<code>IF HAVEITEM(小飞鞋)==1 THEN GO TO 目标坐标</code>),无则正常寻路。</li>
<li><strong>条件传送</strong>:结合金币/元宝检测(<code>IF MONEY>=1000 THEN GO TO 目标地图</code>),实现付费传送。</li>
</ul>
</li>
</ul>
<hr />
<h5><strong>4. 字符串处理指令(5分钟)</strong></h5>
<ul>
<li><strong>功能说明</strong>:用于处理游戏中的文本数据(如账号检测、任务名称分割)。</li>
<li><strong>关键指令</strong>:
<ul>
<li><code>STRCMP(字符串1, 字符串2)</code>:比较两个字符串是否相同(返回0表示相同)。</li>
<li><code>SPLIT(字符串, 分隔符, 变量1, 变量2)</code>:按分隔符分割字符串,结果存入变量(如<code>SPLIT("刘德华,张学友", ",", S1, S2)</code>,S1=“刘德华”,S2=“张学友”)。</li>
</ul>
</li>
<li><strong>注意事项</strong>:字符串分割需注意分隔符格式(如空格、逗号),复杂数据建议用键值对(<code>KEYVALUE</code>)处理。</li>
</ul>
<hr />
<h4><strong>(三)课堂练习(20分钟)</strong></h4>
<ol>
<li><strong>任务1:制作顶部功能按钮</strong>
<ul>
<li>要求:在主界面左上角添加“会员服务”“收缩面板”按钮,点击“收缩面板”隐藏按钮并显示“展开面板”按钮。</li>
<li>提示:使用<code>ADD BUTTON</code>添加按钮,<code>DEL BUTTON</code>删除按钮,<code>LINK</code>绑定点击事件。</li>
</ul>
</li>
<li><strong>任务2:编写GM权限检测脚本</strong>
<ul>
<li>要求:仅允许账号“GM_ADMIN”登录时显示“GM工具箱”按钮,点击后赠送10万经验。</li>
<li>提示:结合<code>STRCMP</code>检测账号,<code>ADD EXP</code>赠送经验。</li>
</ul>
</li>
<li><strong>任务3:实现自动寻路任务</strong>
<ul>
<li>要求:角色登录后自动移动至新手村(坐标200,200),并提示“欢迎来到新手村”。</li>
<li>提示:使用<code>GO TO 200,200</code>和<code>SENDMESSAGE</code>指令。</li>
</ul>
</li>
</ol>
<hr />
<h4><strong>(四)总结与作业(10分钟)</strong></h4>
<ul>
<li><strong>总结</strong>:
<ul>
<li>自定义按钮是UI交互的核心,需注意主窗口ID与坐标的对应关系。</li>
<li>自定义命令是GM功能的载体,需结合权限检测使用。</li>
<li>自动寻路与字符串处理是实现复杂功能的基础,需熟练掌握指令参数。</li>
</ul>
</li>
<li><strong>作业</strong>:
<ol>
<li>完善“顶部功能按钮”脚本,添加“设置”“排行榜”按钮并绑定功能。</li>
<li>编写“自动回收装备”脚本,检测背包中“旧武器”并自动回收(使用<code>TAKEON</code>和<code>DELITEM</code>指令)。</li>
<li>思考:如何结合“字符串分割”与“键值对”优化任务奖励分配逻辑?</li>
</ol>
</li>
</ul>
<hr />
<h3><strong>五、教学反思</strong></h3>
<p>(课后补充:需关注学生对主窗口ID与坐标对应关系的掌握情况,针对性辅导坐标调整;部分学生可能混淆<code>SPLIT</code>与<code>KEYVALUE</code>的使用场景,需通过示例对比讲解;实操环节需加强巡视,及时解决素材命名、路径错误等问题。)</p>
页:
[1]