标题: 接受咨询,解释原版代码, 暂时停止解释,再开时间待定。
性别:男-离线 godtype
(毅)

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

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


发表于 2011-1-30 17:44 资料 个人空间 短消息 看全部作者
接受咨询,解释原版代码


快过年了,就大发一下慈悲。
对原版代码有什么疑问的,可以在本帖发问,只要是我了解的,都可以解答(当然不是第一时间,而且是否详细解答也由我来决定)。

注意:
1、只限原版引擎。
2、问新特效的请出门。
3、不会看代码的也请出门。
4、问UE地址的同样请出门。
5、灌水可以……有请版主重扣。

6、本帖暂停中,再开时间未定。


[ 本帖最后由 godtype 于 2011-4-17 08:33 编辑 ]


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

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

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


发表于 2011-2-6 23:13 资料 个人空间 短消息 看全部作者
地形恢复HP

具体恢复量
0043D0C1  /$ 55                  PUSH EBP
0043D0C2  |. 8BEC                MOV EBP,ESP
0043D0C4  |. 51                  PUSH ECX
0043D0C5  |. 33C0                XOR EAX,EAX
0043D0C7  |. 8A45 08             MOV AL,BYTE PTR SS:[EBP+8]
[EBP+8]是地形编号

0043D0CA  |. 83E8 12             SUB EAX,12           ;  Switch (cases 12..16)
0043D0CD  |. 83F8 04             CMP EAX,4
0043D0D0  |. 77 1C               JA SHORT 0043D0EE
地形编号减去12后判断是否大于4。注意前面0—11的地形减去12后会变成“FFFFFFEE—FFFFFFFF”,使用JA来判断系统就会认为这些数值是很大的数值,就可以跳过,如果使用JG来判断,系统就会认为这些数值是负数,而不会跳过

0043D0D2  |. FF2485 F4D04300     JMP DWORD PTR DS:[EAX*4+43D0F4]
根据减去12后的EAX值以及下面43D0F4的分支表来进行跳转。比如13(关隘),减12后等于1,1*4+43D0F4=43D0F8,系统就会读取43D0F8所在位置的代码——0043D0E0,然后跳到43D0E0这个位置继续运行

0043D0D9  |> B8 19000000         MOV EAX,19           ;  Case 12 of switch 0043D0CA ---12城池恢复25%
0043D0DE  |. EB 10               JMP SHORT 0043D0F0
0043D0E0  |> B8 14000000         MOV EAX,14           ;  Cases 13,14,16 of switch 0043D0CA ---13关隘14鹿砦16兵营恢复20%
0043D0E5  |. EB 09               JMP SHORT 0043D0F0
0043D0E7  |> B8 0F000000         MOV EAX,0F           ;  Case 15 of switch 0043D0CA ---15村庄恢复15%
0043D0EC  |. EB 02               JMP SHORT 0043D0F0
以上就是下面的分支表具体跳转后的内容,输出的EAX值就是恢复HP的百分比值

0043D0EE  |> 33C0                XOR EAX,EAX          ;  Default case of switch 0043D0CA
非恢复地形全部都清空EAX输出

0043D0F0  |> 8BE5                MOV ESP,EBP
0043D0F2  |. 5D                  POP EBP
0043D0F3  \. C3                  RETN
0043D0F4   . D9D04300            DD 0043D0D9                       ;  Switch table used at 0043D0D2
0043D0F8   . E0D04300            DD 0043D0E0
0043D0FC   . E0D04300            DD 0043D0E0
0043D100   . E7D04300            DD 0043D0E7
0043D104   . E0D04300            DD 0043D0E0


下面一段是是否显示出“可以恢复”字样
00435182  /$ 55                  PUSH EBP
00435183  |. 8BEC                MOV EBP,ESP
00435185  |. 83EC 08             SUB ESP,8
00435188  |. 8B45 08             MOV EAX,DWORD PTR SS:[EBP+8]
0043518B  |. 25 FF000000         AND EAX,0FF
[EBP+8]是地形编号

