标题: 关于修改商店物品。
性别:未知-离线 kasimmax

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 59
编号 281626
注册 2008-6-10


发表于 2013-2-7 22:05 资料 短消息 只看该作者
关于修改商店物品。

用叶落的修改器只能添加物品,不能取消原来data里设置的物品。比如现在我看商店里有卖1级剑,但是用叶落打开data里面1级剑却是没打勾的,如果再把1级剑打勾
那商店里就会出现卖2把1级剑得情况。
要怎么才能取消原来商店卖的物品,再把自己卖的打上勾捏.....

[ 本帖最后由 kasimmax 于 2013-2-8 00:14 编辑 ]


顶部
性别:男-离线 子墨虚乌有

Rank: 4
组别 士兵
级别 裨将军
功绩 3
帖子 307
编号 455880
注册 2012-1-30
家族 轩辕学院


发表于 2013-2-8 02:35 资料 短消息 只看该作者
如果是 STR 的引擎的话
参照
http://www.xycq.net/forum/thread-155401-1-1.html
2楼
4088       默认为0,即开启自动商店,设置1关闭,但需要在Data中设置商店物品


顶部
性别:未知-离线 真善美

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


发表于 2013-2-8 08:51 资料 短消息 只看该作者
如果你需要开自动商店,又不喜欢设置自动商店里卖的物品的话就要改代码了。
参考文章:godtype
STAR175新引擎商店自动售出物品的修改
http://www.xycq.net/forum/thread-177834-1-1.html



star5.8代码:
00472BFD  /$  55            push ebp
00472BFE  |.  8BEC          mov ebp,esp
00472C00  |.  51            push ecx
00472C01  |.  E8 2B96F9FF   call Ekd5.0040C231
00472C06  |.  0FB655 08     movzx edx,byte ptr ss:[ebp+0x8]
00472C0A  |.  803D E05F5000>cmp byte ptr ds:[0x505FE0],0x0
00472C11  |.  75 22         jnz XEkd5.00472C35
00472C13  |.  33C9          xor ecx,ecx
00472C15  |.  3C 12         cmp al,0x12                              ;  中级商店开启等级
00472C17  |.  76 06         jbe XEkd5.00472C1F
00472C19  |.  41            inc ecx
00472C1A  |.  3C 26         cmp al,0x26                              ;  高级商店开启等级
00472C1C  |.  76 01         jbe XEkd5.00472C1F
00472C1E  |.  41            inc ecx
00472C1F  |>  B0 0A         mov al,0xA                               ;  卖物品种类
00472C21  |.  2AD0          sub dl,al
00472C23  |.  73 10         jnb XEkd5.00472C35
00472C25  |.  02D0          add dl,al
00472C27  |.  8A82 27244800 mov al,byte ptr ds:[edx+0x482427]        ;  物品代码地址
00472C2D  |.  3C FF         cmp al,0xFF
00472C2F  |.  74 0B         je XEkd5.00472C3C
00472C31  |.  03C1          add eax,ecx
00472C33  |.  EB 07         jmp XEkd5.00472C3C
00472C35  |>  8B4D FC       mov ecx,[local.1]
00472C38  |.  8B4411 08     mov eax,dword ptr ds:[ecx+edx+0x8]
00472C3C  |>  0FB6C0        movzx eax,al
00472C3F  |.  8BE5          mov esp,ebp
00472C41  |.  5D            pop ebp
00472C42  \.  C2 0400       retn 0x4




以上代码是10种装备的,原码是13种。

[ 本帖最后由 真善美 于 2013-2-8 09:05 编辑 ]
顶部
性别:未知-离线 真善美

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


发表于 2013-2-8 14:00 资料 短消息 只看该作者
star5.8版:
修改自动商店代码列出所需的武器装备,排除掉不需要的。
自动商店代码:
00472BFD   $  55            push ebp
00472BFE   .  8BEC          mov ebp,esp
00472C00   .  51            push ecx
00472C01   .  E8 2B96F9FF   call 1_(2).0040C231                     
00472C06   .  0FB655 08     movzx edx,byte ptr ss:[ebp+0x8]
00472C0A   .  803D E05F5000>cmp byte ptr ds:[0x505FE0],0x0
00472C11   .  75 22         jnz X1_(2).00472C35
00472C13   .  33C9          xor ecx,ecx
00472C15   .  3C 12         cmp al,0x12
00472C17   .  76 06         jbe X1_(2).00472C1F
00472C19   .  41            inc ecx
00472C1A   .  3C 26         cmp al,0x26
00472C1C   .  76 01         jbe X1_(2).00472C1F
00472C1E   .  41            inc ecx
00472C1F      B0 0D         mov al,0xD
00472C21   .  2AD0          sub dl,al
00472C23   .  73 10         jnb X1_(2).00472C35
00472C25   .  02D0          add dl,al
00472C27   .  8A82 27244800 mov al,byte ptr ds:[edx+0x482427]
00472C2D   .- E9 DD540A00   jmp 1_(2).0051810F                       ;  没地方写,跳出去了
00472C32      90            nop
00472C33      90            nop
00472C34      90            nop
00472C35   >  8B4D FC       mov ecx,dword ptr ss:[ebp-0x4]
00472C38   .  8B4411 08     mov eax,dword ptr ds:[ecx+edx+0x8]
00472C3C   .  0FB6C0        movzx eax,al
00472C3F   .  8BE5          mov esp,ebp
00472C41   .  5D            pop ebp
00472C42   .  C2 0400       retn 0x4

物品代码位置:
00482427      00            db 00
00482428      03            db 03
00482429      06            db 06
0048242A      09            db 09
0048242B      0C            db 0C
0048242C      0F            db 0F
0048242D      12            db 12
0048242E      15            db 15
0048242F      18            db 18
00482430      1B            db 1B
00482431      39            db 39                                    ;  CHAR '9'
00482432      3C            db 3C                                    ;  CHAR '<'
00482433      3F            db 3F                                    ;  CHAR '?'

跳出位置的代码:(这部分自己找空地)
0051810F    3C FF           cmp al,0xFF
00518111  - 0F84 25ABF5FF   je 1_(2).00472C3C
00518117    03C1            add eax,ecx
00518119    80FA 05         cmp dl,0x5                               ; 不需列出的物品在数据表中的位置
0051811C  - 0F84 13ABF5FF   je 1_(2).00472C35
00518122    80FA 06         cmp dl,0x6                               ; 不需列出的物品在数据表中的位置
00518125  - 0F84 0AABF5FF   je 1_(2).00472C35
0051812B    80FA 08         cmp dl,0x8                               ; 不需列出的物品在数据表中的位置
0051812E  - 0F84 01ABF5FF   je 1_(2).00472C35
00518134  - E9 03ABF5FF     jmp 1_(2).00472C3C

star的引擎不敢瞎找地方放,所以自己扩充了一下区段,算自娱自乐吧。
顶部

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




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

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

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