帮我写个装备精炼打孔脚本,打出来的孔可以镶宝石,孔数1至5个,1孔概率百分之六十,2孔概率百分之三十,3孔概率百分之七,4孔概率百分之二点五,5孔概率百分之零点五,不同的孔数要匹配上相符合的孔数图片
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-03-21 15:29:19 |
👁️ 阅读: 5
根据课程日志记录,要实现装备精炼打孔并镶嵌宝石,需要结合打孔、概率判断和图片显示功能。以下是完整的脚本实现方案:
**1. 打孔触发脚本 (QFunction-0.txt)**
```txt
[@打孔触发]
#IF
; 检查OK框1是否有物品
CheckBoxItemCount 1 1
#ACT
; 获取OK框物品的唯一ID并关联
GetBoxItemName 1 S$装备名称
SetBoxItem 1 -1
; 进行概率判断
RANDOMEX 1000
; 1孔概率 60% (0-599)
SMALL N$随机数 600
#ACT
MOV N$孔数 1
GOTO @执行打孔
; 2孔概率 30% (600-899)
SMALL N$随机数 900
#ACT
MOV N$孔数 2
GOTO @执行打孔
; 3孔概率 7% (900-969)
SMALL N$随机数 970
#ACT
MOV N$孔数 3
GOTO @执行打孔
; 4孔概率 2.5% (970-994)
SMALL N$随机数 995
#ACT
MOV N$孔数 4
GOTO @执行打孔
; 5孔概率 0.5% (995-999)
SMALL N$随机数 1000
#ACT
MOV N$孔数 5
GOTO @执行打孔
#ELSEACT
SENDMSG 6 打孔失败,请重试!
[@执行打孔]
#IF
#ACT
; 循环为装备打孔
MOV N$当前孔 0
WHILE N$当前孔 < <$STR(N$孔数)>
DRILLHOLE -1 <$STR(N$当前孔)> 1
INC N$当前孔 1
ENDWHILE
; 保存孔数到临时变量
MOV S$孔数变量 <$STR(N$孔数)>
; 打开打孔结果界面
GOTO @显示打孔结果
#ELSEACT
SENDMSG 6 打孔失败!
```
**2. 打孔结果显示界面脚本**
```txt
[@显示打孔结果]
#IF
#ACT
; 初始化界面变量
MOV S$界面显示 ""
; 根据孔数添加对应图片
#IF
EQUAL N$孔数 1
#ACT
INC S$界面显示 <Img|x=200|y=150|img=public/1孔图片.png>
#IF
EQUAL N$孔数 2
#ACT
INC S$界面显示 <Img|x=200|y=150|img=public/2孔图片.png>
#IF
EQUAL N$孔数 3
#ACT
INC S$界面显示 <Img|x=200|y=150|img=public/3孔图片.png>
#IF
EQUAL N$孔数 4
#ACT
INC S$界面显示 <Img|x=200|y=150|img=public/4孔图片.png>
#IF
EQUAL N$孔数 5
#ACT
INC S$界面显示 <Img|x=200|y=150|img=public/5孔图片.png>
#IF
#ACT
; 添加确认按钮
INC S$界面显示 <Button|x=300|y=400|nimg=public/确认按钮.png|link=@确认打孔>
; 显示界面
#SAY
<Img|x=161.0|y=113.0|reset=1|loadDelay=1|show=0|esc=1|img=public_win32/1900000610.png|move=0|bg=1>
<Layout|x=780.0|y=101.0|width=80|height=80|link=@exit>
<Button|x=800.0|y=114.0|pimg=public/1900000511.png|nimg=public/1900000510.png|link=@exit>
打孔成功!
装备:<$STR(S$装备名称)>
获得:<$STR(N$孔数)>个孔
<$STR(S$界面显示)>
```
**3. 镶嵌宝石脚本**
```txt
[@镶嵌宝石]
#IF
; 检查OK框1是否有物品
CheckBoxItemCount 1 1
; 检查OK框2是否有宝石
CheckBoxItemCount 2 1
#ACT
; 获取宝石IDX
GetBoxItemIdx 2 N$宝石IDX
; 检查第一个孔是否已开
CHECKDRILLHOLE -1 0
#ACT
; 镶嵌到第一个孔
SOCKETABLEITEM -1 0 <$STR(N$宝石IDX)>
SENDMSG 6 宝石镶嵌成功!
#ELSEACT
SENDMSG 6 该位置未打孔,无法镶嵌!
```
**4. 配置说明**
1. 宝石数据库配置:StdMod=42,Shape值(0~4)显示不同颜色宝石
2. 孔位图片准备:需要准备1孔到5孔的图片素材,放入客户端public目录
3. 宝石素材路径:res\private\item_tips
**注意事项:**
1. 打孔前必须使用SetBoxItem关联OK框物品
2. 镶嵌宝石前需要先打孔
3. 宝石IDX需在cfg_equip.xls中配置
4. 镶嵌触发:@BagUseStoneItemOK
5. 卸下宝石触发:@RemoveStoneItem
这个脚本实现了完整的打孔概率系统、可视化孔位显示和宝石镶嵌功能。
← 返回问答库