惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
V
V2EX
量子位
Last Week in AI
Last Week in AI
Jina AI
Jina AI
博客园 - 【当耐特】
爱范儿
爱范儿
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
小众软件
小众软件
IT之家
IT之家
博客园_首页
博客园 - 聂微东
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗

博客园 - 我爱我家喵喵

LookImage2:用 Rust 打造的轻量级专业图像查看器 bat以隐藏模式运行jar包 [Docker] 部署 Nexus Repository OSS 仓库 [docker] 部署 AnythingLLM [nginx] 使用nginx代理实现Ollama支持本地html访问 [docker] 部署 Seata 分布式事务 [docker] 部署 Nacos 服务 CEF 谷歌内核下载地址 [Delphi] 自带皮肤动态切换 [VUE] WebPack 打包后自动修改 dist 中 package.json 版本号 【算法】python版A-Star(A星)寻路 【算法】决策树算法:ID3 【算法】K-means 算法学习 【Unity】使用VSCode调试 [Python] 基于 flask 构建 Web API 实现参数注入和校验 [Redis] 解决多个 Redis 服务同步删除有关联的 key [C#] JavaScript 引擎 [MySql] 数据库死锁的排查和相关知识 [redis] 设置密码 [Java] 扩展 Jackson 的 TypeReference 支持泛型参数传递
完美单机155端gs修改:允许10次转生
我爱我家喵喵 · 2025-09-15 · via 博客园 - 我爱我家喵喵

最近找了一个单机版155端,看到某个SF支持10次转生,但本身155版只支持2次转生。
好奇之下就研究了一下GS修改,居然找到的S端源码,虽然有点老,但参考之下修改成功了。

使用IDA打开 gs 文件,要修改2处。

修改第1处:

.text:0821E97C ; ---------------------------------------------------------------------------
.text:0821E97C
.text:0821E97C loc_821E97C:                            ; CODE XREF: player_reincarnation::CheckCondition(void)+36↑j
.text:0821E97C                 sub     esp, 0Ch
.text:0821E97F                 push    [ebp+arg_0]     ; this
.text:0821E982                 call    _ZN20player_reincarnation8GetTimesEv ; player_reincarnation::GetTimes(void)
.text:0821E987                 add     esp, 10h
// 源码是 if(GetTimes() >= REINCARNATION_TIMES_LIMIT) return false; 
// 编译后优化为了 > 1 就返回 false
// 需要将这里的 cmp eax, 1 改为 cmp eax, 9
.text:0821E98A                 cmp     eax, 1  
.text:0821E98D                 jbe     short loc_821E998
.text:0821E98F                 mov     [ebp+var_10], 0
.text:0821E996                 jmp     short loc_821E9FD
.text:0821E998 ; ---------------------------------------------------------------------------

用16进制编译器定位到 0x0821E98A - 0x08048000 = 0x1D698A 处,将
75 08 E8 B9 34 E4 FF 83 C4 10 83 F8 01 改为
75 08 E8 B9 34 E4 FF 83 C4 10 83 F8 09

修改第2处:

.text:0821EFF3 loc_821EFF3:                            ; CODE XREF: player_reincarnation::CheckActivateTome(void)+33↑j
.text:0821EFF3                 sub     esp, 0Ch
.text:0821EFF6                 push    [ebp+this]
.text:0821EFF9                 call    _ZNK5abase6vectorIN20player_reincarnation6RecordENS_13default_allocEE4sizeEv ; abase::vector<player_reincarnation::Record,abase::default_alloc>::size(void)
.text:0821EFFE                 add     esp, 10h
// 源码是 if(_records.size() == REINCARNATION_TIMES_LIMIT) 
// 所以将这里的 cmp eax, 2 改为 cmp eax, 0xA
.text:0821F001                 cmp     eax, 2
.text:0821F004                 jnz     short loc_821F05E
.text:0821F006                 mov     [ebp+var_5], 1
.text:0821F00A                 mov     [ebp+var_C], 0

用16进制编译器定位到 0x0821F001 - 0x08048000 = 0x1D7001 处,将
10 83 F8 02 75 58 C6 45 FB 01 C7 45 F4 00 00 00 改为
10 83 F8 0A 75 58 C6 45 FB 01 C7 45 F4 00 00 00

客户端不知道要不要修改,我直接用某SF的文件就成了。