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

热血传奇开发实战:怪物Race与RaceImg行为AI及Appr外观配置详解

热度:
一、Monster.DB核心三字段分工
怪物数据库(DBC2000打开Mir200\Envir\Monster.DB或Mud2\DB\Monster.DB)里决定“怪物怎么动、怎么打、长啥样”的三个关键列:
-Race:行动模式代码,绑定服务端AI逻辑(追不追人、会不会瞬移、死法动画、是否反隐)
•RaceImg:攻击动作/特效代码,绑定客户端播放哪套攻击动画(近战挥砍、喷火、电火花、地刺、射箭)

-Appr:外观形象代码,指向客户端MonXX.wil/MonXX.pak里的具体贴图组

三者关系:Race管“脑子”,RaceImg管“出手动作”,Appr管“皮囊”。任意一项错配都会出怪象——行为痴呆、攻击无动画、透明不显、动作错位。

二、Race常用枚举与行为对照(GOM/GEE/Hero/Blue通用基底)
51被动生物(鸡鹿钉耙猫),不主动攻击,被击可能逃跑,死亡后需挖取(食人花类)
52被动但小概率逃跑,不掉落挖取物
53主动攻击,死亡不掉挖取物
81标准主动怪,进入范围自动追击,普通近战(半兽人/祖玛卫士基底)
82远程毒液攻击,射程2格
85地下钻出原地攻击,固定点植物系(食人花)
87主动攻击,射程5
90贴身石化/麻痹攻击(弱)
92目标出范围则瞬移贴近
93边攻边走位躲避
94直线攻击
95范围内从地下爬出
96死亡自动复活(僵尸系,每次复活经验减半)
100召唤骷髅基底
101石像状态,进范围激活
102攻击同时召唤setup.txt中zuma1~4指定怪
105/106强/弱麻痹石化
107全屏攻击+麻痹+中毒
112只打红名玩家(哨兵/惩罚者)
115自身不动,全屏地刺(赤月恶魔)
116自身不动,释放spider指定怪
117无攻击力,自爆
150人形怪AI,可持武器放技能(假人/强化战士)
151GOM/GEE自定义MonXX.wil外观挂载基底(配合M2自定义怪物)
156HXM2/部分GOM自定义怪物挂载码,Race=RaceImg=156,Appr按算法或留空由M2指定wil
500+各引擎扩展自定义Race段

M2里还有全局开关:“怪物主动攻击”是否开启、主动范围(默认10~20格)、攻击反应时间(1000~2000ms),Race正常但不追人先查这两项。

三、RaceImg攻击动画代码对照
1普通近身物理(裸男/半兽人挥砍)
15抛斧头(沃玛战士类)
16贴身喷毒
19沃玛战士近战动作
20火焰喷射(火焰沃玛)
21电火花(沃玛教主)
22喷针
33大范围喷毒(触龙神)
34全屏地刺(赤月恶魔)
40击电
45射箭(弓箭手/月魔蜘蛛)
47祖玛卫士近战动作
49火球(祖玛教主)
52/53高/低空喷毒特效
55神兽喷火带击退

错配后果:Race=81但RaceImg=20,怪会追人却播喷火动画且伤害类型可能判成魔法;物理怪填49会出火球弹道但DC仍算物伤,表现异常。

四、Appr外观代码算法(MonXX.wil/MonXX.pak)
标准公式(GOM/GEE/Blue/翎风通用):
Appr=(Mon文件编号−1)×10+文件内怪物序号(从0起)

例:
Mon30.wil第3个怪→(30−1)×10+3=293
Mon18.wil第9个怪→179
Mon5.wil第0个怪→40
Mon61.pak第8个怪→(61−1)×10+8=608
Mon100.wil第1个怪→990,第2个→991

老版大图集算法(前50个mon文件按720张/组,50~54按360张/组):
图片全局序号÷每组张数=文件内序号,再反推Appr
例mon36.wil第11031张→11031÷720≈15→(36−1)×10+15=365

客户端校验:用WilEditor/WIL编辑器打开Data\MonXX.wil,确认内部怪物序数、每怪帧数(通常280或360张/套动作),否则Appr算对也黑屏。

五、自定义怪物完整挂载流程(GOM引擎示例)
1.客户端:把素材导入Data\MonXX.pak/MonXX.wil,记文件编号XX与内部序号。
2.Monster.DB新增行:Name=自定义名,Race=156,RaceImg=156,Appr=(XX−1)×10+序号,其余HP/DC/AC/EXP/SPEED按需求填。Race=151也可走另一套自定义绑定。
3.M2Server→选项→怪物设置→自定义怪物→选该怪→填基本动作(站立/行走/受击/死亡开始帧、张数、空张、速度、八方向)→填攻击动作1~5对应RaceImg特效→保存。
4.若Appr留空,则在自定义怪物界面选“指定Wil文件/快速计算”,引擎按资源自动拆动作帧;填了Appr就选“根据Appr计算”。
5.M2控制台“重新加载怪物数据库”→地图MonGen.txt加一行:地图号XY范围怪物名数量刷新秒→@ReloadMonGen或重启网关生效。

六、MonGen.txt刷怪行格式
格式:MapNoXYRangeMonsterNameCountInterval
例:03303308半兽人1030
含义:比奇城(0)坐标330330周围8格内,刷10只半兽人,死亡后30秒重生。
配合Monster.DB里CoolEye>0可反隐身戒指;Undead=1标不死系(不可被法师召唤),0为死系(可召骷髅/僵尸)。

七、典型配置对照表
鸡:Race=51RaceImg=11Appr=160
半兽人:Race=83RaceImg=1Appr对应mon文件计算值Lvl=1
祖玛卫士:Race=81RaceImg=47Appr对应祖玛monLvl=35DC=12~18
火焰沃玛:Race=81RaceImg=20Appr对应mon31Lvl=45
沃玛教主:Race=81RaceImg=21Appr对应mon34Lvl=50
触龙神:Race=85RaceImg=33Appr对应指定monLvl=55
赤月恶魔:Race=115RaceImg=34Appr=340(Mon35.wil第0个)八方向不勾
祖玛教主:Race=81RaceImg=49Appr对应mon63Lvl=60
魔龙教主:Race=81RaceImg=49Appr=402(Mon41.wil第2个)

八、排错清单
•不追人:查M2全局主动攻击开关、Race是否51/52、CoolEye与反隐逻辑

-攻击无动画:RaceImg错配或非攻击码(0)
•透明/黑屏:Appr算错、MonXX.wil缺失、PAK密码未进登录器、Race未设151/156

•动作错位:Wil内部每怪帧数非标准280/360,M2自定义动作帧没改

-@Mob提示不存在:Monster.DB无该行或Name不一致,非Race/Appr问题
•DC>DCMax:伤害跳变,必须DC≤DCMax

•WalkSpd/AttackSpd<300:攻速异常卡手,普通怪建议≥300~800

按Race定脑、RaceImg定手、Appr定皮三段对齐,Monster.DB+MonGen.txt+客户端MonXX资源+M2自定义动作四条链打通,怪物行为与外显即完整闭环。
[顶部]