一、基础合成脚本与成功率整合
基础脚本已能实现材料检测与合成,现需加入成功率机制。引擎通过 RANDOM 命令实现概率触发。RANDOM 后的数字代表总份数,条件成立时执行其中一份。
脚本示例(成功率50%):
[@合成极品金牛戒指]
#if
checkitem 金牛道戒 1
checkitem 金牛战戒 1
checkitem 金牛魔戒 1
checkitem 极品金牛碎片 2
#ACT
TAKE 金牛道戒 1
TAKE 金牛战戒 1
TAKE 金牛魔戒 1
TAKE 极品金牛碎片 2
; 以下为成功率判定
#IF
RANDOM 2 ; 2分之1的概率,即50%
#ACT
GIVE 极品金牛戒指 1
SENDMSG 1 恭喜勇士【%s】成功合成极品金牛戒指!
#ELSEACT
SENDMSG 6 合成失败,材料已消失!
BREAK
#ELSESAY
合成需要:金牛道戒x1、金牛战戒x1、金牛魔戒x1、极品金牛碎片x2。
二、添加“精练符”实现100%成功
需增加一个条件分支,优先检测玩家是否使用了“精练符”。若使用,则消耗该符并确保100%成功;若无,则走概率流程。
脚本示例(整合精练符):
[@合成极品金牛戒指]
; 分支1:有精练符,100%成功
#if
checkitem 精练符 1
checkitem 金牛道戒 1
checkitem 金牛战戒 1
checkitem 金牛魔戒 1
checkitem 极品金牛碎片 2
#ACT
TAKE 精练符 1
TAKE 金牛道戒 1
TAKE 金牛战戒 1
TAKE 金牛魔戒 1
TAKE 极品金牛碎片 2
GIVE 极品金牛戒指 1
SENDMSG 1 【全服】勇士【%s】使用精练符成功合成极品金牛戒指!
BREAK
; 分支2:无精练符,走概率合成
#if
checkitem 金牛道戒 1
checkitem 金牛战戒 1
checkitem 金牛魔戒 1
checkitem 极品金牛碎片 2
#ACT
TAKE 金牛道戒 1
TAKE 金牛战戒 1
TAKE 金牛魔戒 1
TAKE 极品金牛碎片 2
#if
RANDOM 5 ; 此处为5分之1概率,即20%成功率
#ACT
GIVE 极品金牛戒指 1
SENDMSG 1 恭喜勇士【%s】成功合成极品金牛戒指!
#ELSEACT
SENDMSG 6 合成失败,材料已消失!
BREAK
#ELSESAY
合成公式:\
<合成极品金牛戒指/@合成极品金牛戒指>\
\
条件A(100%成功):\
金牛道戒x1、金牛战戒x1、金牛魔戒x1、极品金牛碎片x2、精练符x1\
\
条件B(20%概率):\
金牛道戒x1、金牛战戒x1、金牛魔戒x1、极品金牛碎片x2
三、次级碎片合成脚本(禁止使用精练符)
次级碎片(王者/天龙/金牛碎片)合成不允许使用精练符,仅支持概率合成。其逻辑与基础概率合成相同。
脚本示例(合成“极品金牛碎片”):
[@合成极品金牛碎片]
#if
checkitem 王者碎片 1
checkitem 天龙碎片 1
checkitem 金牛碎片 1
#ACT
TAKE 王者碎片 1
TAKE 天龙碎片 1
TAKE 金牛碎片 1
; 成功率设定为33%(3分之1)
#if
RANDOM 3
#ACT
GIVE 极品金牛碎片 1
SENDMSG 6 成功合成极品金牛碎片x1!
#ELSEACT
SENDMSG 6 碎片合成失败,材料消失!
BREAK
#ELSESAY
合成极品金牛碎片需要:王者碎片x1、天龙碎片x1、金牛碎片x1。\
成功率约为33%。\
<开始合成/@合成极品金牛碎片>
四、关键命令与结构解析
1. RANDOM 命令:RANDOM N 表示有 N 分之1的概率执行紧随其后的 #ACT。概率 = 1/N * 100%。例如 RANDOM 4 表示25%成功率。
2. 条件分支顺序:脚本执行是自上而下的。必须将“有精练符100%成功”的分支放在前面,将“无符概率合成”的分支放在后面。否则,玩家即使有符也会先进入概率分支,导致精练符无效。
3. 材料消耗时机:在概率判定之前就应执行 TAKE 命令扣除材料。这是标准设定,无论成功与否材料均消失。若希望失败时返还材料,需使用变量暂存,并在失败时用 GIVE 命令返还,逻辑较为复杂。
4. 成功率提示:在NPC的 #SAY 对话中,应明确写明合成成功概率,避免玩家争议。
五、扩展:添加合成次数记录与保底
可使用个人变量记录合成失败次数,达到一定次数后触发保底成功。
#if
checkitem ...
#ACT
; 扣除材料...
; 概率判定
#if
RANDOM 5
#ACT
GIVE 极品金牛戒指 1
SENDMSG 1 合成成功!
CALCVAR HUMAN 合成失败次数 = 0 ; 成功则清零
SAVEVAR HUMAN 合成失败次数 ..\QuestDiary\合成记录.txt
#ELSEACT
CALCVAR HUMAN 合成失败次数 + 1
SAVEVAR HUMAN 合成失败次数 ..\QuestDiary\合成记录.txt
; 检测保底
#if
LARGE HUMAN 合成失败次数 9
#ACT
GIVE 极品金牛戒指 1
CALCVAR HUMAN 合成失败次数 = 0
SAVEVAR HUMAN 合成失败次数 ..\QuestDiary\合成记录.txt
SENDMSG 1 保底机制触发,合成成功!
按照上述结构,可构建出带概率、有保底、分条件的完整合成脚本系统。

