在传奇服务端中实现角色首次登录自动发放装备,需通过QFunction脚本结合变量记录与物品检测逻辑。该功能适用于GOM、HERO等主流引擎,确保玩家创建角色后首次进入游戏即可获得预设武器、衣服、项链等基础装备。
一、判定首次上线条件
使用全局变量标记玩家是否已领取过装备。在[@LoginSuccess]或[@CreateRole]事件中判断:
[@LoginSuccess]
IF
EQUAL 1
ACT
GOTO @FirstLoginGive
ELSEACT
GOTO @CheckAlreadyGot
[@CheckAlreadyGot]
IF
EXISTVAR HUMAN FirstLoginGift
ACT
; 已领取,不处理
BREAK
ELSEACT
GOTO @FirstLoginGive
其中为部分引擎提供的新建角色标识(HERO引擎支持),若引擎不支持,可改用变量检测:
IF
EXISTVAR HUMAN FirstLoginGift == FALSE
ACT
GOTO @FirstLoginGive
二、装备发放前校验背包空间
避免因背包不足导致物品丢失,需逐件检查目标格子是否为空:
[@FirstLoginGive]
IF
CHECKBAGSIZE 1 1
CHECKBAGSIZE 2 1
CHECKBAGSIZE 3 1
; 假设1=武器,2=衣服,3=项链
ACT
GOTO @DoGiveEquip
ELSEACT
SENDMSG 7 背包空间不足,无法发放新手装备。
LOGGING NewPlayerBagFull:
CLOSE
BREAK
CHECKBAGSIZE ItemIndex 数量用于检测指定物品能否放入背包。若引擎不支持此命令,可改用格子占用判断(如HERO引擎):
IF
CHECKBAGITEMEX 0 0
CHECKBAGITEMEX 1 0
...
三、执行装备发放与变量标记
确认空间充足后,依次发放装备并设置领取标记:
[@DoGiveEquip]
ACT
GIVE 1 1 ; 武器(ItemIndex=1)
GIVE 2 1 ; 衣服(ItemIndex=2)
GIVE 3 1 ; 项链(ItemIndex=3)
SET HUMAN FirstLoginGift 1
SENDMSG 7 欢迎新人玩家!已发放新手装备。
LOGGING FirstLoginGift: success
注意:
GIVE命令按背包顺序填充,若需指定穿戴位置,需确保物品类型与角色职业匹配(如战士不可穿魔法长袍)
变量FirstLoginGift必须设为HUMAN类型,确保每个玩家独立记录
四、处理多职业差异化装备
若不同职业需发放不同装备,加入职业判断:
[@DoGiveEquip]
IF
EQUAL JOB 0 ; 战士
ACT
GIVE 10 1 ; 战士武器
GIVE 20 1 ; 战士衣服
IF
EQUAL JOB 1 ; 法师
ACT
GIVE 11 1 ; 法师武器
GIVE 21 1 ; 法师衣服
IF
EQUAL JOB 2 ; 道士
ACT
GIVE 12 1 ; 道士武器
GIVE 22 1 ; 道士衣服
SET HUMAN FirstLoginGift 1
JOB为系统变量:0=战士,1=法师,2=道士。
五、防止重复触发机制
即使玩家断线重连,也不应重复发放。关键点:
变量FirstLoginGift在发放后立即设置
所有入口(登录、创建角色)均需校验该变量
避免在[@PlayStart]等高频事件中调用发放逻辑
六、完整脚本示例(GOM引擎)
在QFunction.txt末尾添加:
[@LoginSuccess]
IF
EXISTVAR HUMAN FirstLoginGift
ACT
; 已领取,跳过
BREAK
ELSEACT
GOTO @CheckNewPlayer
[@CheckNewPlayer]
IF
CHECKITEM 1 0
CHECKITEM 2 0
CHECKITEM 3 0
; 确认无初始装备(可选)
ACT
GOTO @GiveStarterEquip
[@GiveStarterEquip]
IF
CHECKBAGSIZE 1 1
CHECKBAGSIZE 2 1
CHECKBAGSIZE 3 1
ACT
GIVE 1 1
GIVE 2 1
GIVE 3 1
SET HUMAN FirstLoginGift 1
SENDMSG 7 新手装备已发放,请查收。
ELSEACT
SENDMSG 7 背包空间不足,无法完成发放。
七、调试与验证步骤
创建新角色,观察是否收到装备
重新登录,确认不再重复发放
使用@delitem清空背包后重试,验证空间检测逻辑
检查MirServerLog日志,确认发放记录
通过上述脚本,可稳定实现新手上线自动送装备功能。核心在于首次登录识别、背包空间校验、职业适配及防重复机制四要素,缺一不可。
传奇新手上线自动赠送装备脚本编写方法
来源:
作者:
点击:

