Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool SetKey(UINT message, WPARAM wParam, CVar *cVar );
- BOOL GetKeyName(UINT message, UINT nVK, string* strOut);
- bool CVarManager::SetKey(UINT message, WPARAM wParam, CVar *cVar )
- {
- static bool set = true;
- int iKey = 0;
- switch (message)
- {
- case WM_LBUTTONDOWN:
- iKey = VK_LBUTTON;
- set = false;
- break;
- case WM_RBUTTONDOWN:
- iKey = VK_RBUTTON;
- set = false;
- break;
- case WM_MBUTTONDOWN:
- iKey = VK_MBUTTON;
- set = false;
- break;
- case WM_XBUTTONDOWN:
- iKey = VK_XBUTTON1;
- set = false;
- break;
- case WM_KEYDOWN:
- if(wParam >= 'A' && wParam <= 'Z' || wParam >= '0' && wParam <= '9')
- iKey = (int)VkKeyScanEx(wParam,GetKeyboardLayout(0));
- else
- iKey = (int)wParam;
- set = false;
- break;
- default:
- break;
- }
- if (set == false)
- {
- string strKey;
- GetKeyName(message,wParam,&strKey);
- if (message == WM_KEYDOWN )
- iKey = (int)wParam;
- cVar->SetInteger(iKey);
- cVar->SetString(strKey);
- return true;
- }
- return false;
- }
- BOOL CVarManager::GetKeyName( UINT message, UINT nVK, string* strOut )
- {
- BOOL bResult = FALSE;
- char keystr [20] = "";
- switch(nVK)
- {
- // Keys which are "extended" (except for Return which is Numeric Enter as extended)
- case VK_LBUTTON:
- strOut->assign("MOUSE L");
- bResult = true;
- break;
- case VK_RBUTTON :
- strOut->assign("MOUSE R");
- bResult = true;
- break;
- case VK_MBUTTON:
- strOut->assign("MOUSE M");
- bResult = true;
- break;
- case VK_XBUTTON1:
- strOut->assign("MOUSE X");
- bResult = true;
- break;
- default:
- break;
- }
- if (bResult)
- return bResult;
- switch (message)
- {
- case WM_LBUTTONDOWN:
- strOut->assign("MOUSE L");
- bResult = true;
- break;
- case WM_RBUTTONDOWN :
- strOut->assign("MOUSE R");
- bResult = true;
- break;
- case WM_MBUTTONDOWN:
- strOut->assign("MOUSE M");
- bResult = true;
- break;
- case WM_XBUTTONDOWN:
- strOut->assign("MOUSE X");
- bResult = true;
- break;
- case WM_KEYDOWN:
- {
- UINT nScanCode = MapVirtualKeyEx(nVK, /*MAPVK_VSC_TO_VK*/ MAPVK_VK_TO_VSC, GetKeyboardLayout(0));
- switch(nVK)
- {
- // Keys which are "extended" (except for Return which is Numeric Enter as extended)
- case VK_INSERT:
- case VK_DELETE:
- case VK_HOME:
- case VK_END:
- case VK_NEXT: // Page down
- case VK_PRIOR: // Page up
- case VK_LEFT:
- case VK_RIGHT:
- case VK_UP:
- case VK_DOWN:
- // case VK_MENU:
- nScanCode |= 0x100; // Add extended bit
- }
- // GetKeyNameText() expects the scan code to be on the same format as WM_KEYDOWN
- // Hence the left shift
- bResult = GetKeyNameText(nScanCode << 16,keystr , 19);
- strOut->assign(keystr);
- }
- break;
- default:
- strOut->assign("Unknown");
- break;
- }
- return bResult;
- }
- Vars Cvars = CVarManager::Instance()->Cvars;
- if (!Cvars[CVAR_AimKey]->GetBoolean())
- {
- CVar *cVar = Cvars[CVAR_AimKey];
- cVar->SetString("");
- if (GetAsyncKeyState(VK_MENU)&1)
- CVarManager::Instance()->SetKey(WM_KEYDOWN,VK_MENU,cVar);
- else if (uMsg == WM_KEYDOWN || (uMsg >=WM_MOUSEFIRST && uMsg <= WM_MOUSELAST) )
- CVarManager::Instance()->SetKey(uMsg,wParam, cVar);
- Cvars[CVAR_AimBot]->SetBoolean(false);
- return CallWindowProc(g_pfnWndProc, hWnd, uMsg, wParam, lParam);
- }
Add Comment
Please, Sign In to add comment