本文聚焦传奇荣誉点脚本核心功能,含BOSS掉落荣誉卷、使用卷增加荣誉点、荣誉点检测三大模块,明确加荣誉点代码与检测函数,适配通用引擎(GEE、GOM、HERO),可直接复制调试。
一、核心基础:荣誉点变量与荣誉卷配置
荣誉点需通过自定义变量存储,荣誉卷作为道具需提前配置数据库,确保脚本正常调用。
(一)荣誉点变量设定
选用引擎自定义变量存储荣誉点,推荐使用全局变量“HonorPoint”(部分引擎支持角色变量,格式为“HONOR”),变量初始值为0,使用荣誉卷后累加,支持跨地图、跨登录保留数据。无需额外开启变量权限,通用引擎默认支持自定义变量调用。
(二)荣誉卷道具配置(Item.DB数据库)
路径:D:\Mirserver\Mir200\DB\Item.DB,用数据库编辑器打开,新增荣誉卷条目,配置如下:1.物品名称:荣誉卷(名称需唯一,无空格);2.物品类型:消耗品(引擎编号通常为2,对照引擎说明确认);3.物品外观:索引对应客户端Item.wil中的素材(可选,确保显示正常);4.佩戴需求:无(等级、职业限制设为0);5.启用状态:设为1(确保道具可使用);6.脚本触发:在“使用脚本”字段填写“@使用荣誉卷”(关联后续使用脚本)。保存时选择ANSI编码,避免乱码。
二、BOSS掉落荣誉卷脚本(QManage.txt)
实现指定BOSS被击杀后,一定概率掉落荣誉卷,脚本写入QManage.txt(路径:D:\Mirserver\Mir200\Envir\MapQuest_def\QManage.txt),支持单BOSS或多BOSS批量配置。
(一)单BOSS掉落脚本(示例:沃玛教主)
脚本逻辑:检测被击杀怪物为沃玛教主,触发掉落判定,概率掉落1张荣誉卷。
代码示例:
[@KillMonster]
#IF
CheckMonsterName沃玛教主(检测被击杀怪物名称,需与Monster.DB一致)
Random10(掉落概率10%,数值越小概率越高,1为必掉)
#ACT
Give荣誉卷1(掉落1张荣誉卷,道具名称与数据库一致)
SENDMSG5恭喜您击杀沃玛教主,获得荣誉卷x1!(给击杀者提示)
#ELSEACT
return(未触发概率则无掉落)
(二)多BOSS批量掉落脚本
同时配置多个BOSS掉落,用#ELSEIF扩展条件,可差异化设置掉落概率。
代码示例:
[@KillMonster]
#IF
CheckMonsterName沃玛教主
Random10
#ACT
Give荣誉卷1
SENDMSG5恭喜您击杀沃玛教主,获得荣誉卷x1!
#ELSEIF
CheckMonsterName祖玛教主
Random8(祖玛教主掉落概率12.5%)
#ACT
Give荣誉卷1
SENDMSG5恭喜您击杀祖玛教主,获得荣誉卷x1!
#ELSEIF
CheckMonsterName赤月恶魔
Random5(赤月恶魔掉落概率20%)
#ACT
Give荣誉卷1
SENDMSG5恭喜您击杀赤月恶魔,获得荣誉卷x1!
#ELSEACT
return
(三)掉落脚本补充说明
1.怪物名称必须与Monster.DB中完全一致,包括特殊符号,避免名称偏差导致脚本失效;2.掉落概率通过Random命令控制,格式为“Random数值”,掉落概率=1/数值,如Random5为20%概率;3.可添加掉落数量调整,如“Give荣誉卷2”实现掉落2张,适配高难度BOSS;4.若需限制仅玩家击杀掉落,添加“CheckHumKill1”条件(1为玩家击杀,0为怪物互杀)。
三、使用荣誉卷增加荣誉点脚本
实现玩家使用荣誉卷后,荣誉点+1,同时提示当前荣誉点数量,分基础版与防刷版脚本。
(一)基础版脚本(@使用荣誉卷)
写入QManage.txt,与荣誉卷数据库“使用脚本”字段关联,使用后消耗道具并累加荣誉点。
代码示例:
[@使用荣誉卷]
#IF
CheckItem荣誉卷1(检测玩家是否拥有1张及以上荣誉卷)
#ACT
Take荣誉卷1(消耗1张荣誉卷)
IncVarHonorPoint1(荣誉点+1,IncVar为变量累加命令)
SENDMSG1您使用了1张荣誉卷,荣誉点+1,当前荣誉点:$HonorPoint(红色提示当前点数)
#ELSEACT
SENDMSG5您没有荣誉卷,无法使用!
(二)防刷版脚本(增加使用限制)
添加冷却时间、等级限制,避免恶意刷取荣誉点,适配多人服务器场景(单机可忽略)。
代码示例:
[@使用荣誉卷]
#IF
CheckItem荣誉卷1
CheckLevelEx>20(限制20级以上玩家使用)
CheckTimer10(检测冷却定时器是否未启动,避免连续使用)
#ACT
Take荣誉卷1
IncVarHonorPoint1
SetTimer15(设置5秒冷却时间,期间无法再次使用)
SENDMSG1您使用了1张荣誉卷,荣誉点+1,当前荣誉点:$HonorPoint
#ELSEIF
CheckTimer11(检测到冷却中)
SENDMSG5荣誉卷使用有5秒冷却,请勿频繁使用!
#ELSEACT
SENDMSG5等级不足20级或无荣誉卷,无法使用!
四、荣誉点检测函数与调用方式
荣誉点检测核心通过变量判断命令实现,支持脚本内条件判断、玩家查询、NPC提示等场景,以下为常用检测函数及用法。
(一)核心检测函数(变量判断命令)
1.基础检测:CheckVarHonorPoint数值(判断荣誉点是否等于指定数值),示例:CheckVarHonorPoint5(检测荣誉点是否为5);2.范围检测:CheckVarExHonorPoint>数值(判断荣誉点是否大于指定数值),支持>、<、≥、≤,示例:CheckVarExHonorPoint>10(检测荣誉点是否大于10);3.玩家查询:通过SENDMSG命令调用变量$HonorPoint,直接显示当前荣誉点,示例:SENDMSG5您当前荣誉点:$HonorPoint。
(二)检测函数实战场景
1.脚本内条件判断(如荣誉点兑换奖励)
代码示例:
[@兑换奖励]
#IF
CheckVarExHonorPoint≥10(检测荣誉点是否≥10)
#ACT
DecVarHonorPoint10(扣除10点荣誉点)
Give裁决之杖1(发放兑换奖励)
SENDMSG1您消耗10点荣誉点,兑换裁决之杖x1,剩余荣誉点:$HonorPoint
#ELSEACT
SENDMSG5您当前荣誉点不足10点,无法兑换!
2.NPC查询荣誉点(添加到NPC脚本)
路径:D:\Mirserver\Mir200\Envir\NPCs,新建NPC脚本(如“荣誉使者-3.txt”),实现玩家对话查询。
代码示例:
[@Main]
#SAY
欢迎来到荣誉使者处,您可查询荣誉点或兑换奖励!\
<查询当前荣誉点/@查询荣誉点>\
<荣誉点兑换奖励/@兑换奖励>
[@查询荣誉点]
#ACT
SENDMSG1您当前荣誉点:$HonorPoint(红色字体显示)
goto@Main(返回主对话)
3.登录自动提示荣誉点
写入Login.txt(路径:D:\Mirserver\Mir200\Envir\MapQuest_def\Login.txt),玩家登录时自动提示当前荣誉点。
代码示例:
[@Login]
#ACT
SENDMSG5欢迎登录,您当前荣誉点:$HonorPoint
return
五、引擎适配与脚本调试要点
(一)不同引擎命令适配
1.HERO引擎:变量累加命令为“ADDVAR”,替代“IncVar”;变量扣除为“SUBVAR”,替代“DecVar”,检测命令不变;2.GOM引擎:支持角色变量“HONOR”(仅当前角色生效),格式为“IncHONOR1”,全局变量用法与通用版一致;3.老引擎:部分老引擎不支持IncVar命令,需用“SetVarHonorPoint$HonorPoint+1”实现累加,检测命令不变。
(二)调试步骤与避坑
1.道具测试:用GM命令“Give荣誉卷10”获取道具,使用后查看是否提示荣誉点增加,同时检查变量是否累加(GM命令“CHECKVARHonorPoint”可查看变量值);2.掉落测试:击杀对应BOSS,验证荣誉卷是否按设定概率掉落,调整Random数值优化概率;3.冲突排查:检查QManage.txt中是否有同名脚本(如重复@KillMonster),避免覆盖导致脚本失效;4.编码校验:所有脚本文件保存为ANSI编码,乱码会导致命令无法识别,需重新保存;5.重启生效:修改数据库或引擎相关配置后,需重启服务端,否则配置不生效。
(三)数据保留说明
全局变量HonorPoint默认随服务端重启重置,若需永久保留,需将变量写入角色数据库(Human.DB)。新增“荣誉点”字段,在使用荣誉卷、扣除荣誉点脚本中添加“WriteHumanDBHonorPoint$HonorPoint”命令,实现数据永久存储,重启后不丢失。
综上,传奇荣誉点脚本核心为变量控制与道具关联,按上述代码配置后,可实现BOSS掉落荣誉卷、使用累加点数、多场景检测查询功能。可根据需求调整掉落概率、荣誉点用途(兑换、权限解锁等),适配不同版本玩法。
一、核心基础:荣誉点变量与荣誉卷配置
荣誉点需通过自定义变量存储,荣誉卷作为道具需提前配置数据库,确保脚本正常调用。
(一)荣誉点变量设定
选用引擎自定义变量存储荣誉点,推荐使用全局变量“HonorPoint”(部分引擎支持角色变量,格式为“HONOR”),变量初始值为0,使用荣誉卷后累加,支持跨地图、跨登录保留数据。无需额外开启变量权限,通用引擎默认支持自定义变量调用。
(二)荣誉卷道具配置(Item.DB数据库)
路径:D:\Mirserver\Mir200\DB\Item.DB,用数据库编辑器打开,新增荣誉卷条目,配置如下:1.物品名称:荣誉卷(名称需唯一,无空格);2.物品类型:消耗品(引擎编号通常为2,对照引擎说明确认);3.物品外观:索引对应客户端Item.wil中的素材(可选,确保显示正常);4.佩戴需求:无(等级、职业限制设为0);5.启用状态:设为1(确保道具可使用);6.脚本触发:在“使用脚本”字段填写“@使用荣誉卷”(关联后续使用脚本)。保存时选择ANSI编码,避免乱码。
二、BOSS掉落荣誉卷脚本(QManage.txt)
实现指定BOSS被击杀后,一定概率掉落荣誉卷,脚本写入QManage.txt(路径:D:\Mirserver\Mir200\Envir\MapQuest_def\QManage.txt),支持单BOSS或多BOSS批量配置。
(一)单BOSS掉落脚本(示例:沃玛教主)
脚本逻辑:检测被击杀怪物为沃玛教主,触发掉落判定,概率掉落1张荣誉卷。
代码示例:
[@KillMonster]
#IF
CheckMonsterName沃玛教主(检测被击杀怪物名称,需与Monster.DB一致)
Random10(掉落概率10%,数值越小概率越高,1为必掉)
#ACT
Give荣誉卷1(掉落1张荣誉卷,道具名称与数据库一致)
SENDMSG5恭喜您击杀沃玛教主,获得荣誉卷x1!(给击杀者提示)
#ELSEACT
return(未触发概率则无掉落)
(二)多BOSS批量掉落脚本
同时配置多个BOSS掉落,用#ELSEIF扩展条件,可差异化设置掉落概率。
代码示例:
[@KillMonster]
#IF
CheckMonsterName沃玛教主
Random10
#ACT
Give荣誉卷1
SENDMSG5恭喜您击杀沃玛教主,获得荣誉卷x1!
#ELSEIF
CheckMonsterName祖玛教主
Random8(祖玛教主掉落概率12.5%)
#ACT
Give荣誉卷1
SENDMSG5恭喜您击杀祖玛教主,获得荣誉卷x1!
#ELSEIF
CheckMonsterName赤月恶魔
Random5(赤月恶魔掉落概率20%)
#ACT
Give荣誉卷1
SENDMSG5恭喜您击杀赤月恶魔,获得荣誉卷x1!
#ELSEACT
return
(三)掉落脚本补充说明
1.怪物名称必须与Monster.DB中完全一致,包括特殊符号,避免名称偏差导致脚本失效;2.掉落概率通过Random命令控制,格式为“Random数值”,掉落概率=1/数值,如Random5为20%概率;3.可添加掉落数量调整,如“Give荣誉卷2”实现掉落2张,适配高难度BOSS;4.若需限制仅玩家击杀掉落,添加“CheckHumKill1”条件(1为玩家击杀,0为怪物互杀)。
三、使用荣誉卷增加荣誉点脚本
实现玩家使用荣誉卷后,荣誉点+1,同时提示当前荣誉点数量,分基础版与防刷版脚本。
(一)基础版脚本(@使用荣誉卷)
写入QManage.txt,与荣誉卷数据库“使用脚本”字段关联,使用后消耗道具并累加荣誉点。
代码示例:
[@使用荣誉卷]
#IF
CheckItem荣誉卷1(检测玩家是否拥有1张及以上荣誉卷)
#ACT
Take荣誉卷1(消耗1张荣誉卷)
IncVarHonorPoint1(荣誉点+1,IncVar为变量累加命令)
SENDMSG1您使用了1张荣誉卷,荣誉点+1,当前荣誉点:$HonorPoint(红色提示当前点数)
#ELSEACT
SENDMSG5您没有荣誉卷,无法使用!
(二)防刷版脚本(增加使用限制)
添加冷却时间、等级限制,避免恶意刷取荣誉点,适配多人服务器场景(单机可忽略)。
代码示例:
[@使用荣誉卷]
#IF
CheckItem荣誉卷1
CheckLevelEx>20(限制20级以上玩家使用)
CheckTimer10(检测冷却定时器是否未启动,避免连续使用)
#ACT
Take荣誉卷1
IncVarHonorPoint1
SetTimer15(设置5秒冷却时间,期间无法再次使用)
SENDMSG1您使用了1张荣誉卷,荣誉点+1,当前荣誉点:$HonorPoint
#ELSEIF
CheckTimer11(检测到冷却中)
SENDMSG5荣誉卷使用有5秒冷却,请勿频繁使用!
#ELSEACT
SENDMSG5等级不足20级或无荣誉卷,无法使用!
四、荣誉点检测函数与调用方式
荣誉点检测核心通过变量判断命令实现,支持脚本内条件判断、玩家查询、NPC提示等场景,以下为常用检测函数及用法。
(一)核心检测函数(变量判断命令)
1.基础检测:CheckVarHonorPoint数值(判断荣誉点是否等于指定数值),示例:CheckVarHonorPoint5(检测荣誉点是否为5);2.范围检测:CheckVarExHonorPoint>数值(判断荣誉点是否大于指定数值),支持>、<、≥、≤,示例:CheckVarExHonorPoint>10(检测荣誉点是否大于10);3.玩家查询:通过SENDMSG命令调用变量$HonorPoint,直接显示当前荣誉点,示例:SENDMSG5您当前荣誉点:$HonorPoint。
(二)检测函数实战场景
1.脚本内条件判断(如荣誉点兑换奖励)
代码示例:
[@兑换奖励]
#IF
CheckVarExHonorPoint≥10(检测荣誉点是否≥10)
#ACT
DecVarHonorPoint10(扣除10点荣誉点)
Give裁决之杖1(发放兑换奖励)
SENDMSG1您消耗10点荣誉点,兑换裁决之杖x1,剩余荣誉点:$HonorPoint
#ELSEACT
SENDMSG5您当前荣誉点不足10点,无法兑换!
2.NPC查询荣誉点(添加到NPC脚本)
路径:D:\Mirserver\Mir200\Envir\NPCs,新建NPC脚本(如“荣誉使者-3.txt”),实现玩家对话查询。
代码示例:
[@Main]
#SAY
欢迎来到荣誉使者处,您可查询荣誉点或兑换奖励!\
<查询当前荣誉点/@查询荣誉点>\
<荣誉点兑换奖励/@兑换奖励>
[@查询荣誉点]
#ACT
SENDMSG1您当前荣誉点:$HonorPoint(红色字体显示)
goto@Main(返回主对话)
3.登录自动提示荣誉点
写入Login.txt(路径:D:\Mirserver\Mir200\Envir\MapQuest_def\Login.txt),玩家登录时自动提示当前荣誉点。
代码示例:
[@Login]
#ACT
SENDMSG5欢迎登录,您当前荣誉点:$HonorPoint
return
五、引擎适配与脚本调试要点
(一)不同引擎命令适配
1.HERO引擎:变量累加命令为“ADDVAR”,替代“IncVar”;变量扣除为“SUBVAR”,替代“DecVar”,检测命令不变;2.GOM引擎:支持角色变量“HONOR”(仅当前角色生效),格式为“IncHONOR1”,全局变量用法与通用版一致;3.老引擎:部分老引擎不支持IncVar命令,需用“SetVarHonorPoint$HonorPoint+1”实现累加,检测命令不变。
(二)调试步骤与避坑
1.道具测试:用GM命令“Give荣誉卷10”获取道具,使用后查看是否提示荣誉点增加,同时检查变量是否累加(GM命令“CHECKVARHonorPoint”可查看变量值);2.掉落测试:击杀对应BOSS,验证荣誉卷是否按设定概率掉落,调整Random数值优化概率;3.冲突排查:检查QManage.txt中是否有同名脚本(如重复@KillMonster),避免覆盖导致脚本失效;4.编码校验:所有脚本文件保存为ANSI编码,乱码会导致命令无法识别,需重新保存;5.重启生效:修改数据库或引擎相关配置后,需重启服务端,否则配置不生效。
(三)数据保留说明
全局变量HonorPoint默认随服务端重启重置,若需永久保留,需将变量写入角色数据库(Human.DB)。新增“荣誉点”字段,在使用荣誉卷、扣除荣誉点脚本中添加“WriteHumanDBHonorPoint$HonorPoint”命令,实现数据永久存储,重启后不丢失。
综上,传奇荣誉点脚本核心为变量控制与道具关联,按上述代码配置后,可实现BOSS掉落荣誉卷、使用累加点数、多场景检测查询功能。可根据需求调整掉落概率、荣誉点用途(兑换、权限解锁等),适配不同版本玩法。

