Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Buy OSRS Gold

Sell OSRS Gold

Search the Community

Showing results for tags 'C++'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • TRiBot
    • News and Announcements
    • Old School Scripts
    • Help and Guidance
    • Development
    • Bugs and Errors
    • Tutorials
  • Scripters' Forums
    • Scripter Application
  • RuneScape®
    • General
    • Guides/Tutorials
    • Achievements
  • General
    • General
    • Questions
    • Discussions & Debates
    • Introductions
    • Suggestions
    • Feedback
  • The Black Market
    • Disputes
    • Repository Credits
    • Gold Exchange
    • Item Exchange
    • Membership Sales
    • Services
    • Other
    • Middleman Services

Blogs

  • Getting Started With TRiBot
  • The Best Way To Get Rid Of Termites
  • How to Generate Real Estate Leads Using Twitter
  • A Guide to Landing Pages
  • Dog Grooming in Sydney – 5 steps to finding a grooming salon
  • Cheap RS 2007 Gold for Spring 2020!
  • Logo Design Mistakes- Your Business Should Avoid at All Cost
  • Effective Pest Control Measures
  • В Алматы карантин из-за коронавируса: жизнь в условиях пандемии
  • Preschool Educational Toys, Helping One's Child Prepare For the Future
  • Automating Tribot
  • Payment error
  • Animal Crossing: New Horizons Cuts Player Interest Rates
  • network-security-engineer
  • SERVICES 100% BY HAND
  • The best place to buy Animal Crossing Bells
  • Major Content of Escape from Tarkov Patch 0.12.5.6924 Optimizations
  • You need to rest properly when playing Rocket League
  • Escape from Tarkov hits 200k concurrent players
  • List of Rocket League Ranking System
  • Should I need to run a paid ad campaign, when organically I rank well?
  • Rocket League SPRING SERIES: EUROPE TAKEAWAYS
  • How to play Rocket League
  • Twitch Drops Come Back in Escape from Tarkov
  • The Path of Exile game features
  • Be more seen
  • Rocket League Took Actions to Fight Racism and Discrimination in the Game 
  • Rocket League camera setting 
  • Animal Crossing -List of Wedding Season Rewards
  • What WoW Classic race and sophistication is best?
  • FIFA 21 Coming to Steam
  • The Ideal Place for Global Players to Buy and Sell Rocket League Items 
  • Customize furniture in Animal Crossing: New Horizons
  • ABOUT NBA 2K20
  • Purchase Cheap RL Items from Lolga.com to set aside bunches of Cash 
  • Ethan Smith
  • How much does WoW Classic cost?
  • Special Olympics NY partners with Mission Control for Rocket League competitions

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


Bio

