脚本位置与触发机制 新手上线送装备功能通过登录触发脚本实现。脚本文件位于Mir200\Envir\MapQuest_def\QManage.txt中,[@Login]段处理玩家登录事件。当玩家首次进入游戏或每次登录时,系统自动执行该段脚本。M2Server无需特殊设置,默认支持登录触发功能。
基础脚本结构 最简单的上线送装备脚本示例:
[@Login]
#ACT
GIVE 木剑 1
GIVE 布衣 1
GIVE 金创药 5
GIVE 魔法药 5
SENDMSG 0 欢迎新玩家[<$USERNAME>]加入游戏!
GIVE命令发放物品,参数为物品名称和数量。SENDMSG 0发送全服公告。此脚本每次登录都会执行,导致重复发放。
首次登录检测 防止重复领取需使用变量标记。常用个人变量P系列记录领取状态:
[@Login]
#IF
EQUAL P0 0
#ACT
GIVE 木剑 1
GIVE 布衣 1
GIVE 金创药 5
GIVE 魔法药 5
MOV P0 1
SENDMSG 0 新玩家[<$USERNAME>]获得新手礼包!
EQUAL P0 0检测变量P0是否为0,表示未领取过。MOV P0 1设置变量为1标记已领取。个人变量随角色数据永久保存。
等级条件限制 仅对低等级玩家发放新手装备:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
#ACT
GIVE 木剑 1
GIVE 布衣 1
GIVE 金创药 10
GIVE 魔法药 10
MOV P0 1
SENDMSG 0 新手玩家[<$USERNAME>]获得成长礼包!
CHECKLEVELEX < 10检测等级小于10级。超过10级玩家不再获得新手装备。
职业区分发放 根据不同职业发放对应装备:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
#ACT
#IF
CHECKJOB Warrior
#ACT
GIVE 青铜剑 1
GIVE 轻型盔甲 1
GIVE 金创药 15
#IF
CHECKJOB Wizard
#ACT
GIVE 海魂 1
GIVE 魔法长袍 1
GIVE 魔法药 15
#IF
CHECKJOB Taoist
#ACT
GIVE 半月 1
GIVE 灵魂战衣 1
GIVE 道符 10
MOV P0 1
CHECKJOB检测职业,Warrior战士、Wizard法师、Taoist道士。不同职业获得对应武器、衣服和消耗品。
时间延迟发放 登录后延迟几秒发放,避免卡顿:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
#ACT
DelayCall 3000 @GiveNewbieItem
[@GiveNewbieItem]
#ACT
GIVE 木剑 1
GIVE 布衣 1
MOV P0 1
SENDMSG 0 新手装备已发放至背包!
DelayCall 3000表示延迟3秒执行@GiveNewbieItem段。避免登录瞬间大量脚本执行导致延迟。
多套装备选择 提供不同档次新手装备供选择:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
#ACT
#SAY
请选择新手装备档次:\ \
<普通装备/@normal> <高级装备/@vip> <豪华装备/@luxury>
[@normal]
#ACT
GIVE 木剑 1
GIVE 布衣 1
GIVE 金创药 10
MOV P0 1
#SAY
普通装备已发放!
[@vip]
#IF
CHECKGAMEGOLD > 99
#ACT
GIVE 铁剑 1
GIVE 轻型盔甲 1
GIVE 金创药 20
MOV P0 1
#SAY
高级装备已发放!
通过#SAY显示选择菜单,玩家点击不同标签进入对应发放段。高级装备需检测元宝数量。
地图位置检测 仅在安全区发放新手装备:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
EQUAL <$MAP> 0
#ACT
GIVE 木剑 1
GIVE 布衣 1
MOV P0 1
SENDMSG 0 新手玩家在安全区获得装备!
EQUAL <$MAP> 0检测地图编号,0为新手村。非安全区登录不发放装备。
背包空间检测 发放前检测背包是否有足够空间:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
CHECKBAGSPACE 4
#ACT
GIVE 木剑 1
GIVE 布衣 1
GIVE 金创药 5
GIVE 魔法药 5
MOV P0 1
SENDMSG 0 新手装备发放成功!
#ELSEACT
SENDMSG 0 背包空间不足,请清理后重新登录领取。
CHECKBAGSPACE 4检测至少4格背包空间。空间不足时提示玩家清理背包。
注册时间判断 仅对近期创建的角色发放:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
CHECK [注册时间] < 7
#ACT
GIVE 木剑 1
GIVE 布衣 1
MOV P0 1
CHECK [注册时间] < 7检测角色创建时间小于7天。需配合注册时间记录脚本。
IP地址限制 同一IP仅限一个角色领取:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
CHECKIPLIST ..\QuestDiary\已领IP.txt
#ACT
GIVE 木剑 1
GIVE 布衣 1
MOV P0 1
AddIPList ..\QuestDiary\已领IP.txt
CHECKIPLIST检测IP是否在已领取列表中,AddIPList将IP加入列表。防止同一玩家多角色重复领取。
游戏时间检测 累计在线时间达标后发放进阶装备:
[@Login]
#IF
CHECKLEVELEX < 30
EQUAL P1 0
CHECK [在线时间] > 3600
#ACT
GIVE 修罗 1
GIVE 战神盔甲 1
MOV P1 1
SENDMSG 0 玩家[<$USERNAME>]累计在线1小时获得进阶装备!
CHECK [在线时间] > 3600检测累计在线时间超过3600秒(1小时)。使用不同变量P1记录进阶装备领取状态。
任务关联发放 完成新手任务后发放装备奖励:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
CHECK [新手任务] 1
#ACT
GIVE 青铜剑 1
GIVE 轻型盔甲 1
MOV P0 1
SENDMSG 0 恭喜完成新手任务获得装备!
CHECK [新手任务] 1检测新手任务完成标记。需配合任务脚本设置标记。
随机装备发放 随机给予不同品质新手装备:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
#ACT
RANDOM 3
#IF
EQUAL <$STR(N0)> 0
#ACT
GIVE 木剑 1
#IF
EQUAL <$STR(N0)> 1
#ACT
GIVE 铁剑 1
#IF
EQUAL <$STR(N0)> 2
#ACT
GIVE 青铜剑 1
MOV P0 1
RANDOM 3生成0-2随机数,根据数值发放不同武器。增加新手体验随机性。
性别区分发放 男女角色获得不同外观装备:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
#ACT
#IF
CHECKGENDER Man
#ACT
GIVE 男布衣 1
#IF
CHECKGENDER Woman
#ACT
GIVE 女布衣 1
MOV P0 1
CHECKGENDER检测性别,Man男性,Woman女性。需在数据库设置对应性别装备。
行会成员福利 加入行会后获得行会专属装备:
[@Login]
#IF
CHECKLEVELEX < 20
EQUAL P2 0
CHECKGUILD
#ACT
GIVE 行会战袍 1
GIVE 行会勋章 1
MOV P2 1
SENDMSG 0 行会成员[<$USERNAME>]获得行会福利装备!
CHECKGUILD检测是否有行会,P2记录行会装备领取状态。激励玩家加入行会。
连续登录奖励 连续登录多天获得累积奖励:
[@Login]
#IF
CHECKLEVELEX < 30
#ACT
GetRandomText ..\QuestDiary\登录记录.txt S10
#IF
EQUAL S10 <$USERNAME>
#ACT
INC P3 1
#IF
LARGE P3 2
#ACT
GIVE 祝福油 1
GIVE 黑铁矿 3
SENDMSG 0 玩家[<$USERNAME>]连续登录3天获得奖励!
通过文件记录登录信息,INC P3增加连续登录天数,LARGE P3 2检测大于2即连续3天。
充值玩家特权 充值玩家获得专属新手装备:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
CHECKGAMEGOLD > 999
#ACT
GIVE 黄金木剑 1
GIVE 黄金布衣 1
MOV P0 1
SENDMSG 0 尊贵玩家[<$USERNAME>]获得黄金新手装备!
CHECKGAMEGOLD > 999检测元宝大于999,即充值玩家。发放外观不同的特权装备。
服务器时间限制 仅在特定时间段开放新手福利:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
HOUR 10
MIN 0
HOUR 22
MIN 0
#ACT
GIVE 木剑 1
GIVE 布衣 1
MOV P0 1
SENDMSG 0 活动时间内登录获得双倍新手装备!
检测小时和分钟,10点至22点之间登录获得奖励。控制发放时间段。
版本更新补偿 版本更新后发放补偿装备:
[@Login]
#IF
CHECKLEVELEX < 40
EQUAL P4 0
CHECKTEXTLIST ..\QuestDiary\更新补偿.txt <$USERNAME>
#ACT
GIVE 补偿武器 1
GIVE 补偿衣服 1
MOV P4 1
SENDMSG 0 玩家[<$USERNAME>]获得版本更新补偿装备!
通过文本列表记录需补偿玩家,发放特定补偿装备。用于版本更新后玩家福利。
防作弊验证 添加多重验证防止脚本滥用:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
CHECKIP
CHECKHWID
#ACT
GIVE 木剑 1
GIVE 布衣 1
MOV P0 1
AddTextList ..\QuestDiary\已领记录.txt <$USERNAME>
CHECKIP检测IP地址,CHECKHWID检测硬件ID。AddTextList记录领取玩家名,便于查询。
装备绑定设置 发放的装备自动绑定给玩家:
[@Login]
#IF
CHECKLEVELEX < 10
EQUAL P0 0
#ACT
GIVE 木剑 1
GIVE 布衣 1
SetIconFlag 1 1
SetIconFlag 2 1
MOV P0 1
SetIconFlag 1 1将物品栏第一格物品绑定,参数1为位置,1为绑定标志。防止装备交易流通。
提示信息优化 添加详细的状态提示信息:
[@Login]
#IF
EQUAL P0 1
#ACT
#SAY
您已领取过新手装备。\ \
<查看装备信息/@checkitem>
#ELSEACT
#IF
CHECKLEVELEX < 10
#ACT
#SAY
欢迎新玩家!\ \
<领取新手装备/@getitem>
<稍后领取/@exit>
已领取玩家显示状态信息,未领取玩家显示领取菜单。提升用户体验。
脚本调试方法 测试上线送装备脚本时使用GM命令。@ReloadManage重载QManage.txt脚本。@ViewP0查看变量P0值。@SetP0 0重置领取状态。创建新角色测试领取流程。观察M2Server控制台输出,确认脚本执行无误。修改脚本后及时重载,避免重启服务端。
最终脚本部署 在QManage.txt的[@Login]段添加送装备脚本,保存文件。重启M2Server或使用@ReloadManage命令重载脚本。创建新角色测试装备发放功能。根据实际需求调整装备种类、数量、条件限制。定期检查领取记录,监控新手玩家体验。优化脚本逻辑,确保稳定运行。

