当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇战士英雄职业代码与创建脚本示例:GOM、Hero、合击端通用

热度:
战士英雄在各类传奇合击服务端里通常指“主将/副将/英雄”系统里的近战职业。不同引擎对战士编号不完全一样,GOM、GEE、部分Hero用0代表战士,1法师,2道士;少量1.76合击端在HeroClass里把战士标成1,具体以你M2职业列表和命令手册为准。下面按“职业代码—创建NPC—性别组合—检测判断—改职业—给技能—落地排错”写可直接抄的版本。

一、战士英雄职业代码对照

通用三职业合击端:
0=战士,1=法师,2=道士
CREATEHERO命令第1个参数填职业,第2个参数填性别,0男1女。

GOM/GEE主将英雄:
CREATEHERO00男战士
CREATEHERO01女战士
CREATEHERO10男法师
CREATEHERO11女法师
CREATEHERO20男道士
CREATEHERO21女道士

部分1.76合击/自定义HeroClass端:
有配置把战士设1、法师2、道士3,这种不能在CREATEHERO里直接套0/1/2,要先打开Mir200\DB里的HeroClass.DB或M2“列表信息-职业”看实际ID。

脚本里检测英雄职业两种写法都常见:
CheckHeroJob0或CheckHeroJobWARRIOR
CheckHeroJob1或CheckHeroJobWIZARD
CheckHeroJob2或CheckHeroJobTAOIST
LEG/Blue类用H.CheckJobwarrior做英雄判断,前缀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

SENDMSG6你已经拥有英雄,不能重复创建
BREAK
ELSEACT

ACT

CREATEHERO00
SENDMSG6男战士英雄创建成功

[@CREATEHERO_WARR_WOM]
IF

HasHero
ACT

SENDMSG6你已经拥有英雄,不能重复创建
BREAK
ELSEACT

ACT

CREATEHERO01
SENDMSG6女战士英雄创建成功

[@CREATEHERO_WIZA_MAN]
ACT

CREATEHERO10

[@CREATEHERO_WIZA_WOM]
ACT

CREATEHERO11

[@CREATEHERO_TAOS_MAN]
ACT

CREATEHERO20

[@CREATEHERO_TAOS_WOM]
ACT

CREATEHERO21

删除英雄入口:
[@@DelMyHero]
IF

HasHero
ACT

DELETEHERO
SENDMSG6英雄已删除
BREAK
ELSEACT

SAY

你没有英雄,无需删除

创建结果回调可放QFunction-0里补提示:
[@CreateHeroOK]
SAY

英雄创建成功。

[@HeroNameExists]
SAY

英雄名字已存在,换一个再创建。

[@CreateHeroFail]
SAY

英雄创建失败,检查M2英雄开关和名字长度。

[@HeroOverChrCount]
SAY

帐号角色数量超限。

三、1.76合击端用名字创建战士英雄

有些合击端不直接用CREATEHERO职业性别,而是先输名字再指定Job。示例NPC:

[@main]
英雄管理:\
创建战士英雄\
创建其他职业\
领取英雄技能\
离开\

[@@CreateHero]
SAY

输入英雄名字,2到6个汉字:
InputStringHeroName6

[@CheckName]
IF

STRINGLENGTHHeroName<2
ACT

SENDMSG6名字太短,至少2字
GOTO@@@CreateHero
ELSEACT

IF

HasHero
ACT

SENDMSG6已有英雄,先删除再建
BREAK
ELSEACT

ACT

CreateHeroHeroName0
SENDMSG6战士英雄创建成功

说明:上面CreateHeroHeroName0里最后一个0按该端规则代表战士;如果同端CreateHero原型是“名字职业性别”,就写成CreateHeroHeroName00。多数无度/1.76教程示例把0当战士、1法师、2道士,但个别端相反,建完进游戏看英雄面板最准。

带职业选择支线:
[@@@HeroJob]
SAY

1.战士2.法师3.道士
IF

Select1
ACT

SetHeroJob0
SENDMSG6英雄职业设为战士
IF

Select2
ACT

SetHeroJob1
IF

Select3
ACT

SetHeroJob2

SetHeroJob不是所有引擎都有,GOM用ChangeHeroJob更稳。

四、已建英雄后改成战士

GOM/GEE用ChangeHeroJob:
[@@@ChangeToWarrior]
IF

CheckHeroOnline
ACT

ChangeHeroJob0
SENDMSG6英雄已改为战士
BREAK
ELSEACT

SAY

