帮我写个脚本,杀死怪物有几率获得该怪物的兽魂。注意兽魂不是装备 不是物品。然后在NPC框可以佩戴获得的兽魂获得相对应的属性。注意佩戴只在NPC框里
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-04-20 13:48:20 |
👁️ 阅读: 8
根据课程日志记录,要实现怪物掉落“兽魂”(非装备、非物品)并在NPC界面佩戴,可以使用自定义变量系统来记录和操作。以下是实现方案:
**1. 怪物掉落触发(在QFunction-0.txt中)**
```txt
[@KillMon]
#IF
; 假设几率设置为10%
RANDOMEX 10
; 检查怪物名称,例如“白野猪”掉落对应兽魂
CHECKCURRTARGETRACE = 白野猪
#ACT
; 使用自定义变量记录兽魂,例如S$兽魂_白野猪
MOV S$兽魂_白野猪 1
SENDMSG 6 恭喜你获得了【白野猪兽魂】!
#ELSESAY
; 其他怪物或无掉落
```
**2. NPC界面佩戴兽魂(示例NPC脚本)**
```txt
[@main]
#IF
CHECKVAR S$兽魂_白野猪 = 1
#ACT
; 显示已拥有该兽魂,并提供佩戴选项
#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>
你已拥有:白野猪兽魂\
<Button|x=290.0|y=262.0|size=18|color=255|nimg=public_win32/1900000662|link=@佩戴_白野猪>佩戴兽魂\
<Button|x=290.0|y=300.0|size=18|color=255|nimg=public_win32/1900000662|link=@卸下_白野猪>卸下兽魂
#ELSESAY
你尚未获得任何兽魂。
```
**3. 佩戴与卸下逻辑**
```txt
[@佩戴_白野猪]
#IF
CHECKVAR S$兽魂_白野猪 = 1
; 检查是否已佩戴,用另一个变量记录佩戴状态,例如N$佩戴_兽魂
EQUAL N$佩戴_兽魂 0
#ACT
MOV N$佩戴_兽魂 1
; 增加属性,例如攻击力+10
CHANGEATTACK 0 + 10
SENDMSG 6 已佩戴【白野猪兽魂】,攻击力+10!
GOTO @main
#ELSESAY
你尚未获得该兽魂或已佩戴其他兽魂。
[@卸下_白野猪]
#IF
EQUAL N$佩戴_兽魂 1
#ACT
MOV N$佩戴_兽魂 0
; 移除增加的属性
CHANGEATTACK 0 - 10
SENDMSG 6 已卸下【白野猪兽魂】。
GOTO @main
```
**4. 登录时恢复佩戴状态(在QManage.txt中)**
```txt
[@Login]
#IF
EQUAL N$佩戴_兽魂 1
#ACT
CHANGEATTACK 0 + 10
```
**注意事项:**
- 兽魂数据保存在变量中(如S$兽魂_XXX、N$佩戴_兽魂),非物品或装备。
- 佩戴属性仅在NPC界面操作生效,通过变量控制状态。
- 多个兽魂需扩展变量命名(如S$兽魂_怪物1、S$兽魂_怪物2)并分别处理佩戴逻辑。
- 如需持久化,可将变量存入个人标识(如SET [标识号])或自定义数据系统。
该方案完全基于TXT脚本实现,无需物品实体,符合你的需求。
← 返回问答库