佳丽云

英雄无敌3-WoG中文站

 找回密码
 英雄注册|Register
查看: 4289|回复: 5

从游戏硬编码到erm分析英雄特长的来源

[复制链接]
  • TA的每日心情
    开心
    2023-1-23 01:09
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]狂狼人

    89

    回帖

    9573

    金币

    2

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    952

    社区QQ达人

    发表于 2016-1-30 23:50:07 | 显示全部楼层 |阅读模式
    本帖最后由 khdfkj 于 2016-3-2 21:55 编辑

    今天跟大家全面讨论一下死亡阴影、WOG及封神MOD的所有关于特长的问题,包括硬编码、erm、特长文字描述,特长图标。
    我相信英雄无敌3里每一位英雄都是有各自特色的,而特长是每位英雄的重要组成部分,亦是灵魂。
    什么是英雄无敌3的特长呢?
    特长由三个部分组成:
    • 英雄特长效应产生的程序代码。(特长的灵魂)
    • 特长的图标。(特长的外表)
    • 特长的文字描述。(自我介绍)
    一、英雄特长效应产生的程序代码。
    有2种方法可以对特长的实际效应进行设定。
    1、硬编码对特长进行初次设定。
         我在之前的帖子里介绍过使用硬编码修改英雄第一特的问题。我引用过来:
         用软件WinHex打开游戏主目录下“h3era.exe”,第00278420h行,从此行开始,每40个字节,也就是两行半记录一个英雄的特长,英雄排列顺序、技能编号,英雄编号,魔法编号,生物编号等的数据请使用“EasyERM脚本简易编写 V1.0.1”特长编辑选项卡内查看,后面数据记录特长的具体信息。
    种类有
    (1) 00 00 00 00 ------ 第二技能特长,接下来四个字节就是技能的序号了
    如欧灵同学是 00 00 00 00 01 00 00 00 技能中排行老二的是箭术,所以就是箭术特长
    如果改为 00 00 00 00 02 00 00 00 就是后勤特长了,当然你得带有后勤技能或者是升级后升出了后勤技能才是有用的
    如果改为 00 00 00 00 16 00 00 00 就是进攻特长了,16换算成十进制就是22
    寻路术 00     箭术 01     后勤术 02  
    侦察术03     外交术04     航海术05
    领导术06    智慧术07     神秘术08
    幸运术09    弹道术0a     鹰眼术0b
    招魂术0c    理财术0D     火系魔法0E
    气系魔法0F 水系魔法10     土系魔法11
    学术12     战术13     炮术14
    学习能力15    进攻术16     防御术17
    智力18     魔力19     抵抗力1A     急救术1B
    (2) 01 00 00 00 -------- 一般生物特长,接下来的四个字节就是生物的序号
    如威尔斯凯 01 00 00 00 02 00 00 00 特长射手,改成 01 00 00 00 0C 00 00 00 就是特长天使了
    (3) 02 00 00 00 06 00 00 00-------- 资源特长(黄金)。
    (4) 03 00 00 00 ---------魔法特长,后面接下来四个字节是魔法序号
    如阿德拉mm 03 00 00 00 29 00 00 00 特长41号魔法祝福,改成
    03 00 00 00 30 00 00 00
    (5) 04 00 00 00 ---------特殊生物特长,就是猛兵特长,一级就给生物加一大堆攻防的那种,数据结构如下
    04 00 00 00 XX 00 00 00
    AA 00 00 00 BB 00 00 00 CC 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    XX是生物序号,AA加攻指数,BB加防指数,CC加伤害指数
    如果嫌塔丽丝mm不够猛,那就把她改成
    04 00 00 00 0A 00 00 00
    FF 00 00 00 FF 00 00 00 FF 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    于是一个在一级时就给骑士加255攻,255防,255伤害的骑神诞生了.......
    (5) 05 00 00 00 ----------速度特长,姆拉克同学是
    05 00 00 00 02 00 00 00
    (6) 06 00 00 00 ---------升级特长,原来gelu同学的特长现在滥用了,数据结构如下:
    06 00 00 00 XX 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 YY 00 00 00
    ZZ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    XX是第一种生物,YY是第二种生物,ZZ是升级后的生物。觉得天使太少么,那就改成
    06 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00
    0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    如果你有足够的资源,就可以使劲的往枪兵和射手背上插翅膀了,有话说得好:会飞的不一定是天使,也有可能是鸟人。
    (7)07 00 00 00 ---------- 龙特长,对所有龙都有效。数据结构如下:
    07 00 00 00 00 00 00 00
    AA 00 00 00 BB 00 00 00 CC 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2、erm脚本对特长进行二次设定。使用erm编辑器
        封神文件夹下date文件夹下s文件夹下“41 wog - rebalanced factions”
        英雄的第一特长进行了二次设定,当然还有对特长的图标、英雄初始技能及初始魔法的再平衡
        001.jpg
        在这我把所有156位英雄的特长补充完毕。原因我后边会解释一下。
        关于第二特长的问题,参与第二特的erm文件,包括:28 wog - enhanced mons ters.erm;39 wog - hero specialization boost.erm;41 wog - rebalanced factions;98 wog - Hawaiing007_Hooker.erm
    比较复杂,后面我会举例说一下。
    二、特长的图标
        在游戏里,有2处涉及特长图标。
    一.在选择初始英雄界面,右键点击英雄图标,会弹出该英雄的特长图标及简短描述。请使用MMArchive、def制作工具
        这时出现的图标读取的文件是:封神文件夹下date文件夹下Nabi_sprite.pac文件内UN44.def文件。文件内图片顺序对应英雄顺序排列。
    封神MOD下,很多英雄这个图标都是错误的。索萨、塔里斯、库斯伯特等等。
    为了解决这个问题,我把UN44.def文件里的图片进行了修正,让所有图标都跟英雄特长对应起来。
    而对UN44.def文件的修改会对进入游戏,英雄界面特长图标的显示产生影响。所以我对“41 wog - rebalanced factions.erm”156位英雄的特长补充。以纠正这个问题。
    二.在进入游戏,英雄界面里会看到。
    1、在关闭所有erm的情况下,用软件WinHex对“h3era.exe”第一特长进行设定后,游戏程序会根据“硬代码”自动读取相应的特长图标。
    2、在开启41 wog - rebalanced factions.erm的情况下,对英雄第一特长的进行二次设定后,程序会根据erm文本代码,自动读取相应的特长图标。
    三、特长的文字描述。
    一.在选择初始英雄界面,右键点击英雄图标,会弹出该英雄的特长简短描述。请使用MMArchive
    这简短描述读取的文件是“ERA中文界面”文件夹下“date”文件夹下“Language And Skin For Chinese.pac”文件内“HeroSpec.txt”。
    这个部分我也修改了,根据封神的特长对文本内容进行了修改,是描述与实际特长相对应。
    二.在进入游戏,英雄界面里会看到。使用erm编辑器
    这里特长描述的内容读取,封神文件夹下date文件夹下s文件夹下“39 wog - hero specialization boost.ert”文本内容

    在这里反映一下封神mod里关于特长的几个问题:
    1、在选择初始英雄界面,右键点击英雄图标,会弹出该英雄的特长图标及简短描述。这里很多英雄都是错误的。索萨、塔里斯、库斯伯特等等。
    2、孟菲拉4个特长。顺便给大家分享一下英雄第二特长的来源。
    塔里斯的战术特长被孟菲拉抢走了。来自“41 wog - rebalanced factions.erm”
    12.jpg
    孟菲拉的防御术+箭术特长。来自“39 wog - hero specialization boost.erm”
    11.jpg
    孟菲拉的隐藏特长——活力圣瓶。来自“98 wog - Hawaiing007_Hooker.erm”
    13.jpg

    3、艾德里德的特长我没有找到如文本描述的“霹雳寒冰”证据。我认为还是“寒冰魔环”。这个问题还有待于与各位大神交流一下。

    文件下载地址http://pan.baidu.com/s/1jGSjm2U
    文件下载后覆盖原文件,可部分修正上述问题。
    经过修正后,封神MOD的特长部分基本完美了。有问题欢迎积极反映一下。




    评分

    1

    查看全部评分

  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4949

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34677

    论坛守望者论坛元老杰出贡献

    发表于 2016-1-31 09:20:02 | 显示全部楼层
    楼主的硬编码知识还是很扎实的.
    话说现在<EasyERM脚本简易编写 V1.0.1>只能当图案索引参照了

    在ERA的框架下,修改硬编码可以直接用ERM的UN:C命令,只要在游戏初始化(!?PI)和读档(!?GM0)中设置修改内存数据就OK了.
    !!UN:C地址/字节位/数据;

    点评

    各位mod作者都在抱怨要用最小的内存写出最多的功能。内存就30MB,41 wog - rebalanced factions.erm也不是一个内存也不占,erm脚本也不是可以无限制写下去的,写的越多内存占用的越多。硬编码修改H3era.exe可一个内  详情 回复 发表于 2016-1-31 11:27
  • TA的每日心情
    开心
    2023-1-23 01:09
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]狂狼人

    89

    回帖

    9573

    金币

    2

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    952

    社区QQ达人

     楼主| 发表于 2016-1-31 11:27:52 | 显示全部楼层
    本帖最后由 khdfkj 于 2016-1-31 11:30 编辑
    贤知有您 发表于 2016-1-31 09:20
    楼主的硬编码知识还是很扎实的.
    话说现在只能当图案索引参照了

    各位mod作者都在抱怨要用最小的内存写出最多的功能。内存就30MB,41 wog - rebalanced factions.erm也不是一个内存也不占,erm脚本也不是可以无限制写下去的,写的越多内存占用的越多。硬编码修改H3era.exe可一个内存都不多占用。可以用省出来的内存写别的脚本实现更多功能。
    无标题.jpg
    封神mod的41 wog - rebalanced factions.erm的编写也不是一点问题没有。孟菲特特长图标是“战术”就是最直观的反映。
    修改UN44后英雄特长图标排列错乱的问题也是源于erm脚本。包括官方的erm脚本。
    EasyERM脚本简易编写 V1.0.1我只是用来找编号用的,是否正确都需要在游戏进行验证。


  • TA的每日心情
    开心
    2016-2-7 14:37
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]火元素使者

    41

    回帖

    6093

    金币

    0

    精华

    2级 Adventuring Hero

    Rank: 2

    积分
    204

    社区QQ达人

    发表于 2016-1-31 18:46:17 | 显示全部楼层
    受教了,谢谢分享
  • TA的每日心情
    开心
    2016-9-30 20:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]投石矮人

    328

    回帖

    1万

    金币

    2

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    746
    发表于 2016-3-4 19:25:06 来自手机 | 显示全部楼层
    硬编码再么发现要改动的内容?比如我要把开始游戏时,指定ai都选随机宝物,怎么实现?
  • TA的每日心情
    奋斗
    2024-1-8 23:08
  • 签到天数: 731 天

    连续签到: 1 天

    [LV.9]龙巫妖

    447

    回帖

    8953

    金币

    0

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6900
    发表于 2017-11-3 12:22:03 | 显示全部楼层
    楼主不妨分享一下兵种技能和攻击防御的硬编码修改吧
    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 英雄注册|Register

    本版积分规则

    捐赠
    关注我们,英3Mod一网打尽!

    WoG中文站 ( 辽B2-20210485-10 )|辽公网安备 21128202000228 号

    GMT+8, 2024-12-23 07:09 , Processed in 0.553970 second(s), 26 queries , Gzip On, File On.

    Powered by Discuz! X3.4

    Copyright © 2004-2022, Beijing Second Sight Technology Co., LTD.

    快速回复 返回顶部 返回列表