本文聚焦传奇装备加星砸星的核心需求,详细拆解加星规则、材料配置逻辑,提供HERO、GOM、BLUE三大主流引擎的加星脚本实现方案,脚本可直接套用,同时涵盖成功率调整、失败惩罚设置等实用技巧。
一、传奇装备加星砸星基础规则设定
加星砸星是传奇核心养成玩法,核心逻辑为:消耗指定材料触发加星判定,按设定成功率晋升星阶,失败可能保留当前星阶、掉星或损坏装备。常见基础规则需提前明确,避免脚本逻辑冲突:
1.加星材料:核心材料为“加星石”(可自定义名称,如星陨石、强化晶石),高阶加星可额外需求“保护符”(用于降低失败惩罚);不同星阶消耗材料数量不同,如1-3星需1个加星石,4-6星需2个加星石。
2.成功率机制:星阶越高成功率越低,如1星升2星成功率80%,6星升7星成功率20%;可通过消耗保护符提升成功率,或设定“保底机制”(如连续失败3次后成功率提升50%)。
3.失败惩罚:分三级设定,轻度惩罚(失败不掉星,仅消耗材料)、中度惩罚(失败掉1-2星,消耗材料)、重度惩罚(失败装备损坏消失,消耗材料),可按星阶区分,高阶加星失败惩罚更严重。
二、主流引擎装备加星脚本实现方案
1.HERO引擎装备加星脚本(含成功率+保护符机制)
HERO引擎通过“QFunction-0.txt”或NPC专属脚本实现加星,以下以“1-7星”加星为例,包含基础加星、保护符适配、失败掉星逻辑:
;传奇装备加星砸星脚本(HERO引擎)
;触发条件:玩家手持目标装备,点击NPC触发加星
#if
;校验是否手持装备(可替换为指定装备,如checkitem裁决之杖1)
CheckItemInHand1;1代表任意装备,指定装备需写完整名称
;基础加星材料校验(1-3星通用,消耗1个加星石)
CheckItem加星石1
#act
;获取装备当前星阶(通过装备附加属性存储,如星阶属性名为“StarLevel”)
LocalStar=GetItemVarInHand(StarLevel)
;1星升2星(成功率80%)
ifLocalStar==1
RANDOM100
if<=80
;加星成功:更新星阶属性,消耗材料
SetItemVarInHand(StarLevel2)
Take加星石1
SendMsg1恭喜勇士!装备成功晋升2星,属性大幅提升!
else
;加星失败:轻度惩罚,仅消耗材料
Take加星石1
SendMsg1加星失败!材料已消耗,当前星阶保持1星!
endif
;2星升3星(成功率70%)
elseifLocalStar==2
RANDOM100
if<=70
SetItemVarInHand(StarLevel3)
Take加星石1
SendMsg1装备成功晋升3星,继续加油!
else
Take加星石1
SendMsg1加星失败,星阶未变!
endif
;4-6星加星(需2个加星石,可搭配保护符)
elseifLocalStar>=3andLocalStar<6
CheckItem加星石2
#act
;判断是否携带保护符(携带则失败不掉星)
ifCheckItem保护符1
RANDOM100
;4星升5星成功率50%,5星升6星成功率40%
if(LocalStar==3and<=50)or(LocalStar==4and<=40)
;成功:升星+消耗材料+保护符
SetItemVarInHand(StarLevelLocalStar+1)
Take加星石2
Take保护符1
SendMsg1借助保护符之力,装备成功晋升至{LocalStar+1}星!
else
;失败:消耗材料+保护符,不掉星
Take加星石2
Take保护符1
SendMsg1加星失败,保护符生效,星阶未掉!
endif
else
;未携带保护符,失败掉1星
RANDOM100
if(LocalStar==3and<=50)or(LocalStar==4and<=40)
SetItemVarInHand(StarLevelLocalStar+1)
Take加星石2
SendMsg1装备成功晋升至{LocalStar+1}星!
else
SetItemVarInHand(StarLevelLocalStar-1)
Take加星石2
SendMsg1加星失败!星阶掉1级,材料已消耗!
endif
endif
;6星升7星(需3个加星石,成功率20%,失败有概率损坏装备)
elseifLocalStar==6
CheckItem加星石3
#act
RANDOM100
if<=20
SetItemVarInHand(StarLevel7)
Take加星石3
SendMsg1逆天改命!装备成功晋升7星,成为顶级神装!
else
;失败概率判定:30%损坏装备,70%掉至4星
RANDOM100
if<=30
;装备损坏,删除手持装备
DelItemInHand1
SendMsg1加星失败!装备已损坏消失!
else
SetItemVarInHand(StarLevel4)
Take加星石3
SendMsg1加星失败!星阶跌至4星,材料已消耗!
endif
endif
#ELSEACT
MESSAGEBOX加星条件不满足!请确认:1.手持需加星装备;2.携带足够加星石(1-3星需1个,4-6星需2个,7星需3个)
关键说明:脚本中“StarLevel”为装备星阶存储变量,需提前在引擎“物品属性配置”中添加该自定义属性;“CheckItemInHand1”代表任意手持装备,若需指定装备加星,替换为“CheckItemInHand裁决之杖1”即可。
2.GOM引擎装备加星脚本(含保底机制)
GOM引擎支持通过“QFunction-1.txt”实现加星逻辑,以下脚本新增“连续失败3次保底成功”机制,提升玩法体验:
;传奇装备加星砸星脚本(GOM引擎)
;注册加星触发函数
FunctionEquipmentStarUpgrade()
;获取手持装备信息
localitemName=GetHandItemName()
ifitemName==""then
MsgBox"请手持需要加星的装备!"
returnfalse
end
;获取当前星阶与失败次数
localstarLevel=GetItemVar(itemName"StarLevel")
localfailCount=GetRoleVar("StarFailCount")
;材料校验(按星阶区分消耗)
localneedStone=1
ifstarLevel>=3thenneedStone=2end
ifstarLevel==6thenneedStone=3end
ifnotCheckItem("加星石"needStone)then
MsgBox"加星石数量不足!"
returnfalse
end
;保底机制:连续失败3次,本次100%成功
iffailCount>=3then
SetItemVar(itemName"StarLevel"starLevel+1)
TakeItem("加星石"needStone)
SetRoleVar("StarFailCount"0)
MsgBox"恭喜!连续失败3次触发保底,装备成功晋升至"..(starLevel+1).."星!"
returntrue
end
;设定各星阶成功率
localsuccessRate=0
ifstarLevel==1thensuccessRate=80end
ifstarLevel==2thensuccessRate=70end
ifstarLevel==3thensuccessRate=50end
ifstarLevel==4thensuccessRate=40end
ifstarLevel==5thensuccessRate=30end
ifstarLevel==6thensuccessRate=20end
;成功率判定
localrandomNum=Random(100)
ifrandomNum<=successRatethen
;加星成功
SetItemVar(itemName"StarLevel"starLevel+1)
TakeItem("加星石"needStone)
SetRoleVar("StarFailCount"0)
MsgBox"装备成功晋升至"..(starLevel+1).."星!"
else
;加星失败,更新失败次数
TakeItem("加星石"needStone)
SetRoleVar("StarFailCount"failCount+1)
;失败惩罚:高阶掉星,低阶不掉星
ifstarLevel>=3then
SetItemVar(itemName"StarLevel"starLevel-1)
MsgBox"加星失败!星阶掉1级,已连续失败"..(failCount+1).."次!"
else
MsgBox"加星失败!星阶未变,已连续失败"..(failCount+1).."次!"
end
end
returntrue
EndFunction
使用方法:将脚本写入“QFunction-1.txt”,在合成NPC对话脚本中添加“CallFuncEquipmentStarUpgrade()”,点击NPC即可触发加星;“StarFailCount”为角色连续失败次数存储变量,离线后不清零,可根据需求添加“每日重置失败次数”逻辑。
3.BLUE引擎装备加星脚本(简洁版,适配新手)
BLUE引擎脚本语法更简洁,以下为基础版加星脚本,包含核心加星逻辑,适合新手服主快速配置:
--传奇装备加星砸星脚本(BLUE引擎)
RegisterMerchantEvent(1001"Click"function(player)
--1001为加星NPC编号,需在NPC配置中对应
localhandItem=player:GetHandItem()
ifnothandItemthen
player:SendMsg(1"请手持需要加星的装备!")
return
end
--获取星阶与材料消耗
localstar=handItem:GetVar("Star")or0
localstoneCount=star<3and1or(star<6and2or3)
--材料校验
ifnotplayer:CheckItem("加星石"stoneCount)then
player:SendMsg(1"加星石数量不足,无法加星!")
return
end
--成功率设定
localrate={807050403020}
localsuccessRate=star<6andrate[star+1]or20
--判定结果
ifmath.random(100)<=successRatethen
--成功升星
handItem:SetVar("Star"star+1)
player:TakeItem("加星石"stoneCount)
player:SendMsg(1"装备加星成功,当前星阶:"..(star+1).."星!")
else
--失败惩罚
player:TakeItem("加星石"stoneCount)
ifstar>=3then
handItem:SetVar("Star"star-1)
player:SendMsg(1"加星失败,星阶掉至"..(star-1).."星!")
else
player:SendMsg(1"加星失败,星阶未变!")
end
end
end)
使用方法:新建脚本文件“EquipmentStar.lua”,放入BLUE引擎“Scripts”文件夹,在引擎控制台加载该脚本即可;可通过修改“rate”数组调整各星阶成功率,修改“stoneCount”逻辑调整材料消耗数量。
三、装备加星脚本核心参数调整技巧
1.成功率调整:HERO引擎修改“RANDOM100”后的“if<=数值”,如1星升2星成功率从80%改为90%,将“if<=80”改为“if<=90”;GOM和BLUE引擎直接修改成功率变量(如successRate数值)即可。
2.材料消耗调整:修改脚本中“Take加星石X”“TakeItem("加星石"X)”中的“X”数值,如4-6星加星从消耗2个加星石改为3个,替换对应数值即可;也可新增材料需求,如高阶加星需同时消耗“加星石”和“元宝”,添加“CheckItem元宝1000”“Take元宝1000”指令。
3.失败惩罚调整:轻度惩罚(仅消耗材料)删除掉星相关指令(如SetItemVarInHand(StarLevelLocalStar-1));重度惩罚(装备损坏)添加“DelItemInHand1”(HERO)、“player:RemoveItem(handItem)”(BLUE)指令,需谨慎使用。
四、脚本测试与常见问题排查
1.测试步骤:创建测试账号,获取不同星阶装备和加星材料,依次测试低星升阶、高阶升阶、材料不足、未持装备、携带保护符、连续失败触发保底等场景,确保每种逻辑正常触发。
2.常见问题解决:①加星无反应:检查NPC编号、脚本文件是否正确加载,装备自定义属性(如StarLevel)是否已添加;②成功率异常:核对星阶与成功率的对应关系,确保随机数生成逻辑正确;③装备星阶不保存:确认使用“SetItemVar”类指令(存储在装备上),而非角色变量(存储在角色上)。
一、传奇装备加星砸星基础规则设定
加星砸星是传奇核心养成玩法,核心逻辑为:消耗指定材料触发加星判定,按设定成功率晋升星阶,失败可能保留当前星阶、掉星或损坏装备。常见基础规则需提前明确,避免脚本逻辑冲突:
1.加星材料:核心材料为“加星石”(可自定义名称,如星陨石、强化晶石),高阶加星可额外需求“保护符”(用于降低失败惩罚);不同星阶消耗材料数量不同,如1-3星需1个加星石,4-6星需2个加星石。
2.成功率机制:星阶越高成功率越低,如1星升2星成功率80%,6星升7星成功率20%;可通过消耗保护符提升成功率,或设定“保底机制”(如连续失败3次后成功率提升50%)。
3.失败惩罚:分三级设定,轻度惩罚(失败不掉星,仅消耗材料)、中度惩罚(失败掉1-2星,消耗材料)、重度惩罚(失败装备损坏消失,消耗材料),可按星阶区分,高阶加星失败惩罚更严重。
二、主流引擎装备加星脚本实现方案
1.HERO引擎装备加星脚本(含成功率+保护符机制)
HERO引擎通过“QFunction-0.txt”或NPC专属脚本实现加星,以下以“1-7星”加星为例,包含基础加星、保护符适配、失败掉星逻辑:
;传奇装备加星砸星脚本(HERO引擎)
;触发条件:玩家手持目标装备,点击NPC触发加星
#if
;校验是否手持装备(可替换为指定装备,如checkitem裁决之杖1)
CheckItemInHand1;1代表任意装备,指定装备需写完整名称
;基础加星材料校验(1-3星通用,消耗1个加星石)
CheckItem加星石1
#act
;获取装备当前星阶(通过装备附加属性存储,如星阶属性名为“StarLevel”)
LocalStar=GetItemVarInHand(StarLevel)
;1星升2星(成功率80%)
ifLocalStar==1
RANDOM100
if<=80
;加星成功:更新星阶属性,消耗材料
SetItemVarInHand(StarLevel2)
Take加星石1
SendMsg1恭喜勇士!装备成功晋升2星,属性大幅提升!
else
;加星失败:轻度惩罚,仅消耗材料
Take加星石1
SendMsg1加星失败!材料已消耗,当前星阶保持1星!
endif
;2星升3星(成功率70%)
elseifLocalStar==2
RANDOM100
if<=70
SetItemVarInHand(StarLevel3)
Take加星石1
SendMsg1装备成功晋升3星,继续加油!
else
Take加星石1
SendMsg1加星失败,星阶未变!
endif
;4-6星加星(需2个加星石,可搭配保护符)
elseifLocalStar>=3andLocalStar<6
CheckItem加星石2
#act
;判断是否携带保护符(携带则失败不掉星)
ifCheckItem保护符1
RANDOM100
;4星升5星成功率50%,5星升6星成功率40%
if(LocalStar==3and<=50)or(LocalStar==4and<=40)
;成功:升星+消耗材料+保护符
SetItemVarInHand(StarLevelLocalStar+1)
Take加星石2
Take保护符1
SendMsg1借助保护符之力,装备成功晋升至{LocalStar+1}星!
else
;失败:消耗材料+保护符,不掉星
Take加星石2
Take保护符1
SendMsg1加星失败,保护符生效,星阶未掉!
endif
else
;未携带保护符,失败掉1星
RANDOM100
if(LocalStar==3and<=50)or(LocalStar==4and<=40)
SetItemVarInHand(StarLevelLocalStar+1)
Take加星石2
SendMsg1装备成功晋升至{LocalStar+1}星!
else
SetItemVarInHand(StarLevelLocalStar-1)
Take加星石2
SendMsg1加星失败!星阶掉1级,材料已消耗!
endif
endif
;6星升7星(需3个加星石,成功率20%,失败有概率损坏装备)
elseifLocalStar==6
CheckItem加星石3
#act
RANDOM100
if<=20
SetItemVarInHand(StarLevel7)
Take加星石3
SendMsg1逆天改命!装备成功晋升7星,成为顶级神装!
else
;失败概率判定:30%损坏装备,70%掉至4星
RANDOM100
if<=30
;装备损坏,删除手持装备
DelItemInHand1
SendMsg1加星失败!装备已损坏消失!
else
SetItemVarInHand(StarLevel4)
Take加星石3
SendMsg1加星失败!星阶跌至4星,材料已消耗!
endif
endif
#ELSEACT
MESSAGEBOX加星条件不满足!请确认:1.手持需加星装备;2.携带足够加星石(1-3星需1个,4-6星需2个,7星需3个)
关键说明:脚本中“StarLevel”为装备星阶存储变量,需提前在引擎“物品属性配置”中添加该自定义属性;“CheckItemInHand1”代表任意手持装备,若需指定装备加星,替换为“CheckItemInHand裁决之杖1”即可。
2.GOM引擎装备加星脚本(含保底机制)
GOM引擎支持通过“QFunction-1.txt”实现加星逻辑,以下脚本新增“连续失败3次保底成功”机制,提升玩法体验:
;传奇装备加星砸星脚本(GOM引擎)
;注册加星触发函数
FunctionEquipmentStarUpgrade()
;获取手持装备信息
localitemName=GetHandItemName()
ifitemName==""then
MsgBox"请手持需要加星的装备!"
returnfalse
end
;获取当前星阶与失败次数
localstarLevel=GetItemVar(itemName"StarLevel")
localfailCount=GetRoleVar("StarFailCount")
;材料校验(按星阶区分消耗)
localneedStone=1
ifstarLevel>=3thenneedStone=2end
ifstarLevel==6thenneedStone=3end
ifnotCheckItem("加星石"needStone)then
MsgBox"加星石数量不足!"
returnfalse
end
;保底机制:连续失败3次,本次100%成功
iffailCount>=3then
SetItemVar(itemName"StarLevel"starLevel+1)
TakeItem("加星石"needStone)
SetRoleVar("StarFailCount"0)
MsgBox"恭喜!连续失败3次触发保底,装备成功晋升至"..(starLevel+1).."星!"
returntrue
end
;设定各星阶成功率
localsuccessRate=0
ifstarLevel==1thensuccessRate=80end
ifstarLevel==2thensuccessRate=70end
ifstarLevel==3thensuccessRate=50end
ifstarLevel==4thensuccessRate=40end
ifstarLevel==5thensuccessRate=30end
ifstarLevel==6thensuccessRate=20end
;成功率判定
localrandomNum=Random(100)
ifrandomNum<=successRatethen
;加星成功
SetItemVar(itemName"StarLevel"starLevel+1)
TakeItem("加星石"needStone)
SetRoleVar("StarFailCount"0)
MsgBox"装备成功晋升至"..(starLevel+1).."星!"
else
;加星失败,更新失败次数
TakeItem("加星石"needStone)
SetRoleVar("StarFailCount"failCount+1)
;失败惩罚:高阶掉星,低阶不掉星
ifstarLevel>=3then
SetItemVar(itemName"StarLevel"starLevel-1)
MsgBox"加星失败!星阶掉1级,已连续失败"..(failCount+1).."次!"
else
MsgBox"加星失败!星阶未变,已连续失败"..(failCount+1).."次!"
end
end
returntrue
EndFunction
使用方法:将脚本写入“QFunction-1.txt”,在合成NPC对话脚本中添加“CallFuncEquipmentStarUpgrade()”,点击NPC即可触发加星;“StarFailCount”为角色连续失败次数存储变量,离线后不清零,可根据需求添加“每日重置失败次数”逻辑。
3.BLUE引擎装备加星脚本(简洁版,适配新手)
BLUE引擎脚本语法更简洁,以下为基础版加星脚本,包含核心加星逻辑,适合新手服主快速配置:
--传奇装备加星砸星脚本(BLUE引擎)
RegisterMerchantEvent(1001"Click"function(player)
--1001为加星NPC编号,需在NPC配置中对应
localhandItem=player:GetHandItem()
ifnothandItemthen
player:SendMsg(1"请手持需要加星的装备!")
return
end
--获取星阶与材料消耗
localstar=handItem:GetVar("Star")or0
localstoneCount=star<3and1or(star<6and2or3)
--材料校验
ifnotplayer:CheckItem("加星石"stoneCount)then
player:SendMsg(1"加星石数量不足,无法加星!")
return
end
--成功率设定
localrate={807050403020}
localsuccessRate=star<6andrate[star+1]or20
--判定结果
ifmath.random(100)<=successRatethen
--成功升星
handItem:SetVar("Star"star+1)
player:TakeItem("加星石"stoneCount)
player:SendMsg(1"装备加星成功,当前星阶:"..(star+1).."星!")
else
--失败惩罚
player:TakeItem("加星石"stoneCount)
ifstar>=3then
handItem:SetVar("Star"star-1)
player:SendMsg(1"加星失败,星阶掉至"..(star-1).."星!")
else
player:SendMsg(1"加星失败,星阶未变!")
end
end
end)
使用方法:新建脚本文件“EquipmentStar.lua”,放入BLUE引擎“Scripts”文件夹,在引擎控制台加载该脚本即可;可通过修改“rate”数组调整各星阶成功率,修改“stoneCount”逻辑调整材料消耗数量。
三、装备加星脚本核心参数调整技巧
1.成功率调整:HERO引擎修改“RANDOM100”后的“if<=数值”,如1星升2星成功率从80%改为90%,将“if<=80”改为“if<=90”;GOM和BLUE引擎直接修改成功率变量(如successRate数值)即可。
2.材料消耗调整:修改脚本中“Take加星石X”“TakeItem("加星石"X)”中的“X”数值,如4-6星加星从消耗2个加星石改为3个,替换对应数值即可;也可新增材料需求,如高阶加星需同时消耗“加星石”和“元宝”,添加“CheckItem元宝1000”“Take元宝1000”指令。
3.失败惩罚调整:轻度惩罚(仅消耗材料)删除掉星相关指令(如SetItemVarInHand(StarLevelLocalStar-1));重度惩罚(装备损坏)添加“DelItemInHand1”(HERO)、“player:RemoveItem(handItem)”(BLUE)指令,需谨慎使用。
四、脚本测试与常见问题排查
1.测试步骤:创建测试账号,获取不同星阶装备和加星材料,依次测试低星升阶、高阶升阶、材料不足、未持装备、携带保护符、连续失败触发保底等场景,确保每种逻辑正常触发。
2.常见问题解决:①加星无反应:检查NPC编号、脚本文件是否正确加载,装备自定义属性(如StarLevel)是否已添加;②成功率异常:核对星阶与成功率的对应关系,确保随机数生成逻辑正确;③装备星阶不保存:确认使用“SetItemVar”类指令(存储在装备上),而非角色变量(存储在角色上)。

