-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
85cc5bf
commit bb7d53b
Showing
1 changed file
with
31 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,80 +1,72 @@ | ||
# EvaRPC-gmod | ||
# DiscordRPC-gmod | ||
|
||
**EvaRPC-gmod** is a specialized Discord Rich Presence (RPC) integration for WayZerRP, developed in C++. This project enables customized and dynamic Discord Rich Presence for Garry's Mod, displaying information about the server and other relevant details directly on your Discord profile. | ||
**DiscordRPC-gmod** is a specialized Discord Rich Presence (RPC) integration for the WayZerRP server in Garry's Mod, developed in C++. This project allows real-time, customizable Discord Rich Presence displays, showing server and gameplay details on your Discord profile. You can use this code as a template for other games where Rich Presence modifications are allowed, and you may also adjust offsets and settings as needed. | ||
|
||
## Features | ||
|
||
- **Discord Rich Presence Integration**: Displays real-time server information on your Discord profile. | ||
- **Dynamic Status Updates**: Automatically updates the Discord Rich Presence with information from Garry's Mod. | ||
- **Server Information Retrieval**: Extracts and displays the server IP address and other details in Discord. | ||
- **Logging**: Provides detailed logging of key events and errors for easier debugging and monitoring. | ||
- **Real-Time Discord Rich Presence**: Display dynamic, up-to-date server and gameplay information directly on your Discord profile. | ||
- **Customizable Status Updates**: Automatically syncs with Garry's Mod to show server details and status in real-time. | ||
- **Server Info Display**: Shows server IP and other relevant details on your Discord profile, enhancing visibility. | ||
- **Detailed Logging**: Provides extensive logs of events and errors for easy debugging and monitoring. | ||
|
||
## Compatibility | ||
|
||
- **Supported Version**: This program supports only the standard version of Garry's Mod. | ||
- **Unsupported Version**: The program does **not** support the Chromium version of Garry's Mod. | ||
- **Supported**: Works with the standard version of Garry's Mod. If it doesn't work that's means that offset is outdated. | ||
- **Not Supported**: Does **not** support the Chromium version of Garry's Mod. | ||
|
||
## Installation | ||
|
||
1. **Clone the Repository**: | ||
```sh | ||
git clone https://github.com/yourusername/EvaRPC-gmod.git | ||
cd EvaRPC-gmod | ||
git clone https://github.com/atheop1337/DiscordRPC-gmod | ||
cd DiscordRPC-gmod | ||
``` | ||
|
||
2. **Build the DLL**: | ||
- Ensure you have a C++ compiler and necessary dependencies installed. | ||
- Use CMake or your preferred build system to compile the project. For example, you can use the following commands if you are using CMake: | ||
- Ensure a compatible C++ compiler and dependencies are installed. | ||
- Use CMake or another build system to compile the project: | ||
```sh | ||
mkdir build | ||
cd build | ||
cmake .. | ||
cmake --build . | ||
``` | ||
|
||
**Note**: If you prefer not to build the DLL yourself or are unfamiliar with the process, you can download a precompiled DLL from the [RELEASE](https://github.com/TFZO/EvaRPC-gmod/releases/tag/Release) section of this repository. | ||
- Alternatively, download a precompiled DLL from the [Releases](https://github.com/atheop1337/DiscordRPC-gmod/releases/tag/Release) section if you prefer not to build the DLL yourself. | ||
|
||
3. **Inject the DLL**: | ||
- Inject the compiled DLL into the Garry's Mod process. You can use tools like **DLL injectors** to achieve this. | ||
- Use a **DLL injector** tool to inject the compiled DLL into the Garry's Mod process. | ||
## Configuration | ||
- **Log File Path**: By default, the logs are written to `C:\\TFZO\\TFZO_LOGS.txt`. If necessary, adjust this path in the `WriteToLogFile` function to suit your environment. | ||
- **Server Dictionary**: Modify the `serverDict` in the code to update the server IP-to-name mapping as needed. | ||
- **Log Path**: Logs are written to `C:\RPC\RPC_LOGS.txt` by default. Adjust the path in the `WriteToLogFile` function if needed. | ||
- **Server Dictionary**: Update `serverDict` in the code to match your server's IP-to-name mapping for accurate displays. | ||
|
||
## Usage | ||
|
||
1. **Run Garry's Mod**: Ensure that Garry's Mod is running and the DLL has been successfully injected. | ||
2. **Check Discord**: Your Discord profile should now display updated Rich Presence information, including server details. | ||
3. **Monitor Logs**: Check `C:\\TFZO\\TFZO_LOGS.txt` for detailed logs on the application's operation and any errors that may occur. | ||
1. **Start Garry's Mod**: Launch Garry's Mod and inject the DLL. | ||
2. **Verify on Discord**: Confirm that your Discord profile displays the Rich Presence with server details. | ||
3. **Review Logs**: Check `C:\RPC\RPC_LOGS.txt` for detailed logs on the application’s operation and error reporting. | ||
|
||
## Code Overview | ||
|
||
- **`GetLargeImageKeyFromServer`**: Returns the image key associated with a server IP from the `serverDict`. | ||
|
||
- **`WriteToLogFile`**: Writes log messages to a specified log file, creating necessary directories if they don't exist. | ||
- **`GetProcessID`**: Retrieves the process ID of a specified process. | ||
- **`GetModuleBaseAddress`**: Retrieves the base address of a specified module within a process. | ||
- **`getStatus`**: Reads memory from the Garry's Mod process to extract the server IP address and updates the Discord Rich Presence. | ||
|
||
- **`MainThread`**: The main thread function that periodically updates the Discord Rich Presence with the current server status. | ||
|
||
- **`DllMain`**: Handles DLL attachment and detachment events. | ||
- **`GetLargeImageKeyFromServer`**: Retrieves the Discord image key associated with the server IP from `serverDict`. | ||
- **`WriteToLogFile`**: Logs messages to a specified file, creating directories if they don’t exist. | ||
- **`GetProcessID`**: Fetches the process ID of the target application. | ||
- **`GetModuleBaseAddress`**: Retrieves the base address of a module within the target process. | ||
- **`getStatus`**: Reads memory to identify the server IP and updates Discord Rich Presence accordingly. | ||
- **`MainThread`**: Main loop that periodically refreshes the Discord Rich Presence with current server information. | ||
- **`DllMain`**: Manages DLL events for attachment and detachment. | ||
|
||
## Authors | ||
|
||
- **Author**: atheop1337 - [GitHub Profile](https://github.com/atheop1337) | ||
- **atheop1337** - [GitHub Profile](https://github.com/atheop1337) | ||
|
||
## Contributing | ||
|
||
Contributions to EvaRPC-gmod are welcome! If you have suggestions or improvements, please open an issue or submit a pull request. | ||
Contributions are encouraged! Feel free to open issues or submit pull requests to enhance EvaRPC-gmod. | ||
|
||
## License | ||
|
||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. | ||
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. | ||
|
||
This version is more concise and polished, with improved section organization and clearer instructions. Let me know if you want any additional customization! |