战士英雄在各类传奇合击服务端里通常指“主将/副将/英雄”系统里的近战职业。不同引擎对战士编号不完全一样,GOM、GEE、部分Hero用0代表战士,1法师,2道士;少量1.76合击端在HeroClass里把战士标成1,具体以你M2职业列表和命令手册为准。下面按“职业代码—创建NPC—性别组合—检测判断—改职业—给技能—落地排错”写可直接抄的版本。
一、战士英雄职业代码对照
通用三职业合击端:
0=战士,1=法师,2=道士
CREATEHERO命令第1个参数填职业,第2个参数填性别,0男1女。
GOM/GEE主将英雄:
CREATEHERO 0 0 男战士
CREATEHERO 0 1 女战士
CREATEHERO 1 0 男法师
CREATEHERO 1 1 女法师
CREATEHERO 2 0 男道士
CREATEHERO 2 1 女道士
部分1.76合击/自定义HeroClass端:
有配置把战士设1、法师2、道士3,这种不能在CREATEHERO里直接套0/1/2,要先打开Mir200\DB里的HeroClass.DB或M2“列表信息-职业”看实际ID。
脚本里检测英雄职业两种写法都常见:
CheckHeroJob 0 或 CheckHeroJob WARRIOR
CheckHeroJob 1 或 CheckHeroJob WIZARD
CheckHeroJob 2 或 CheckHeroJob TAOIST
LEG/Blue类用H.CheckJob warrior做英雄判断,前缀H.代表操作英雄而不是人物。
二、GOM/GEE创建战士英雄NPC完整示例
文件放Mir200\Envir\Market_Def,命名如“英雄管理员-3.txt”,3为盟重地图号,按自己地图改。NPC在MerChant.txt或MapQuest.txt登记坐标。
[@main]
创建英雄:\
男战士\
女战士\
男法师\
女法师\
男道士\
女道士\
删除英雄\
[@@CreateHero]
ACT
goto @CreateMenu
[@CreateMenu]
SAY
选择要创建的英雄职业与性别:
男战士\
女战士\
男法师\
女法师\
男道士\
女道士\
[@CREATEHERO_WARR_MAN]
IF
HasHero
ACT
SENDMSG 6 你已经拥有英雄,不能重复创建
BREAK
ELSEACT
ACT
CREATEHERO 0 0
SENDMSG 6 男战士英雄创建成功
[@CREATEHERO_WARR_WOM]
IF
HasHero
ACT
SENDMSG 6 你已经拥有英雄,不能重复创建
BREAK
ELSEACT
ACT
CREATEHERO 0 1
SENDMSG 6 女战士英雄创建成功
[@CREATEHERO_WIZA_MAN]
ACT
CREATEHERO 1 0
[@CREATEHERO_WIZA_WOM]
ACT
CREATEHERO 1 1
[@CREATEHERO_TAOS_MAN]
ACT
CREATEHERO 2 0
[@CREATEHERO_TAOS_WOM]
ACT
CREATEHERO 2 1
删除英雄入口:
[@@DelMyHero]
IF
HasHero
ACT
DELETEHERO
SENDMSG 6 英雄已删除
BREAK
ELSEACT
SAY
你没有英雄,无需删除
创建结果回调可放QFunction-0里补提示:
[@CreateHeroOK]
SAY
英雄创建成功。
[@HeroNameExists]
SAY
英雄名字已存在,换一个再创建。
[@CreateHeroFail]
SAY
英雄创建失败,检查M2英雄开关和名字长度。
[@HeroOverChrCount]
SAY
帐号角色数量超限。
三、1.76合击端用名字创建战士英雄
有些合击端不直接用CREATEHERO 职业 性别,而是先输名字再指定Job。示例NPC:
[@main]
英雄管理:\
创建战士英雄\
创建其他职业\
领取英雄技能\
离开\
[@@CreateHero]
SAY
输入英雄名字,2到6个汉字:
InputString HeroName 6
[@CheckName]
IF
STRINGLENGTH HeroName < 2
ACT
SENDMSG 6 名字太短,至少2字
GOTO @@@CreateHero
ELSEACT
IF
HasHero
ACT
SENDMSG 6 已有英雄,先删除再建
BREAK
ELSEACT
ACT
CreateHero HeroName 0
SENDMSG 6 战士英雄创建成功
说明:上面CreateHero HeroName 0里最后一个0按该端规则代表战士;如果同端CreateHero原型是“名字 职业 性别”,就写成CreateHero HeroName 0 0。多数无度/1.76教程示例把0当战士、1法师、2道士,但个别端相反,建完进游戏看英雄面板最准。
带职业选择支线:
[@@@HeroJob]
SAY
1.战士 2.法师 3.道士
IF
Select 1
ACT
SetHeroJob 0
SENDMSG 6 英雄职业设为战士
IF
Select 2
ACT
SetHeroJob 1
IF
Select 3
ACT
SetHeroJob 2
SetHeroJob不是所有引擎都有,GOM用ChangeHeroJob更稳。
四、已建英雄后改成战士
GOM/GEE用ChangeHeroJob:
[@@@ChangeToWarrior]
IF
CheckHeroOnline
ACT
ChangeHeroJob 0
SENDMSG 6 英雄已改为战士
BREAK
ELSEACT
SAY
英雄不在线或不存在。
LEG/Blue系用H前缀改属性、用职业检测做条件,改职业若引擎没直接命令,就删除重建:
[@@@ResetWarrior]
IF
HasHero
ACT
DELETEHERO
DELAYCALL 3 ~$ReCreateWarrior
BREAK
[~$ReCreateWarrior]
ACT
CREATEHERO 0 0
SENDMSG 6 已重建男战士英雄
五、战士英雄自动给技能代码
创建完只给空英雄不方便测试,按引擎二选一。
GOM/Hero类用H.ADDSKILL:
[@HeroLogin]
IF
CheckHeroOnline
CheckHeroJob 0
ACT
H.ADDSKILL 基本剑术 3
H.ADDSKILL 攻杀剑术 3
H.ADDSKILL 刺杀剑术 3
H.ADDSKILL 半月弯刀 3
H.ADDSKILL 野蛮冲撞 3
H.ADDSKILL 烈火剑法 3
H.SENDMSG 6 战士英雄已领全技能
技能名按你M2“技能信息”列表抄,带“英雄”前缀的端就写“英雄基本剑术”“英雄烈火剑法”;不带前缀写“基本剑术”“烈火剑法”。
LEG/Blue类人物命令前加H.:
IF
H.CheckJob warrior
ACT
H.ADDSKILL 基本剑术 3
H.ADDSKILL 攻杀剑术 3
H.ADDSKILL 刺杀剑术 3
H.ADDSKILL 烈火剑法 3
H.Give 炼狱 1
H.CheckGold、H.CheckLevel、H.Give、H.Take都可前置做条件,比如英雄低于40级才补技能、烈火只给35级以上。
按等级分批给烈火:
IF
CheckHeroOnline
CheckHeroJob 0
CheckHeroLevel 35
ACT
H.ADDSKILL 烈火剑法 3
H.SENDMSG 6 英雄35级领悟烈火
避免重复添加可加技能判断,命令名各引擎不同,常见CheckHeroSkill或H.CheckSkill,写不出就用变量锁:首次创建置N$HeroSkill=1,再次登录判断变量跳过。
六、NPC登记与文件路径
Market_Def独立NPC:
Mir200\Envir\Market_Def\英雄管理员-3.txt
MerChant.txt加一行:
英雄管理员 3 330 330 英雄管理员-3.txt 0 8 0
MapQuest式老合击NPC:
Mir200\Envir\MapQuest.txt末行加:
0 320 330 HeroManager.txt
对应脚本放Mir200\Envir\MapQuest_def\HeroManager.txt,0为比奇地图号,320,330按实际安全区改。
登录自动技能放:
Mir200\Envir\QuestDiary\登陆\Login.txt的[@Login]段
或QFunction-0.txt英雄创建回调段
或M2控制-重新加载-QM/QF后生效。
改完统一检查:文本ANSI编码、半角#IF/#ACT、地图号存在、M2“英雄系统/合击设置”已开启;GOM类还要看M2选项里主将英雄开关,Hero类看合击模块和怒气参数。
七、战士英雄合击代号补充
战战组合合击通常叫破魂斩,战法、战道按版本叫雷霆一击、末日审判等不等。脚本触发不要只写“战士代码”,要把英雄职业、主号职业、等级、合击技能ID一起判断。示例框架:
IF
CheckJob WARRIOR
CheckHeroOnline
CheckHeroJob 0
CheckHeroLevel 43
CheckItem 火龙之心 1
ACT
HeroSkill 合击技能ID
SENDMSG 6 战战合击释放
合击技能ID在Skill.DB或M2技能列表建,雷霆一击/破魂斩的ID、耗蓝、冷却按版本填;部分端用HeroSkill命令,部分端用Magic点NPC直接放,写前在M2里先搜技能名拿ID最省事。
八、常见不生效原因
创建没反应:M2未开英雄系统,NPC没登记到MerChant/MapQuest,脚本文件编码非ANSI,地图号坐标无人。
战士变法师:CREATEHERO参数顺序写反,有的端是“职业 性别”,有的端配置里性别常量不同;先用CREATEHERO 0 0测试,进游戏看面板。
已拥有英雄报重复:HasHero判断缺失,或上次删除未成功;DELETEHERO后重载,再建前打印HasHero状态。
技能不进英雄栏:没用H.前缀或没用英雄技能全名;人物ADDSKILL只给人不加英雄。
合击不放:英雄未在线、怒气没满、火龙之心名字和CheckItem不一致、合击技能ID未在主副号同时配置。
改职业无效:该引擎无ChangeHeroJob,改用删除重建;LEG系优先H.CheckJob做条件,不直接改Job变量。
小号自检流程:开GOM空端→Market_Def建上面男战士NPC→MerChant登记→M2开主将英雄→进游戏创建→QFunction回调用H.ADDSKILL给烈火→F12英雄界面看职业显示0/战士→打怪攒怒气→放破魂斩。整套跑通后再把阈值、性别按钮、删除重建、多英雄切换接进去。
传奇战士英雄职业代码与创建脚本示例:GOM、Hero、合击端通用
来源:
作者:
点击:

