-
-
Notifications
You must be signed in to change notification settings - Fork 438
Dev Tips
Let's document things. Even tiny ones. Don't ask, don't think too much about formatting. Just put any important knowledge about the project here in any readable form.
botder Today at 5:51 PM
You might not like it, but changing memory directly in deathmatch.dll is not ok
Raw memory address + memcpy in mods/deathmatch/logic/CClientGame.cpp
botder Today at 5:52 PM
multiplayer are hooks and some other weird stuff
game_sa is the "game interface layer"
so if you want to modify the game, do it through the game layer
if you make code for deathmath.dll you are not forced to understand how the game is in memory(edited)
Cazomino05 Today at 6:02 PM
multiplayer sa is hooks and memory modifications e.g. disabling code paths or any other memory overwrites you can think of
Declare DWORD dwReturnAddress = 0;
outside function, then in _asm
block add this code
push eax // save eax
mov eax, [esp + 4] // get return address
mov dwReturnAddress, eax
pop eax // restore eax value
Now you can check from where gta function was called.
Remember to add new interface methods at the end of that class, not in the middle ~ Botder
Look for function but name put in brackets example "isElement"
, if you click find all, you got client and server side then you just click on function and right click go to definition and here's your function.
https://stackoverflow.com/questions/47981/how-do-you-set-clear-and-toggle-a-single-bit
- If function accept any number of arguments, and one of them is wrong - function should fail completely and none changes should be applied.
- To extend the client timeout, put timeout.longtime in the same directory as netc.dll
Authors: Paweł K, Saml1er, CrosRoad95
Project Management
Git cheat sheet
Release Checklist
Code Review
Documentation
Contributors Guide
Style Guide
Lua API
Dev Tips
BitStream
CAccountPassword
Debug Settings
General
Testing Lua
Dependencies
MTADiag
Future Planning
CEF Versions
Windows XP Support
Things for 1.6