Admin Admin
Jumlah posting : 113 Join date : 02.12.12 Age : 26 Lokasi : denpasar bali
| Subyek: SC ayodance D3D MENU Tue Jul 02, 2013 6:22 pm | |
| /#Name Author : edward hacker /#Website : www.edwardprohacker.indonesianforum.net /#Thanks to : friends
//VjRichard
#include <windows.h> #include <stdio.h>
//remove these stupid warnigs #pragma warning(disable:4996) #pragma warning(disable:4312)
//default keys #define VALINC VK_RIGHT #define VALDEC VK_LEFT #define ITMINC VK_DOWN #define ITMDEC VK_UP #define MNSHOW VK_INSERT #define AFKBOT VK_F2
//never saw them changed but you will need to change them for CFPH #define ID_MSG 0x1C #define ID_NOR 0x16 #define ID_AFK 0x37
class CMenu;
//so we include in only one cpp file #ifndef MYMENU #define MYMENU class CMenu { private: //some private members char name[100]; //name of the coder (or nothing) char items[100][100]; //items in the menu .. max 100 item and 100 character per item char** options[100]; //pointer to options array DWORD* values[100]; //pointer to value holder DWORD curitem; //current active item DWORD numitems; //current number of elements
void DrawMessage(DWORD Type, DWORD dwID, DWORD dwType2, LPVOID lpText); bool IsVisible(); void PushToConsole(LPSTR command);
public: DWORD MessageFunc; //ingame message box function DWORD VisibleState; //ingame message state variable DWORD PTC; //LTC
CMenu(LPSTR lpName = NULL); ~CMenu();
void Nav(); void AddItem(LPSTR lpText, char** options, DWORD* val); bool Ready(); }; #endif
===========================Menu.Cpp===========================
#include "menu.h"
CMenu::CMenu(LPSTR lpName) { //initilize variables values to NULL strcpy(name, lpName); MessageFunc = NULL; VisibleState = NULL; curitem = NULL; numitems = NULL; }
CMenu::~CMenu() { }
//Check if we are ready or not bool CMenu::Ready() { return (GetModuleHandleA("ClientFx.Fxd") > 0); }
//Adds a new item void CMenu::AddItem(LPSTR lpText, char** opt, DWORD* val) { values[numitems] = val; options[numitems] = opt; strcpy(items[numitems++], lpText); }
//Draw the message to the game void CMenu::DrawMessage(DWORD Type_, DWORD dwID, DWORD dwType2, LPVOID lpText) { if (!MessageFunc) return; if (Type_ == ID_MSG) if (IsVisible()) return; DWORD MsgBoxFunc = MessageFunc;
__asm { push lpText; push dwType2; push dwID; push Type_; call MsgBoxFunc; add esp, 16; } }
//checks if the menu is visible or not bool CMenu::IsVisible() { if (!VisibleState) return false; if ((*(DWORD*)(VisibleState)) == ID_NOR) return false; return true; }
//Push to console function //we will use it to fix centered cursor void CMenu::PushToConsole(LPSTR command) { if (!PTC) return; DWORD pointer = *(DWORD*)(PTC); if (pointer) { DWORD FuncToCall = *(DWORD*)(pointer+0x1FC); if (FuncToCall) { __asm { push command; call FuncToCall; add esp, 4; } } } }
//Control menu navigation void CMenu::Nav() { //use a variable to check if we need to redraw bool drawing = false;
//When afkbot key (default f2) is pressed if (GetAsyncKeyState(AFKBOT)) { //draw the storage message DrawMessage(ID_AFK, 0, 0, 0);
//fix the centered cursor PushToConsole("CursorCenter 0"); Sleep(50);
//move the cursor.. now the user can left click to activate SetCursorPos(500, 500); }
if (!numitems) return; DWORD curval = *values[curitem];
//when toggle menu key is pressed (default insert) if (GetAsyncKeyState(MNSHOW)) { if (IsVisible()) { DrawMessage(ID_NOR, 0, 0, 0); return; } else drawing = true; } else if (!IsVisible()) return;
//When the user tries to get the next item (default down) if (GetAsyncKeyState(ITMINC)) { curitem++; if (curitem >= numitems) curitem = 0; drawing = true; }
//When the user tries to get the previous item (default up) if (GetAsyncKeyState(ITMDEC)) { if (curitem == 0) curitem = numitems; curitem--; drawing = true; }
//When the user tries to increase the value (default right) if (GetAsyncKeyState(VALINC)) { if (options[curitem][curval+1]) { curval++; *values[curitem] = curval; drawing = true; } }
//When the user tries to decrease the value (default left) if (GetAsyncKeyState(VALDEC)) { if (curval) { curval--; *values[curitem] = curval; drawing = true; } }
//if we have to redraw if (drawing) { //remove any exising message DrawMessage(ID_NOR, 0, 0, 0); Sleep(50);
//write the message to a buffer char buffer[200]; sprintf(buffer, "%s\n%s : %s", name, items[curitem], options[curitem][curval]);
//draw the message DrawMessage(ID_MSG, 0x70, 4, buffer); }
} Untuk Offsetnya : ChangeWeapon:0x138D5F RangeWeapon:0x128AB3 ModeType:0x12CCDA MaxAmmo:0x13B4F4 UnlimitedAmmo:0x13B6AE NoSpread:0x138E46 WeaponMGR:0xB5D5F8 WallMgr:0xB5D5E0 FallMgr:0xB5D5D8 BasicPlayerInfo:0xAF64C4 InjectionMsg:0xA4180 LTClient:0xB5E378 No Reload:0xC2C OHK & No Grnd Dmg:0x818 Shoot Through Wall's :0x4EC , 4E8 , 4F0 NoWeaponWeight:0xB04 NoWeaponChangeDelay:0xC30 FastKnife1:0xA60 FastKnife2:0xAA8 KnifeOHK1:0xBF8 KnifeOHK2:0xC04 CrouchSpeed:0xC ShotGunSpread:0x3524,0x860pointer mesti di update .. cara mengupdate menggunakan loadib.exe , olydbg , dan extrap bypass | |
|