核心脚本文件定位
人物上线赠送功能完全由脚本驱动,不涉及引擎内核修改。主入口位于 Mir200\Envir\MapQuest_def\QManage.txt 中的 [@Login] 段,该段在玩家每次上线时自动触发。若版本结构复杂,可能会通过 #CALL 指令调用 QuestDiary 目录下的外部脚本文件(如 登陆脚本.txt)进行模块化管理。
新人判定与职业分流逻辑
为防止老玩家重复领取,必须使用 ISNEWHUMAN 标签进行新人检测。配合 checkjob 命令实现职业分流,确保战士、法师、道士获取不同的初始装备。典型的多条件判断结构如下:
[@Login]
#IF
ISNEWHUMAN
checkjob warrior
#ACT
give 木剑 1
give 布衣(男) 1
give 金创药(小) 4
ADDSKILL 基本剑术 1
Break
此脚本块执行后需用 Break 中断,避免逻辑穿透导致后续职业判断失效。
装备自动穿戴与位置映射
直接给予的装备默认在背包,需配合 AutoTakeOnItem 命令实现自动穿戴。该命令需在 GIVE 之后执行,且必须指定正确的装备位置编号(而非数据库字段):
编号 部位 编号 部位
0 盔甲 8 左戒指
1 武器 9 护身符
4 头盔 10 腰带
5/6 手镯 11 鞋子
示例代码:
#ACT
give 青铜剑 1
AutoTakeOnItem 青铜剑 1 // 自动装备到武器位
give 布衣(男) 1
AutoTakeOnItem 布衣(男) 0 // 自动装备到衣服位
技能直接学习与等级控制
无需通过技能书道具,使用 ADDSKILL 命令可直接将技能添加到角色技能栏。命令格式为 ADDSKILL 技能名称 等级,其中等级参数通常为 0(未修炼)或 1(1级)。若需开局赠送满级技能,需先在 Magic.DB 中确认该技能的最大等级上限。
// 法师开局送技能示例
#IF
ISNEWHUMAN
checkjob wizard
#ACT
ADDSKILL 火球术 1
ADDSKILL 抗拒火环 1
ADDSKILL 诱惑之光 1
全职业通用套装配置
对于单职业或通用版本,可移除职业判断,统一发放套装。建议配合 CHECKBAGITEM 检测背包空格,避免因背包满导致脚本报错。同时利用 SENDMSG 发送提示信息增强体验:
#IF
ISNEWHUMAN
#ACT
give 新手木剑 1
give 新手布衣 1
give 回城卷 5
ADDSKILL 新手技能 1
SENDMSG 7 新手礼包已发放至背包,请查收!
脚本加载与调试要点
修改 QManage.txt 后,无需重启整个服务端。在 M2Server 主控台依次点击 “控制” → “重新加载” → “登录脚本” 即可生效。若上线未触发,优先检查 ISNEWHUMAN 标签是否被其他全局脚本覆盖,或使用 SENDMSG 输出调试信息定位断点。
多引擎指令兼容性
GOM、GEE、LEGEND 等主流引擎对上述基础指令(GIVE、ADDSKILL)兼容性良好。若使用 HERO 等老引擎,需注意 AutoTakeOnItem 的坐标参数可能略有差异,建议以对应引擎的帮助文档为准。

