{
; ===========================================================================================================================================================
; ========================================================================================
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-05-12 14:17:24 |
👁️ 阅读: 8
根据课程日志记录,宝石镶嵌后属性显示问题主要与宝石DB设置有关。宝石在背包中不会显示属性,需要镶嵌到装备上才会显示。属性需要在装备表的宝石字段中填写,而不是通过备注显示。
对于你的脚本,要实现“一键置入宝石”功能,需要补充以下逻辑:
[@一键置入宝石]
#if
#act
MOV N$循环计数 0
MOV N$可置入数量 0
GETVALIDSTRSUPER <$STR(S$孔位宝石名列表)> , S$分割内容 N$分割数量
MOV N$分割数量 <$FORMULATION[<$STR(N$分割数量)>+1]>
; 先统计可用的宝石数量
While <$STR(N$循环计数)> < <$STR(N$分割数量)>
GetDBItemFieldValue <$STR(S$分割内容<$STR(N$循环计数)>)> ITEMPAEAM2 S$宝石等级
#IF
EQUAL S$宝石等级 <$STR(S$宝石合成类型)>
#ACT
GETBAGITEMCOUNT <$STR(S$分割内容<$STR(N$循环计数)>)> N$背包数量
; 扣除已置入的宝石
#IF
EQUAL S$合成宝石名0 <$STR(S$分割内容<$STR(N$循环计数)>)>
#ACT
DEC N$背包数量 1
#IF
EQUAL S$合成宝石名1 <$STR(S$分割内容<$STR(N$循环计数)>)>
#ACT
DEC N$背包数量 1
#IF
EQUAL S$合成宝石名2 <$STR(S$分割内容<$STR(N$循环计数)>)>
#ACT
DEC N$背包数量 1
#IF
EQUAL S$合成宝石名3 <$STR(S$分割内容<$STR(N$循环计数)>)>
#ACT
DEC N$背包数量 1
#IF
LARGE N$背包数量 0
#ACT
INC N$可置入数量 <$STR(N$背包数量)>
INC N$循环计数 1
#ELSEACT
INC N$循环计数 1
#ELSEACT
INC N$循环计数 1
EndWhile
; 检查是否有足够宝石
#IF
SMALL N$可置入数量 4
#ACT
SENDMSG 9 背包中同类型宝石数量不足4个,无法一键置入!
BREAK
; 开始置入
#ACT
MOV N$循环计数 0
MOV N$已置入 0
MOV N$目标孔位 0
While <$STR(N$已置入)> < 4
#IF
EQUAL N$目标孔位 0
#ACT
MOV S$当前孔位变量 S$合成宝石名0
#IF
EQUAL N$目标孔位 1
#ACT
MOV S$当前孔位变量 S$合成宝石名1
#IF
EQUAL N$目标孔位 2
#ACT
MOV S$当前孔位变量 S$合成宝石名2
#IF
EQUAL N$目标孔位 3
#ACT
MOV S$当前孔位变量 S$合成宝石名3
; 如果当前孔位已有宝石,跳过
#IF
NOT EQUAL <$STR(S$当前孔位变量)>
#ACT
INC N$目标孔位 1
#ELSEACT
; 查找可用的宝石
MOV N$查找索引 0
While <$STR(N$查找索引)> < <$STR(N$分割数量)>
GetDBItemFieldValue <$STR(S$分割内容<$STR(N$查找索引)>)> ITEMPAEAM2 S$宝石等级
#IF
EQUAL S$宝石等级 <$STR(S$宝石合成类型)>
#ACT
GETBAGITEMCOUNT <$STR(S$分割内容<$STR(N$查找索引)>)> N$背包数量
; 检查是否已被其他孔位使用
MOV N$已被使用 0
#IF
EQUAL S$合成宝石名0 <$STR(S$分割内容<$STR(N$查找索引)>)>
#ACT
INC N$已被使用 1
#IF
EQUAL S$合成宝石名1 <$STR(S$分割内容<$STR(N$查找索引)>)>
#ACT
INC N$已被使用 1
#IF
EQUAL S$合成宝石名2 <$STR(S$分割内容<$STR(N$查找索引)>)>
#ACT
INC N$已被使用 1
#IF
EQUAL S$合成宝石名3 <$STR(S$分割内容<$STR(N$查找索引)>)>
#ACT
INC N$已被使用 1
#IF
LARGE N$背包数量 <$STR(N$已被使用)>
#ACT
; 置入宝石
#IF
EQUAL N$目标孔位 0
#ACT
MOV S$合成宝石名0 <$STR(S$分割内容<$STR(N$查找索引)>)>
#IF
EQUAL N$目标孔位 1
#ACT
MOV S$合成宝石名1 <$STR(S$分割内容<$STR(N$查找索引)>)>
#IF
EQUAL N$目标孔位 2
#ACT
MOV S$合成宝石名2 <$STR(S$分割内容<$STR(N$查找索引)>)>
#IF
EQUAL N$目标孔位 3
#ACT
MOV S$合成宝石名3 <$STR(S$分割内容<$STR(N$查找索引)>)>
INC N$已置入 1
INC N$目标孔位 1
BREAK
#ELSEACT
INC N$查找索引 1
#ELSEACT
INC N$查找索引 1
EndWhile
EndWhile
SENDMSG 9 一键置入成功!
GOTO @宝石合成界面
这个功能会遍历背包中符合当前合成类型的宝石,自动填充到4个置入孔位中。注意宝石的Shape值如果设置为255,镶嵌后会显示宝石DB的Looks素材。
← 返回问答库