查看: 8|回复: 0

传奇单机版装备鉴定洗练脚本怎么写?随机属性一套代码搞定,还能洗练重置

59

主题

40

回帖

327

积分

二百VIP

积分
327
发表于 昨天 14:40 | 显示全部楼层 |阅读模式
二百论坛
本站支持代销互换开区传奇版本、欢迎广大GM、技术、一条龙等传奇业界好友合作、联系业务QQ:1531850810

QQ交流群①:323634742(推荐 )QQ交流群②:764544814(推荐)

本站提供的传奇版本 由于来源不同 精力有限 无法100%测试 如需使用本传奇版本请切记

下载传奇版本后 先解压 再杀毒 更新官方引擎 最后再配置登陆器 避免被非法木马插件利用


论坛里关于鉴定脚本的帖子一直是脚本区查看量最高的那批。每次有人发新版本的鉴定脚本,回复能排到五六页。说明这个功能几乎是传奇单机版的标配——玩家要的不是直接给极品,而是那个"不知道开出啥"的期待感。

但很多GM搞了两天也没整明白:鉴定脚本到底是怎么运作的?洗练和鉴定的逻辑有什么区别?今天把这两套代码的核心逻辑拆开说,带注释的完整框架贴出来,照着改就能跑。

先弄懂鉴定的本质

传奇里的鉴定,本质是在物品名称上追加随机属性后缀,配合CHANGEITEMADDVALUE命令修改物品属性数值。

所以鉴定脚本干的事就三件:
1. 判断背包里有没有待鉴定的物品
2. 用随机数决定属性类型和数值
3. 把物品名称改掉,同时修改对应属性数值

鉴定脚本核心框架

脚本文件路径:Script/QFunction/QFunction-0.txt
  1. ; ============================
  2. ; 鉴定NPC主入口
  3. ; ============================
  4. #NPC 鉴定师/IDENTIFY_NPC
  5. [@main]
  6. #SAY 把装备交给我,我帮你鉴定。#CHECKBAGITEMCOUNT 待鉴定武器 1
  7. #IFBAGITEMCOUNT< 待鉴定武器 1 @NotFound
  8. GOTO @BeginIdentify
  9. [@NotFound]
  10. #SAY 你背包里没有可鉴定的装备。
  11. RETURN
  12. [@BeginIdentify]
  13. ; 消耗鉴定材料
  14. #DELITEM 待鉴定武器 1
  15. ; 生成随机数决定属性档次
  16. SETVAR %RandTier% %RANDOM% 1 100
  17. #IFVAR %RandTier% >= 90 GOTO @GodTier
  18. #IFVAR %RandTier% >= 60 GOTO @BlueTier
  19. #IFVAR %RandTier% >= 30 GOTO @GreenTier
  20. GOTO @WhiteTier
  21. ; ============================
  22. ; 神级属性(90-100)
  23. ; ============================
  24. [@GodTier]
  25. SETVAR %AtkVal% %RANDOM% 80 100
  26. CHANGEITEMADDVALUE 物品名称_神 MAXAC %AtkVal%
  27. GIVE 物品名称_神〔天选〕 1
  28. #SAY 【天选之物】!攻击+%AtkVal%!
  29. RETURN
  30. ; ============================
  31. ; 蓝字属性(60-89)
  32. ; ============================
  33. [@BlueTier]
  34. SETVAR %AtkVal% %RANDOM% 40 70
  35. CHANGEITEMADDVALUE 物品名称_蓝 MAXAC %AtkVal%
  36. GIVE 物品名称_蓝〔精良〕 1
  37. #SAY 【精良】!攻击+%AtkVal%!
  38. RETURN
  39. ; ============================
  40. ; 绿字属性(30-59)
  41. ; ============================
  42. [@GreenTier]
  43. SETVAR %AtkVal% %RANDOM% 15 39
  44. CHANGEITEMADDVALUE 物品名称_绿 MAXAC %AtkVal%
  45. GIVE 物品名称_绿〔普通〕 1
  46. #SAY 【普通】!攻击+%AtkVal%!
  47. RETURN
  48. ; ============================
  49. ; 白字属性(1-29)
  50. ; ============================
  51. [@WhiteTier]
  52. SETVAR %AtkVal% %RANDOM% 1 14
  53. CHANGEITEMADDVALUE 物品名称_白 MAXAC %AtkVal%
  54. GIVE 物品名称_白〔残次〕 1
  55. #SAY 【残次品】...属性不太行。
  56. RETURN
