当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇装备合成成功率与条件判定脚本编写指南

热度:
一、基础合成脚本与成功率整合

基础脚本已能实现材料检测与合成,现需加入成功率机制。引擎通过RANDOM命令实现概率触发。RANDOM后的数字代表总份数,条件成立时执行其中一份。

脚本示例(成功率50%):

[@合成极品金牛戒指]
#if
checkitem金牛道戒1
checkitem金牛战戒1
checkitem金牛魔戒1
checkitem极品金牛碎片2
#ACT
TAKE金牛道戒1
TAKE金牛战戒1
TAKE金牛魔戒1
TAKE极品金牛碎片2
;以下为成功率判定
#IF
RANDOM2;2分之1的概率,即50%
#ACT
GIVE极品金牛戒指1
SENDMSG1恭喜勇士【%s】成功合成极品金牛戒指!
#ELSEACT
SENDMSG6合成失败,材料已消失!
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
SENDMSG1【全服】勇士【%s】使用精练符成功合成极品金牛戒指!
BREAK
;分支2:无精练符,走概率合成
#if
checkitem金牛道戒1
checkitem金牛战戒1
checkitem金牛魔戒1
checkitem极品金牛碎片2
#ACT
TAKE金牛道戒1
TAKE金牛战戒1
TAKE金牛魔戒1
TAKE极品金牛碎片2
#if
RANDOM5;此处为5分之1概率,即20%成功率
#ACT
GIVE极品金牛戒指1
SENDMSG1恭喜勇士【%s】成功合成极品金牛戒指!
#ELSEACT
SENDMSG6合成失败,材料已消失!
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
RANDOM3
#ACT
GIVE极品金牛碎片1
SENDMSG6成功合成极品金牛碎片x1!
#ELSEACT
SENDMSG6碎片合成失败,材料消失!
BREAK
#ELSESAY
合成极品金牛碎片需要:王者碎片x1、天龙碎片x1、金牛碎片x1。\
成功率约为33%。\
<开始合成/@合成极品金牛碎片>


四、关键命令与结构解析

1.RANDOM命令:RANDOMN表示有N分之1的概率执行紧随其后的#ACT。概率=1/N*100%。例如RANDOM4表示25%成功率。
2.条件分支顺序:脚本执行是自上而下的。必须将“有精练符100%成功”的分支放在前面,将“无符概率合成”的分支放在后面。否则,玩家即使有符也会先进入概率分支,导致精练符无效。
3.材料消耗时机:在概率判定之前就应执行TAKE命令扣除材料。这是标准设定,无论成功与否材料均消失。若希望失败时返还材料,需使用变量暂存,并在失败时用GIVE命令返还,逻辑较为复杂。
4.成功率提示:在NPC的#SAY对话中,应明确写明合成成功概率,避免玩家争议。

五、扩展:添加合成次数记录与保底

可使用个人变量记录合成失败次数,达到一定次数后触发保底成功。

#if
checkitem...
#ACT
;扣除材料...
;概率判定
#if
RANDOM5
#ACT
GIVE极品金牛戒指1
SENDMSG1合成成功!
CALCVARHUMAN合成失败次数=0;成功则清零
SAVEVARHUMAN合成失败次数..\QuestDiary\合成记录.txt
#ELSEACT
CALCVARHUMAN合成失败次数+1
SAVEVARHUMAN合成失败次数..\QuestDiary\合成记录.txt
;检测保底
#if
LARGEHUMAN合成失败次数9
#ACT
GIVE极品金牛戒指1
CALCVARHUMAN合成失败次数=0
SAVEVARHUMAN合成失败次数..\QuestDiary\合成记录.txt
SENDMSG1保底机制触发,合成成功!


按照上述结构,可构建出带概率、有保底、分条件的完整合成脚本系统。
[顶部]