标题: 关於宝物特效修改, 其實只有豆袋
性别:女-离线 summer3965
(神隱夏天)

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


发表于 2009-3-17 23:34 资料 短消息 看全部作者
关於宝物特效修改

不好意思,问个问题。

我想要在原本一些宝物上附加其他的功能,举例来说,让主动攻击双击附加提升士气,让模仿策略附加精神力等等。

虽然说都是原版就有的代码,但是不知道代码是从哪里开始,和到哪里结束,所以要重新照着写也不知道从何处下手。

我想知道的宝物效果代码:

恶路移动(主要是想新增一个辅助地形+恶路移动的宝物,而恶路移动再合并突击移动)
麻痹攻击(想要让封策和中毒都同时可以附加麻痹)
辅助攻击力
辅助防御力
辅助精神力
辅助爆发力
辅助士气
辅助hp
辅助mp(以上这些主要是想整合一个附加全能力的宝物)
辅助火系策略(事实上是想要整合辅助全策略的,但是翻旧帖知道可以从火系改)

希望知道的人帮个忙,不胜感激。
-------------------------------------------------------------------------------
上面保留问题作个纪念。豆袋的修改在下面。

[ 本帖最后由 summer3965 于 2009-3-28 20:06 编辑 ]


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

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


发表于 2009-3-18 14:19 资料 短消息 看全部作者
回复 #5 godtype 的帖子

既然這樣,輔助全能力就算了吧。

其他的我在慢慢研究。

感謝阿毅不厭其煩的回答問題,照理說應該要發個紅包付個學費,但是我錢還不夠。

所以只能誠心的說聲謝謝囉。

謝謝阿毅版主的幫助!


另外,新引擎没有测试过,如果相同位置上的数值一样,那可能也可以用。

[ 本帖最后由 summer3965 于 2009-3-18 20:05 编辑 ]


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

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


发表于 2009-3-19 02:11 资料 短消息 看全部作者
請問一下,我照著添加了惡路移動的代碼,也讓突擊移動和惡路移動合併了。
可是沒有惡路移動的效果耶。
還是說這段代碼不對呢?

這是我新添加的
0048C974    55              push ebp
0048C975    8BEC            mov ebp,esp
0048C977    83EC 0C         sub esp,0C
0048C97A    894D F4         mov dword ptr ss:[ebp-C],ecx
0048C97D    8B4D F4         mov ecx,dword ptr ss:[ebp-C]
0048C980    E8 EBEAFAFF     call 0043B470
0048C985    8845 FC         mov byte ptr ss:[ebp-4],al
0048C988    8B45 FC         mov eax,dword ptr ss:[ebp-4]
0048C98B    25 FF000000     and eax,0FF
0048C990    83F8 1B         cmp eax,1B
0048C993    7C 04           jl short 0048C999
0048C995    0C FF           or al,0FF
0048C997    EB 53           jmp short 0048C9EC
0048C999    8B4D 08         mov ecx,dword ptr ss:[ebp+8]
0048C99C    81E1 FF000000   and ecx,0FF
0048C9A2    51              push ecx
0048C9A3    8B4D FC         mov ecx,dword ptr ss:[ebp-4]
0048C9A6    81E1 FF000000   and ecx,0FF
0048C9AC    6BC9 3C         imul ecx,ecx,3C
0048C9AF    81C1 E0E44A00   add ecx,004AE4E0
0048C9B5    E8 B666FBFF     call 00443070
0048C9BA    8845 F8         mov byte ptr ss:[ebp-8],al
0048C9BD    6A 21           push 21
0048C9BF    8B55 F4         mov edx,dword ptr ss:[ebp-C]
0048C9C2    8B0A            mov ecx,dword ptr ds:[edx]
0048C9C4    6BC9 48         imul ecx,ecx,48
0048C9C7    81C1 0000D600   add ecx,0D60000
0048C9CD    E8 37B0F7FF     call 00407A09
0048C9D2    85C0            test eax,eax
0048C9D4    74 13           je short 0048C9E9
0048C9D6    8B45 F8         mov eax,dword ptr ss:[ebp-8]
0048C9D9    25 FF000000     and eax,0FF
0048C9DE    3D FF000000     cmp eax,0FF
0048C9E3    74 04           je short 0048C9E9
0048C9E5    C645 F8 01      mov byte ptr ss:[ebp-8],1
0048C9E9    8A45 F8         mov al,byte ptr ss:[ebp-8]
0048C9EC    8BE5            mov esp,ebp
0048C9EE    5D              pop ebp
0048C9EF    C2 0400         retn 4