00435190  |. 83F8 12             CMP EAX,12
00435193  |. 7C 17               JL SHORT 004351AC
比较是否小于12(城池),小于就跳到下面输出0

00435195  |. 8B4D 08             MOV ECX,DWORD PTR SS:[EBP+8]
00435198  |. 81E1 FF000000       AND ECX,0FF
0043519E  |. 83F9 16             CMP ECX,16
004351A1  |. 7F 09               JG SHORT 004351AC
比较是否大于16(兵营),大于就跳到下面输出0

004351A3  |. C745 F8 01000000    MOV DWORD PTR SS:[EBP-8],1
004351AA  |. EB 07               JMP SHORT 004351B3
是12-16之间的地形,则属于可恢复地形,输出1

004351AC  |> C745 F8 00000000    MOV DWORD PTR SS:[EBP-8],0
004351B3  |> 8B55 F8             MOV EDX,DWORD PTR SS:[EBP-8]
004351B6  |. 8955 FC             MOV DWORD PTR SS:[EBP-4],EDX
004351B9  |. 8B45 FC             MOV EAX,DWORD PTR SS:[EBP-4]
最后输出的值在其他地方进行判断,1就显示“可以恢复”,0就没有显示。

004351BC  |. 8BE5                MOV ESP,EBP
004351BE  |. 5D                  POP EBP
004351BF  \. C3                  RETN


以前有帖过的:http://www.xycq.net/forum/thread-170644-1-1.html

[ 本帖最后由 godtype 于 2011-2-7 09:20 编辑 ]


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

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

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


发表于 2011-2-7 10:28 资料 个人空间 短消息 看全部作者
恢复HP道具的恢复量

调用函数位置
0041CD9E  |> 6A 00          PUSH 0                                   ; /Arg2 = 00000000
0041CDA0  |. 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]             ; |
0041CDA3  |. 8A11           MOV DL,BYTE PTR DS:[ECX]                 ; |
0041CDA5  |. 52             PUSH EDX                                 ; |Arg1
0041CDA6  |. 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]             ; |
0041CDA9  |. 8B48 08        MOV ECX,DWORD PTR DS:[EAX+8]             ; |
0041CDAC  |. E8 7DF60100    CALL 0043C42E                            ; \0043C42E


43C42E这条函数有四个地方调用到,恢复HP、恢复MP、显示恢复HP量和显示恢复MP量,这里只帖恢复HP的调用位置。
0C栈为0时,就是真正使用道具,为1时,是未正式使用道具,而将光标移到某人头上时显示的恢复量;08栈是所使用道具的物品编号,byte型(即单字节);还有一个受用者的战场内存地址作为ECX值输入。
当然了,实际上0C栈的值并没有在函数里面使用过。

0043C42E  /$ 55             PUSH EBP
0043C42F  |. 8BEC           MOV EBP,ESP
0043C431  |. 83EC 1C        SUB ESP,1C
0043C434  |. 894D EC        MOV DWORD PTR SS:[EBP-14],ECX
受用者的战场内存地址保存到[EBP-14]中

0043C437  |. 8B45 EC        MOV EAX,DWORD PTR SS:[EBP-14]
0043C43A  |. 8B08           MOV ECX,DWORD PTR DS:[EAX]
0043C43C  |. 6BC9 48        IMUL ECX,ECX,48
0043C43F  |. 81C1 681B4A00  ADD ECX,004A1B68
0043C445  |. 894D F0        MOV DWORD PTR SS:[EBP-10],ECX
计算出受用者的武将内存地址,保存到[EBP-10]中

0043C448  |. 8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]
0043C44B  |. 81E2 FF000000  AND EDX,0FF
0043C451  |. 6BD2 19        IMUL EDX,EDX,19
0043C454  |. 81C2 40114A00  ADD EDX,004A1140
0043C45A  |. 8955 F4        MOV DWORD PTR SS:[EBP-C],EDX
计算出所使用道具的物品内存地址,保存到[EBP-C]中

