传奇装备合成脚本加入概率的写法

来源: 作者: 点击:
你的脚本思路正确,但结构存在重复判定和逻辑顺序问题。要实现50%的合成成功率,关键在于正确理解并使用#if、random、#act的匹配关系。以下是修正后的脚本范例。

一、 修正后的完整脚本(50%成功)

脚本的核心是在材料检测通过后,立即使用random函数进行概率判定,并将成功和失败的逻辑明确分开。

[@kryz3]
IF

checkitem 皓月神剑 3
ACT

; 1. 先随机
random 2
; 2. 判定失败 (random 2的结果为0时执行)
IF

EQUAL N$随机数 0
ACT

take 皓月神剑 3
MESSAGEBOX 很遗憾,合成失败!
BREAK
; 3. 判定成功 (random 2的结果为1时执行)
IF

EQUAL N$随机数 1
ACT

take 皓月神剑 3
give 虎溪砍刀 1
MESSAGEBOX 恭喜玩家:『<$USERNAME>』合成【虎溪砍刀】成功.!!
BREAK
ELSEACT

MESSAGEBOX 缺少合成物品皓月神剑3个!

代码要点解析:
1. 概率核心:random 2 命令会产生一个0或1的随机数,并存入变量N$随机数。由于数字是均等概率出现的,因此0和1各占50%概率。
2. 结构逻辑:脚本先统一检查材料是否足够。如果材料足够,才进行概率判断。接着,用#IF EQUAL N$随机数 0和#IF EQUAL N$随机数 1两个并列的条件分支,分别处理失败和成功的逻辑,并用BREAK结束流程,避免继续向下执行。
3. 材料扣除:失败和成功的逻辑中都包含了take 皓月神剑 3,这确保了无论合成是否成功,材料都会被消耗。这是符合大多数游戏设定的“合成有消耗”规则。

二、 进阶概率与功能扩展

根据上述模板,你可以轻松修改概率,并添加更多功能。

1. 修改成功率(例如20%成功)
将 random 2 改为 random 5。此时随机数范围是0-4,共5个数字。
• 成功:只需设定一个数字代表成功,如 #IF EQUAL N$随机数 0,则成功率为1/5,即20%。

• 失败:将条件改为 #IF LARGE N$随机数 0 或 #IF SMALL N$随机数 1 等,来匹配剩下的4个数字。

2. 添加合成费用与公告
可以在概率判断前增加金币检查,并在成功时发送全服公告。

[@kryz3]
IF

checkitem 皓月神剑 3
CHECKGOLD 1000000
ACT

random 2
take 皓月神剑 3
take 金币 1000000
IF

EQUAL N$随机数 0
ACT

MESSAGEBOX 很遗憾,合成失败!
BREAK
IF

EQUAL N$随机数 1
ACT

give 虎溪砍刀 1
SENDMSG 0 玩家[%s]成功合成『虎溪砍刀』,普天同庆!
MESSAGEBOX 恭喜你合成成功!
BREAK
ELSEACT

MESSAGEBOX 缺少材料或金币不足100万!

3. 添加合成幸运值(简化版)
可以通过检测玩家背包中“幸运宝石”等道具,临时提升成功率。

IF

checkitem 皓月神剑 3
ACT

; 默认概率 1/3
MOV N$成功值 0
; 检测幸运宝石,有则提升概率
IF

CHECKITEM 幸运宝石 1
ACT

take 幸运宝石 1
; 有宝石时,成功值改为1(即50%概率)
MOV N$成功值 1
SENDMSG 0 幸运宝石的力量融入了合成炉!
; 根据设定进行随机判定
IF

EQUAL N$成功值 0
ACT

random 3
IF

EQUAL N$成功值 1
ACT

random 2
; 后续成功/失败判定逻辑同上
...

核心检查:写完脚本后,务必重点检查材料扣除命令take是否在成功和失败分支中都已正确写入,避免出现“合成失败却不扣材料”的刷材料漏洞。