怎么用键值对实现全服首爆功能
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-03-15 19:41:32 |
👁️ 阅读: 16
根据课程日志记录,键值对非常适合存储和管理全服首爆记录。你可以使用一个全局字符变量,以物品名作为主键,首次获得的玩家名作为值。
首先,在`QManage.txt`的启动触发中声明并初始化全局键值对变量。
```txt
[@Startup]
#IF
#ACT
; 声明一个全局字符变量用于存储首爆记录
VAR String GLOBAL 全服首爆记录
; 初始化(可选,如果变量不存在,引擎会自动处理)
CALCVAR GLOBAL 全服首爆记录 = ""
SAVEVAR GLOBAL 全服首爆记录
```
当玩家获得物品时(例如在`QFunction-0.txt`的`[@PickUpItemX]`拾取触发中),进行判断和记录。
```txt
[@PickUpItemX]
#IF
; 假设你想为“绿玉裁决”设置首爆
EQUAL <$PICKDROPITEMNAME> 绿玉裁决
#ACT
; 使用键值对命令检查该物品是否已有首爆记录
GETSTRVALUE GLOBAL(全服首爆记录) 绿玉裁决 S$首爆玩家
#IF
EQUAL S$首爆玩家 ""
#ACT
; 如果为空,说明是首爆
; 将当前玩家名作为值,存入“绿玉裁决”这个主键下
ADDSTRVALUE GLOBAL(全服首爆记录) 绿玉裁决 <$USERNAME>
; 保存全局变量
SAVEVAR GLOBAL 全服首爆记录
; 发送全服公告
SENDMSG 0 [全服首爆]:玩家【<$USERNAME>】首次获得了【绿玉裁决】!奖励XXX
; 这里可以添加给该玩家的具体奖励脚本
#ELSEACT
; 如果已有记录,可以给玩家提示
SENDMSG 6 该物品已被玩家【<$STR(S$首爆玩家)>】首爆。
```
**注意**:
1. `ADDSTRVALUE`命令会直接修改键值对变量。`SAVEVAR`命令用于将变量保存到数据库,确保服务器重启后数据不丢失。
2. 合区时,全局变量以主区的数据为准。
3. 键值对功能不建议在频繁刷新的面板上使用,以免造成性能损耗。首爆触发频率很低,适合使用。
4. 你可以用同样的方法,为其他物品添加首爆判断,只需更换物品名(主键)即可。
← 返回问答库