当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

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

热度:
传奇服务端中随机传送石的次数设置,分为“单块传送石使用次数限制”和“玩家每日使用次数限制”两类,不同引擎(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
MOVN0<$USECOUNT>;读取当前次数到变量N0
DECN01;次数减1
SetUseCount<$ITEMINDEX><$N0>;更新物品剩余次数
MOVRX0130;随机生成X轴偏移量(1-30)
MOVRY0130;随机生成Y轴偏移量(1-30)
MAPMOVE<$MAP><$X+X0><$Y+Y0>;传送至当前地图随机坐标
SENDMSG6剩余传送次数:<$N0>次;发送剩余次数提示
#ELSEACT
SENDMSG6传送石已耗尽,可到商店购买新的;次数为0时提示
REMOVEITEM随机传送石(50次)1;可选:次数耗尽自动删除物品

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

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

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

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

(三)BLUE引擎:M2设置+脚本配合
1.M2引擎基础配置
打开服务端M2程序→“物品设置”→“特殊物品”,找到“随机传送石”:
勾选“启用使用次数”;
填写“初始次数=50”“每日上限=100”。
2.脚本补充提示(ItemScript.txt)
BLUE引擎需单独在“D:\Mirserver\Mir200\Envir\ItemScript.txt”添加:
[随机传送石]
#IF
#ACT
RandomMapMove030;0代表当前地图,30为偏移范围
SENDMSG6剩余次数:<$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
INCHUMANDailyRndMove10
SENDMSG6成功购买10次传送次数,今日剩余:<$HUMAN(DailyRndMove)>次
#ELSEACT
SENDMSG6金币不足,需10000金币购买10次

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

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