這是本來的
0043F7CF  /$  55            push ebp
0043F7D0  |.  8BEC          mov ebp,esp
0043F7D2  |.  83EC 0C       sub esp,0C
0043F7D5  |.  894D F4       mov dword ptr ss:[ebp-C],ecx
0043F7D8  |.  8B4D F4       mov ecx,dword ptr ss:[ebp-C]
0043F7DB  |.  E8 90BCFFFF   call 0043B470
0043F7E0  |.  8845 FC       mov byte ptr ss:[ebp-4],al
0043F7E3  |.  8B45 FC       mov eax,dword ptr ss:[ebp-4]
0043F7E6  |.  25 FF000000   and eax,0FF
0043F7EB  |.  83F8 1B       cmp eax,1B
0043F7EE  |.  7C 04         jl short 0043F7F4
0043F7F0  |.  0C FF         or al,0FF
0043F7F2  |.  EB 53         jmp short 0043F847
0043F7F4  |>  8B4D 08       mov ecx,dword ptr ss:[ebp+8]
0043F7F7  |.  81E1 FF000000 and ecx,0FF
0043F7FD  |.  51            push ecx                                 ; /Arg1
0043F7FE  |.  8B4D FC       mov ecx,dword ptr ss:[ebp-4]             ; |
0043F801  |.  81E1 FF000000 and ecx,0FF                              ; |
0043F807  |.  6BC9 3C       imul ecx,ecx,3C                          ; |
0043F80A  |.  81C1 E0E44A00 add ecx,004AE4E0                         ; |
0043F810  |.  E8 5B380000   call 00443070                            ; \Ekd5.00443070
0043F815  |.  8845 F8       mov byte ptr ss:[ebp-8],al
0043F818  |.  6A 22         push 22                                  ; /Arg1 = 00000022
0043F81A  |.  8B55 F4       mov edx,dword ptr ss:[ebp-C]             ; |
0043F81D  |.  8B0A          mov ecx,dword ptr ds:[edx]               ; |
0043F81F  |.  6BC9 48       imul ecx,ecx,48                          ; |
0043F822  |.  81C1 0000D600 add ecx,0D60000                          ; |
0043F828  |.  E8 DC81FCFF   call 00407A09                            ; \Ekd5.00407A09
0043F82D  |.  85C0          test eax,eax
0043F82F  |.  74 13         je short 0043F844
0043F831  |.  8B45 F8       mov eax,dword ptr ss:[ebp-8]
0043F834  |.  25 FF000000   and eax,0FF
0043F839  |.  3D FF000000   cmp eax,0FF
0043F83E  |.  74 04         je short 0043F844
0043F840  |.  C645 F8 01    mov byte ptr ss:[ebp-8],1
0043F844  |>  8A45 F8       mov al,byte ptr ss:[ebp-8]
0043F847  |>  8BE5          mov esp,ebp
0043F849  |.  5D            pop ebp
0043F84A  \.  C2 0400       retn 4

[ 本帖最后由 summer3965 于 2009-3-19 02:19 编辑 ]
顶部
性别:女-离线 summer3965
(神隱夏天)

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


发表于 2009-3-19 13:36 资料 短消息 看全部作者
不會添加..
所以決定直接將輔助地形合併到惡路突擊上了。

不過這樣一來有個空位效果號,加上我把四神改掉,可以禁咒的效果號也空出來了。
可以請問怎麼添加絕對攻擊命中和絕對策略命中嗎?
雖然norton和yanguodong兩位前輩的帖子有,可是好像會佔用原本的輔助命中效果。
想要輔助命中和絕對命中分成兩種效果。
如果能夠保留兵種更好,不能也不勉強。

[ 本帖最后由 summer3965 于 2009-3-19 14:12 编辑 ]
顶部
性别:女-离线 summer3965
(神隱夏天)

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


发表于 2009-3-19 17:31 资料 短消息 看全部作者

剛剛試了一下,好像真的沒有衝突,傻了...
謝謝阿毅的回覆。

問題基本上解決了。
顶部
性别:女-离线 summer3965
(神隱夏天)

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


发表于 2009-3-26 23:12 资料 短消息 看全部作者
豆袋修改:無限豆

將以下的位址的 74 改成 eb,就可以讓豆袋使用道具不消耗道具。(和敵軍、友軍一樣)

一般的舊引擎,地址在5002/405C02
如果是阿毅最新的舊引擎ex(我私下的稱呼),那地址在 5017/405C17
新引擎的曹操傳豪華版的位置是 4FF9/405BF9,和豪華版相同的新引擎應該也可以用。

說明一下原理,很簡單的。
就是岱瀛大師的這個
00405BFB  |.  E8 54A30300      |CALL 0043FF54  获取被攻击武将属于哪一方
00405C00  |.  85C0                  |TEST EAX,EAX
00405C02  |.  74 2E                 |JE SHORT Ekd5.00405C32  非我方跳转,不判断仓库豆的数量
00405C04  |.  6A 57                 |PUSH 57  ; /Arg1 = 00000057  这个就是恢复用豆的序号
00405C06  |.  B9 70074B00      |MOV ECX,Ekd5.004B0770  ; |
00405C0B  |.  E8 2E7F0000      |CALL Ekd5.0040DB3E  ; \Ekd5.0040DB3E  判断我方仓库是否有豆
00405C10  |.  25 FF000000       |AND EAX,0FF
00405C15  |.  85C0                  |TEST EAX,EAX
00405C17  |.  7E 17                 |JLE SHORT Ekd5.00405C30  小于等于0,没有豆,跳转

就是判斷是否為我方的那一句改成不判斷直接跳轉(JMP),也就是代碼 EB 。
就是這麼簡單,給喜歡豆袋這類道具的人參考。

[ 本帖最后由 summer3965 于 2009-3-27 13:28 编辑 ]
顶部

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




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

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

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