0043C45D  |. 8B4D F4        MOV ECX,DWORD PTR SS:[EBP-C]
0043C460  |. E8 DBD0FCFF    CALL 00409540
0043C465  |. 8845 FC        MOV BYTE PTR SS:[EBP-4],AL
读取所使用道具的特效号,单字节保存到[EBP-4]中。409540实际上就是MOV AL,BYTE PTR DS:[ECX+11],读取ECX值所在地址+11H位置的数值(byte型,即单字节),而辅助品和消耗品的物品内存地址里面的第11H位就是特效号,武器和防具则是物品类型(即剑、枪、弓等)

0043C468  |. 8B4D F4        MOV ECX,DWORD PTR SS:[EBP-C]
0043C46B  |. E8 0019FEFF    CALL 0041DD70
0043C470  |. 25 FF000000    AND EAX,0FF
0043C475  |. 8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
读取所使用道具的效果值,扩展后保存到[EBP-8]中。41DD70是MOV AL,BYTE PTR DS:[ECX+15] ,原理同上,消耗品的第15H位是效果值,而武器和防具是初始能力,辅助品则无作用

0043C478  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
0043C47B  |. 25 FF000000    AND EAX,0FF
0043C480  |. 83F8 3F        CMP EAX,3F
0043C483  |. 75 58          JNZ SHORT 0043C4DD
判断所使用道具的特效号是否3F,即恢复HP,不是的就跳到后面

0043C485  |. 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
0043C488  |. 81E1 FF000000  AND ECX,0FF
0043C48E  |. 81F9 FF000000  CMP ECX,0FF
0043C494  |. 75 13          JNZ SHORT 0043C4A9
判断所使用道具的效果值是否为FF,不是的就跳到后面,是的就表示完全恢复

0043C496  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0043C499  |. E8 7DADFCFF    CALL 0040721B
根据输入的ECX值(武将内存地址)计算出包括辅助装备在内的武将总HP值

0043C49E  |. 8B55 EC        MOV EDX,DWORD PTR SS:[EBP-14]
0043C4A1  |. 2B42 10        SUB EAX,DWORD PTR DS:[EDX+10]
0043C4A4  |. 8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
0043C4A7  |. EB 32          JMP SHORT 0043C4DB
总HP值减去当前HP值(Hpcur),战场内存的第10H位就是Hpcur,得到实际恢复HP量,保存到[EBP-8]中

这里开始是所使用道具的效果值不是FF的情况:
0043C4A9  |> 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0043C4AC  |. E8 6AADFCFF    CALL 0040721B
取出总HP值

0043C4B1  |. 8B4D EC        MOV ECX,DWORD PTR SS:[EBP-14]
0043C4B4  |. 2B41 10        SUB EAX,DWORD PTR DS:[ECX+10]
0043C4B7  |. 3B45 F8        CMP EAX,DWORD PTR SS:[EBP-8]
0043C4BA  |. 73 13          JNB SHORT 0043C4CF
总HP值减去当前HP值(Hpcur),再比较一下所使用道具的效果值,如果大于或等于效果值就跳到后面,由道具的效果值作为实际恢复量

0043C4BC  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0043C4BF  |. E8 57ADFCFF    CALL 0040721B
0043C4C4  |. 8B55 EC        MOV EDX,DWORD PTR SS:[EBP-14]
0043C4C7  |. 2B42 10        SUB EAX,DWORD PTR DS:[EDX+10]
0043C4CA  |. 8945 E8        MOV DWORD PTR SS:[EBP-18],EAX
0043C4CD  |. EB 06          JMP SHORT 0043C4D5
如果小于效果值,就直接由总HP值减去Hpcur所得出的数值作为实际恢复量

