乾坤玉璧是MAX引擎自带特殊道具,内置四档状态标记,分别对应未聚灵、聚灵中、已满未解封、已满解封,依靠GIVESEALITEM指令直接给玩家分配对应状态的玉璧,配合物品数据库字段、QF全局脚本可实现发放、状态检测、解封、灵气读取整套功能,参数填写错误会出现玉璧状态不生效、状态标识错乱、解封指令无效、灵气数值不保存等问题。
物品数据库字段配置,新增乾坤玉璧物品条目,Stdmode按照引擎特殊道具分类填写,Shape匹配客户端玉璧素材编号,素材编号错误背包内图标黑屏。Anicount字段填写触发脚本编号,用于双击玉璧打开操作面板。Count设置堆叠数量,常规设置为1,玉璧属于唯一状态道具,不建议开启堆叠。Weight设置物品重量,数值保持偏低,方便玩家携带。Need与Needlevel字段可设置使用等级门槛,不需要限制则全部填0。
MAX引擎玉璧状态分为0、1、2、3四个数值,0代表未开始聚灵,玉璧内无灵气;1代表聚灵进行中,正在持续吸收地图灵气;2代表灵气已满,暂时没有解封;3代表灵气已满并且完成解封,可领取内部存储灵气。GIVESEALITEM是核心指令,完整格式为GIVESEALITEM 物品名称 数量 状态编号,这条指令可以直接生成指定状态的乾坤玉璧到玩家背包,不需要先生成空白玉璧再修改状态。示例写法GIVESEALITEM 乾坤玉璧 1 2,执行后直接发放灵气已满未解封状态的玉璧。
基础发放脚本,放置在NPC对话脚本中,玩家点击NPC直接获取指定状态玉璧。
[@main]
MESSAGEBOX \
聚灵玉璧管理员\
<领取空白玉璧/@GetYuBi0>\
<领取聚灵中玉璧/@GetYuBi1>\
<领取满灵气未解封玉璧/@GetYuBi2>\
<领取已满解封玉璧/@GetYuBi3>\
<离开/@Close>
[@GetYuBi0]
#ACT
GIVESEALITEM 乾坤玉璧 1 0
SENDMSG 5 成功领取状态0空白乾坤玉璧。
#ENDACT
[@GetYuBi1]
#ACT
GIVESEALITEM 乾坤玉璧 1 1
SENDMSG 5 成功领取状态1正在聚灵的乾坤玉璧。
#ENDACT
[@GetYuBi2]
#ACT
GIVESEALITEM 乾坤玉璧 1 2
SENDMSG 5 成功领取状态2灵气已满未解封乾坤玉璧。
#ENDACT
[@GetYuBi3]
#ACT
GIVESEALITEM 乾坤玉璧 1 3
SENDMSG 5 成功领取状态3已满解封乾坤玉璧。
#ENDACT
[@Close]
#ACT
CLOSE
#ENDACT
玉璧状态检测脚本,使用CHECKNIMBUSITEMCOUNT指令检测玩家背包内对应状态玉璧数量,用于解封判定、任务条件校验。指令格式CHECKNIMBUSITEMCOUNT 物品名称 状态编号 = 数量。下面示例为玉璧解封NPC脚本,玩家携带状态2玉璧,即可执行解封操作,将玉璧状态转为3。
[@UnWrapYuBi]
#IF
CHECKNIMBUSITEMCOUNT 乾坤玉璧 2 = 1
#ACT
UNWRAPNIMBUSITEM 乾坤玉璧
SENDMSG 5 乾坤玉璧解封成功,玉璧状态变更为已满解封。
#ELSEACT
MESSAGEBOX 背包内没有灵气已满未解封的乾坤玉璧,无法解封。
RETURN
#ENDIF
玉璧双击查看状态功能,在QFunction-0.txt写入StdmodeFunc触发段,双击乾坤玉璧弹出状态信息,读取当前玉璧的灵气容量与状态。
[@StdModeFunc25]
#IF
CHECKNIMBUSITEMCOUNT 乾坤玉璧 0 = 1
#ACT
MESSAGEBOX 你的乾坤玉璧状态:未开始聚灵,暂无灵气。
#BREAK
#ENDIF
#IF
CHECKNIMBUSITEMCOUNT 乾坤玉璧 1 = 1
#ACT
MESSAGEBOX 你的乾坤玉璧状态:聚灵进行中,持续吸收地图灵气。
#BREAK
#ENDIF
#IF
CHECKNIMBUSITEMCOUNT 乾坤玉璧 2 = 1
#ACT
MESSAGEBOX 你的乾坤玉璧状态:灵气已满,尚未解封,可前往NPC解封。
#BREAK
#ENDIF
#IF
CHECKNIMBUSITEMCOUNT 乾坤玉璧 3 = 1
#ACT
MESSAGEBOX 你的乾坤玉璧状态:已满解封,可以提取玉璧内储存灵气。
#BREAK
#ENDIF
灵气提取功能,检测已解封状态玉璧,扣除玉璧,发放灵气值或者对应属性奖励。
[@GetNimbus]
#IF
CHECKNIMBUSITEMCOUNT 乾坤玉璧 3 = 1
#ACT
TAKE 乾坤玉璧 1
;此处可增加内功、灵气值增加指令
SENDMSG 5 成功提取乾坤玉璧储存灵气。
#ELSEACT
MESSAGEBOX 没有已解封的乾坤玉璧,无法提取灵气。
RETURN
#ENDIF
脚本部署步骤,物品数据库新增乾坤玉璧条目,保存DB,重载物品数据库。新建NPC脚本,写入发放与解封代码,保存为ANSI编码,放入Envir\Market_Def目录,在NPC注册列表添加NPC记录,填写地图坐标和脚本文件名。QFunction-0.txt追加双击触发代码,保存文件,重载全局脚本,无需重启服务端。
参数调整说明,GIVESEALITEM第三个参数只能填写0、1、2、3,填入其他数字指令不会生效。CHECKNIMBUSITEMCOUNT状态编号必须和发放指令保持一致,状态编号写错无法检测到玉璧。UNWRAPNIMBUSITEM解封指令仅对状态2玉璧生效,其余状态执行解封指令不会有任何变化。玉璧灵气容量上限在引擎M2配置面板内设置,可修改聚灵速度、灵气存储上限,不同地图可以单独开启或者关闭灵气吸收,在MapInfo增加地图灵气标记。
功能测试需要逐个验证四种状态,领取状态0空白玉璧,双击查看提示文字正常;领取状态1聚灵玉璧,进入灵气地图,确认灵气持续增长;领取状态2满灵气玉璧,尝试解封,确认状态切换为3;领取状态3解封玉璧,执行提取灵气,道具正常扣除。测试跨场景检测,玉璧放入背包、穿戴、交易之后,状态标记不会丢失,角色下线再次登录,玉璧状态和灵气数值保持不变。
常见故障排查,执行GIVESEALITEM后背包没有玉璧,核对物品数据库内物品名称,名称不一致无法生成道具。玉璧状态检测不到,检查CHECKNIMBUSITEMCOUNT状态数字,确认玩家背包内玉璧状态和检测数字匹配。解封指令无效,确认玉璧是状态2,其他状态不能执行解封。双击玉璧没有弹窗,核对Anicount编号和QF内[@StdModeFuncX]后缀数字一致,脚本文件编码改为ANSI。玉璧下线灵气清零,打开M2配置,开启玉璧灵气持久保存开关,关闭临时内存存储模式。
拓展修改方向,可以增加多档次玉璧,精致乾坤玉璧、高级乾坤玉璧,设置更高灵气上限,修改数据库素材编号,复用整套状态脚本。增加玉璧掉落机制,怪物死亡时随机生成指定状态玉璧。增加任务判定,收集指定数量已满解封玉璧提交任务兑换奖励。所有修改完成后,测试领取、交易、解封、提取灵气、下线保存全流程,确认不会出现状态错乱、灵气丢失、指令无效等问题。
传奇MAX引擎乾坤玉璧指定四种聚灵状态物品DB配置与脚本完整教程
来源:
作者:
点击:

