传奇服务端随机传送石次数怎么设?多引擎脚本配置指南

来源: 作者: 点击:
传奇服务端中随机传送石的次数设置,分为 “单块传送石使用次数限制” 和 “玩家每日使用次数限制” 两类,不同引擎(Hero、GEE、BLUE)配置路径略有差异,但核心围绕数据库字段与脚本变量实现,以下是分步实操教程。
一、核心原理:次数控制的 2 种实现逻辑
随机传送石的次数管控依赖两大模块协作:
物品数据库(Item.DB):定义单块传送石的初始可用次数,如 “50 次”“100 次”,消耗后次数递减直至失效;
脚本触发文件(QFunction-0.txt 等):通过变量记录使用次数,判断是否允许传送,触发次数减少或超限提示。
两类场景对应不同配置逻辑:单块次数限制只需改数据库 + 基础脚本;每日次数限制需额外添加玩家变量与重置机制。
二、基础配置:单块传送石的使用次数设置(全引擎通用)
(一)第一步:修改物品数据库(Item.DB)
1. 定位数据库文件
打开服务端路径 “D:\Mirserver\Mir200\Data\”,找到 “Item.DB” 文件(物品属性总库),用 DB 编辑器(如 HeroDBEditor、LegendDBTool)打开。
2. 配置核心字段
在物品列表中搜索 “随机传送石”,找到对应条目修改以下字段:
StdMode:固定设为 “2”(特殊物品类型,支持次数统计);
DuraMax:控制总使用次数,规则为 “1000=1 次”,例如:
设为 “50000”=50 次,“100000”=100 次,“0”= 无限次;
Anicount:填写触发脚本编号(如 “45”),后续需在脚本中对应此编号;
Name:可补充标注次数(如 “随机传送石 (50 次)”),方便玩家识别。
3. 保存数据库
点击 “保存” 并关闭编辑器,注意勾选 “自动备份原文件”,避免配置错误无法恢复。
(二)第二步:编写脚本触发逻辑(QFunction-0.txt)
1. 打开脚本文件
进入路径 “D:\Mirserver\Mir200\Envir\QuestDiary\”,用 Notepad++ 打开 “QFunction-0.txt”(物品使用触发脚本)。
2. 添加触发代码
按 Anicount 字段的编号(如 “45”),添加以下脚本(可直接复制修改):
;随机传送石(50次)触发 - Anicount=45
(@StdModeFunc45)
#IF
CheckUseCount > 0 ;检测剩余次数>0
#ACT
MOV N0 <$USECOUNT> ;读取当前次数到变量N0
DEC N0 1 ;次数减1
SetUseCount <$ITEMINDEX> <$N0> ;更新物品剩余次数
MOVR X0 1 30 ;随机生成X轴偏移量(1-30)
MOVR Y0 1 30 ;随机生成Y轴偏移量(1-30)
MAPMOVE <$MAP> <$X+X0> <$Y+Y0> ;传送至当前地图随机坐标
SENDMSG 6 剩余传送次数:<$N0>次 ;发送剩余次数提示
#ELSEACT
SENDMSG 6 传送石已耗尽,可到商店购买新的 ;次数为0时提示
REMOVEITEM 随机传送石(50次) 1 ;可选:次数耗尽自动删除物品

3. 关键命令说明
CheckUseCount:检测物品当前剩余次数;
MOVR:生成随机数,控制传送偏移范围(避免传送到地图边缘);
SENDMSG 6:在游戏聊天栏显示黄色提示,增强玩家感知。
三、进阶配置:玩家每日使用次数限制(分引擎实现)
(一)Hero 引擎:变量 + 每日重置
1. 定义玩家变量(QManage.txt)
打开 “D:\Mirserver\Mir200\Envir\QuestDiary\QManage.txt”,在脚本开头添加变量初始化:
;每日随机传送次数变量(初始0,上限50)
VAR HUMAN DailyRndMove 0

2. 修改传送触发脚本(QFunction-0.txt)
在原传送脚本中增加次数判断:
(@StdModeFunc45)
#IF
CheckUseCount > 0
CHECKVAR HUMAN DailyRndMove < 50 ;判断每日次数是否<50
#ACT
DEC N0 1 ;物品次数减1
SetUseCount <$ITEMINDEX> <$N0>
INC HUMAN DailyRndMove 1 ;玩家每日次数加1
MAPMOVE <$MAP> <$X+X0> <$Y+Y0>
SENDMSG 6 今日剩余传送次数:<$HUMAN(DailyRndMove)>次/50次
#ELSEACT
SENDMSG 6 今日传送次数已达上限,明日重置

3. 每日凌晨重置变量
在 QManage.txt 末尾添加凌晨 3 点重置触发:
(@DayReset)
#IF
TIMETICK 03:00:00 ;每日3点执行
#ACT
SET HUMAN DailyRndMove 0 ;重置所有玩家每日次数

(二)GEE 引擎:专用命令 + 物品属性
1. 数据库额外配置(Item.DB)
在随机传送石条目新增 “UseCountLimit=50” 字段(直接在 DB 编辑器末尾添加),限制单块最大次数。
2. 脚本简化触发(QFunction-0.txt)
GEE 引擎支持专用次数命令,无需手动更新变量:
(@StdModeFunc45)
#IF
CheckUseCountLimit ;检测是否超限
#ACT
UseCountDec 1 ;自动减1次
RandomMove 30 ;内置随机传送命令(偏移30格)
#ELSEACT
SENDMSG 6 传送石次数已用尽

(三)BLUE 引擎:M2 设置 + 脚本配合
1. M2 引擎基础配置
打开服务端 M2 程序→“物品设置”→“特殊物品”,找到 “随机传送石”:
勾选 “启用使用次数”;
填写 “初始次数 = 50”“每日上限 = 100”。
2. 脚本补充提示(ItemScript.txt)
BLUE 引擎需单独在 “D:\Mirserver\Mir200\Envir\ItemScript.txt” 添加:
[随机传送石]
#IF
#ACT
RandomMapMove 0 30 ;0代表当前地图,30为偏移范围
SENDMSG 6 剩余次数:<$USECOUNT>,今日已用:<$DAYUSECOUNT>

四、多引擎通用排查:避免设置失效的 3 个关键
1. 数据库与脚本同步检查
确认 Item.DB 中 “Anicount” 编号与 QFunction-0.txt 中 “@StdModeFuncXX” 的 XX 一致(如 Anicount=45 则对应 @StdModeFunc45);
用 “传奇脚本语法检测工具”(如 MirScriptChecker)扫描脚本,修复 “命令缺失”“变量未定义” 等错误。
2. 次数规则一致性验证
单块次数:Item.DB 中 DuraMax 值需为 1000 的整数倍(如 30 次 = 30000),非整数会导致次数显示异常;
每日次数:变量重置脚本需放在 QManage.txt 的 “@DayReset” 段,而非普通触发段,避免不执行。
3. 实测场景覆盖
创建测试账号,领取传送石后连续使用,观察次数是否递减、超限是否提示;
跨凌晨 3 点后登录,检查每日次数是否重置;
测试传送石次数耗尽后,是否能正常删除或提示购买。
五、拓展:次数补给与限制强化
1. 元宝购买次数(NPC 脚本示例)
在 “D:\Mirserver\Mir200\Envir\MapQuest_def\3\ 盟重省.txt”(盟重 NPC 脚本)添加:
[@购买传送次数]
#IF
CHECKGOLD > 10000 ;10000金币购买10次
#ACT
GOLD - 10000
INC HUMAN DailyRndMove 10
SENDMSG 6 成功购买10次传送次数,今日剩余:<$HUMAN(DailyRndMove)>次
#ELSEACT
SENDMSG 6 金币不足,需10000金币购买10次

2. 危险地图限制使用
在传送脚本中增加地图判断,禁止在 BOSS 地图频繁传送:
#IF
MAPNAME 不归路 ;危险地图名称
#ACT
SENDMSG 6 该地图禁止使用随机传送石
break ;终止后续脚本执行

不同引擎的核心差异在于 “次数存储位置”:Hero 靠变量、GEE 靠物品字段、BLUE 靠 M2 配置,但都需遵循 “数据库定义初始值 + 脚本控制消耗” 的逻辑。若设置后次数不减少,优先检查脚本中 “SetUseCount” 或 “UseCountDec” 命令是否遗漏;若每日不重置,确认 QManage.txt 的 “@DayReset” 触发是否开启。可根据所用引擎版本,到传奇论坛(如 64GM、传奇版本库)下载对应脚本模板直接替换。