标题: 接受咨询,解释原版代码, 暂时停止解释,再开时间待定。
性别:男-离线 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 编辑 ]


顶部
性别:女-离线 summer3965
(神隱夏天)

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 98
编号 301483
注册 2008-12-14
来自 台灣


发表于 2011-2-6 23:05 资料 短消息 只看该作者
問一下阿毅

原版地形恢復hp和使用道具恢復hp的函數在哪裡?

不知道能不能改成像武聖傳那樣的百分比恢復,謝謝

[ 本帖最后由 summer3965 于 2011-2-6 23:07 编辑 ]


顶部
性别:男-离线 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
顶部
性别:女-离线 summer3965
(神隱夏天)

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 98
编号 301483
注册 2008-12-14
来自 台灣


发表于 2011-2-7 13:35 资料 短消息 只看该作者

解釋的真詳細
來試改看看

謝謝囉
顶部
性别:男-离线 3943169
(斩魔圣剑)

Rank: 4
组别 士兵
级别 护军
功绩 4
帖子 448
编号 349974
注册 2009-12-9


发表于 2011-2-8 09:47 资料 短消息 只看该作者
对话框想改成想瓦岗那样的,应该改那个代码?
顶部
性别:男-离线 godtype
(毅)

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

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


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


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

真彩头像?不属本帖范畴。
顶部
性别:未知-离线 xk78765

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 1
编号 412304
注册 2011-1-30


发表于 2011-2-10 16:13 资料 短消息 只看该作者
問題1. 原版中,策略命中上限影響的系數怎麼改呢?

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

[ 本帖最后由 xk78765 于 2011-2-10 18:39 编辑 ]
顶部
性别:男-离线 aaa132536
(辉夜)

Rank: 4
组别 士兵
级别 偏将军
功绩 4
帖子 363
编号 36085
注册 2005-4-6


发表于 2011-2-12 15:56 资料 短消息 只看该作者
毅兄,豆袋在起作用时有个吃豆的动画,如果将这个动画改成补血时那一圈圈的动画要怎么改,谢谢。
顶部
性别:男-离线 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 ***到这里

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

Rank: 4
组别 士兵
级别 偏将军
功绩 4
帖子 363
编号 36085
注册 2005-4-6


发表于 2011-2-13 21:40 资料 短消息 只看该作者
谢谢毅兄,我去试下。
顶部
性别:男-离线 aaa132536
(辉夜)

Rank: 4
组别 士兵
级别 偏将军
功绩 4
帖子 363
编号 36085
注册 2005-4-6


发表于 2011-2-13 22:17 资料 短消息 只看该作者
毅兄能不能帮忙做几个判断程序:

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

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

3.判断两者间的距离
输入当前目标及特定武将,输出两者间的距离

顶部
性别:男-离线 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.没 ...

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

Rank: 4
组别 士兵
级别 偏将军
功绩 4
帖子 363
编号 36085
注册 2005-4-6


发表于 2011-2-13 22:32 资料 短消息 只看该作者
那毅兄能不能帮忙详细解释下穿透攻击的代码,特别是里面的区别敌我方。我想做一个特别的穿透效果:

攻击特定武将时有穿透效果,穿透目标为:被攻击特定武将的攻击范围中HP最少的攻方武将。

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

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

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


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

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

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 前将军
功绩 29
帖子 1763
编号 56399
注册 2005-12-31
来自 上海


发表于 2011-2-14 10:17 资料 个人空间 短消息 只看该作者 QQ
请问以下功能应该如何实现为好:

当一个武将升级时,不管他的实际兵种是什么,都读取一个固定兵种的升级属性作为依据。

比如说:假如一个武将是步兵,但是他升级的时候我希望他用群雄的属性来升级。

实际升级依然要受到能力的制约,比如该武将的能力如果是70,60,70,70,60,那么实际成长就应该是32332(在原版中群雄所有成长都是3,然后70属于合格,所以能力达到70的话就3成长,不到70就是2成长)

谢谢毅大。
顶部
性别:男-离线 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的地方,都参考着上面的代码来改就是了。
顶部
性别:男-离线 武骧金星

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 前将军
功绩 29
帖子 1763
编号 56399
注册 2005-12-31
来自 上海


发表于 2011-2-14 11:25 资料 个人空间 短消息 只看该作者 QQ
好的,谢谢毅大的指点,我先自己尝试一下,如果有问题再来问。
顶部
性别:男-离线 aaa132536
(辉夜)

Rank: 4
组别 士兵
级别 偏将军
功绩 4
帖子 363
编号 36085
注册 2005-4-6


发表于 2011-2-14 19:28 资料 短消息 只看该作者
回复 #16 godtype 的帖子

我要的是穿透攻击效果的代码。

那毅兄能否把那段代码的地址给我,我自己去慢慢研究下。
顶部
性别:男-离线 godtype
(毅)

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

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


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

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

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 右将军
功绩 12
帖子 1179
编号 349592
注册 2009-12-6
家族 轩辕狼党


发表于 2011-2-15 11:27 资料 文集 短消息 只看该作者
最近改原曹操传的引擎 ,发现引擎突然可以在WIN7下运行,DATA其他的都未修改,不知道原引擎哪些地方修改可以兼容各系统

[ 本帖最后由 513633522 于 2011-2-15 11:30 编辑 ]
顶部
性别:男-离线 godtype
(毅)

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

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


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

问STAR吧。
顶部
性别:男-离线 狂赵云
(KYO)

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 199
编号 88285
注册 2006-10-22
来自 广东
家族 轩辕丐帮


发表于 2011-2-17 23:39 资料 个人空间 短消息 只看该作者
扩展部队地形显示怎么扩展?就是扩展到显示部队27个!
地形加成显示那个◎▲位置在什么地方?


图片附件: [1] QQ截图未命名.jpg (2011-2-17 23:39, 3.1 K)

顶部
性别:未知-离线 yjr3426619
(马操)

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 58
编号 377486
注册 2010-5-23


发表于 2011-2-18 18:22 资料 短消息 只看该作者
毅大。
暴击颜色函数在哪里?
顶部
性别:男-离线 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 的帖子

顶部
性别:男-离线 狂赵云
(KYO)

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 199
编号 88285
注册 2006-10-22
来自 广东
家族 轩辕丐帮


发表于 2011-2-19 01:03 资料 个人空间 短消息 只看该作者
回复 #26 godtype 的帖子

直接拿你的5.0进行修改!
0046C58A  |.  6A 1C         PUSH 1C(28)实际是27  是部队上限
改为30个或者多点!
修改这部分是显示出来了!
但是修改出来的部队地形效果和消耗机动的图就错乱了!
无法和原版一样的显示!
那么那段地形和消耗机动力在什么地方修改?代码是什么?

还有另外的问题是地形效果的位置是什么地方!8D160?
顶部
性别:男-离线 godtype
(毅)

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

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


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

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

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 199
编号 88285
注册 2006-10-22
来自 广东
家族 轩辕丐帮


发表于 2011-2-20 01:54 资料 个人空间 短消息 只看该作者
回复 #29 godtype 的帖子

谢谢


顶部

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




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

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

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