【蓝胖子】TXT实战课程,天赋系统

发表于:2025-7-30 13:38:15 138

视频课程

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


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

​适用对象​​:传奇引擎(如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的使用场景,需通过示例对比讲解;实操环节需加强巡视,及时解决引擎未重载、变量未初始化等问题。)

收藏
送赞
分享

发表回复