“星星合成师”属于传奇服务端常见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
MOVN01
MOVN1100
MOVN290
CALL[@SynResult]
ELSESAY
[@syn2]
IF
EQUALU01
CHECKITEM星辰碎片20
ACT
TAKE星辰碎片20
MOVN02
MOVN1100
MOVN275
CALL[@SynResult]
ELSESAY
[@syn3]
IF
EQUALU02
CHECKITEM星辰碎片40
CHECKITEM星辰精华5
ACT
TAKE星辰碎片40
TAKE星辰精华5
MOVN03
MOVN1100
MOVN260
CALL[@SynResult]
ELSESAY
成功率判定
N1设为100,N2为成功概率。通过随机数判断是否成功。
[@SynResult]
IF
ACT
MOVN3<RANDOM(100)>
LARGEN2N3
CALL[@SynSuccess]
ELSEACT
CALL[@SynFail]
这里<RANDOM(100)>生成0到99的随机数,若成功概率大于随机数则判定成功。不同引擎随机数写法可能不同,需要按当前引擎文档确认。
合成成功处理
[@SynSuccess]
IF
ACT
MOVU0N0
GIVE星星装备<STR(N0)>1
SENDMSG6合成成功,获得<STR(N0)>星装备。
CALL[@Main]
如果版本采用属性叠加方式,也可以不发放新装备,而是直接给原装备增加属性。
合成失败处理
失败时可以选择降星、保星或返还部分材料。
[@SynFail]
IF
SMALLU01
ACT
SENDMSG6合成失败,星级未变化。
CALL[@Main]
ELSEACT
DECU01
SENDMSG6合成失败,星级下降1级。
CALL[@Main]
如果想增加保星道具,可以再加一段判断。
[@SynFail]
IF
CHECKITEM保星符1
ACT
TAKE保星符1
SENDMSG6使用保星符,星级未下降。
CALL[@Main]
ELSEACT
DECU01
SENDMSG6合成失败,星级下降1级。
CALL[@Main]
进度条展示
如果引擎支持客户端进度条,可以在合成前显示进度。
[@syn1]
IF
CHECKITEM基础武器1
CHECKITEM星辰碎片10
ACT
CliProgBar2000正在合成1星装备
TAKE基础武器1
TAKE星辰碎片10
DELAYGOTO2000@SynCheck1
ELSESAY
[@SynCheck1]
IF
ACT
MOVN3<RANDOM(100)>
LARGE90N3
CALL[@SynSuccess1]
ELSEACT
CALL[@SynFail1]
不是所有引擎都支持CliProgBar,不支持时可用DELAYGOTO延迟后直接给出结果。
材料回收配合
合成系统常会积累低阶材料或失败装备,可以配合回收脚本。
[@RecycleStar]
IF
CHECKITEM失败星石10
ACT
TAKE失败星石10
GIVE星辰碎片5
SENDMSG6回收失败星石,获得星辰碎片5个。
背包检测
发放合成奖励前建议检测背包空间。
[@SynSuccess]
IF
CHECKBAGSPACE1
ACT
MOVU0N0
GIVE星星装备<STR(N0)>1
SENDMSG6合成成功,获得<$STR(N0)>星装备。
ELSEACT
SENDMSG6背包已满,合成奖励无法发放。
GIVE基础武器1
GIVE星辰碎片10
这里失败后返还材料只是参考,实际是否返还要看版本设定。
变量规划
U0:玩家当前装备合成星级,可保存。
N0:本次合成目标星级。
N1:随机上限。
N2:成功概率。
N3:随机结果。
GOM/GEE引擎中U变量可保存到人物数据库,适合记录玩家星级;N变量小退可能归零,不适合单独保存星级。
常见问题排查
合成后星级不变化,检查是否使用了可保存变量。材料扣除但奖励未发放,检查背包空间检测。成功率始终为100%,检查随机数与概率比较方向是否写反。进度条不显示,确认引擎是否支持对应进度条命令。脚本修改后不生效,需要重载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
MOVN01
MOVN1100
MOVN290
CALL[@SynResult]
ELSESAY
[@syn2]
IF
EQUALU01
CHECKITEM星辰碎片20
ACT
TAKE星辰碎片20
MOVN02
MOVN1100
MOVN275
CALL[@SynResult]
ELSESAY
[@syn3]
IF
EQUALU02
CHECKITEM星辰碎片40
CHECKITEM星辰精华5
ACT
TAKE星辰碎片40
TAKE星辰精华5
MOVN03
MOVN1100
MOVN260
CALL[@SynResult]
ELSESAY
成功率判定
N1设为100,N2为成功概率。通过随机数判断是否成功。
[@SynResult]
IF
ACT
MOVN3<RANDOM(100)>
LARGEN2N3
CALL[@SynSuccess]
ELSEACT
CALL[@SynFail]
这里<RANDOM(100)>生成0到99的随机数,若成功概率大于随机数则判定成功。不同引擎随机数写法可能不同,需要按当前引擎文档确认。
合成成功处理
[@SynSuccess]
IF
ACT
MOVU0N0
GIVE星星装备<STR(N0)>1
SENDMSG6合成成功,获得<STR(N0)>星装备。
CALL[@Main]
如果版本采用属性叠加方式,也可以不发放新装备,而是直接给原装备增加属性。
合成失败处理
失败时可以选择降星、保星或返还部分材料。
[@SynFail]
IF
SMALLU01
ACT
SENDMSG6合成失败,星级未变化。
CALL[@Main]
ELSEACT
DECU01
SENDMSG6合成失败,星级下降1级。
CALL[@Main]
如果想增加保星道具,可以再加一段判断。
[@SynFail]
IF
CHECKITEM保星符1
ACT
TAKE保星符1
SENDMSG6使用保星符,星级未下降。
CALL[@Main]
ELSEACT
DECU01
SENDMSG6合成失败,星级下降1级。
CALL[@Main]
进度条展示
如果引擎支持客户端进度条,可以在合成前显示进度。
[@syn1]
IF
CHECKITEM基础武器1
CHECKITEM星辰碎片10
ACT
CliProgBar2000正在合成1星装备
TAKE基础武器1
TAKE星辰碎片10
DELAYGOTO2000@SynCheck1
ELSESAY
[@SynCheck1]
IF
ACT
MOVN3<RANDOM(100)>
LARGE90N3
CALL[@SynSuccess1]
ELSEACT
CALL[@SynFail1]
不是所有引擎都支持CliProgBar,不支持时可用DELAYGOTO延迟后直接给出结果。
材料回收配合
合成系统常会积累低阶材料或失败装备,可以配合回收脚本。
[@RecycleStar]
IF
CHECKITEM失败星石10
ACT
TAKE失败星石10
GIVE星辰碎片5
SENDMSG6回收失败星石,获得星辰碎片5个。
背包检测
发放合成奖励前建议检测背包空间。
[@SynSuccess]
IF
CHECKBAGSPACE1
ACT
MOVU0N0
GIVE星星装备<STR(N0)>1
SENDMSG6合成成功,获得<$STR(N0)>星装备。
ELSEACT
SENDMSG6背包已满,合成奖励无法发放。
GIVE基础武器1
GIVE星辰碎片10
这里失败后返还材料只是参考,实际是否返还要看版本设定。
变量规划
U0:玩家当前装备合成星级,可保存。
N0:本次合成目标星级。
N1:随机上限。
N2:成功概率。
N3:随机结果。
GOM/GEE引擎中U变量可保存到人物数据库,适合记录玩家星级;N变量小退可能归零,不适合单独保存星级。
常见问题排查
合成后星级不变化,检查是否使用了可保存变量。材料扣除但奖励未发放,检查背包空间检测。成功率始终为100%,检查随机数与概率比较方向是否写反。进度条不显示,确认引擎是否支持对应进度条命令。脚本修改后不生效,需要重载NPC或重启服务端相关脚本。
星星合成师脚本的重点不在单个合成按钮,而在于材料检测、概率判定、星级记录、失败处理、背包检测和材料回收形成闭环。不同引擎在变量类型、随机数、进度条和物品发放命令上会有差异,正式使用前应先在小地图或测试号上验证。