0043C4CF  |> 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
0043C4D2  |. 8945 E8        MOV DWORD PTR SS:[EBP-18],EAX
0043C4D5  |> 8B4D E8        MOV ECX,DWORD PTR SS:[EBP-18]
0043C4D8  |. 894D F8        MOV DWORD PTR SS:[EBP-8],ECX
0043C4DB  |> EB 62          JMP SHORT 0043C53F

以下部分是恢复MP的,原理一样,其中40724A是取出总MP值,DS:[ECX+14]是当前MP值(Mpcur)
0043C4DD  |> 8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]
0043C4E0  |. 81E2 FF000000  AND EDX,0FF
0043C4E6  |. 83FA 40        CMP EDX,40
0043C4E9  |. 75 54          JNZ SHORT 0043C53F
0043C4EB  |. 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
0043C4EE  |. 25 FF000000    AND EAX,0FF
0043C4F3  |. 3D FF000000    CMP EAX,0FF
0043C4F8  |. 75 13          JNZ SHORT 0043C50D
0043C4FA  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0043C4FD  |. E8 48ADFCFF    CALL 0040724A
0043C502  |. 8B4D EC        MOV ECX,DWORD PTR SS:[EBP-14]
0043C505  |. 2B41 14        SUB EAX,DWORD PTR DS:[ECX+14]
0043C508  |. 8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
0043C50B  |. EB 32          JMP SHORT 0043C53F
0043C50D  |> 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0043C510  |. E8 35ADFCFF    CALL 0040724A
0043C515  |. 8B55 EC        MOV EDX,DWORD PTR SS:[EBP-14]
0043C518  |. 2B42 14        SUB EAX,DWORD PTR DS:[EDX+14]
0043C51B  |. 3B45 F8        CMP EAX,DWORD PTR SS:[EBP-8]
0043C51E  |. 73 13          JNB SHORT 0043C533
0043C520  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0043C523  |. E8 22ADFCFF    CALL 0040724A
0043C528  |. 8B4D EC        MOV ECX,DWORD PTR SS:[EBP-14]
0043C52B  |. 2B41 14        SUB EAX,DWORD PTR DS:[ECX+14]
0043C52E  |. 8945 E4        MOV DWORD PTR SS:[EBP-1C],EAX
0043C531  |. EB 06          JMP SHORT 0043C539
0043C533  |> 8B55 F8        MOV EDX,DWORD PTR SS:[EBP-8]
0043C536  |. 8955 E4        MOV DWORD PTR SS:[EBP-1C],EDX
0043C539  |> 8B45 E4        MOV EAX,DWORD PTR SS:[EBP-1C]
0043C53C  |. 8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
0043C53F  |> 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
0043C542  |. 8BE5           MOV ESP,EBP
0043C544  |. 5D             POP EBP
0043C545  \. C2 0800        RETN 8


总的来说,消耗道具的效果值并不是完全的恢复量,效果值加上当前HP/MP后不能大于总HP/MP量,超出部分就必须减去,否则会出错。

===========
如果要将效果值改成占总HP量的百分比,全恢复的FF就不管了,改这段
0043C4A9  |> 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0043C4AC  |. E8 6AADFCFF    CALL 0040721B
0043C4B1  |. 8B4D EC        MOV ECX,DWORD PTR SS:[EBP-14]
0043C4B4  |. 2B41 10        SUB EAX,DWORD PTR DS:[ECX+10]
0043C4B7  |. 3B45 F8        CMP EAX,DWORD PTR SS:[EBP-8]
0043C4BA  |. 73 13          JNB SHORT 0043C4CF
0043C4BC  |. 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0043C4BF  |. E8 57ADFCFF    CALL 0040721B
0043C4C4  |. 8B55 EC        MOV EDX,DWORD PTR SS:[EBP-14]
0043C4C7  |. 2B42 10        SUB EAX,DWORD PTR DS:[EDX+10]
0043C4CA  |. 8945 E8        MOV DWORD PTR SS:[EBP-18],EAX
0043C4CD  |. EB 06          JMP SHORT 0043C4D5
0043C4CF  |> 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
0043C4D2  |. 8945 E8        MOV DWORD PTR SS:[EBP-18],EAX
0043C4D5  |> 8B4D E8        MOV ECX,DWORD PTR SS:[EBP-18]
0043C4D8  |. 894D F8        MOV DWORD PTR SS:[EBP-8],ECX
0043C4DB  |> EB 62          JMP SHORT 0043C53F

