在传奇自建服务器中,实现角色首次登录自动获得装备,需通过服务端脚本判断角色是否为新号,并在满足条件时执行物品发放。以下以Mir2系列引擎(如1117、1280等)为例,说明具体配置步骤。
一、确定触发点与判断逻辑
新手判定通常基于角色等级、背包状态或自定义变量。最可靠方式是使用角色变量(如HUMAN IS_NEW_PLAYER),首次登录设为1,发装后改为0,避免重复领取。
二、配置QFunction-0.txt脚本
在QFunction-0.txt文件中添加[@LoginSuccess]事件,该事件在玩家成功进入游戏后触发:
[@LoginSuccess]
IF
CHECKVAR HUMAN IS_NEW_PLAYER == 0
ACT
SET HUMAN IS_NEW_PLAYER 1
GIVE 新手战盔 1
GIVE 新手战甲 1
GIVE 新手战靴 1
GIVE 修罗战斧 1
GIVE 灵魂药水 50
SENDMSG 5 欢迎新人玩家!已发放初始装备,请查收。
说明:
CHECKVAR HUMAN IS_NEW_PLAYER == 0 表示变量未设置或为0(即新号)
SET HUMAN IS_NEW_PLAYER 1 标记已领取,防止重复触发
GIVE 命令格式为“物品名 数量”,物品名必须与!ItemList.txt中完全一致
SENDMSG 5 为系统提示(仅自己可见)
三、处理背包空间不足问题
若玩家背包满,GIVE命令会失败。可增加空间检测并引导清理:
IF
CHECKBAGSIZE 5
ACT
; 背包至少留5格才发装
GIVE ...(同上)
ELSEACT
SENDMSG 5 背包空间不足,请清理后再输入[@领取新手装]
同时在QManage.txt中添加手动领取入口:
[@领取新手装]
IF
CHECKVAR HUMAN IS_NEW_PLAYER == 0
CHECKBAGSIZE 5
ACT
SET HUMAN IS_NEW_PLAYER 1
GIVE 新手战盔 1
...(其余装备)
SENDMSG 5 新手装备已发放!
ELSEACT
SENDMSG 5 条件不符,无法领取。
四、物品名称与配置文件匹配
确保所赠物品在以下文件中正确定义:
!ItemList.txt:包含物品名、代码、属性
!StdItems.txt:定义装备基础属性(如防御、重量)
例如“新手战甲”需在此文件中有对应条目,否则GIVE无效。
五、测试与验证
创建新角色登录,观察是否收到装备和提示
重新登录,确认不再重复发放
模拟背包满状态,测试手动领取功能
若未生效,检查:
QFunction-0.txt是否被正确加载(路径为D:MirServerMir200Envir)
物品名是否存在拼写错误或编码问题(建议用英文或标准中文)
引擎是否支持HUMAN变量(部分旧版需改用PLAYER变量)
通过上述脚本,可实现新玩家上线自动获得全套初始装备,提升入门体验。脚本结构清晰,易于扩展更多物品或条件判断。

