很多人都在找的星星合成师完整传奇脚本:NPC合成、失败率、材料回收与进度条参考示例

来源: 作者: 点击:
“星星合成师”属于传奇服务端常见NPC玩法,核心是把若干低阶材料或装备合成更高阶星星装备。脚本本身没有统一官方版本,HERO、GOM、GEE、BLUE、996等引擎写法差异很大,下面只按通用传奇NPC脚本结构给出学习参考示例,物品名、变量名、地图名、概率都要按实际版本替换。

NPC主界面

NPC脚本放在Market_Def或对应引擎NPC目录下,主入口使用[@main]。

[@main]
IF
SAY
\
将低阶装备与星辰材料合成高阶星星装备。\
当前合成等级:>星\
\
\
\
\
\
<关闭/@exit>

U0用于记录玩家当前装备合成星级,这里使用可保存的私人变量,避免小退后星级丢失。

合成规则说明

[@rule]
IF
SAY
\
合成需要基础装备和星辰材料。\
合成成功则星级提升1级。\
合成失败可能扣除1星或保持原星级。\
合成材料不可返还。\
<返回/@main>

单段合成脚本

每段合成先检测材料,再扣除材料,最后按概率判断成功或失败。

[@syn1]
IF
CHECKITEM 基础武器 1
CHECKITEM 星辰碎片 10
ACT
TAKE 基础武器 1
TAKE 星辰碎片 10
MOV N0 1
MOV N1 100
MOV N2 90
CALL [@SynResult]
ELSESAY

[@syn2]
IF
EQUAL U0 1
CHECKITEM 星辰碎片 20
ACT
TAKE 星辰碎片 20
MOV N0 2
MOV N1 100
MOV N2 75
CALL [@SynResult]
ELSESAY

[@syn3]
IF
EQUAL U0 2
CHECKITEM 星辰碎片 40
CHECKITEM 星辰精华 5
ACT
TAKE 星辰碎片 40
TAKE 星辰精华 5
MOV N0 3
MOV N1 100
MOV N2 60
CALL [@SynResult]
ELSESAY

成功率判定

N1设为100,N2为成功概率。通过随机数判断是否成功。

[@SynResult]
IF
ACT
MOV N3 <RANDOM(100)>
LARGE N2 N3
CALL [@SynSuccess]
ELSEACT
CALL [@SynFail]

这里<RANDOM(100)>生成0到99的随机数,若成功概率大于随机数则判定成功。不同引擎随机数写法可能不同,需要按当前引擎文档确认。

合成成功处理

[@SynSuccess]
IF
ACT
MOV U0 N0
GIVE 星星装备<STR(N0)> 1
SENDMSG 6 合成成功,获得<STR(N0)>星装备。
CALL [@Main]

如果版本采用属性叠加方式,也可以不发放新装备,而是直接给原装备增加属性。

合成失败处理

失败时可以选择降星、保星或返还部分材料。

[@SynFail]
IF
SMALL U0 1
ACT
SENDMSG 6 合成失败,星级未变化。
CALL [@Main]
ELSEACT
DEC U0 1
SENDMSG 6 合成失败,星级下降1级。
CALL [@Main]

如果想增加保星道具,可以再加一段判断。

[@SynFail]
IF
CHECKITEM 保星符 1
ACT
TAKE 保星符 1
SENDMSG 6 使用保星符,星级未下降。
CALL [@Main]
ELSEACT
DEC U0 1
SENDMSG 6 合成失败,星级下降1级。
CALL [@Main]

进度条展示

如果引擎支持客户端进度条,可以在合成前显示进度。

[@syn1]
IF
CHECKITEM 基础武器 1
CHECKITEM 星辰碎片 10
ACT
CliProgBar 2000 正在合成1星装备
TAKE 基础武器 1
TAKE 星辰碎片 10
DELAYGOTO 2000 @SynCheck1
ELSESAY

[@SynCheck1]
IF
ACT
MOV N3 <RANDOM(100)>
LARGE 90 N3
CALL [@SynSuccess1]
ELSEACT
CALL [@SynFail1]

不是所有引擎都支持CliProgBar,不支持时可用DELAYGOTO延迟后直接给出结果。

材料回收配合

合成系统常会积累低阶材料或失败装备,可以配合回收脚本。

[@RecycleStar]
IF
CHECKITEM 失败星石 10
ACT
TAKE 失败星石 10
GIVE 星辰碎片 5
SENDMSG 6 回收失败星石,获得星辰碎片5个。

背包检测

发放合成奖励前建议检测背包空间。

[@SynSuccess]
IF
CHECKBAGSPACE 1
ACT
MOV U0 N0
GIVE 星星装备<STR(N0)> 1
SENDMSG 6 合成成功,获得<$STR(N0)>星装备。
ELSEACT
SENDMSG 6 背包已满,合成奖励无法发放。
GIVE 基础武器 1
GIVE 星辰碎片 10

这里失败后返还材料只是参考,实际是否返还要看版本设定。

变量规划

U0:玩家当前装备合成星级,可保存。
N0:本次合成目标星级。
N1:随机上限。
N2:成功概率。
N3:随机结果。

GOM/GEE引擎中U变量可保存到人物数据库,适合记录玩家星级;N变量小退可能归零,不适合单独保存星级。

常见问题排查

合成后星级不变化,检查是否使用了可保存变量。材料扣除但奖励未发放,检查背包空间检测。成功率始终为100%,检查随机数与概率比较方向是否写反。进度条不显示,确认引擎是否支持对应进度条命令。脚本修改后不生效,需要重载NPC或重启服务端相关脚本。

星星合成师脚本的重点不在单个合成按钮,而在于材料检测、概率判定、星级记录、失败处理、背包检测和材料回收形成闭环。不同引擎在变量类型、随机数、进度条和物品发放命令上会有差异,正式使用前应先在小地图或测试号上验证。