# 持续
定时器,检查生命值,100
; === 从settings.ini加载已保存设置 ===
读取设置(savedUseCustom),从settings.ini的[Config]节读取UseCustom值,默认0
IniRead, savedCustomAddr, settings.ini, Config, CustomAddr, hitman3.exe+2287CFC
useCustom := savedUseCustom
customAddr := savedCustomAddr
defaultOffset := 0x2287CFC
; === 使用定位控件的GUI设置 ===
GUI_HealthDisplay = "等待中..."
启用脚本
GUI,添加复选框,vUseCustomAddr gToggleCustom x10 y60,使用自定义地址(如无法使用)
UI中显示为按钮,对应中文应为:
[?] 信息
GUI,添加,编辑框,vCustomAddr x10 y85 w140,%customAddr%
Gui, 添加, 按钮, gSaveSettings x10 y115 w100, 保存设置
游戏版本
3.230.0
GUI,显示,, HMSS
if (useCustom)
GUI控制,启用,自定义地址
否则
Gui控件,禁用,自定义地址
返回
; === 切换复选框逻辑 ===
开关自定义
GuiControlGet, useCustom,, UseCustomAddr
if (useCustom) {
GuiControl,, CustomAddr, hitman3.exe+
GuiControl, 启用, CustomAddr
} else {
} 否则 {
GUI控件,,自定义地址,hitman3.exe+2287CFC
GUI控件,禁用,自定义地址
}
返回
; === 存档按钮逻辑 ===
保存设置:
GuiControlGet, useCustom,, UseCustomAddr
GuiControlGet, customAddr,, CustomAddr
IniWrite, %useCustom%, settings.ini, Config, UseCustom
IniWrite, %customAddr%, settings.ini, Config, CustomAddr
已保存
返回
; === 信息按钮逻辑 ===
显示信息:
GUI,信息:新
GUI,信息:+始终置顶 +工具窗口
GUI,信息:添加,文本,宽600 行20,
(
启动《杀手》。在主菜单中,打开Cheat Engine,扫描【未知初始值】。
2. 存入物品,在自由模式中死亡。当死亡界面出现时,扫描【已变更数值】。
3. 当你重新加载安全屋后,再次扫描[已变更的数值]。
4. 重新加载进入自由佣兵任务并存活后,四处移动并反复扫描[未变数值]约20次。
5. 在自由模式中死亡,并在死亡结算界面扫描到0。
6. 返回安全屋加载完成后,再次扫描即可获得1。
7. 慢慢滚动地址列表,直到找到绿色的地址。
8. 你可以重复步骤5和6来进一步缩小范围,不过通常第一个绿色地址就是目标地址。
9. 输入地址并保存设置,这样在重新加载程序时会记住你的设定。
注意:如果《杀手》在启动时或游戏过程中随机退出,说明您使用了错误的自定义地址。
)
Gui, Info:Add, Button, gCloseInfo, 确定
界面,信息:显示,,如何查找isAlive生命值地址
返回
关闭信息
GUI,信息:销毁
返回
; === 生命值检测逻辑 ===
检查生命值
processName := "《杀手3》.exe"
`GuiControlGet, useCustom,, UseCustomAddr`
GuiControlGet, customInput,, CustomAddr
if (useCustom && customInput != "") {
; 尝试解析偏移部分
如果 (RegExMatch(customInput, "i)^\s*hitman3\.exe\+([0-9A-Fa-f]+)\s*$", match)) {
offset := "0x" . match1
} else if (RegExMatch(customInput, "i)^\s*0x[0-9A-Fa-f]+\s*$", match)) {
偏移 := 自定义输入
} else {
控件设置,, 生命值显示, 无效地址格式
返回
}
} 否则 {
偏移 := 默认偏移
}
health := ReadStaticAddress(processName, offset)
切换脚本
GuiControlGet, enableScript,, EnableScript
if (enableScript) {
如果(启用脚本){
if (health = -1) {
GUI控件,。, 生命显示, 未找到ID或杀手已关闭
返回
}
if (health == 0) {
进程关闭,%processName%
GUI控制,生命显示,关闭杀手
否则如果(生命值 == 1 或 生命值 == 16843009)
GUI控件,健康显示,ID值匹配。
} 否则 {
GUI控制:血量显示 无效ID,数值 %health% 并非 1
}
} else {
界面控件,,生命值显示,脚本已暂停。
}
返回
; === 记忆读取功能 ===
ReadStaticAddress(进程名, 偏移量)
处理中,已存在,%procName%
pid := ErrorLevel
if (!pid)
返回 -1
hProcess := DllCall("OpenProcess", "UInt", 0x10, "Int", 0, "UInt", pid, "Ptr")
如果 (!hProcess)
返回 -1
hModule := 0x140000000 ; hitman3.exe 基址假定为静态
; 如有必要,将字符串转换为数字
if (IsObject(offset)) {
地址 := hModule + 偏移
} 否则 {
address := hModule + (offset + 0) ; 确保数值
}
VarSetCapacity(buf, 4, 0)
if (!DllCall("ReadProcessMemory", "Ptr", hProcess, "Ptr", address, "Ptr", &buf, "UInt", 4, "Ptr", 0)) {
DllCall("CloseHandle", "Ptr", hProcess)
返回-1
}
result := NumGet(buf, 0, "Int")
DllCall("CloseHandle", "Ptr", hProcess)
返回结果
}
GUI关闭
退出应用

简洁模组框架
Atampy262023-10-03 07:13:36
全新的模组开发与游玩方式——一键安装,无需担心更新或兼容性问题!

离线解锁
riisikumi2026-05-02 15:10:46
在离线模式下解锁所有WOA基础游戏物品

离线任务
J0W2021-02-01 14:45:23
狙击暗杀者、季节内容与自定义任务

终极闪光
musicalmushr00m2024-11-24 06:51:57
《杀手3》终极光影模组。显著提升画面清晰度、无障碍体验与美学选择。

离线体验优化
Atampy262021-06-18 06:40:24
《杀手》离线体验优化——更多初始西装、解锁计划面板、破坏物理效果、双倍爆破装置、未使用物品、原需在线的任务及其他提升游戏体验的改进

无限弹药
2kpr2022-11-11 11:17:44
为特工47提供无限弹药,助你轻松应对漫长屠戮。

离线模式增强与自定义任务包
KevinRuddMP2025-09-27 00:16:11
最新模组,请勿使用“离线任务”或“离线体验优化”。强化离线模式,增加更多功能,整合原本无法离线游玩的内容(例如赛季任务/进阶挑战),并添加模组/自定义任务(包括

昼夜时间模组
KevinRuddMP2025-11-18 09:49:55
更改地图为一天中的其他时段。夜间迈阿密和惠特尔顿溪?白天的霍克斯湾和安布罗斯?应有尽有!本模组会定期更新,加入更多地图/时段。