改成:
0043C4A9  |> 8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
0043C4AC  |. E8 6AADFCFF    CALL 0040721B
0043C4B1     50             PUSH EAX
0043C4B2     0FAF45 F8      IMUL EAX,DWORD PTR SS:[EBP-8]
0043C4B6     33D2           XOR EDX,EDX
0043C4B8     B9 64000000    MOV ECX,64
0043C4BD     F7F1           DIV ECX
0043C4BF     8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
0043C4C2     58             POP EAX
0043C4C3     8B4D EC        MOV ECX,DWORD PTR SS:[EBP-14]
0043C4C6     2B41 10        SUB EAX,DWORD PTR DS:[ECX+10]
0043C4C9     3B45 F8        CMP EAX,DWORD PTR SS:[EBP-8]
0043C4CC     73 03          JNB SHORT 0043C4D1
0043C4CE     8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
0043C4D1     90             NOP
0043C4D2     90             NOP
0043C4D3     90             NOP
0043C4D4     90             NOP
0043C4D5     90             NOP
0043C4D6     90             NOP
0043C4D7     90             NOP
0043C4D8     90             NOP
0043C4D9     90             NOP
0043C4DA     90             NOP
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-8 20:54 资料 个人空间 短消息 看全部作者


QUOTE:
原帖由 3943169 于 2011-2-8 09:47 发表
对话框想改成想瓦岗那样的,应该改那个代码?

真彩头像?不属本帖范畴。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-13 11:44 资料 个人空间 短消息 看全部作者


QUOTE:
原帖由 xk78765 于 2011-2-10 16:13 发表
問題1. 原版中,策略命中上限影響的系數怎麼改呢?

問題2. 策略技能像是氣合、霸氣,這種只能對自己施放,如何讓他能指定對友?

策略的看此帖:
http://www.xycq.net/forum/thread-206799-1-1.html

气合霸气修改类型,可以看第二部分的识别函数,修改一下使用的效果类型或调整一下运行函数即可。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-13 11:51 资料 个人空间 短消息 看全部作者


QUOTE:
原帖由 aaa132536 于 2011-2-12 15:56 发表
毅兄,豆袋在起作用时有个吃豆的动画,如果将这个动画改成补血时那一圈圈的动画要怎么改,谢谢。

豆袋与一般使用恢复HP道具的动画的共用的:
0041CDB4  |. 68 FF000000    PUSH 0FF     <--后续法术动画编号
0041CDB9  |. 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
0041CDBC  |. E8 A1F9FFFF    CALL 0041C762

如果单独改就要另外写代码,在这段改成:
CMP DWORD PTR SS:[EBP+8],0
JE **
PUSH 0FF
MOV ECX,DWORD PTR SS:[EBP-8]
CALL 0041C762
JMP ***
新代码……  <--JE **到这里
接原来代码  <--JMP ***到这里

至于新代码暂请自己先参考动画里面的代码,动画类我少研究,有时间再补充主要的部分。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-13 22:19 资料 个人空间 短消息 看全部作者


QUOTE:
原帖由 aaa132536 于 2011-2-13 22:17 发表
毅兄能不能帮忙做几个判断程序:

1.判断攻击方与被攻击方的朝向
输入攻击方及被攻击方,输出:0.面对面、1.面对背、2.其他

