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

    TXT实战课程,天赋系统

    [复制链接]

    64

    主题

    2

    回帖

    302

    积分

    积分
    302
    发表于 2025-7-30 13:38:15 | 显示全部楼层 |阅读模式

    视频课程

    《传奇游戏引擎脚本开发——天赋系统设计与实现》教案


    ​课程名称​​:传奇游戏引擎脚本开发(八)——天赋系统设计与实现

    ​适用对象​​:传奇引擎(如996引擎)脚本开发学习者
    ​课时​​:2课时(90分钟)


    ​一、教学目标​

    1. ​知识目标​​:掌握天赋系统的核心组件(按钮界面、CSV表格、循环逻辑、属性组)的设计原理与引擎实现方法;理解天赋等级限制、属性动态添加的脚本逻辑。
    2. ​能力目标​​:能独立完成“天赋系统界面创建→按钮循环布局→CSV数据读取→属性动态绑定”的全流程脚本开发;能调试并解决天赋系统常见错误(如坐标错位、属性未持久化)。
    3. ​情感目标​​:通过实操任务,培养学生对游戏功能模块化设计的理解,提升逻辑思维与问题解决能力,为后续复杂系统(如技能系统、装备系统)开发奠定基础。

    ​二、教学重点与难点​

    • ​重点​​:
      • 天赋界面的创建(按钮添加、坐标计算与循环布局);
      • CSV表格的数据结构设计(天赋名称、等级要求、属性参数);
      • 循环逻辑的实现(变量控制、坐标换行计算);
      • 属性组的动态绑定(天赋开启后属性永久生效)。
    • ​难点​​:
      • 循环中坐标换行的计算逻辑(按钮横向/纵向排列的坐标推导);
      • 属性组的持久化存储(登录触发时加载已开启的天赋属性);
      • 天赋等级限制的条件判断(结合角色等级与CSV表格数据)。

    ​三、教学方法​

    • ​演示法​​:通过引擎可视化编辑器(控制台+F11)演示天赋界面创建、按钮循环布局、属性组绑定等操作,直观展示关键步骤。
    • ​任务驱动法​​:布置“天赋系统开发”实操任务(含界面设计、脚本编写、测试调试),引导学生分步骤完成。
    • ​问题解决法​​:针对学生实操中常见问题(如按钮错位、属性未生效),现场调试并讲解解决方案。

    ​四、教学过程​

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

    通过回顾上午内容(属性组、CSV表格),引出下午主题:“今天我们将开发一个‘天赋系统’——玩家每升一级可获得天赋点,自由选择天赋方向(如攻击、防御、技能伤害),天赋开启后可永久提升角色属性。掌握这一功能,能让你的游戏更具成长感与策略性。”


    ​(二)新授内容(50分钟)​

    ​1. 天赋界面设计与按钮添加(10分钟)​
    • ​界面定位​​:将天赋按钮添加至装备栏(界面ID=3,“角色外框”区域),确保玩家操作便捷。
    • ​按钮创建​​:
      • 新建自定义按钮,命名为“天赋按钮”,设置尺寸(宽105px,高30px),调整坐标至装备栏右上方(初始坐标X=317,Y=167)。
      • 绑定点击事件:LINK AT 天赋界面,跳转至天赋选择界面。
    • ​循环布局​​:
      • 使用循环逻辑(MOV N0 0N0 < 16),动态生成16个天赋按钮(对应CSV表格中的16行数据)。
      • 坐标计算:横向排列(X坐标递增110px),若X>200则换行(Y坐标递增40px),避免按钮重叠。

    ​2. CSV表格设计与数据读取(12分钟)​
    • ​表格结构​​:创建天赋系统.CSV,包含列:天赋名称开启等级属性类型(如攻击/防御)、属性值(如+10攻击)。
      天赋名称,开启等级,属性类型,属性值
      力量强化,30,攻击,+10
      敏捷强化,35,防御,+5
      技能精通,40,技能伤害,+8
      ...(共16行)
      
    • ​数据加载​​:
      • 使用LOAD TABLE指令加载CSV表格(天赋系统),通过GET TABLE VALUE读取指定行/列数据(如N0第2列为开启等级)。

    ​3. 循环逻辑与天赋开启(15分钟)​
    • ​循环框架​​:
      MOV N0 0          // 初始化循环变量N0(天赋索引)
      WHILE N0 < 16 DO  // 循环16次(对应16个天赋)
          // 读取当前天赋数据(名称、等级要求、属性)
          GET TABLE VALUE(天赋系统, N0, 0, S1)  // S1=天赋名称
          GET TABLE VALUE(天赋系统, N0, 1, S2)  // S2=开启等级
          GET TABLE VALUE(天赋系统, N0, 2, S3)  // S3=属性类型
          GET TABLE VALUE(天赋系统, N0, 3, S4)  // S4=属性值
      
          // 创建按钮并绑定参数(N0为索引)
          ADD BUTTON(天赋按钮, N0)  // 按钮ID=N0
          SET BUTTON TEXT(天赋按钮, N0, S1)  // 按钮显示天赋名称
      
          // 绑定点击事件(传递参数N0)
          LINK AT 选择天赋, N0
          MOV N0 (N0 + 1)  // 循环变量+1
      ENDWHILE
      
    • ​天赋开启判断​​:
      • 点击按钮时,传递参数N0(天赋索引),读取S2(开启等级),判断角色等级是否≥S2
      • 若满足条件,执行SET ATTR添加属性(如SET ATTR(攻击, ATTR_攻击 + S4));否则提示“等级不足”。

    ​4. 属性组绑定与持久化(10分钟)​
    • ​属性组动态添加​​:
      • 天赋开启时,通过ADD ATTR_GROUP指令绑定属性组(如天赋一对应攻击+10),避免使用ADD ATTR(临时属性,重启失效)。
      • 示例:
        IF 天赋一已开启 THEN  
            ADD ATTR_GROUP("天赋一", "=", 10)  // 攻击+10(永久生效)
        ENDIF
        
    • ​登录触发持久化​​:
      • 登录触发脚本中,读取T141变量(存储已开启的天赋主键),通过GET KEY VALUE获取已开启天赋列表,重新绑定属性组。
      • 示例:
        ON LOGIN BEGIN  
            LOAD TABLE(天赋系统)  // 服务器启动时已加载
            MOV N0 0
            WHILE N0 < 16 DO
                GET KEY VALUE(T141, N0, S5)  // S5=天赋开启状态(0/1)
                IF S5 == 1 THEN
                    ADD ATTR_GROUP("天赋"&N0, "=", S4)  // S4=属性值(来自CSV)
                ENDIF
                MOV N0 (N0 + 1)
            ENDWHILE
        ENDON
        

    ​(三)课堂练习(20分钟)​

    1. ​任务1:完善天赋界面​
      • 要求:调整按钮坐标(横向排列,间距10px),添加“天赋灰度”效果(未开启时按钮变灰),点击后显示“已开启”提示。
      • 提示:使用SET BUTTON COLOR(灰度=247,黄色=251)与SET BUTTON TEXT COLOR(未开启=灰色,已开启=黄色)。
    2. ​任务2:添加天赋等级限制​
      • 要求:在CSV表格中增加“开启等级”列(如天赋1=30级,天赋2=35级),脚本中判断角色等级是否达标,未达标时禁用按钮并提示。
      • 提示:使用CHECK LEVEL指令(如CHECK LEVEL >= S2)。
    3. ​任务3:测试属性持久化​
      • 要求:小退后重新登录,验证已开启的天赋属性是否保留(如攻击+10)。
      • 提示:检查登录触发脚本是否正确读取T141变量并绑定属性组。

    ​(四)总结与作业(10分钟)​

    • ​总结​​:
      • 天赋系统的核心是“界面布局+数据驱动+循环逻辑+属性持久化”;
      • CSV表格是数据存储的关键,需规范列名与数据类型;
      • 循环变量N0需与按钮索引、CSV行号严格对应,避免错位。
    • ​作业​​:
      1. 完善“天赋系统”脚本,添加16个天赋的完整数据(覆盖攻击、防御、技能伤害等属性)。
      2. 实现“天赋预览”功能(鼠标悬停按钮显示天赋详细信息,如“力量强化:30级开启,攻击+10”)。
      3. 思考:如何结合“套装系统”实现“套装激活后解锁额外天赋”?

    ​五、教学反思​

    (课后补充:需关注学生对循环逻辑中坐标计算的掌握情况,针对性辅导错位问题;部分学生可能混淆LOAD TABLEGET TABLE VALUE的使用场景,需通过示例对比讲解;实操环节需加强巡视,及时解决引擎未重载、变量未初始化等问题。)

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则