一、脚本优化背景与目标
背景
在原始的传奇脚本中,玩家在领取英雄技能时存在一些不便之处。例如,存在诸如“战士+战士”、“法师+法师”等较为繁琐的连接操作,容易导致玩家领错技能。同时,在判断玩家是否能领取技能时,缺乏全面的判断记录,如是否创建英雄、英雄是否在线、是否已经领取过技能等。
目标
本次优化旨在方便玩家领取英雄技能,通过NPC增加判断玩家职业和英雄职业的命令,系统能够自动根据玩家职业和英雄职业发放相应技能,避免玩家领错技能。同时,完善各种判断记录,提升玩家的游戏体验。
二、脚本功能分析
(一)英雄招募相关
英雄招募流程
在[@@buHero]标签开始的脚本中,玩家可以选择招募不同职业和性别的英雄。例如,通过[@CREATEHERO_WARR_MAN]、[@CREATEHERO_WARR_WOM]等标签分别创建男战士、女战士等不同类型的英雄。在创建英雄过程中,会有相应的提示信息,如[@CreateingHero]标签中的“系统正在接受申请,请稍候……”。如果玩家已经有英雄,则会在[@HaveHero]标签处得到提示。
英雄命名
在[@SetHeroName]标签处,提示玩家为新招募的英雄取名字。
(二)英雄技能领取相关
基本判断
在[@HeroJN]标签下,首先判断玩家是否拥有英雄(通过HAVEHERO),如果没有则提示“您没有创建英雄...”。如果玩家已经创建英雄,会进一步判断是否已经领取过技能(通过CHECK [200] 0),如果已经领取则提示“您已经领取过英雄技能,不能再领.”。
优化后的技能发放
在[@LINGQU1]标签中,增加了英雄是否在线的判断(通过CHECKHEROONLINE),如果英雄在线,则设置领取标记(SET [200] 1)并跳转到@JC - YXZY1标签。在@JC - YXZY1标签开始的一系列判断中,根据英雄的职业(通过CHECKHEROJOB)发放相应的技能包,如英雄是战士职业则发放“英雄战士技能包”,是法师职业发放“英雄法师技能包”,是道士职业发放“英雄道士技能包”,避免了之前可能存在的领错技能包的情况。
(三)英雄合击技能领取相关
基本判断
在[@HeroHJ]标签下,同样先判断玩家是否拥有英雄,没有则提示“您没有创建英雄...”。然后判断是否已经领取过合击技能(通过CHECK [201] 0),已领取则提示“您已经领取过英雄合击技能,不能再领.”。
根据职业发放合击技能
在[@HEJIOK]标签中,在英雄在线的情况下(CHECKHEROONLINE)设置领取标记(SET [201] 1)并跳转到@JC - HJZZ标签。在@JC - HJZZ标签开始的一系列判断中,根据玩家职业和英雄职业(通过checkjob和CHECKHEROJOB)发放相应的合击技能书,例如玩家和英雄都是战士职业则发放“破魂斩”,这种优化后的发放方式更加精准,避免了之前复杂且容易出错的发放逻辑。
(四)火龙之心领取相关
基本判断
在[@LINGLONG]标签下,先判断玩家是否拥有英雄,没有则提示“您没有创建英雄...”。接着判断是否已经领取过火龙之心(通过CHECK [202] 0),已领取则提示“您已经领取过火龙之心,不能再领.”。
领取操作
在[@LINGLONG2]标签中,英雄在线时(CHECKHEROONLINE)会跳转到@LINGLONGOK标签进行领取操作,即发放“火龙之心”(GIVE 火龙之心1),设置领取标记(SET [202] 1)并提示领取成功。
三、总结
经过优化后的英雄管理NPC传奇脚本,在英雄技能和物品领取方面更加智能化和便捷化。通过增加各种判断条件,尤其是对玩家职业和英雄职业的判断,能够准确地发放相应的技能和物品,避免了玩家操作失误,提升了游戏的整体体验。