2.判断当前目标是否跟随特定武将
输入当前目标及特定武将,输出:0.跟随、1.没 ...

超出本帖范畴并超出能力范围。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-14 09:47 资料 个人空间 短消息 看全部作者
回复 #15 aaa132536 的帖子

你是想要判断穿透攻击编号的代码?还是要实际的穿透攻击效果代码?
前者是判断是否有穿透装备或穿透兵种,后者是判断穿透范围内哪些敌人受到影响。如果是后者,虽然正好前段时间我在想一个新穿透范围,不过结果好不幸,没法实现。所以实际效果部分亦超出能力范围。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-14 10:40 资料 个人空间 短消息 看全部作者
回复 #17 武骧金星 的帖子

原版武将升级(我军):

QUOTE:
0040741A  |. 8B45 F0        |MOV EAX,DWORD PTR SS:[EBP-10]
0040741D  |. 25 FF000000    |AND EAX,0FF
00407422  |. 50             |PUSH EAX
00407423  |. 8B4D E8        |MOV ECX,DWORD PTR SS:[EBP-18]
00407426  |. 33D2           |XOR EDX,EDX
00407428  |. 8A51 2B        |MOV DL,BYTE PTR DS:[ECX+2B]
0040742B  |. 8BCA           |MOV ECX,EDX
0040742D  |. 6BC9 1B        |IMUL ECX,ECX,1B
00407430  |. 81C1 A0BF4A00  |ADD ECX,004ABFA0
00407436  |. E8 65210000    |CALL 004095A0
0040743B  |. 25 FF000000    |AND EAX,0FF
00407440  |. 8945 FC        |MOV DWORD PTR SS:[EBP-4],EAX
00407443  |. 8B45 F0        |MOV EAX,DWORD PTR SS:[EBP-10]
00407446  |. 25 FF000000    |AND EAX,0FF
0040744B  |. 83F8 04        |CMP EAX,4
0040744E  |. 7F 21          |JG SHORT 00407471
00407450  |. 8B4D F0        |MOV ECX,DWORD PTR SS:[EBP-10]
00407453  |. 81E1 FF000000  |AND ECX,0FF
00407459  |. 51             |PUSH ECX
0040745A  |. 8B4D E8        |MOV ECX,DWORD PTR SS:[EBP-18]
0040745D  |. E8 9AFEFFFF    |CALL 004072FC

[EBP-18]是武将能力内存地址
[EBP-10]是循环计数器,用来判断现在升级是哪项能力,0攻1防2精……6MP
[EBP-4]是提升能力的量
4ABFA0是部队能力内存地址的起始点
4095A0是读取部队七围的提升量
4072FC是读取武将五围的提升量

如果要指定某个武将升级的时候按指定的兵种提升量来提升,就将
00407423  |. 8B4D E8        |MOV ECX,DWORD PTR SS:[EBP-18]
00407426  |. 33D2           |XOR EDX,EDX
00407428  |. 8A51 2B        |MOV DL,BYTE PTR DS:[ECX+2B]
0040742B  |. 8BCA           |MOV ECX,EDX
这一段改成:
MOV ECX,DWORD PTR SS:[EBP-18]
CALL 409500
CMP EAX,0XX <--填武将编号
JNZ *01
MOV ECX,0XXX  <--填兵种编号
JMP *02
MOV ECX,DWORD PTR SS:[EBP-18]  <==JNZ *01到这里
MOVZX ECX,BYTE PTR DS:[ECX+2B]
IMUL ECX,ECX,1B  <==JMP *02到这里
下面继续接上即可。

这里只是我军的,如果想要友敌军也是这样,就将其他调用过4072FC的地方,都参考着上面的代码来改就是了。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-14 19:53 资料 个人空间 短消息 看全部作者
回复 #20 aaa132536 的帖子

CALL 00435D06就是穿透的实际效果。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-15 11:37 资料 个人空间 短消息 看全部作者
回复 #22 513633522 的帖子

