Skip to content

Commit 7502f4a

Browse files
committed
update readme
1 parent 81d7faa commit 7502f4a

File tree

6 files changed

+74
-28
lines changed

6 files changed

+74
-28
lines changed

README.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,10 @@
44

55
![26cc8e80ba807d378291266749f824bc](https://github.com/user-attachments/assets/9a6aed1c-ef76-43a0-b9bb-dd357f0b9261)
66

7-
### 临时说明
8-
9-
目前由于不知名原因 patch 在部分机子上可能无效,因此请测试 1.1.0 和 1.1.1 两个版本,哪个能用就先用哪个。
10-
11-
> 等我写完我的中期报告后再 debug
127

138
### 编译
149
```
15-
just config build
10+
just build
1611
```
1712

1813
### 原理解析:

assets/请读我-自测补丁.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
说明:
2+
3+
这个是自测补丁,用于检测补丁是否生效。
4+
5+
本补丁包将 32768 常数修改为 32,因此进入任意地图都会报错,例如 `map c1m2_streets`,如果看到报错说明配置正确。
6+
7+
8+
9+
10+
使用方法:
11+
12+
将所有文件放到游戏根目录(left4dead2.exe 所在目录)
13+
14+
使用 `left4dead2_fix.exe` 启动游戏(目前不知道如何让 steam 能加载这个 launcher)
15+
16+
如果需要添加启动项,请右键 `left4dead2_fix.exe` 创建快捷方式,之后在目标字段后面添加启动项(如果不会请问 deepseek)
17+
18+
启动时正常应用的话会有一个弹窗(彩蛋)
19+
20+
由于动态修改代码,请以 -insecure 启动,或者自觉不要进有 vac 的服务器(被 vac 后果自负)

assets/请读我.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
使用方法:
2+
3+
将所有文件放到游戏根目录(left4dead2.exe 所在目录)
4+
5+
使用 `left4dead2_fix.exe` 启动游戏(目前不知道如何让 steam 能加载这个 launcher)
6+
7+
如果需要添加启动项,请右键 `left4dead2_fix.exe` 创建快捷方式,之后在目标字段后面添加启动项(如果不会请问 deepseek)
8+
9+
启动时正常应用的话会有一个弹窗(彩蛋)
10+
11+
由于动态修改代码,请以 -insecure 启动,或者自觉不要进有 vac 的服务器(被 vac 后果自负)

justfile

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,32 @@ init:
1212
clean:
1313
rm -rf build
1414

15-
# config:
16-
# # cmake --preset {{preset}} -DBUILD_SHARED_LIBS=OFF
17-
# xmake
18-
1915
build:
20-
# cmake --build --preset {{preset}} --config Release
2116
xmake
2217

2318
copy: build
24-
# cd ./build/x86-release-msvc/bin/Release && \
25-
# cp -f kpatch.dll "{{TARGET}}/kpatch.asi" && \
26-
# cp -f fmt.dll "{{TARGET}}/"
27-
# cp -f third/version.dll "{{TARGET}}/"
28-
29-
# cp build/windows/x86/release/version.dll "{{TARGET}}"
30-
3119
cp build/windows/x86/release/kpatch.dll "{{TARGET}}"
3220
cp build/windows/x86/release/left4dead2_fix.exe "{{TARGET}}"
3321

22+
release:
23+
rm release -rf
24+
mkdir -p release/testing
25+
26+
# release
27+
xmake f -m release
28+
xmake
29+
cp build/windows/x86/release/kpatch.dll release/
30+
cp build/windows/x86/release/left4dead2_fix.exe release/
31+
cp assets/请读我.txt release/
32+
cp third/4gb_patch.exe release/
33+
34+
# testing
35+
xmake f -m release.testing
36+
xmake
37+
cp build/windows/x86/release.testing/kpatch.dll release/testing
38+
cp build/windows/x86/release.testing/left4dead2_fix.exe release/testing
39+
cp assets/请读我-自测补丁.txt release/testing
40+
cp third/4gb_patch.exe release/testing
41+
3442
@run:
3543
./build/{{preset}}/bin/{{target}}

src/dllmain.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,18 @@
1515

1616
#include "helper.hpp"
1717

18+
#ifdef NDEBUG
19+
constexpr bool isDebug = false;
20+
#else
1821
constexpr bool isDebug = true;
22+
#endif
23+
24+
#ifdef NTESTING
25+
constexpr bool isTesting = false;
26+
#else
1927
constexpr bool isTesting = true;
28+
#endif
29+
2030

2131
HMODULE baseModule = GetModuleHandle(NULL);
2232
HMODULE thisModule; // Fix DLL

xmake.lua

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
-- add_requires("microsoft-proxy 2.4.0")
2-
add_rules("mode.debug", "mode.release")
32
add_rules("plugin.compile_commands.autoupdate")
3+
add_rules("mode.debug", "mode.release")
44

55
set_languages("cxx20", "c++20")
66

@@ -10,15 +10,9 @@ set_arch("x86") -- Use "x64" for 64-bit builds
1010
add_requires("spdlog")
1111
add_requires("vcpkg::detours")
1212

13-
-- local name = "version"
14-
-- target(name)
15-
-- set_kind("shared")
16-
-- add_files("src/dllmain.cpp")
17-
-- add_packages("spdlog")
18-
-- add_links("user32", "gdi32")
19-
-- add_linkdirs("$(projectdir)/lib")
20-
-- -- add_files(string.format("lib/%s.def", name), string.format("lib/%s.asm", name))
21-
-- add_files(string.format("lib/%s.def", name))
13+
if is_mode("release") then
14+
add_defines("NDEBUG", "NTESTING")
15+
end
2216

2317
local name = "kpatch"
2418
target(name)
@@ -34,3 +28,11 @@ target(name)
3428
add_files("assets/app.rc")
3529
add_links("user32", "gdi32")
3630
add_packages("vcpkg::detours")
31+
32+
33+
rule("mode.release.testing")
34+
on_config(function (target)
35+
if is_mode("release.testing") then
36+
target:add_defines("NDEBUG")
37+
end
38+
end)

0 commit comments

Comments
 (0)