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