当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇新手上线赠送装备脚本编写完整教程

热度:
脚本位置与触发机制新手上线送装备功能通过登录触发脚本实现。脚本文件位于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命令重载脚本。创建新角色测试装备发放功能。根据实际需求调整装备种类、数量、条件限制。定期检查领取记录,监控新手玩家体验。优化脚本逻辑,确保稳定运行。
[顶部]