Found 4 results

  1. I love C++ more then I love Java and would love to start writing scripts in c++. Any API's or material I can use to start writing scripts? I've never written a script before, and I'm assuming its much more different then doing it with java. Any advice or tips would be awesome ^.^ #include <iostream>#include <string>using namespace std;int main(){ cout << "Hello World!!! << endl;}Much more efficient then having to write std:: all the time XD Also, I prefer Code::Blocks as an ide over anything the microsoft makes and eclipse (though Eclipse has some things going for it.
  2. Ponzi

    Debugging tools

    So here are some useful debugging tools that I use from time to time which should help you guys understand more about a process's memory, process's threads and give you a general idea of how does a process work. IDA: Debugging files on the three platforms IDA natively runs on (i.e., Windows, Linux, Mac OS X) is straightforward, and thanks to the power of remote debugging servers, it is possible to enable debugging of any executable, from any platform! https://www.hex-rays.com/products/ida/debugger/ Ollydbg x32/x64: OllyDbg is a 32-bit/ 64-bit assembler level analysing debugger for Microsoft® Windows®. Emphasis on binary code analysis makes it particularly useful in cases where source is unavailable. http://www.ollydbg.de/ ProcessHacker 2: A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. http://processhacker.sourceforge.net/ Cheat Engine: Cheat Engine is an open source tool designed to help you with modifying single player games running under window so you can make them harder or easier depending on your preference(e.g: Find that 100hp is too easy, try playing a game with a max of 1 HP), but also contains other usefull tools to help debugging games and even normal applications. It comes with a memory scanner to quickly scan for variables used within a game and allow you to change them, but it also comes with a debugger, disassembler, assembler, speedhack, trainer maker, direct 3D manipulation tools, system inspection tools and more. http://www.cheatengine.org/index.php
  3. So guys this is a simple way to hook and debug functions. The use of this is that we can edit functions to your liking and modify the parameters and return values of them. With slight modifications you can modify any function to your liking too. I have put in a lot of comments that should help, hope someone has use of this. Also if you guys are interested in learning anything comment. Skill level required: 3/10 #include <Windows.h>#include <iostream>DWORD getAPI(char *Dll, char* API){ return (DWORD)GetProcAddress(GetModuleHandleA(Dll), API); //Get the module base address then find the address of the API in that module.}typedef BOOL(__stdcall * Beep_)(DWORD dwFreq, DWORD dwDuration); // Can find this wrapper on MSDN with a google searchBeep_ pBeep;BOOL __stdcall BeepX(DWORD dwFreq, DWORD dwDuration){ //dwFreq = dwFreq / 2; Proof we can change the functions paramaters //dwDuration = dwDuration / dwFreq; Proof we can change the functions paramaters printf("[Beep Called] Frequency: %d Duration: %d\n",dwFreq, dwDuration); //We can get and modify the parameters before it actually gets called. return pBeep(dwFreq, dwDuration); //Return the Beep wrapper}void *Detour(PBYTE pAddress, PBYTE dwJumpTo, DWORD dwLen){ DWORD dwOldProtect, dwBkup, dwRelAddr; VirtualProtect(pAddress, dwLen, PAGE_EXECUTE_READWRITE, &dwOldProtect); //Make sure we can write to the address and save it's old protection dwRelAddr = (DWORD)(dwJumpTo - (DWORD)pAddress) - 5; // Calcualte the JMP address, 5 bytes is uses for a standard JMP in 32bit applications *pAddress = 0xE9; //0xE9 is the byte opcode for JMP *((DWORD *)(pAddress + 0x1)) = dwRelAddr; // So we want to write to the address and we have + 1 byte so we don't over write the JMP for (DWORD x = 0x5; x < dwLen; x++) *(pAddress + x) = 0x90; //If the length of the JMP goes over 5 bytes we nop the rest of the bytes beacuse it's useless VirtualProtect(pAddress, dwLen, dwOldProtect, &dwBkup); //Restore the old protection dwBkup is useless and just for debugging tests return (PVOID)(pAddress + dwLen); // We want to return the address + size of jump so if we use to call back where the detour is we go to the next avaible bytes}int main(){ DWORD BeepAddy = getAPI("kernel32.dll", "Beep"); if (BeepAddy) //If we fine Beep in Kernel32 pBeep /*We want to point our wrapper to the 5 bytes after we just hook so the function gets called.*/ = (Beep_)Detour((BYTE*)BeepAddy/*Location of where the function is in memory*/, (BYTE*)&BeepX/*Address of our BeepX function*/, 5/*Size of bytes needed for the JMP*/); while (1) { BeepX(1000, 1000); //We can call our hooked function or the function directly does not matter. //Beep(1000, 1000); }}
  4. Hello, welcome to my game programming tutorial. Here, I'm going to tutor from the ground up. This tutorial will be for the Windows platform and done in Visual Studio or DirectX 9 because it's ancient and anyone who's ever used windows has heard of it. Let's skip the bullshit and get started, shall we? I assume you know the basics of C++. Alright, after firing up Visual Studio, add in main.cpp, this is what we'll start with. #include <Windows.h>INT WINAPI WinMain( HINSTANCE hInstance, HINSTANCE, LPSTR lpCmd, INT nCmdShow ){ return EXIT_SUCCESS;}We're not in kindergarden anymore, so we won't be using a console project or the elementary int main(). Read msdn on the Windows Main function to understand the details. WINAPI is a #define'd function prototype. If you don't know what that is or about function pointers, leave now and come back when you actually know C++. And go learn bitwise operations while you're at it. For those still here, note how I don't have the previous instance either. Since we're not in the stone age, we won't be needing it. Alright, now let's create and register a class so we can actually create a display window. We can't have DirectX draw our game when there's nothing to draw on. Apparently, the class demands a window procedure function. So let's make one. LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ){ if( uMsg == WM_DESTROY ) { PostQuitMessage( 0 ); return 0; } return DefWindowProc( hWnd, uMsg, wParam, lParam );}If you've done your homework, you'd know that the default windows procedure doesn't send the Quit message. That's why we went through the trouble of making our own that does. Let's pass that to our class and fill it in. WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = &WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = NULL; wc.hCursor = NULL; wc.hbrBackground = CreateSolidBrush( RGB(0,0,0) ); wc.lpszMenuName = NULL; wc.lpszClassName = "Direct3D Engine"; if( !RegisterClass( &wc ) ) return EXIT_FAILURE;Technically, we're supposed to have a Cursor resource, but the operating system fills in a default one if it isn't provided or if you've messed up linking the resources. Now that we have a class registered, we can finally create our window. It's done with a simple function. ULONG flags = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_VISIBLE; RECT rec = { 100, 100, 740, 580 }; AdjustWindowRect( &rec, flags, FALSE ); HWND hWnd = CreateWindow( "Direct3D Engine", "DirectX Engine", flags, rec.left, rec.top, rec.right - rec.left, rec.bottom - rec.top, NULL, NULL, hInstance, NULL ); if( !hWnd ) return EXIT_FAILURE;Why are we adjusting the window, you may ask? When the window is created, it's created at exactly that size. The client is only a fraction of the size of the window, so we're adjusting the window so that the client is the size we want (in this case, 640 x 480 ). Obviously, there will be some funky visual artifacts if we only estimate the client size and if we need to pass them as arguments to some structure or function for DirectX to process. Alright, now we have our window. You may as well make the above code within some arbitrary QuickCreateWindow function that returns a HWND, a handle to the window (duh), instead of the windows main function because that's essentially the only resourceful thing we need here. Next, let's work with the messages we'll get. Obviously, our game will have some form of input. MSG msg; do { PeekMessage( &msg, NULL, NULL, NULL, PM_REMOVE ); TranslateMessage( &msg ); DispatchMessage( &msg ); }while( msg.message != WM_QUIT );Notice, we're not using GetMessage, but PeekMessage. Why? Because GetMessage is retarded, that's why. It sleeps the program until it has input to process. Obviously, it'll be a problem even if the client is pressing a key or moving the mouse almost all of the time. Well, this concludes the very first tutorial. It's a prerequisette to the the next tutorial where we actually draw something. All of my tutorials will be mantained in this thread.
×
×
  • Create New...