复制代码

三个必须注意的坑

坑一:CHANGEITEMADDVALUE的物品名称要精确匹配

这个命令里的物品名称,必须和StdItems数据库里的名称一字不差。很多人写了半天发现属性没加上去,打开DBC一看,数据库里是"无名武器",脚本里写的是"无名武器 "(多了个空格)。

建议:先用GM命令 /CHECKITEM 物品名称 确认能不能找到物品,找得到再写到脚本里。

坑二:%RANDOM%的范围是包含两端的整数

SETVAR %AtkVal% %RANDOM% 1 100 会生成1到100之间的随机整数,包括1和100本身。不少人以为是开区间,结果临界值那档属性永远出不来,找半天bug。

坑三:物品名称后缀要在StdItems里预先建好

GIVE 物品名称_神〔天选〕 1 这个命令要求StdItems里已经有对应记录。不是说改了名字就自动创建新物品——你得在数据库里提前把各档次的物品都建好,脚本只是负责"发放"对应档次的物品并修改其属性数值。

这是很多人把鉴定脚本和ChangeItemName命令混淆之后踩的坑。ChangeItemName是直接改已有物品的名字字段;GIVE是给玩家发一个新物品。这两种实现思路逻辑不同,不要搞混。

洗练脚本——比鉴定多一步

洗练的逻辑比鉴定多一个"先取走旧物品,再给新物品"的过程:
  1. ; ============================
  2. ; 洗练NPC主入口
  3. ; ============================
  4. #NPC 洗练师/REROLL_NPC
  5. [@main]
  6. #SAY 把装备交给我,重新赋予属性。消耗洗练石×1。#CHECKBAGITEMCOUNT 洗练石 1
  7. #IFBAGITEMCOUNT< 洗练石 1 @NoMaterial
  8. #CHECKBAGITEMCOUNT 已鉴定武器 1
  9. #IFBAGITEMCOUNT< 已鉴定武器 1 @NoItem
  10. GOTO @BeginReroll
  11. [@NoMaterial]
  12. #SAY 洗练石不足,无法洗练。
  13. RETURN
  14. [@NoItem]
  15. #SAY 背包里没有可洗练的装备。
  16. RETURN
  17. [@BeginReroll]
  18. ; 消耗材料
  19. #DELITEM 洗练石 1
  20. #DELITEM 已鉴定武器 1
  21. ; 重新走一遍随机属性逻辑
  22. SETVAR %RandTier% %RANDOM% 1 100
  23. #IFVAR %RandTier% >= 90 GOTO @GodTier
  24. #IFVAR %RandTier% >= 60 GOTO @BlueTier
  25. #IFVAR %RandTier% >= 30 GOTO @GreenTier
  26. GOTO @WhiteTier
  27. ; (后续和鉴定代码相同,参照上方 @GodTier ~ @WhiteTier 部分)
复制代码

洗练和鉴定代码结构几乎一样,核心差异就是多了 #DELITEM 已鉴定武器 1 这一步——先销毁旧物品,再给新的。

可以延伸的方向

1. 多属性鉴定:一件装备同时随机出攻击+魔防+体力三条属性,用三次SETVAR分别生成随机数,然后叠加CHANGEITEMADDVALUE
2. 鉴定券系统:把鉴定消耗的材料换成"鉴定券",让玩家通过任务或充值获得,比直接买更有设计感
3. 锻造等级限制:加一个 #IFVAR %PlayerLevel% < 20 @LevelTooLow 的检测,低等级玩家无法使用高端鉴定
4. 保底机制:记录玩家连续鉴定次数变量 %BadLuckCount%,超过一定次数强制触发精良以上档次,避免极端运气差的玩家流失

这套框架搭好之后,后面各种变体就是改数值范围和档次门槛的事。核心逻辑只要跑通一次,基本上没有大坑。

有遇到CHANGEITEMADDVALUE不生效或者物品名称匹配失败的,把具体的报错信息贴出来,看到了帮排查。
二百论坛
免责声明:

1、本论坛资源均来源于网络

2、如下载使用,自行杀毒

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ| 手机版|小黑屋|二百版本库 |网站地图

免责声明:本站所有资源皆来自于互联网.请在下载使用内24小时内删除! 如果侵犯了您的权益,请至邮箱: (1531850810@qq.com), 我们会及时删除侵权内容。

Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5

关于我们 | 联系方式 | 隐私政策