标题: 有難度的MOD顯示當前難度
性别:男-离线 godtype
(毅)

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

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


发表于 2014-8-2 15:01 资料 个人空间 短消息 看全部作者
可以考虑将SL界面里面的LV值改成难度说明


顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2014-8-2 16:30 资料 个人空间 短消息 看全部作者
回复 #4 冰麒麟 的帖子

0041ABD0  |> 8B55 08        |MOV EDX,DWORD PTR SS:[EBP+8]
0041ABD3  |. 8B42 08        |MOV EAX,DWORD PTR DS:[EDX+8]
0041ABD6  |. 8B8D F8FEFFFF  |MOV ECX,DWORD PTR SS:[EBP-108]
0041ABDC  |. 837C81 50 00   |CMP DWORD PTR DS:[ECX+EAX*4+50],0
0041ABE1  |. 7E 28          |JLE SHORT 0041AC0B
0041ABE3  |. 8B55 08        |MOV EDX,DWORD PTR SS:[EBP+8]
0041ABE6  |. 8B42 08        |MOV EAX,DWORD PTR DS:[EDX+8]
0041ABE9  |. 8B8D F8FEFFFF  |MOV ECX,DWORD PTR SS:[EBP-108]
0041ABEF  |. 8B5481 50      |MOV EDX,DWORD PTR DS:[ECX+EAX*4+50]
0041ABF3  |. 52             |PUSH EDX                                        ; /<%2d>
0041ABF4  |. 68 80B54800    |PUSH 0048B580                             ; |Format = "Lv.%2d"
0041ABF9  |. 8D85 2CFFFFFF  |LEA EAX,DWORD PTR SS:[EBP-D4]                   ; |
0041ABFF  |. 50             |PUSH EAX                                        ; |s
0041AC00  |. FF15 C0624800  |CALL DWORD PTR DS:[<&USER32.wsprintfA>]         ; \wsprintfA
0041AC06  |. 83C4 0C        |ADD ESP,0C
0041AC09  |. EB 15          |JMP SHORT 0041AC20
0041AC0B  |> 68 88B54800    |PUSH 0048B588                             ; /Format = "--"
0041AC10  |. 8D8D 2CFFFFFF  |LEA ECX,DWORD PTR SS:[EBP-D4]                   ; |
0041AC16  |. 51             |PUSH ECX                                        ; |s
0041AC17  |. FF15 C0624800  |CALL DWORD PTR DS:[<&USER32.wsprintfA>]         ; \wsprintfA
0041AC1D  |. 83C4 08        |ADD ESP,8
0041AC20  |> EB 29          |JMP SHORT 0041AC4B
这段是显示的,+50的地方就是存放等级值

0041B248  |. 8B0D 606F4900  MOV ECX,DWORD PTR DS:[496F60]
0041B24E  |. 8841 01        MOV BYTE PTR DS:[ECX+1],AL
这里AL是存档时显示的平均/0号等级,不过引擎可能不同


顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2014-8-2 21:48 资料 个人空间 短消息 看全部作者
回复 #6 冰麒麟 的帖子

存档那里改用你自定的整形变量,战斗结束时存档的确是下一关的。

显示部分不能再用整形,因为这个时候的整形只是一个固定的数值,不会因应你的存档内容来变化。
只能从+50里面读出数据,这个数据你只要在存档时设置好就可以了,所以修改这个功能前的旧档都肯定显示有误,要重新存一次才显示正常。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2014-8-3 10:41 资料 个人空间 短消息 看全部作者
回复 #8 冰麒麟 的帖子

+50就是存档时的496F60+1。

48B51F你还要改说明啊。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2014-8-3 11:09 资料 个人空间 短消息 看全部作者
你只能选其中一样

48B51F里面的字符改成你自己的说明文字
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2014-8-3 12:07 资料 个人空间 短消息 看全部作者
只能放弃一样。

既然天气可以加在战役名称后面,同样也可以将难度或者战役编号的其中一个加在事件的前或后。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2014-8-3 14:59 资料 个人空间 短消息 看全部作者
回复 #14 冰麒麟 的帖子

不一定要在剧本里面改,改选一下指令18就可以了。

00413B2C  |. E8 1780FFFF    CALL Ekd5.0040BB48                       ; \Ekd5.0040BB48

0040BB48  /$ 55             PUSH EBP
0040BB49  |. 8BEC           MOV EBP,ESP
0040BB4B  |. 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
0040BB4E  |. 50             PUSH EAX                                 ; /Arg2
0040BB4F  |. 68 28114A00    PUSH Ekd5.004A1128                       ; |Arg1 = 004A1128
0040BB54  |. E8 24410700    CALL Ekd5.0047FC7D                       ; \Ekd5.0047FC7D
0040BB59  |. 83C4 08        ADD ESP,8
0040BB5C  |. 8B4D 08        MOV ECX,DWORD PTR SS:[EBP+8]
0040BB5F  |. 51             PUSH ECX                                 ; /Arg1
0040BB60  |. E8 AAA90600    CALL Ekd5.0047650F                       ; \Ekd5.0047650F
0040BB65  |. 83C4 04        ADD ESP,4
0040BB68  |. 8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]
0040BB6B  |. 52             PUSH EDX                                 ; /Arg2
0040BB6C  |. 6A 02          PUSH 2                                   ; |Arg1 = 00000002
0040BB6E  |. E8 263B0200    CALL Ekd5.0042F699                       ; \Ekd5.0042F699
0040BB73  |. 83C4 08        ADD ESP,8
0040BB76  |. 5D             POP EBP
0040BB77  \. C3             RETN

18原来是这样的,改写成:(假设是难度写在这里)
PUSH EBP
MOV EBP,ESP
SUB ESP,200  <---应该足够用,为了预防万一,可以再加大一点。
PUSH [EBP+8]
MOV EAX,*1  <---难度的变量地址。
IMUL EAX,EAX,*2  <---每个难度名称的长度,长度要统一并要有00做结尾,比如两个汉字就要写成05甚至更多。
ADD EAX,*3  <---在引擎其他空白位置写所有的难度名称,这里是第一个难度名称(变量取值00)的地址。写名称的时候要按*2的字节间隔来写下一个名称。
PUSH EAX
PUSH *4  <---再找其他空白地方写字符,然后PUSH该地址。必须含有两个"%s",例如“%s空格%s”(实际效果将是“难度 事件名”),或“[%s]%s”(实际效果将是“[难度]事件名”),或者可以选用现成的:PUSH 48B564  两个名称中间双空格,不过有点多。
LEA EAX,[EBP-200]
PUSH EAX
CALL DWORD PTR DS:[4862C0]
ADD ESP,10
LEA EAX,[EBP-200]
PUSH EAX
PUSH 004A1128      
CALL 0047FC7D
ADD ESP,8
LEA EAX,[EBP-200]
PUSH EAX
CALL 0047650F
ADD ESP,4
LEA EAX,[EBP-200]
PUSH EAX
PUSH 2
CALL 0042F699
ADD ESP,4
POP EBP
RETN

最后的CALL 0042F699是显示旁白,这里如果不想将难度也显示出来,可以换回原来的 MOV EAX,DWORD PTR SS:[EBP+8]。

另外如果想写成 “事件名--难度”这样的模式,可以将*1前的PUSH [EBP+8]移到*4前面。

如果是战役编号,可以将*4中对应的 %s 改成 %d 或者 %2d ,事件名在前就将后面的改,否则就改前面的。同时*2*3就不用了。
顶部

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




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

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

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