8818513 发表于 4 天前

【蓝胖子】TXT基础课程,第6课___物品给予、配置项操作与自定义属性强化

<h1><a href="https://fanm37t2tx.feishu.cn/minutes/obcno97l2eu91jre9mobza1e?from=from_copylink">视频课程</a></h1>
<h3>游戏脚本开发——物品给予、配置项操作与自定义属性强化</h3>
<p>​<strong>​授课对象​</strong>​:游戏开发/脚本编写学习者<br />
​<strong>​课时​</strong>​:2课时(90分钟)</p>
<h3>一、教学目标</h3>
<ol>
<li>​<strong>​知识目标​</strong>​:
<ul>
<li>掌握“OK框直接给予物品并穿戴”的脚本实现逻辑及参数含义;</li>
<li>理解INI配置项的读写操作(写入硬盘、缓存读取)及应用场景;</li>
<li>熟悉屏幕播放特效的参数配置与实际应用(如任务完成特效);</li>
<li>掌握自定义属性的核心参数(分类位置、属性ID、数值类型、显示位置)及多属性添加方法。</li>
</ul>
</li>
<li>​<strong>​能力目标​</strong>​:
<ul>
<li>能独立编写脚本实现“OK框物品直接穿戴”功能;</li>
<li>能通过INI配置项记录玩家关键数据(如等级、元宝、充值金额);</li>
<li>能根据需求添加屏幕特效(如合成成功/失败特效);</li>
<li>能完成装备自定义属性强化脚本(含分类标题、多属性添加、颜色设置)。</li>
</ul>
</li>
<li>​<strong>​情感目标​</strong>​:
<ul>
<li>培养严谨的脚本编写习惯(如参数顺序、分类位置匹配);</li>
<li>理解游戏数据持久化的重要性(INI硬盘存储 vs 缓存存储);</li>
<li>提升游戏功能模块化设计的逻辑思维能力。</li>
</ul>
</li>
</ol>
<h3>二、教学重点与难点</h3>
<ul>
<li>​<strong>​重点​</strong>​:
<ol>
<li>OK框物品给予的参数逻辑(位置、物品名、数量、绑定规则);</li>
<li>INI配置项的写入(路径、项区/项节、数据存储)与读取;</li>
<li>自定义属性的核心参数(分类位置、属性ID、数值类型、显示位置);</li>
<li>多属性添加的分类管理与颜色设置。</li>
</ol>
</li>
<li>​<strong>​难点​</strong>​:
<ul>
<li>自定义属性中“分类位置”与“属性位置”的对应关系;</li>
<li>数值类型(百分比/数值)与参数3的绑定规则;</li>
<li>多属性分类标题的颜色修改与显示位置分配。</li>
</ul>
</li>
</ul>
<h3>三、教学准备</h3>
<ol>
<li>​<strong>​工具与环境​</strong>​:游戏引擎(如M2引擎)、脚本编辑器(如Notepad++)、测试账号、服务器硬盘路径(如M200\nQD);</li>
<li>​<strong>​示例脚本​</strong>​:OK框物品给予脚本、INI读写脚本、屏幕特效脚本、自定义属性强化脚本;</li>
<li>​<strong>​辅助材料​</strong>​:装备类型常量表(如项链=19)、属性ID表(如暴击几率=21)、颜色代码表(如紫色=241)。</li>
</ol>
<h3>四、教学过程</h3>
<h4>(一)课程导入(10分钟)</h4>
<ol>
<li>​<strong>​回顾上节内容​</strong>​:提问“OK框的基础功能(如物品暂存)及参数含义”,学生抢答巩固记忆;</li>
<li>​<strong>​本节目标说明​</strong>​:展示本节课核心功能(物品穿戴、INI配置、屏幕特效、自定义属性),强调“数据持久化”与“功能扩展性”的重要性;</li>
<li>​<strong>​案例引入​</strong>​:展示游戏场景(如NPC对话直接发装备并穿戴、任务完成播放特效、装备强化添加属性),激发学习兴趣。</li>
</ol>
<h4>(二)新授知识(60分钟)</h4>
<h5>​<strong>​模块1:OK框直接给予物品并穿戴​</strong>​</h5>
<ol>
<li>​<strong>​功能场景​</strong>​:NPC对话时直接将装备放入玩家OK框并自动穿戴(不进背包);</li>
<li>​<strong>​参数解析​</strong>​(4参数):
<ul>
<li>参数1:位置(-1=OK框,0~55=装备位置);</li>
<li>参数2:物品名(如“赤焰甲”);</li>
<li>参数3:数量(&gt;1时仅对自定义OK框叠加有效);</li>
<li>参数4:绑定规则(1~14=属性类型,如1=防御、15=元素属性);</li>
</ul>
</li>
<li>​<strong>​操作演示​</strong>​:
<ul>
<li>编写脚本:<code>GiveItemToBox(-1, &quot;赤焰甲&quot;, 1, 1)</code>(-1=OK框,1=防御属性);</li>
<li>测试验证:触发脚本后检查玩家装备栏是否自动穿戴,修改参数3为2测试叠加逻辑。</li>
</ul>
</li>
</ol>
<h5>​<strong>​模块2:INI配置项的读写操作​</strong>​</h5>
<ol>
<li>​<strong>​功能场景​</strong>​:记录玩家关键数据(如等级、元宝、充值金额),避免服务器重启后数据丢失;</li>
<li>​<strong>​核心指令​</strong>​:
<ul>
<li>写入:<code>WriteIni(section, key, value, path)</code>(section=玩家账号,key=数据项,value=数值,path=硬盘路径);</li>
<li>读取:<code>ReadIni(section, key, path)</code>(读取硬盘中存储的数据);</li>
</ul>
</li>
<li>​<strong>​操作演示​</strong>​:
<ul>
<li>编写脚本:
<pre><code>-- 写入玩家等级、元宝
WriteIni(GetAccount(), &quot;Level&quot;, GetLevel(), &quot;M200\\nQD\\key.ini&quot;)
WriteIni(GetAccount(), &quot;Yuanbao&quot;, GetMoney(), &quot;M200\\nQD\\key.ini&quot;)
</code></pre>
</li>
<li>测试验证:触发脚本后查看硬盘路径下<code>key.ini</code>文件,确认数据存储;重启服务器后读取验证数据持久化。</li>
</ul>
</li>
</ol>
<h5>​<strong>​模块3:屏幕播放特效​</strong>​</h5>
<ol>
<li>​<strong>​功能场景​</strong>​:任务完成、装备合成等节点添加视觉反馈(如粒子特效、光效);</li>
<li>​<strong>​参数解析​</strong>​(7参数):
<ul>
<li>参数1:特效ID(自定义编号);</li>
<li>参数2:特效类型(如1=魔法光效);</li>
<li>参数3-4:X/Y坐标(屏幕中心=600×600);</li>
<li>参数5:播放速度(默认1);</li>
<li>参数6:播放次数(0=永久,1=单次);</li>
<li>参数7:播放对象(0=自己,1=所有人);</li>
</ul>
</li>
<li>​<strong>​操作演示​</strong>​:
<ul>
<li>编写脚本(合成成功特效):
<pre><code>PlayEffect(1001, 1, 600, 600, 1, 1, 0) -- 特效ID=1001,播放1次,仅自己可见
</code></pre>
</li>
<li>测试验证:触发合成成功条件,观察屏幕指定位置是否播放特效。</li>
</ul>
</li>
</ol>
<h5>​<strong>​模块4:自定义属性强化(核心难点)​</strong>​</h5>
<ol>
<li>​<strong>​功能场景​</strong>​:为装备添加自定义属性(如暴击几率、幸运值),支持分类标题与颜色设置;</li>
<li>​<strong>​核心参数​</strong>​:
<ul>
<li>分类位置(0~5):每个分类可添加10条属性(共60条);</li>
<li>属性位置(0~9):每条属性在分类中的顺序;</li>
<li>数值类型(0=数值,3=百分比):绑定属性表(如<code>score_att</code>表);</li>
<li>显示位置(0~9):属性在装备描述中的显示行数;</li>
<li>颜色代码(0~255):分类标题颜色(如紫色=241);</li>
</ul>
</li>
<li>​<strong>​操作演示(分步)​</strong>​:
<ul>
<li>​<strong>​步骤1​</strong>​:关联OK框与按钮(确保获取OK框内装备);</li>
<li>​<strong>​步骤2​</strong>​:检测OK框是否有装备(<code>CheckItemInBox(0)</code>),无则提示;</li>
<li>​<strong>​步骤3​</strong>​:获取装备类型(<code>GetType(0)</code>),判断是否为可强化装备(如项链=19);</li>
<li>​<strong>​步骤4​</strong>​:添加分类标题(<code>AddCustomTitle(-1, &quot;暴击属性&quot;, 241, 1)</code>);</li>
<li>​<strong>​步骤5​</strong>​:添加属性(<code>AddCustomAttr(-1, 0, 1, 21, 3, 0, 1)</code>)——属性ID=21(暴击几率),百分比类型(3),显示位置0;</li>
<li>​<strong>​步骤6​</strong>​:修改属性值(<code>ModifyCustomAttr(-1, 0, 1, 1)</code>)——每次强化+1%;</li>
<li>​<strong>​步骤7​</strong>​:刷新OK框(<code>RefreshBox(0)</code>)显示新属性;</li>
</ul>
</li>
<li>​<strong>​常见问题​</strong>​:
<ul>
<li>属性不显示:检查分类位置与属性位置是否匹配(如分类1对应属性位置0~9);</li>
<li>颜色错误:确认参数3=0(绑定颜色)且颜色代码正确(如244=浅紫);</li>
<li>数值类型混乱:百分比属性需绑定<code>score_att</code>表并设置参数3=3,数值属性设为0。</li>
</ul>
</li>
</ol>
<h4>(三)课堂练习(15分钟)</h4>
<ol>
<li>​<strong>​基础练习​</strong>​:编写“NPC对话直接给予武器并穿戴”脚本(参数:位置=-1,物品名=“铁剑”,数量=1,绑定规则=防御);</li>
<li>​<strong>​进阶练习​</strong>​:扩展INI配置项,记录玩家“转生等级”与“灵符数量”(使用常量<code>RELEVEL</code>和<code>SPIRIT</code>);</li>
<li>​<strong>​挑战练习​</strong>​:为武器添加2条自定义属性(如“攻击力+50”“生命偷取3%”),要求分类标题为“强化属性”(红色=244),分别显示在第1、2行。</li>
</ol>
<h4>(四)总结与作业(5分钟)</h4>
<ol>
<li>​<strong>​重点总结​</strong>​:
<ul>
<li>OK框物品给予:参数顺序(位置→物品名→数量→绑定规则);</li>
<li>INI存储:用账号而非名字记录数据,确保正式区数据关联;</li>
<li>自定义属性:分类位置与属性位置的对应关系,数值类型与属性表的绑定;</li>
</ul>
</li>
<li>​<strong>​课后作业​</strong>​:
<ul>
<li>独立完成“装备自定义属性强化”脚本(含2条属性、分类标题、颜色设置);</li>
<li>测试INI配置项在服务器重启后的数据持久化,提交测试报告;</li>
<li>思考:如何通过INI配置项实现“充值返利”功能(如充值100元额外赠送10%元宝)?</li>
</ul>
</li>
</ol>
<h3>五、教学反思(课后填写)</h3>
<ul>
<li>学生是否能熟练区分INI缓存与硬盘存储的应用场景?</li>
<li>自定义属性的多分类管理是否掌握?常见问题(如属性不显示)是否解决?</li>
<li>下次课需加强:屏幕特效的坐标计算与自定义属性的颜色代码调试。</li>
</ul>
页: [1]
查看完整版本: 【蓝胖子】TXT基础课程,第6课___物品给予、配置项操作与自定义属性强化