英雄不在线或不存在。

LEG/Blue系用H前缀改属性、用职业检测做条件,改职业若引擎没直接命令,就删除重建:
[@@@ResetWarrior]
IF

HasHero
ACT

DELETEHERO
DELAYCALL3~$ReCreateWarrior
BREAK

[~$ReCreateWarrior]
ACT

CREATEHERO00
SENDMSG6已重建男战士英雄

五、战士英雄自动给技能代码

创建完只给空英雄不方便测试,按引擎二选一。

GOM/Hero类用H.ADDSKILL:
[@HeroLogin]
IF

CheckHeroOnline
CheckHeroJob0
ACT

H.ADDSKILL基本剑术3
H.ADDSKILL攻杀剑术3
H.ADDSKILL刺杀剑术3
H.ADDSKILL半月弯刀3
H.ADDSKILL野蛮冲撞3
H.ADDSKILL烈火剑法3
H.SENDMSG6战士英雄已领全技能

技能名按你M2“技能信息”列表抄,带“英雄”前缀的端就写“英雄基本剑术”“英雄烈火剑法”;不带前缀写“基本剑术”“烈火剑法”。

LEG/Blue类人物命令前加H.:
IF

H.CheckJobwarrior
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
CheckHeroJob0
CheckHeroLevel35
ACT

H.ADDSKILL烈火剑法3
H.SENDMSG6英雄35级领悟烈火

避免重复添加可加技能判断,命令名各引擎不同,常见CheckHeroSkill或H.CheckSkill,写不出就用变量锁:首次创建置N$HeroSkill=1,再次登录判断变量跳过。

六、NPC登记与文件路径

Market_Def独立NPC:
Mir200\Envir\Market_Def\英雄管理员-3.txt
MerChant.txt加一行:
英雄管理员3330330英雄管理员-3.txt080

MapQuest式老合击NPC:
Mir200\Envir\MapQuest.txt末行加:
0320330HeroManager.txt
对应脚本放Mir200\Envir\MapQuest_def\HeroManager.txt,0为比奇地图号,320330按实际安全区改。

登录自动技能放:
Mir200\Envir\QuestDiary\登陆\Login.txt的[@Login]段
或QFunction-0.txt英雄创建回调段
或M2控制-重新加载-QM/QF后生效。

改完统一检查:文本ANSI编码、半角#IF/#ACT、地图号存在、M2“英雄系统/合击设置”已开启;GOM类还要看M2选项里主将英雄开关,Hero类看合击模块和怒气参数。

七、战士英雄合击代号补充

战战组合合击通常叫破魂斩,战法、战道按版本叫雷霆一击、末日审判等不等。脚本触发不要只写“战士代码”,要把英雄职业、主号职业、等级、合击技能ID一起判断。示例框架:

IF

CheckJobWARRIOR
CheckHeroOnline
CheckHeroJob0
CheckHeroLevel43
CheckItem火龙之心1
ACT

HeroSkill合击技能ID
SENDMSG6战战合击释放

合击技能ID在Skill.DB或M2技能列表建,雷霆一击/破魂斩的ID、耗蓝、冷却按版本填;部分端用HeroSkill命令,部分端用Magic点NPC直接放,写前在M2里先搜技能名拿ID最省事。

八、常见不生效原因

创建没反应:M2未开英雄系统,NPC没登记到MerChant/MapQuest,脚本文件编码非ANSI,地图号坐标无人。
战士变法师:CREATEHERO参数顺序写反,有的端是“职业性别”,有的端配置里性别常量不同;先用CREATEHERO00测试,进游戏看面板。
已拥有英雄报重复:HasHero判断缺失,或上次删除未成功;DELETEHERO后重载,再建前打印HasHero状态。
技能不进英雄栏:没用H.前缀或没用英雄技能全名;人物ADDSKILL只给人不加英雄。
合击不放:英雄未在线、怒气没满、火龙之心名字和CheckItem不一致、合击技能ID未在主副号同时配置。
改职业无效:该引擎无ChangeHeroJob,改用删除重建;LEG系优先H.CheckJob做条件,不直接改Job变量。

小号自检流程:开GOM空端→Market_Def建上面男战士NPC→MerChant登记→M2开主将英雄→进游戏创建→QFunction回调用H.ADDSKILL给烈火→F12英雄界面看职业显示0/战士→打怪攒怒气→放破魂斩。整套跑通后再把阈值、性别按钮、删除重建、多英雄切换接进去。
[顶部]