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

