archive: add 5 repo prompt(s) [skip ci]

This commit is contained in:
github-actions[bot]
2026-02-24 13:50:15 +00:00
parent 5d8ef01bf8
commit f8f9feb7a0
5 changed files with 259401 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
Project Path: arc_Bratah123_BattleAnalysis176_o47zxww_
Source Tree:
```txt
arc_Bratah123_BattleAnalysis176_o47zxww_
├── README.md
└── battle_analysis.cpp
```
`README.md`:
```md
# BattleAnalysis176
A C++ Console Program that calculates some in games stats after a certain time.
## Goals
- This Programs goal is to simulate Maplestory's Battle Analysis but in Maplestory v176
- It uses pointers and offsets to read the client's in game stats and after a certain time interval calculates how much mesos and nx you'd make in an hour.
- Intended use is for v176 Private Servers, but might add more memory addresses for different versions.
## Installation
- Go into battle_analysis.cpp and change the Window Name to match your Maplestory Window Name.
- Using any C++ compiler, compile the file which will output an exe.
- Make sure to run the exe as admin for it to work.
- Then farm and type anything and press enter in console for it to tell you how much you make!
```
`battle_analysis.cpp`:
```cpp
#include <iostream>
#include <Windows.h>
#include <vector>
#include <string>
#include <time.h>
// Make sure this Window Name is exactly as your MapleStory window name.
const char* kWindowName = "SpiritMS";
const ULONG kEntryPoint = 0x00400000;
const ULONG kMaplePointBase = 0x1EC41B8;
const ULONG kMaplePointOffset = 0x67FC;
ULONG ReadPointers(HANDLE &handle, ULONG base_address, std::vector<ULONG> offsets){
ULONG pointer;
ReadProcessMemory(handle, (PBYTE*)(base_address), &pointer, sizeof(pointer), 0);
for(auto offset: offsets) {
ReadProcessMemory(handle, (PBYTE*)(pointer + offset), &pointer, sizeof(pointer), 0);
}
return pointer;
}
int main() {
std::cout << "Starting Battle Analysis...\n";
HWND hwnd = FindWindowA(NULL, kWindowName);
if (hwnd == NULL) {
std::cout << "Could not find Window:" << kWindowName << std::endl;
Sleep(3000);
exit(-1);
}
DWORD process_id = 0;
GetWindowThreadProcessId(hwnd, &process_id);
HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, process_id);
// Open with ALL ACCESS to be able to read and write memory (basically run as admin)
if(handle == 0){
std::cout << "Make sure this program is ran as administrator.\n";
} else if(process_id == 0) {
std::cout << "Could not obtain the process id.\n";
Sleep(3000);
exit(-1);
}
clock_t start_time = clock();
std::vector<ULONG> offsets{kMaplePointOffset};
auto maple_points = ReadPointers(handle, kEntryPoint + kMaplePointBase, offsets);
std::cout << "\nStarting Stats:\n";
std::cout << "Maple Points: " << maple_points << std::endl;
std::string confirm;
std::cout << "\nType in anything and press enter to end Battle Analysis.";
std::cin >> confirm;
clock_t end_time = clock();
auto end_maple_points = ReadPointers(handle, kEntryPoint + kMaplePointBase, offsets);
auto seconds = (double)(end_time - start_time) / CLOCKS_PER_SEC;
auto minutes = seconds / 60.0;
std::cout << "You've gained a total of " << end_maple_points - maple_points << " maple points in " << minutes << " minutes." << std::endl;
return 0;
}
```
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff