你的脚本思路正确,但结构存在重复判定和逻辑顺序问题。要实现50%的合成成功率,关键在于正确理解并使用#if、random、#act的匹配关系。以下是修正后的脚本范例。
一、修正后的完整脚本(50%成功)
脚本的核心是在材料检测通过后,立即使用random函数进行概率判定,并将成功和失败的逻辑明确分开。
[@kryz3]
IF
checkitem皓月神剑3
ACT
;1.先随机
random2
;2.判定失败(random2的结果为0时执行)
IF
EQUALN$随机数0
ACT
take皓月神剑3
MESSAGEBOX很遗憾,合成失败!
BREAK
;3.判定成功(random2的结果为1时执行)
IF
EQUALN$随机数1
ACT
take皓月神剑3
give虎溪砍刀1
MESSAGEBOX恭喜玩家:『<$USERNAME>』合成【虎溪砍刀】成功.!!
BREAK
ELSEACT
MESSAGEBOX缺少合成物品皓月神剑3个!
代码要点解析:
1.概率核心:random2命令会产生一个0或1的随机数,并存入变量N$随机数。由于数字是均等概率出现的,因此0和1各占50%概率。
2.结构逻辑:脚本先统一检查材料是否足够。如果材料足够,才进行概率判断。接着,用#IFEQUALN$随机数0和#IFEQUALN$随机数1两个并列的条件分支,分别处理失败和成功的逻辑,并用BREAK结束流程,避免继续向下执行。
3.材料扣除:失败和成功的逻辑中都包含了take皓月神剑3,这确保了无论合成是否成功,材料都会被消耗。这是符合大多数游戏设定的“合成有消耗”规则。
二、进阶概率与功能扩展
根据上述模板,你可以轻松修改概率,并添加更多功能。
1.修改成功率(例如20%成功)
将random2改为random5。此时随机数范围是0-4,共5个数字。
•成功:只需设定一个数字代表成功,如#IFEQUALN$随机数0,则成功率为1/5,即20%。
•失败:将条件改为#IFLARGEN$随机数0或#IFSMALLN$随机数1等,来匹配剩下的4个数字。
2.添加合成费用与公告
可以在概率判断前增加金币检查,并在成功时发送全服公告。
[@kryz3]
IF
checkitem皓月神剑3
CHECKGOLD1000000
ACT
random2
take皓月神剑3
take金币1000000
IF
EQUALN$随机数0
ACT
MESSAGEBOX很遗憾,合成失败!
BREAK
IF
EQUALN$随机数1
ACT
give虎溪砍刀1
SENDMSG0玩家[%s]成功合成『虎溪砍刀』,普天同庆!
MESSAGEBOX恭喜你合成成功!
BREAK
ELSEACT
MESSAGEBOX缺少材料或金币不足100万!
3.添加合成幸运值(简化版)
可以通过检测玩家背包中“幸运宝石”等道具,临时提升成功率。
IF
checkitem皓月神剑3
ACT
;默认概率1/3
MOVN$成功值0
;检测幸运宝石,有则提升概率
IF
CHECKITEM幸运宝石1
ACT
take幸运宝石1
;有宝石时,成功值改为1(即50%概率)
MOVN$成功值1
SENDMSG0幸运宝石的力量融入了合成炉!
;根据设定进行随机判定
IF
EQUALN$成功值0
ACT
random3
IF
EQUALN$成功值1
ACT
random2
;后续成功/失败判定逻辑同上
...
核心检查:写完脚本后,务必重点检查材料扣除命令take是否在成功和失败分支中都已正确写入,避免出现“合成失败却不扣材料”的刷材料漏洞。
一、修正后的完整脚本(50%成功)
脚本的核心是在材料检测通过后,立即使用random函数进行概率判定,并将成功和失败的逻辑明确分开。
[@kryz3]
IF
checkitem皓月神剑3
ACT
;1.先随机
random2
;2.判定失败(random2的结果为0时执行)
IF
EQUALN$随机数0
ACT
take皓月神剑3
MESSAGEBOX很遗憾,合成失败!
BREAK
;3.判定成功(random2的结果为1时执行)
IF
EQUALN$随机数1
ACT
take皓月神剑3
give虎溪砍刀1
MESSAGEBOX恭喜玩家:『<$USERNAME>』合成【虎溪砍刀】成功.!!
BREAK
ELSEACT
MESSAGEBOX缺少合成物品皓月神剑3个!
代码要点解析:
1.概率核心:random2命令会产生一个0或1的随机数,并存入变量N$随机数。由于数字是均等概率出现的,因此0和1各占50%概率。
2.结构逻辑:脚本先统一检查材料是否足够。如果材料足够,才进行概率判断。接着,用#IFEQUALN$随机数0和#IFEQUALN$随机数1两个并列的条件分支,分别处理失败和成功的逻辑,并用BREAK结束流程,避免继续向下执行。
3.材料扣除:失败和成功的逻辑中都包含了take皓月神剑3,这确保了无论合成是否成功,材料都会被消耗。这是符合大多数游戏设定的“合成有消耗”规则。
二、进阶概率与功能扩展
根据上述模板,你可以轻松修改概率,并添加更多功能。
1.修改成功率(例如20%成功)
将random2改为random5。此时随机数范围是0-4,共5个数字。
•成功:只需设定一个数字代表成功,如#IFEQUALN$随机数0,则成功率为1/5,即20%。
•失败:将条件改为#IFLARGEN$随机数0或#IFSMALLN$随机数1等,来匹配剩下的4个数字。
2.添加合成费用与公告
可以在概率判断前增加金币检查,并在成功时发送全服公告。
[@kryz3]
IF
checkitem皓月神剑3
CHECKGOLD1000000
ACT
random2
take皓月神剑3
take金币1000000
IF
EQUALN$随机数0
ACT
MESSAGEBOX很遗憾,合成失败!
BREAK
IF
EQUALN$随机数1
ACT
give虎溪砍刀1
SENDMSG0玩家[%s]成功合成『虎溪砍刀』,普天同庆!
MESSAGEBOX恭喜你合成成功!
BREAK
ELSEACT
MESSAGEBOX缺少材料或金币不足100万!
3.添加合成幸运值(简化版)
可以通过检测玩家背包中“幸运宝石”等道具,临时提升成功率。
IF
checkitem皓月神剑3
ACT
;默认概率1/3
MOVN$成功值0
;检测幸运宝石,有则提升概率
IF
CHECKITEM幸运宝石1
ACT
take幸运宝石1
;有宝石时,成功值改为1(即50%概率)
MOVN$成功值1
SENDMSG0幸运宝石的力量融入了合成炉!
;根据设定进行随机判定
IF
EQUALN$成功值0
ACT
random3
IF
EQUALN$成功值1
ACT
random2
;后续成功/失败判定逻辑同上
...
核心检查:写完脚本后,务必重点检查材料扣除命令take是否在成功和失败分支中都已正确写入,避免出现“合成失败却不扣材料”的刷材料漏洞。

