标题: 将剧本放入文件夹, 追加扩展剧本名称数
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2013-2-7 16:02 资料 个人空间 短消息 只看该作者
将剧本放入文件夹



图片附件: EEX.gif (2013-2-7 16:02, 3.3 K)


看上图,剧本名称在EXE中的UE位置,上边的是STAR5.9,下边是一般的,5.8的位置跟5.9一样,但是形式还是跟一般的相同。

一般引擎的,在UE中直接修改成V\R_xx.EEX(我是将剧本扔到V文件夹中,S也一样)。

然后就要修改相关的代码

这是R剧本的
00417F48  |. 8815 92B34800  MOV BYTE PTR DS:[48B392],DL
00417F59  |. A2 93B34800    MOV BYTE PTR DS:[48B393],AL
这是S剧本的
00417F6A  |. 880D A2B34800  MOV BYTE PTR DS:[48B3A2],CL
00417F7C  |. 8815 A3B34800  MOV BYTE PTR DS:[48B3A3],DL
如果像我那样只是将剧本扔进一个单字节的文件夹中,上面的四个红色地址就只要全部加2就可以了;如果像紫虚帮圣三扔进“SN”这样的双字节文件夹中,就要加3。注意不要扔进三个字节的文件夹中!

这样子就OK了。

STAR5.9只要在UE中修改完名称就可以了,不用改代码。注意用来代表数字的部分要按他原来的格式来写,不要写成xx。

==========================
追加扩展剧本名称数

*** 这只是我个人自用引擎的做法,仅供参考,其他的引擎需要根据自身的实际情况进行调整。

首先说明一下,我个人自用引擎暂时不需要扩展HM地图,商店出售物品亦不在DATA中设置,所以相关的扩展不需要研究,只要扩展剧本名称数就足够了。
由于我的剧本是分成11座城来进行的(也可以理解为11章),R剧本可以循环使用,所以R的名称也不扩展。
扩展的只是每座城各自对应的S剧本,而且每座城对应的S剧本名称改成A_xx、B_xx、C_xx……K_xx 。

修改后的代码:
00417EEA  |. 83EC 3C        SUB ESP,3C  <==增加三个临时空间,无他,纯个人喜好。

00417EFF  |. B9 70074B00    MOV ECX,004B0770
00417F04  |. E8 070F0000    CALL 00418E10
00417F09  |. 25 FF000000    AND EAX,0FF
00417F0E  |. 99             CDQ
00417F0F  |. B9 14000000    MOV ECX,14
00417F14  |. F7F9           IDIV ECX
00417F16  |. 25 FF000000    AND EAX,0FF
00417F1B  |. 8945 F0        MOV DWORD PTR SS:[EBP-10],EAX  <==剧本名称中的十位数部分
00417F1E  |. 8BC2           MOV EAX,EDX
00417F20  |. 99             CDQ
00417F21  |. 2BC2           SUB EAX,EDX
00417F23  |. D1F8           SAR EAX,1
00417F25  |. 25 FF000000    AND EAX,0FF
00417F2A  |. 8945 E4        MOV DWORD PTR SS:[EBP-1C],EAX  <==剧本名称中的个位数部分
00417F2D  |. C645 B8 56     MOV BYTE PTR SS:[EBP-48],56  <==在新增的临时空间第1个字节写入“V”字
00417F31  |. C645 B9 5C     MOV BYTE PTR SS:[EBP-47],5C  <==在新增的临时空间第2个字节写入“\”字
00417F35  |. B9 70074B00    MOV ECX,004B0770
00417F3A  |. E8 D10E0000    CALL 00418E10
00417F3F  |. 25 FF000000    AND EAX,0FF
00417F44  |. 99             CDQ
00417F45  |. 33C2           XOR EAX,EDX
00417F47  |. 2BC2           SUB EAX,EDX
00417F49  |. 83E0 01        AND EAX,1
00417F4C  |. 33C2           XOR EAX,EDX
00417F4E  |. 2BC2           SUB EAX,EDX
00417F50  |. 85C0           TEST EAX,EAX  <==R或S的判断,EAX为0就是S剧本
00417F52  |. 75 04          JNZ SHORT 00417F58
00417F54  |. B0 4C          MOV AL,4C  <==R剧本,一般是52(“R”)的,个人喜好换成另外一个字符
00417F56  |. EB 24          JMP SHORT 00417F7C
00417F58  |> 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00417F5B  |. 6BC0 0A        IMUL EAX,EAX,0A
00417F5E  |. 0345 E4        ADD EAX,DWORD PTR SS:[EBP-1C]
00417F61  |. 83F8 1E        CMP EAX,1E  <==判断一下是不是S30及以后的剧本,主要是因为S30开始都是通用S
00417F64  |. 73 14          JNB SHORT 00417F7A
00417F66  |. A1 CC245000    MOV EAX,DWORD PTR DS:[5024CC]
00417F6B  |. 83F8 0A        CMP EAX,0A  <==判断是哪一座城
00417F6E  |. 76 05          JBE SHORT 00417F75
00417F70  |. B8 0A000000    MOV EAX,0A
00417F75  |> 83C0 41        ADD EAX,41  <==根据每座城的顺序改成从“A”到“K”,41就是“A”,42是“B”……
00417F78  |. EB 02          JMP SHORT 00417F7C
00417F7A  |> B0 53          MOV AL,53  <==S30开始的S剧本名称还是用回“S”
00417F7C  |> 8845 BA        MOV BYTE PTR SS:[EBP-46],AL  <==在新增的临时空间第3个字节写入RABCS……这些字符
00417F7F  |. C645 BB 5F     MOV BYTE PTR SS:[EBP-45],5F  <==在新增的临时空间第4个字节写入“_”字符
00417F83  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
00417F86  |. 83C1 30        ADD ECX,30  <==十位数+30就变成0123……这些字符
00417F89  |. 884D BC        MOV BYTE PTR SS:[EBP-44],CL  <==在新增的临时空间第5个字节写入十位数
00417F8C  |. 8B55 E4        MOV EDX,DWORD PTR SS:[EBP-1C]
00417F8F  |. 83C2 30        ADD EDX,30  <==个位数
00417F92  |. 8855 BD        MOV BYTE PTR SS:[EBP-43],DL  <==在新增的临时空间第6个字节写入十位数
00417F95  |. A1 96B34800    MOV EAX,DWORD PTR DS:[48B396]
00417F9A  |. 8945 BE        MOV DWORD PTR SS:[EBP-42],EAX  <==偷懒一下,从48B396复制“.EEX”到新增的临时空间第7-10个字节
00417F9D  |. C645 C2 00     MOV BYTE PTR SS:[EBP-3E],0  <==在新增的临时空间第11个字节写入十六进制“00”作为结束标识
00417FA1  |. 90             NOP
00417FA2  |. 90             NOP
00417FA3  |. 90             NOP
00417FA4  |. 90             NOP
00417FA5  |. 90             NOP
00417FA6  |. 90             NOP
00417FA7  |. 90             NOP
00417FA8  |. 90             NOP
00417FA9  |. 90             NOP
00417FAA  |. 90             NOP
00417FAB  |. 90             NOP
00417FAC  |. 90             NOP
00417FAD  |. 90             NOP
00417FAE  |. 90             NOP
00417FAF  |. 90             NOP
00417FB0  |. 90             NOP
00417FB1  |. 6A 00          PUSH 0                                          ; /Arg2 = 00000000
00417FB3  |. 8D45 B8        LEA EAX,DWORD PTR SS:[EBP-48]                   ; |
00417FB6  |. 50             PUSH EAX                                        ; |Arg1
00417FB7  |. 8D4D EC        LEA ECX,DWORD PTR SS:[EBP-14]                   ; |
00417FBA  |. E8 9D0F0000    CALL 00418F5C                             ; \00418F5C

这样就完成了。
--------------
STAR5.9已经有初步的扩展,不过STAR说还未完成。

==========================
HM地图的初步研究

