给我写一个传奇996三端引擎的拾取鉴定装备的脚本,要求如下:
1. 几率控制:极品加一、加二、加三的几率要可以单独控制。
2. 装备分类:武器、衣服、戒指、项链、手镯、头盔、腰带、鞋子、这些装备都要分类设置。
3. 有可能会出现多条属性的极品装备
4. 可以鉴定的装备分类分别放到文本里,我自行添加。
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-07-17 22:25:44 |
👁️ 阅读: 16
要实现拾取鉴定装备功能,需要结合TXT脚本和表格配置。根据课程日志记录,以下是实现方案:
**第一步:准备鉴定配置表**
在`QManage.txt`的`[@PickUpItemEx]`触发前,先定义鉴定规则(可改为从文本读取):
```
[@PickUpItemEx]
#ACT
; 读取装备分类配置
GetListString ..\QuestDiary\鉴定系统\可鉴定装备分类.txt <$CURRTEMNAME> S$是否可鉴定
#IF
EQUAL S$是否可鉴定 1
#ACT
; 调用鉴定函数
GOTO @装备鉴定
#ELSEACT
break
```
**第二步:鉴定概率控制**
创建`QuestDiary\鉴定系统\`目录,添加以下文本文件:
1. `极品概率.txt` - 控制各等级概率
```
加一概率=30
加二概率=15
加三概率=5
```
2. `装备分类属性.txt` - 定义各部位可出现的属性
```
武器=攻击,魔法,道术,准确,攻速
衣服=防御,魔防,生命
戒指=攻击,魔法,道术,暴击
```
**第三步:核心鉴定脚本**
在`QFunction-0.txt`中添加:
```
[@装备鉴定]
#ACT
; 读取概率配置
GetRandomText ..\QuestDiary\鉴定系统\极品概率.txt S$概率配置
GetValidStr S$概率配置 = S$加一概率 S$加二概率 S$加三概率
; 随机决定极品等级
MOV N$极品等级 0
#IF
RANDOMEX <$STR(S$加三概率)>
#ACT
MOV N$极品等级 3
#ELSESAY
#IF
RANDOMEX <$STR(S$加二概率)>
#ACT
MOV N$极品等级 2
#ELSESAY
#IF
RANDOMEX <$STR(S$加一概率)>
#ACT
MOV N$极品等级 1
#ELSEACT
MOV N$极品等级 0
; 获取装备部位
GetItemFieldValue <$CURRTEMNAME> type N$装备类型
GetListString ..\QuestDiary\鉴定系统\装备分类属性.txt <$STR(N$装备类型)> S$可用属性
; 生成随机属性
MOV N$已加属性数 0
WHILE N$已加属性数 < <$STR(N$极品等级)>
; 从可用属性中随机选取
GetRandomStr <$STR(S$可用属性)> , S$选中属性
; 随机属性值(1-5点)
RANDOM 5 N$属性值
INC N$属性值 1
; 根据属性类型加到装备上
#IF
EQUAL S$选中属性 攻击
#ACT
ChangeItemAddValue <$CURRTEMNAME> 0 + <$STR(N$属性值)>
#ELSESAY
#IF
EQUAL S$选中属性 防御
#ACT
ChangeItemAddValue <$CURRTEMNAME> 1 + <$STR(N$属性值)>
; ... 其他属性类似处理
INC N$已加属性数 1
ENDWHILE
; 添加鉴定标识和特效
SetItemFlags <$CURRTEMNAME> 鉴定 +1
ChangeItemNameColor <$CURRTEMNAME> 253
SENDMSG 6 鉴定成功!获得<$STR(N$极品等级)>条额外属性的装备
```
**第四步:配置说明**
1. `可鉴定装备分类.txt`格式:
```
屠龙刀
天魔神甲
圣战戒指
```
每行一个装备名称
2. 属性扩展:在`装备分类属性.txt`中可自由添加更多属性类型,需在脚本中完善对应的`ChangeItemAddValue`处理。
**注意事项:**
- `ChangeItemAddValue`的参数需参考物品属性字段索引
- 多属性装备可能超过显示范围,会自动出现滚动条
- 拾取触发需在M2-选项-物品装备-拾取触发中开启
如需更复杂的属性组合或Lua控制,可调用Lua完成概率计算和属性分配。
← 返回问答库