很多新手在写传奇 NPC 代码时,常会对代码里的 %100、+5、+6 这类符号感到困惑 —— 就像你给出的买卖 NPC 代码,虽然能实现基础的 “买 / 卖 / 关” 功能,但没标注这些符号的用途,实际用起来容易出错。下面从你给的示例代码入手,一步步拆解基础逻辑,再详细说明这些符号的作用。
一、先拆示例代码:搞懂 NPC 基础框架
你给出的代码是典型的 “买卖类 NPC” 基础模板,先理清每个部分的作用,才能更好理解后续符号:
[@main] // NPC的“主界面触发指令”,玩家对话时首先显示的内容
欢迎光临!!! // 主界面的文字提示,玩家能直接看到
<买/@buy> // 点击“买”,触发@buy指令(打开购买界面)
<卖/@sell> // 点击“卖”,触发@sell指令(打开出售界面)
<关闭/@exit> // 点击“关闭”,触发@exit指令(退出NPC对话)
这套代码只实现了 “打开买卖界面” 的基础功能,而 %100、+5、+6 通常是加在 @buy 或 @sell 指令里的 “参数”,用来控制买卖的细节 —— 比如价格、物品属性、购买数量等,下面逐个解释。
二、核心疑问解答:%100、+5、+6 是什么?有什么用?
(一)%100:控制 “倍率” 的参数,常见于价格、概率
在传奇 NPC 代码里,“%+ 数字” 几乎都和 “倍率” 有关,结合你给的 “买卖 NPC” 场景,%100 的核心作用是 “价格倍率”,偶尔也会用于 “成功率”,具体分两种情况:
买卖价格倍率(最常用)
如果在 @buy 或 @sell 指令后加上 %100,意思是 “按物品原价进行交易”—— 比如游戏里默认青铜剑卖 100 金币,加 %100 后,玩家买这把剑还是花 100 金币,卖的话也只能得 100 金币。
如果改参数,效果会变:比如写 @buy%90,就是 “买东西打 9 折”(青铜剑花 90 金币);写 @sell%120,就是 “卖东西能多赚 20%”(青铜剑卖 120 金币)。
举个修改后的代码例子,更直观:
[@buy] // 购买指令加价格倍率
<青铜剑(100金币)/购买青铜剑|1|100%> // 这里%100就是按原价买
<铁剑(200金币)/购买铁剑|1|90%> // 这里%90就是9折买
少数场景:概率控制
如果 NPC 不是买卖类,而是 “抽奖”“鉴定装备” 类,%100 就是 “100% 成功率”—— 比如写 “< 鉴定装备 /@identify%100>”,意思是玩家鉴定装备时一定成功;如果是 %30,就是 30% 成功率。
(二)+5、+6:分 “属性加成” 和 “数量控制” 两种核心作用
“+ 数字” 比 %100 更灵活,具体意思要看代码上下文,但在你给的买卖 NPC 里,主要是下面两种用法:
用法 1:物品属性加成(最常见)
如果在 @buy 指令里给物品加 + 5、+6,意思是 “玩家买的这件装备,自带额外属性”—— 比如写 “< 青铜剑 + 5/@buy>”,这里的 + 5 就是 “青铜剑附加 5 点攻击属性”;如果是法师装备,+6 可能是 “附加 6 点魔法属性”。
修改后的买卖代码示例:
[@buy]
<青铜剑(+5攻击)/购买青铜剑|1|100%> // 买的剑带+5攻击
<魔法杖(+6魔法)/购买魔法杖|1|100%> // 买的杖带+6魔法
这种用法在 “高级 NPC” 里很常见,比如给会员玩家卖带属性的装备,就靠 “+ 数字” 来设置附加属性。
2. 用法 2:单次操作数量控制
如果买卖的是药水、卷轴这类 “堆叠物品”,+5、+6 就是 “单次购买 / 出售的数量”—— 比如写 “< 小红药 + 5/@buy>”,意思是玩家点一次 “买小红药”,会直接获得 5 瓶,而不是 1 瓶;+6 就是一次得 6 瓶,不用反复点击。
代码例子:
[@buy]
<小红药(5瓶)/购买小红药|5|100%> // 这里+5对应数量5
<回城卷(6张)/购买回城卷|6|100%> // 这里+6对应数量6
这里要注意:数量控制的 “+5”,在代码里通常直接写数字(比如 | 5|),但新手常简写为 “+5”,本质是一个意思。
三、常见 NPC 代码扩展:结合符号的实用案例
理解基础符号后,再看两个扩展案例,能更灵活用代码:
案例 1:带折扣 + 属性的买卖 NPC
[@main]
欢迎来到福利商店!
<买属性装备/@buy1>
<卖装备/@sell1>
<关闭/@exit>
[@buy1] // 9折买带属性的装备
<青铜剑(+5攻击)/购买青铜剑|1|90%>
<魔法杖(+6魔法)/购买魔法杖|1|90%>
[@sell1] // 卖装备多赚10%
<出售装备/出售物品|1|110%>
案例 2:带概率的属性加成 NPC
[@main]
我能给你加临时属性!
<加5点攻击(100%成)/@addatk1>
<加6点魔法(80%成)/@addmag1>
<关闭/@exit>
[@addatk1]
恭喜!获得5点攻击(持续1小时)
#ACT
ADDAttack 5 3600 // 加5攻击,持续3600秒(1小时)
[@addmag1]
#ACT
Random 10 // 生成1-10的随机数
IfEqual HUMANRANDOM 10 // 如果随机数是10(10%概率失败)
Goto @fail
Else // 90%?不对,用户要80%,改Random 10,IfEqual 1-2失败(20%)
Goto @fail
Else
ADDMagic 6 3600 // 加6魔法,持续1小时
Goto @success
四、新手写 NPC 代码的注意事项
符号要跟上下文匹配:比如在买卖装备时,+5 优先理解为属性;买卖药水时,优先理解为数量,别搞混场景。
写完必测试:比如加了 %90 折扣后,进游戏买件装备,看金币扣的是不是 9 折,避免参数写错(比如把 %90 写成 90%,部分引擎不识别)。
参考现成代码:如果不确定符号用法,可找传奇服务端里 “默认 NPC” 的代码(比如 “武器店老板”“药店老板”),对照着改,比自己瞎写更稳妥。
如果后续你想写特定功能的 NPC(比如任务 NPC、抽奖 NPC),可以把具体需求说清楚,再针对性拆解代码里的符号和指令用法。
传奇 NPC 代码问题解析:从示例代码看懂 %100、+5、+6 的含义与用法
来源:
作者:
点击:

