一、 核心文件定位:QManage.txt
新手上线脚本的核心触发文件是 QManage.txt(简称QM),路径位于服务端 Mir200\Envir\MapQuest_Def\ 目录下。该文件控制玩家登录时的全局逻辑,修改后需在M2Server中重载脚本生效。
二、 基础脚本编写:按职业发放
在QM文件中找到 [@Login] 段落(登录触发入口),添加以下逻辑。核心是利用 ISNEWHUMAN 检测新号,配合 CHECKJOB 区分职业。
[@Login]
;========== 战士新手装备 ==========
#IF
ISNEWHUMAN ; 检测是否为新人
CHECKJOB Warrior ; 检测职业为战士
#ACT
GIVE 木剑 1
GIVE 布衣(男) 1
GIVE 金创药(小量) 5
GIVE 金币 5000
BREAK ; 中断后续判断
;========== 法师新手装备 ==========
#IF
ISNEWHUMAN
CHECKJOB Wizard
#ACT
GIVE 木剑 1
GIVE 布衣(女) 1
GIVE 魔法药(小量) 5
GIVE 金币 5000
BREAK
;========== 道士新手装备 ==========
#IF
ISNEWHUMAN
CHECKJOB Taoist
#ACT
GIVE 木剑 1
GIVE 布衣(男) 1
GIVE 护身符(小) 1
GIVE 金币 5000
BREAK
关键命令说明:
• ISNEWHUMAN:引擎内置标识,仅首次创建的角色触发。
• CHECKJOB:参数为 Warrior(战)、Wizard(法)、Taoist(道)。
• GIVE:物品名称必须与数据库 StdItems.DB 完全一致。
• BREAK:防止脚本继续向下执行导致重复发放。
三、 进阶功能:自动穿戴与防重复
若需上线自动穿戴装备(非放入背包),需使用 AutoTakeOnItem 命令。
#IF
ISNEWHUMAN
#ACT
GIVE 布衣(男) 1
AutoTakeOnItem 布衣(男) 0 ; 0代表衣服部位,自动穿身上
SET [100] 1 ; 设置逻辑变量[100]为1(已领取标志)
部位编号参考:0=衣服,1=武器,3=项链,4=头盔,5/6=手镯,7/8=戒指,11=鞋子。
四、 外部调用模式(推荐)
为避免QM文件过于臃肿,通常将赠送逻辑写在外部文件,通过 #CALL 调用。
1. 在QM中添加调用指令:
[@Login]
#CALL [\系统功能\新手赠送.txt] @SendGift
2. 创建外部脚本文件:
◦ 路径:Mir200\Envir\QuestDiary\系统功能\新手赠送.txt
- 内容:
[@SendGift]
#IF
ISNEWHUMAN
#ACT
GIVE 新手礼包 1
此方式便于管理,修改赠送内容无需频繁编辑QM主文件。
五、 常见问题与排查
1. 物品不显示:检查 GIVE 后的物品名称是否与数据库完全一致(包括括号、符号)。
2. 重复触发:确认脚本中使用了 ISNEWHUMAN 而非单纯的等级检测,并在每个分支结尾有 BREAK。
3. 编码错误:脚本文件需保存为 ANSI 编码,若保存为UTF-8会导致M2报错或NPC对话乱码。
4. 生效步骤:修改脚本后,必须在M2Server的“控制→重新加载→重读NPC脚本”中刷新,直接重启服务端非必要。
总结:上线送装备的核心是修改 QManage.txt 的 [@Login] 段,利用 ISNEWHUMAN 进行精准新人判断,通过 GIVE 命令发放对应职业的装备。建议采用外部调用模式以保持代码整洁。