0044C2E3  /$ 55             PUSH EBP
0044C2E4  |. 8BEC           MOV EBP,ESP
0044C2E6  |. 83EC 0C        SUB ESP,0C
0044C2E9  |. 894D F4        MOV DWORD PTR SS:[EBP-C],ECX
0044C2EC  |. C745 F8 F0E148>MOV DWORD PTR SS:[EBP-8],0048E1F0         ;  ASCII "HM00.E5"
0044C2F3  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0044C2F6  |. 8A4D 08        MOV CL,BYTE PTR SS:[EBP+8]
0044C2F9  |. 8808           MOV BYTE PTR DS:[EAX],CL
0044C2FB  |. 8B55 F8        MOV EDX,DWORD PTR SS:[EBP-8]
0044C2FE  |. 83C2 02        ADD EDX,2
0044C301  |. 8955 FC        MOV DWORD PTR SS:[EBP-4],EDX
0044C304  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0044C307  |. 33C9           XOR ECX,ECX
0044C309  |. 8A08           MOV CL,BYTE PTR DS:[EAX]
0044C30B  |. 8BC1           MOV EAX,ECX
0044C30D  |. 99             CDQ
0044C30E  |. B9 0A000000    MOV ECX,0A
0044C313  |. F7F9           IDIV ECX
0044C315  |. 83C0 30        ADD EAX,30
0044C318  |. 8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]
0044C31B  |. 8802           MOV BYTE PTR DS:[EDX],AL
0044C31D  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
0044C320  |. 83C0 01        ADD EAX,1
0044C323  |. 8945 FC        MOV DWORD PTR SS:[EBP-4],EAX
0044C326  |. 8B4D F4        MOV ECX,DWORD PTR SS:[EBP-C]
0044C329  |. 33C0           XOR EAX,EAX
0044C32B  |. 8A01           MOV AL,BYTE PTR DS:[ECX]
0044C32D  |. 99             CDQ
0044C32E  |. B9 0A000000    MOV ECX,0A
0044C333  |. F7F9           IDIV ECX
0044C335  |. 83C2 30        ADD EDX,30
0044C338  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
0044C33B  |. 8810           MOV BYTE PTR DS:[EAX],DL
0044C33D  |. B9 A8E44A00    MOV ECX,004AE4A8
0044C342  |. E8 491DFCFF    CALL 0040E090
0044C347  |. 50             PUSH EAX                                        ; /Arg2
0044C348  |. 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]                    ; |
0044C34B  |. 51             PUSH ECX                                        ; |Arg1
0044C34C  |. B9 58754B00    MOV ECX,004B7558                          ; |
0044C351  |. E8 5E020300    CALL 0047C5B4                             ; \0047C5B4
0044C356  |. 8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]
0044C359  |. 81E2 FF000000  AND EDX,0FF
0044C35F  |. 8915 ECBA4800  MOV DWORD PTR DS:[48BAEC],EDX
0044C365  |. 8BE5           MOV ESP,EBP
0044C367  |. 5D             POP EBP
0044C368  \. C2 0400        RETN 4
主要来说应该是这段代码,可能还会有其他地方,暂不确定,等以后真有需要再研究。

[ 本帖最后由 godtype 于 2013-2-7 17:03 编辑 ]


顶部
性别:男-离线 狂煞∑小星
(Myth阿杨)

Rank: 5Rank: 5
组别 士兵
级别 破虏将军
功绩 7
帖子 720
编号 308223
注册 2009-1-29
家族 轩辕学院


发表于 2013-2-7 17:17 资料 个人空间 短消息 只看该作者 QQ
学习了,可以把V文件夹换其他的么?


顶部
性别:男-离线 冯励
(我行风)

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 567
编号 398375
注册 2010-10-2
家族 轩辕学院


发表于 2013-2-7 17:20 资料 短消息 只看该作者
关于剧本和地图放入文件夹,上次我照着紫虚的那个存档方法帖,土钢炼制了一个。就是用UE把8cbf0的HM00.e5和89d94的R_xx.eex、S_xx.eex分别改成了H/00.e5和R/xx.eex、S/xx.eex。然后把剧本放入“R”和“S”文件夹,把地图放进了“H”文件夹。目前没有不良后果,不知道可行否?
附一张我mod的图。

[ 本帖最后由 冯励 于 2013-2-7 17:22 编辑 ]


图片附件: 1.jpg (2013-2-7 17:22, 93.67 K)

顶部
性别:男-离线 狂煞∑小星
(Myth阿杨)

Rank: 5Rank: 5
组别 士兵
级别 破虏将军
功绩 7
帖子 720
编号 308223
注册 2009-1-29
家族 轩辕学院


发表于 2013-2-7 17:20 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由 godtype 于 2013-2-7 16:02 发表
125503
看上图,剧本名称在EXE中的UE位置,上边的是STAR5.9,下边是一般的,5.8的位置跟5.9一样,但是形式还是跟一般的相同。

一般引擎的,在UE中直接修改成V\R_xx.EEX(我是将剧本扔到V文件夹中,S也一样)

改成V\R_xx.EEX的话,是在前面的省略号上加V\么?
顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2013-2-7 17:27 资料 个人空间 短消息 只看该作者
回复 #3 冯励 的帖子
我这里的HM是指扩展名称数。

