Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: 3D Camera Source Old School  (Visto 1148 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline zodiacddos Posteado: January 27, 2021, 11:28:37 AM

  • +1 puntos por ventas
  • *
  • Rank: Liga mayor
  • Posts: 189
  • Gracias recibida: 6849
  • ph
3D Camera cpp


Code: [Select]
#include "Stdafx.h"
#include "3DCamera.h"

extern "C" _declspec(dllexport) void MU()
{
    DWORD OldProtect;
    if(VirtualProtect(LPVOID(0x401000),4310016,PAGE_EXECUTE_READWRITE,&OldProtect))
    {   
        KeyboardSetHook(true);
        MouseSetHook(true);
    }
    else {
    MessageBoxA(NULL,"Your text here!","MuOnline Season 25 Ep.1",MB_OK);
    }
}

int APIENTRY DllMain (HINSTANCE hInst, DWORD dwReason, LPVOID lpReserved){
    switch(dwReason){   
        case DLL_PROCESS_DETACH:
            KeyboardSetHook(false);
            MouseSetHook(false);
            break;   
    }
    return true;
}

BOOL KeyboardSetHook(BOOL set_or_remove){
    if(set_or_remove == TRUE){
        if(KeyboardHook == NULL){
            KeyboardHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, hInstance, GetCurrentThreadId());
            if(!KeyboardHook){ return FALSE; }
        }
    } else {
        return UnhookWindowsHookEx(KeyboardHook);
        KeyboardHook = NULL;
    }
    return TRUE;
}

BOOL MouseSetHook(BOOL set_or_remove){
    if(set_or_remove == TRUE){
        if(MouseHook == NULL){
            MouseHook = SetWindowsHookEx(WH_MOUSE, MouseProc, hInstance, GetCurrentThreadId());
            if(!MouseHook){ return FALSE; }
        }
    } else { return UnhookWindowsHookEx(MouseHook); }
    return TRUE;
}

LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam){   
    if(((lParam>>31)&1) && (nCode == HC_ACTION)){
        if(wParam == VK_F9){
            *Camera_RotY = -48.5;
            *Camera_RotZ = -45;
            *Camera_PosZ = 150;
            *Camera_ClipX = 1190;
            *Camera_ClipY = 2400;
            *Camera_GlClip = 3000;
            *Camera_Zoom = 35;
        }

        if(wParam == VK_TAB){
            if(!InitCamera)
            { InitCamera = true;
            } else {
            InitCamera = false;
            }
        }

    }   
    return CallNextHookEx(KeyboardHook, nCode, wParam, lParam);
}

LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam){
    MOUSEHOOKSTRUCTEX* mhs = (MOUSEHOOKSTRUCTEX*)lParam;
    HWND MuWnd = FindWindow("MU", NULL);
    if(GetForegroundWindow() == MuWnd){
        if(InitCamera == true){
            Camera.ClipX = *Camera_ClipX;
            Camera.ClipY = *Camera_ClipY;
            Camera.GlClip = *Camera_GlClip;
            Camera.PosZ = *Camera_PosZ;
            Camera.RotY = *Camera_RotY;
            Camera.RotZ = *Camera_RotZ;
            Camera.Zoom = *Camera_Zoom;
        }

    if(InitCamera == true) {
       
        if(wParam == WM_MBUTTONDOWN){
            MoveCamera = true;
        }

        if(wParam == WM_MBUTTONUP){
            MoveCamera = false;
        }

        if(wParam == WM_MOUSEWHEEL){
            int direction = mhs->mouseData;
            if(direction > 0){
                if(*Camera_Zoom < 60){ *Camera_Zoom += 2; }
            }
            else if(direction < 0){
                if(*Camera_Zoom > 12){ *Camera_Zoom -= 2; }
            }
            *Camera_ClipX  = 1190 + (abs(*Camera_PosZ - 150) * 3) + 3000;
            *Camera_ClipY  = 2400 + (abs(*Camera_PosZ - 150) * 3) + 3000;
            *Camera_GlClip = 3000 + (abs(*Camera_PosZ - 150) * 3) + 1500;
        }
        else if(wParam == WM_MBUTTONDOWN){
            MouseX = mhs->pt.x;
            MouseY = mhs->pt.y;
        }

        else if(wParam == WM_MOUSEMOVE){
           
            if(MoveCamera){
                if(MouseX < mhs->pt.x){
                    *Camera_RotZ += 8;
                    if (*Camera_RotZ > 315) *Camera_RotZ = -45;
                }
                else if(MouseX > mhs->pt.x){
                    *Camera_RotZ -= 8;
                    if (*Camera_RotZ < -405) *Camera_RotZ = -45;
                }

                if(MouseY < mhs->pt.y){
                    if(*Camera_RotY < -45){   
                        *Camera_PosZ -= 44;
                        *Camera_RotY += (float)2.42;
                    }
                }
                else if(MouseY > mhs->pt.y){
                    if(*Camera_RotY > -90){
                        *Camera_PosZ += 44;
                        *Camera_RotY -= (float)2.42;
                    }
                }

                MouseX = mhs->pt.x;
                MouseY = mhs->pt.y;


                *Camera_ClipX = 1190 + (abs(*Camera_PosZ - 150) * 3) + 1500;
                *Camera_ClipY = 2400 + (abs(*Camera_PosZ - 150) * 3) + 1500;
                *Camera_GlClip = 3000 + (abs(*Camera_PosZ - 150) * 3) + 1500;
            }

            }
        }
    }
    return CallNextHookEx(MouseHook, code, wParam, lParam);
}

3D Camera h







Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
8 Replies
1925 Views
Last post December 25, 2018, 11:21:43 AM
by repiolaa
2 Replies
1259 Views
Last post July 24, 2019, 06:04:54 PM
by nxx
6 Replies
1215 Views
Last post November 06, 2019, 12:46:14 PM
by sp3cial
5 Replies
3033 Views
Last post October 01, 2023, 09:52:32 PM
by Shrimp
0 Replies
537 Views
Last post May 01, 2023, 07:01:57 AM
by 0373756266