问STAR吧。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-18 22:40 资料 个人空间 短消息 看全部作者
回复 #24 狂赵云 的帖子

代码在46C53B,以及里面调用的函数,这个很难解释,当时改的时候都要问别人才能解决。请自行参考我发布过的引擎和作品来对照参考。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-18 22:41 资料 个人空间 短消息 看全部作者
回复 #25 yjr3426619 的帖子

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

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

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


发表于 2011-2-19 10:35 资料 个人空间 短消息 看全部作者
回复 #28 狂赵云 的帖子

那个已经是极限了,再改会有问题。如果非要改,就要参考STAR5.7版。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-25 20:42 资料 个人空间 短消息 看全部作者


QUOTE:
原帖由 WHITESHIP 于 2011-2-25 03:47 发表
嗯……问一下关于等级计算的问题,载入存档的档案前面有个"LV“,原版是使用0号武将的等级,这个等级也影响战利品金钱的获得。请问判断这个等级的代码在哪里呢?

1、载入存档的档案前面有个"LV“
0041B236  |. B9 681B4A00    MOV ECX,004A1B68
0041B23B  |. E8 90B3FEFF    CALL 004065D0
就是这里输出0号武将等级。

2、战利品金钱
004169FB  |. B9 681B4A00    MOV ECX,004A1B68
00416A00  |. E8 CBFBFEFF    CALL 004065D0
00416A05  |. 25 FF000000    AND EAX,0FF
00416A0A  |. 6BC0 64        IMUL EAX,EAX,64
00416A0D  |. 8B4D F4        MOV ECX,DWORD PTR SS:[EBP-C]
00416A10  |. 8D9408 BC02000>LEA EDX,DWORD PTR DS:[EAX+ECX+2BC]
同样是输出0号武将等级后乘以100,再加上700。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-25 20:47 资料 个人空间 短消息 看全部作者


QUOTE:
原帖由 norton 于 2011-2-25 14:55 发表
如何扩展内景人物形象数?

你是指在同一内场景中R形象数(非人物数)超过15就会重复的那个问题吗?
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-26 19:57 资料 个人空间 短消息 看全部作者


QUOTE:
原帖由 513633522 于 2011-2-26 19:46 发表
原曹操传引擎里存放整形变量的位置在哪里……最大是多啊

旧引擎何来整形变量?
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-28 09:24 资料 个人空间 短消息 看全部作者
回复 #40 norton 的帖子

那个……以前曾经问过STAR怎样改,他提供了几个地址,我研究了一轮没成功就放弃了,而那些地址不知道扔到哪里了,现在找不回来,所以抱歉了。或者问一下STAR拿地址,现在他的版本都已经扩展了,参考一下应该就可以了。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-28 09:26 资料 个人空间 短消息 看全部作者
回复 #39 513633522 的帖子

要增加存档,要增加指令,跟改成新引擎没什么分别。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-28 20:48 资料 个人空间 短消息 看全部作者
回复 #43 513633522 的帖子

21楼有地址,这个只能靠自己了。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-2-28 21:06 资料 个人空间 短消息 看全部作者
回复 #45 吴下小蒙 的帖子

扩展兵种涉及的工作量太大,代码又多,很难帖出来。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-3-10 16:40 资料 个人空间 短消息 看全部作者
回复 #47 WHITESHIP 的帖子

你贴这个是仓库界面,正确的叫某人打开仓库之类的是在41973C里面。至于循环测试武将是否在场,要研究一下R场景相关的再回复。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-3-12 17:25 资料 个人空间 短消息 看全部作者
回复 #49 tydea 的帖子

雪芸教程里面都有改法,不需要再解释吧。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-3-13 09:05 资料 个人空间 短消息 看全部作者
回复 #51 tydea 的帖子

1、ITEM.E5没改
2、不属于本帖范畴,去其他地方提问。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-3-16 08:57 资料 个人空间 短消息 看全部作者
回复 #53 513633522 的帖子

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

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

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


发表于 2011-3-19 16:11 资料 个人空间 短消息 看全部作者


QUOTE:
原帖由 tydea 于 2011-3-17 13:23 发表
原版中获得兵器的等级算法,如何改成瓦岗那样的算法?

代码涉及太多,只写出原版相关的代码,根据自己的实际情况来改动。

普通装备:
00408069  |. B9 0C000000    MOV ECX,0C
00408088  |. B9 0C000000    MOV ECX,0C
004080B5  |. B9 0C000000    MOV ECX,0C
00407F15  |. B9 0C000000    MOV ECX,0C
00414571  |. B9 0C000000    MOV ECX,0C
00416C1C  |. B9 0C000000    |MOV ECX,0C
初级升中级、中级升高级装备所需要等级。

004080BC  |. C1EA 02        SHR EDX,2
00407F1C  |. C1EA 02        SHR EDX,2
00414578  |. C1EA 02        SHR EDX,2
00416C23  |. C1EA 02        |SHR EDX,2
SHR ***,2是除以4,即武将每4级装备升1级

004080A0  |. 83F9 24        CMP ECX,24
00407EFE  |. 83FA 24        CMP EDX,24
0041455C  |. 83F8 24        CMP EAX,24
00416C03  |. 83F8 24        |CMP EAX,24
36开始全部装备3级的高级装备。

宝物装备:
00414521  |. C1F8 02        SAR EAX,2
00414543  |. C1F8 02        SAR EAX,2
00416BC4  |. C1F8 02        |SAR EAX,2
00416BE6  |. C1F8 02        |SAR EAX,2
00407EC3  |. C1F8 02        SAR EAX,2
00407EE5  |. C1F8 02        SAR EAX,2
武将每4级装备升1级。

如果要修改武将每N级装备升1级的级数,需要调整前后的代码。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-3-20 20:06 资料 个人空间 短消息 看全部作者
回复 #57 3943169 的帖子

已经超出本帖范畴了,给你神之奖励版的,自己去参考一下。
00451526  |. E8 90DD0700    CALL 004CF2BB
0045152B  |. 85C0           TEST EAX,EAX
0045152D  |. 0F85 E8010000  JNZ 0045171B
00451533  |. 90             NOP
00451534  |. 90             NOP

00451751  |. E8 65DB0700    CALL 004CF2BB
00451756  |. 85C0           TEST EAX,EAX
00451758  |. 0F85 90010000  JNZ 004518EE
0045175E  |. 90             NOP
0045175F  |. 90             NOP

004CF2BB   55               PUSH EBP
004CF2BC   8BEC             MOV EBP,ESP
004CF2BE   51               PUSH ECX
004CF2BF   E8 0E170000      CALL 004D09D2
004CF2C4   894D FC          MOV DWORD PTR SS:[EBP-4],ECX
004CF2C7   6A 2C            PUSH 2C
004CF2C9   E8 F2160000      CALL 004D09C0
004CF2CE   E8 3687F3FF      CALL 00407A09
004CF2D3   8B4D FC          MOV ECX,DWORD PTR SS:[EBP-4]
004CF2D6   8BE5             MOV ESP,EBP
004CF2D8   5D               POP EBP
004CF2D9   C3               RETN
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-3-26 08:40 资料 个人空间 短消息 看全部作者
回复 #59 WHITESHIP 的帖子

不可能的事。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-3-26 10:55 资料 个人空间 短消息 看全部作者
回复 #61 tydea 的帖子

雪芸的EXE修改教程有写,AI使用策略部分。
顶部
性别:男-离线 godtype
(毅)

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

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


发表于 2011-3-26 11:19 资料 个人空间 短消息 看全部作者
回复 #63 tydea 的帖子

按策略顺序排列。


顶部

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




当前时区 GMT+8, 现在时间是 2024-11-18 07:51
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

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

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