回复 #4 狂煞∑小星 的帖子
“\”就是文件夹的标识。
顶部
性别:男-离线 狂煞∑小星
(Myth阿杨)

Rank: 5Rank: 5
组别 士兵
级别 破虏将军
功绩 7
帖子 720
编号 308223
注册 2009-1-29
家族 轩辕学院


发表于 2013-2-7 17:29 资料 个人空间 短消息 只看该作者 QQ
回复 #3 冯励 的帖子

必须可行啊……话说你还有个A文件夹,装啥的?
顶部
性别:男-离线 冯励
(我行风)

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 567
编号 398375
注册 2010-10-2
家族 轩辕学院


发表于 2013-2-7 17:34 资料 短消息 只看该作者
回复 #6 狂煞∑小星 的帖子

装的是存档,也是土岗炼制的,同理改成A/**了。不过后遗症是如果保存对应的存档,会重新出现一个对应的e5s存档文件。
顶部
性别:男-离线 狂煞∑小星
(Myth阿杨)

Rank: 5Rank: 5
组别 士兵
级别 破虏将军
功绩 7
帖子 720
编号 308223
注册 2009-1-29
家族 轩辕学院


发表于 2013-2-7 17:36 资料 个人空间 短消息 只看该作者 QQ
回复 #7 冯励 的帖子

话说你把地图放到你的文件夹里,地图的名字有没有改?
顶部
性别:男-离线 冯励
(我行风)

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 567
编号 398375
注册 2010-10-2
家族 轩辕学院


发表于 2013-2-7 17:38 资料 短消息 只看该作者
回复 #8 狂煞∑小星 的帖子

用批量重命名工具,把HM**和R**、S**都去掉英文,只保留数字就行了。
顶部
性别:男-离线 冯励
(我行风)

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 567
编号 398375
注册 2010-10-2
家族 轩辕学院


发表于 2013-2-7 17:42 资料 短消息 只看该作者
回复 #5 godtype 的帖子

收到。
顶部
性别:男-离线 WHITESHIP

★★
谏议大夫

Rank: 16
组别 翰林学士
级别 征北将军
功绩 380
帖子 4210
编号 170977
注册 2007-6-3
家族 轩辕学院


发表于 2013-2-7 18:06 资料 个人空间 短消息 只看该作者
HM好像就是这些,附一个我的代码,

0044C2EC  |.  C745 F8 10BD4>MOV DWORD PTR SS:[EBP-8],0048BD10    ;  ASCII "HM\HM00.E5"
0044C2FE  |.  83C2 05       ADD EDX,5

只改了这两处。ADD EDX,5那里。本来是2。
因为多加了个斜杠,所以文件夹是单字节就改成4,双字节就5,以此类推。
不过48E1F0处的空白只够写单字节的,因此我换了地方写。
顶部
性别:男-离线 周定乾坤
(常山的明月)

Rank: 5Rank: 5
组别 士兵
级别 军师将军
功绩 9
帖子 942
编号 420407
注册 2011-4-8
来自 福建
家族 轩辕学院


发表于 2013-2-7 19:51 资料 个人空间 短消息 只看该作者 QQ
话说我直接在省略号上写V\、。。但是失败了。。
是说我方法错了呢??


图片附件: QQ截图20130207194456.jpg (2013-2-7 19:51, 13.7 K)



图片附件: QQ截图20130207194536.jpg (2013-2-7 19:51, 11.1 K)



图片附件: QQ截图20130207194544.jpg (2013-2-7 19:51, 11.42 K)

顶部
性别:男-离线 狂煞∑小星
(Myth阿杨)

Rank: 5Rank: 5
组别 士兵
级别 破虏将军
功绩 7
帖子 720
编号 308223
注册 2009-1-29
家族 轩辕学院


发表于 2013-2-7 20:44 资料 个人空间 短消息 只看该作者 QQ
回复 #12 周定乾坤 的帖子

你和我一开始犯了同样的错误……你这样改,先把89d90h这一样全部弄成00,然后从第五个00处开始输入V\R_%s.EEX,改S也用这方法
顶部
性别:男-离线 周定乾坤
(常山的明月)

Rank: 5Rank: 5
组别 士兵
级别 军师将军
功绩 9
帖子 942
编号 420407
注册 2011-4-8
来自 福建
家族 轩辕学院


发表于 2013-2-7 21:15 资料 个人空间 短消息 只看该作者 QQ
回复 #13 狂煞∑小星 的帖子

原来如此,谢了
顶部
性别:男-离线 周定乾坤
(常山的明月)

Rank: 5Rank: 5
组别 士兵
级别 军师将军
功绩 9
帖子 942
编号 420407
注册 2011-4-8
来自 福建
家族 轩辕学院


发表于 2013-2-7 21:22 资料 个人空间 短消息 只看该作者 QQ
回复 #13 狂煞∑小星 的帖子

其实这样做也有一个问题,那就是询问测试中的是否。。。

[ 本帖最后由 周定乾坤 于 2013-2-7 21:24 编辑 ]


图片附件: QQ截图20130207211715.jpg (2013-2-7 21:22, 11.59 K)



图片附件: [修改前] QQ截图20130207211838.jpg (2013-2-7 21:24, 11.99 K)

顶部
性别:男-离线 狂煞∑小星
(Myth阿杨)

Rank: 5Rank: 5
组别 士兵
级别 破虏将军
功绩 7
帖子 720
编号 308223
注册 2009-1-29
家族 轩辕学院


发表于 2013-2-7 22:00 资料 个人空间 短消息 只看该作者 QQ
回复 #15 周定乾坤 的帖子

-_-!怎么会呢
顶部
性别:男-离线 狂煞∑小星
(Myth阿杨)

Rank: 5Rank: 5
组别 士兵
级别 破虏将军
功绩 7
帖子 720
编号 308223
注册 2009-1-29
家族 轩辕学院


发表于 2013-2-7 22:11 资料 个人空间 短消息 只看该作者 QQ
回复 #15 周定乾坤 的帖子

找到问题了,我忘了说……不是把整条都00了……应该是到EEX为止就好了……不好意思哦
顶部
性别:男-离线 周定乾坤
(常山的明月)

Rank: 5Rank: 5
组别 士兵
级别 军师将军
功绩 9
帖子 942
编号 420407
注册 2011-4-8
来自 福建
家族 轩辕学院


发表于 2013-2-7 22:24 资料 个人空间 短消息 只看该作者 QQ
回复 #17 狂煞∑小星 的帖子

其实这个不应该是这么改的,应该是从R_%s那边开始改。。。S也是一样。。
顶部
性别:未知-离线 真善美

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 6
编号 475755
注册 2013-1-10


发表于 2013-2-8 09:33 资料 短消息 只看该作者
回复 #18 周定乾坤 的帖子

star5.8
数据位置还是有空位的,可以加三个字的文件夹
但是需要改代码的,要不指向肯定会出问题。
改后的代码:
00417F9F  |. /75 09         jnz X1_(2).00417FAA
00417FA1  |. |C745 E8 90B34>mov [local.6],1_(2).0048B390             ;  DOC\R_xx.EEX
00417FA8  |. |EB 07         jmp X1_(2).00417FB1
00417FAA  |> \C745 E8 9DB34>mov [local.6],1_(2).0048B39D             ;  DOC\S_xx.EEX



00417F48  |.  8815 96B34800 mov byte ptr ds:[0x48B396],dl            ;  xx.EEX
00417F4E  |.  8B45 E4       mov eax,[local.7]
00417F51  |.  25 FFFF0000   and eax,0xFFFF
00417F56  |.  83C0 30       add eax,0x30
00417F59  |.  A2 97B34800   mov byte ptr ds:[0x48B397],al            ;  x.EEX
00417F5E  |.  8B4D F0       mov ecx,[local.4]
00417F61  |.  81E1 FFFF0000 and ecx,0xFFFF
00417F67  |.  83C1 30       add ecx,0x30
00417F6A  |.  880D A3B34800 mov byte ptr ds:[0x48B3A3],cl            ;  xx.EEX
00417F70  |.  8B55 E4       mov edx,[local.7]
00417F73  |.  81E2 FFFF0000 and edx,0xFFFF
00417F79  |.  83C2 30       add edx,0x30
00417F7C  |.  8815 A4B34800 mov byte ptr ds:[0x48B3A4],dl            ;  x.EEX



改后的ASCII:
0048B390  44 4F 43 5C 52 5F 78 78 2E 45 45 58 00 44 4F 43  DOC\R_xx.EEX.DOC
0048B3A0  5C 53 5F 78 78 2E 45 45 58 00 00 00 BF C9 D2 D4  \S_xx.EEX...可以

[ 本帖最后由 真善美 于 2013-2-11 09:54 编辑 ]
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2025-2-20 05:20
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.015746 second(s), 10 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP