TXT实战课程 首杀脚本

2周前发布 116 00

​​《全局首杀系统脚本制作》课程总结​ ​时间:2025-10-01 22:18:02​ ​课程时长:1小时15分钟​ ​核心内容与重点标记​ ​1. 界面设计(00:00-08:05)​​ ​核心逻辑​:通过循环CSV动态生成首杀界面,包含怪物名称、玩家击杀记录、奖励展示。 ​重点操作​: 使用列表容器+文本组件构建界面,通过MOV和I...

收录时间:
2025-10-01
招生信息

​《全局首杀系统脚本制作》课程总结

时间:2025-10-01 22:18:02

课程时长:1小时15分钟


核心内容与重点标记

1. 界面设计(00:00-08:05)​

  • 核心逻辑​:通过循环CSV动态生成首杀界面,包含怪物名称、玩家击杀记录、奖励展示。
  • 重点操作​:
    • 使用列表容器+文本组件构建界面,通过MOVINC动态挂载元素。
    • 关键变量​:A60(怪物主键值)、A61(击杀状态)、A62(击杀玩家名)。
    • 注意​:所有文本、图片需挂载到同一父节点(如基础容器或图片),确保位置对齐。

2. 数据存储与检测(08:33-22:28)​

  • 核心逻辑​:使用键值对(A变量)​存储首杀状态,重启服务器后数据保留(需手动清空)。
  • 替代方案​:
    • 文本检测法​:将怪物名存入TXT,通过CHECKTEXTLIST检测是否为首杀目标(推荐简化逻辑)。
  • 重点代码​: -- 检测怪物是否已被击杀(键值对写法) IF EQUAL <$KILLMONNAME> <$STR(A60)> BREAK -- 文本检测法示例 CHECKTEXTLIST ..\QuestDiary\首杀怪物.txt <$KILLMONNAME>

3. 击杀触发与状态更新(22:28-35:01)​

  • 核心逻辑​:在杀怪触发中修改键值对状态,并更新界面显示(颜色、玩家名)。
  • 关键步骤​:
    1. 检测首杀资格​:怪物未被击杀(A61=0)且在首杀列表内。
    2. 更新状态​: MOV A61 1 -- 标记为已击杀 MOV A62 <$USERNAME> -- 记录击杀者 SETTEXTLINECOLOR 249 -- 文字变红(未击杀为绿色)
    3. 奖励发放​:通过邮件(MAIL)发送奖励,避免直接GIVE导致刷物品漏洞。

4. 动态显示优化(35:01-48:49)​

  • 问题与解决​:
    • 常量误用​:初始代码因固定常量导致循环显示异常(所有怪物均显示同一击杀者)。
    • 修复方案​:通过循环逐行读取CSV,动态匹配怪物主键值(A60)与击杀状态(A61)。
  • 关键代码​: -- 循环内动态获取怪物名 GETCSV <$STR(N)> 1 A60 -- 根据A61状态显示颜色 IF EQUAL <$STR(A61)> 1 SETTEXTLINECOLOR 249 -- 已击杀(红) ELSE SETTEXTLINECOLOR 50 -- 未击杀(绿)

5. 奖励发放优化(48:49-59:10)​

  • 核心问题​:如何根据怪物名匹配对应奖励(CSV中元宝数量)。
  • 解决方案​:
    • 键值对二次查询​:通过怪物名获取奖励列数据(需额外键值对存储)。
    • 文本对比法​:直接对比怪物名与奖励表(更简单,推荐新手使用)。
  • 示例代码​: -- 从CSV获取奖励数量(第2列) GETCSV <$STR(N)> 2 A63 -- 发送邮件奖励 MAIL <$USERNAME> 首杀奖励 元宝*<$STR(A63)> 0 0

总结与建议

  1. 首杀 vs 首爆​:
    • 首杀​:杀怪触发检测,全局变量(A/G)存储。
    • 首爆​:入包触发检测,逻辑相同但需检测物品名。
  2. 优化方向​:
    • 使用文本检测替代键值对,降低复杂度。
    • 奖励发放务必通过MAIL,避免漏洞。
  3. 常见问题​:
    • 变量未清空导致逻辑错误(合区需手动处理)。
    • 界面动态生成时注意父子节点挂载关系。

课程结束时间:01:01:15

课后建议​:动手实践时优先尝试文本检测法,再逐步过渡到键值对高级用法。

数据统计

相关导航

暂无评论

none
暂无评论...