找回密码
 立即注册
    查看: 14|回复: 0

    TXT基础课程,检测与执行第6课___自定义属性

    [复制链接]

    52

    主题

    2

    回帖

    254

    积分

    积分
    254
    发表于 昨天 07:46 PM | 显示全部楼层 |阅读模式

    视频课程

    游戏脚本开发——物品给予、配置项操作与自定义属性强化

    ​授课对象​​:游戏开发/脚本编写学习者
    ​课时​​:2课时(90分钟)

    一、教学目标

    1. ​知识目标​​:
      • 掌握“OK框直接给予物品并穿戴”的脚本实现逻辑及参数含义;
      • 理解INI配置项的读写操作(写入硬盘、缓存读取)及应用场景;
      • 熟悉屏幕播放特效的参数配置与实际应用(如任务完成特效);
      • 掌握自定义属性的核心参数(分类位置、属性ID、数值类型、显示位置)及多属性添加方法。
    2. ​能力目标​​:
      • 能独立编写脚本实现“OK框物品直接穿戴”功能;
      • 能通过INI配置项记录玩家关键数据(如等级、元宝、充值金额);
      • 能根据需求添加屏幕特效(如合成成功/失败特效);
      • 能完成装备自定义属性强化脚本(含分类标题、多属性添加、颜色设置)。
    3. ​情感目标​​:
      • 培养严谨的脚本编写习惯(如参数顺序、分类位置匹配);
      • 理解游戏数据持久化的重要性(INI硬盘存储 vs 缓存存储);
      • 提升游戏功能模块化设计的逻辑思维能力。

    二、教学重点与难点

    • ​重点​​:
      1. OK框物品给予的参数逻辑(位置、物品名、数量、绑定规则);
      2. INI配置项的写入(路径、项区/项节、数据存储)与读取;
      3. 自定义属性的核心参数(分类位置、属性ID、数值类型、显示位置);
      4. 多属性添加的分类管理与颜色设置。
    • ​难点​​:
      • 自定义属性中“分类位置”与“属性位置”的对应关系;
      • 数值类型(百分比/数值)与参数3的绑定规则;
      • 多属性分类标题的颜色修改与显示位置分配。

    三、教学准备

    1. ​工具与环境​​:游戏引擎(如M2引擎)、脚本编辑器(如Notepad++)、测试账号、服务器硬盘路径(如M200\nQD);
    2. ​示例脚本​​:OK框物品给予脚本、INI读写脚本、屏幕特效脚本、自定义属性强化脚本;
    3. ​辅助材料​​:装备类型常量表(如项链=19)、属性ID表(如暴击几率=21)、颜色代码表(如紫色=241)。

    四、教学过程

    (一)课程导入(10分钟)

    1. ​回顾上节内容​​:提问“OK框的基础功能(如物品暂存)及参数含义”,学生抢答巩固记忆;
    2. ​本节目标说明​​:展示本节课核心功能(物品穿戴、INI配置、屏幕特效、自定义属性),强调“数据持久化”与“功能扩展性”的重要性;
    3. ​案例引入​​:展示游戏场景(如NPC对话直接发装备并穿戴、任务完成播放特效、装备强化添加属性),激发学习兴趣。

    (二)新授知识(60分钟)

    ​模块1:OK框直接给予物品并穿戴​
    1. ​功能场景​​:NPC对话时直接将装备放入玩家OK框并自动穿戴(不进背包);
    2. ​参数解析​​(4参数):
      • 参数1:位置(-1=OK框,0~55=装备位置);
      • 参数2:物品名(如“赤焰甲”);
      • 参数3:数量(>1时仅对自定义OK框叠加有效);
      • 参数4:绑定规则(1~14=属性类型,如1=防御、15=元素属性);
    3. ​操作演示​​:
      • 编写脚本:GiveItemToBox(-1, "赤焰甲", 1, 1)(-1=OK框,1=防御属性);
      • 测试验证:触发脚本后检查玩家装备栏是否自动穿戴,修改参数3为2测试叠加逻辑。
    ​模块2:INI配置项的读写操作​
    1. ​功能场景​​:记录玩家关键数据(如等级、元宝、充值金额),避免服务器重启后数据丢失;
    2. ​核心指令​​:
      • 写入:WriteIni(section, key, value, path)(section=玩家账号,key=数据项,value=数值,path=硬盘路径);
      • 读取:ReadIni(section, key, path)(读取硬盘中存储的数据);
    3. ​操作演示​​:
      • 编写脚本:
        -- 写入玩家等级、元宝  
        WriteIni(GetAccount(), "Level", GetLevel(), "M200\\nQD\\key.ini")  
        WriteIni(GetAccount(), "Yuanbao", GetMoney(), "M200\\nQD\\key.ini")
        
      • 测试验证:触发脚本后查看硬盘路径下key.ini文件,确认数据存储;重启服务器后读取验证数据持久化。
    ​模块3:屏幕播放特效​
    1. ​功能场景​​:任务完成、装备合成等节点添加视觉反馈(如粒子特效、光效);
    2. ​参数解析​​(7参数):
      • 参数1:特效ID(自定义编号);
      • 参数2:特效类型(如1=魔法光效);
      • 参数3-4:X/Y坐标(屏幕中心=600×600);
      • 参数5:播放速度(默认1);
      • 参数6:播放次数(0=永久,1=单次);
      • 参数7:播放对象(0=自己,1=所有人);
    3. ​操作演示​​:
      • 编写脚本(合成成功特效):
        PlayEffect(1001, 1, 600, 600, 1, 1, 0) -- 特效ID=1001,播放1次,仅自己可见
        
      • 测试验证:触发合成成功条件,观察屏幕指定位置是否播放特效。
    ​模块4:自定义属性强化(核心难点)​
    1. ​功能场景​​:为装备添加自定义属性(如暴击几率、幸运值),支持分类标题与颜色设置;
    2. ​核心参数​​:
      • 分类位置(0~5):每个分类可添加10条属性(共60条);
      • 属性位置(0~9):每条属性在分类中的顺序;
      • 数值类型(0=数值,3=百分比):绑定属性表(如score_att表);
      • 显示位置(0~9):属性在装备描述中的显示行数;
      • 颜色代码(0~255):分类标题颜色(如紫色=241);
    3. ​操作演示(分步)​​:
      • ​步骤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))显示新属性;
    4. ​常见问题​​:
      • 属性不显示:检查分类位置与属性位置是否匹配(如分类1对应属性位置0~9);
      • 颜色错误:确认参数3=0(绑定颜色)且颜色代码正确(如244=浅紫);
      • 数值类型混乱:百分比属性需绑定score_att表并设置参数3=3,数值属性设为0。

    (三)课堂练习(15分钟)

    1. ​基础练习​​:编写“NPC对话直接给予武器并穿戴”脚本(参数:位置=-1,物品名=“铁剑”,数量=1,绑定规则=防御);
    2. ​进阶练习​​:扩展INI配置项,记录玩家“转生等级”与“灵符数量”(使用常量RELEVELSPIRIT);
    3. ​挑战练习​​:为武器添加2条自定义属性(如“攻击力+50”“生命偷取3%”),要求分类标题为“强化属性”(红色=244),分别显示在第1、2行。

    (四)总结与作业(5分钟)

    1. ​重点总结​​:
      • OK框物品给予:参数顺序(位置→物品名→数量→绑定规则);
      • INI存储:用账号而非名字记录数据,确保正式区数据关联;
      • 自定义属性:分类位置与属性位置的对应关系,数值类型与属性表的绑定;
    2. ​课后作业​​:
      • 独立完成“装备自定义属性强化”脚本(含2条属性、分类标题、颜色设置);
      • 测试INI配置项在服务器重启后的数据持久化,提交测试报告;
      • 思考:如何通过INI配置项实现“充值返利”功能(如充值100元额外赠送10%元宝)?

    五、教学反思(课后填写)

    • 学生是否能熟练区分INI缓存与硬盘存储的应用场景?
    • 自定义属性的多分类管理是否掌握?常见问题(如属性不显示)是否解决?
    • 下次课需加强:屏幕特效的坐标计算与自定义属性的颜色代码调试。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则