标题: 商店可出售物品数空间扩展
性别:未知-离线 a117398902
(G仔)

Rank: 4
组别 士兵
级别 牙门将军
功绩 5
帖子 548
编号 301657
注册 2008-12-18


发表于 2026-3-16 20:22 资料 个人空间 短消息 只看该作者
商店可出售物品数空间扩展

因论坛搜索引擎废了,所以不知道有没大佬发过商店资料,有发过的话,请知情管理员删了吧,否则就为原版留点资料吧!

前言:

1:完全没有编程基础的不用看

2:这里只讲引擎上的扩容,解放引擎上商店的限制。

3:原版商店最多只能出售16件物品,因为商店列表框缓存只提供了存放16件物品数据的空间,超过了商店就崩给你看!

4:这段空间位于列表框缓存 +60 至 +DF8字节一组,共80字节,所以要做的就是改变这段空间大小,但因为这段空间在缓存中间存放,所以改大的话,随之后面的数据位置也要做调整。



进入主题:

//列表框缓存:原版采用堆栈空间做缓存用:所以照着原思路扩吧,省点事!!!
//要扩展多少件物品,自己就按着下面【注释】计算空间改写下面列出的代码吧。


/主函数:00461D18(创建商店:+8栈参数:0=买 1=卖)


00461D30  |.  81EC 100A0000           SUB ESP,0A10                                         ; 申请堆栈空间总字节(自己视情况而定),这里实际是A1C字节
                                                                                                                    下面3个294不能比这个大,否则就需改大这个值

00461D53  |   8D8D 6CFDFFFF           LEA ECX,DWORD PTR SS:[EBP-294]       ;  /列表框总缓存(294字节):物品数*8+214
00461D73  |   8D8D 6CFDFFFF           LEA ECX,DWORD PTR SS:[EBP-294]
00461D85  |   8D8D 6CFDFFFF           LEA ECX,DWORD PTR SS:[EBP-294]


//后续数据偏移改动:大部分都在0046AA02函数里

/+E0处:
/偏移字节:物品数 * 8 + 60

0046A948   ADD ECX,0E0                              
0046AA34   ADD ECX,0E0
0046AA3D   MOV EDX,DWORD PTR DS:[EAX+E0]
0046AAD9   ADD ECX,0E0
0046AAE2   MOV EAX,DWORD PTR DS:[EDX+E0]
0046AFD1   ADD ECX,0E0
0046B022   ADD ECX,0E0
0047271A   ADD ECX,0E0

/+1B0处:
/偏移字节:物品数 * 8 + 130

0046A95A   ADD ECX,1B0
0046A98E   ADD EDX,1B0
0046A9AA   ADD ECX,1B0
0046AA6F   ADD ECX,1B0
0046AA7D   ADD ECX,1B0
0046AB71   ADD ECX,1B0
0046AB81   ADD ECX,1B0
0046AB9C   ADD ECX,1B0
0046ABA5   MOV EAX,DWORD PTR DS:[EDX+1B0]
0046ABCB   ADD ECX,1B0
0046ABF4   ADD ECX,1B0

0046ACAF   ADD ECX,1B0
0046ACC6   ADD ECX,1B0

0046AD46   ADD ECX,1B0
0046AD58   ADD ECX,1B0
0046AFC1   ADD ECX,1B0
0046AFFE   ADD ECX,1B0
00472708   ADD ECX,1B0

0046AC12   ADD ECX,1B0
0046AC20   ADD ECX,1B0
0046AC2F   ADD ECX,1B0
0046AC38   MOV EAX,DWORD PTR DS:[EDX+1B0]
0046AC44   ADD ECX,1B0
0046AC62   ADD ECX,1B0
0046AC70   ADD ECX,1B0
0046AC7F   ADD ECX,1B0
0046AC88   MOV EAX,DWORD PTR DS:[EDX+1B0]
0046AC94   ADD ECX,1B0
0046AD34   ADD ECX,1B0


/+27C处:
/偏移字节:物品数 * 8 + 1FC

0046A96C   ADD ECX,27C
0046AF0F   ADD ECX,27C
004726F6   ADD ECX,27C



//至此商店对物品数上的限制就解放了

//至于要新加什么物品,加多少就得修改以下三条函数了,这里也顺便列出来

00466B2D:***商店:可贩卖物品写入列表框处理(武器、防具、辅助)
00466C87:***商店:可贩卖物品写入列表框处理(消耗品)
0046871C:***商店:刷新物品项目(暗or亮),能不能购买标记


//成果预览:

[ 本帖最后由 a117398902 于 2026-3-21 19:49 编辑 ]


图片附件: 无标题.jpg (2026-3-16 20:27, 114.89 K)



顶部
性别:未知-离线 ささきこじろう
(屠龙剑圣)

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 右将军
功绩 12
帖子 1165
编号 538932
注册 2019-9-23
来自 柳洞寺


发表于 2026-3-17 20:55 资料 文集 短消息 只看该作者
这倒是有意思,可以在13个店货的基础上加上店货辅助(模仿无双战略版的辅助)

46AA02函数的那些add和买入商店有关,不过一年前改的时候只发现和人物的装备图标有关系(目前还没有发现其他用处,保险起见我认为改了比较好)

[ 本帖最后由 ささきこじろう 于 2026-3-17 21:15 编辑 ]


顶部
性别:未知-离线 a117398902
(G仔)

Rank: 4
组别 士兵
级别 牙门将军
功绩 5
帖子 548
编号 301657
注册 2008-12-18


发表于 2026-3-21 19:50 资料 个人空间 短消息 只看该作者
经测试46AA02函数内都要改,剩下的那几个偏移与购买时右键当前人物装备有关
顶部

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




当前时区 GMT+8, 现在时间是 2026-4-16 01:39
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

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

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