MirGui.cpp
资源名称:盛大传奇外挂原代码.rar [点击查看]
上传用户:marco7834
上传日期:2010-02-24
资源大小:82k
文件大小:6k
源码类别:
游戏引擎
开发平台:
Visual C++
- // MirGui.cpp : Defines the entry point for the application.
- //
- #include "stdafx.h"
- #include "resource.h"
- #include "mirgroup.h"
- #include <windowsx.h>
- #include <stdio.h>
- #include "mirgame.h"
- #include "mirminimap.h"
- #include "mirgamemap.h"
- #define MAX_LOADSTRING 100
- #define MAX_LOGLINES 100
- #define MINIMAP_WIDTH 120
- #define MINIMAP_HEIGHT 120
- #define MINIMAP_DISPLAYX 636
- #define MINIMAP_DISPLAYY 17
- // Global Variables:
- HINSTANCE hInst; // current instance
- HWND g_hSysLog = NULL;
- HWND g_hChatLog = NULL;
- HWND g_hMainDlg = NULL;
- CMirGame mirgame;
- CMirMiniMap * pMiniMap;
- CMirGameMap * pGameMap;
- int minimap_x = 325;
- int minimap_y = 267;
- LRESULT CALLBACK MirGuiDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
- VOID CALLBACK TimerProc2(
- HWND hwnd, // handle of window for timer messages
- UINT uMsg, // WM_TIMER message
- UINT idEvent, // timer identifier
- DWORD dwTime // current system time
- )
- {
- int dirbits=0;
- char tmpStr[200];
- int bs = 0;
- if( GetKeyState( VK_UP ) & 0x80 )
- {
- minimap_y --;
- dirbits |= 1;
- //mirgame.LogChat( "(%d,%d)", minimap_x, minimap_y );
- }
- if( GetKeyState( VK_RETURN ) & 0x80 && GetKeyState( VK_CONTROL ) & 0x80 )
- {
- if( GetFocus() == GetDlgItem( g_hMainDlg, ED_CHAT ))
- {
- GetDlgItemText( g_hMainDlg, ED_CHAT, tmpStr, 200 );
- SetDlgItemText( g_hMainDlg, ED_CHAT, "" );
- bs = strlen( tmpStr );
- if( bs > 0 )
- {
- if( tmpStr[bs-2]== 0x0d && tmpStr[bs-1] == 0x0a )
- tmpStr[bs-2] = ' ';
- mirgame.Say( tmpStr );
- }
- }
- }
- if( GetKeyState( VK_DOWN ) & 0x80 )
- {
- dirbits |= 4;
- minimap_y ++;
- //mirgame.LogChat( "(%d,%d)", minimap_x, minimap_y );
- }
- if( GetKeyState( VK_LEFT ) & 0x80 )
- {
- dirbits |= 8;
- minimap_x --;
- //mirgame.LogChat( "(%d,%d)", minimap_x, minimap_y );
- }
- if( GetKeyState( VK_RIGHT ) & 0x80 )
- {
- dirbits |= 2;
- minimap_x ++;
- //mirgame.LogChat( "(%d,%d)", minimap_x, minimap_y );
- }
- switch( dirbits )
- {
- case 1:
- dirbits = 0;
- break;
- case 2:
- dirbits = 2;
- break;
- case 4:
- dirbits = 4;
- break;
- case 8:
- dirbits = 6;
- break;
- case 3:
- dirbits = 1;
- break;
- case 6:
- dirbits = 3;
- break;
- case 12:
- dirbits = 5;
- break;
- case 9:
- dirbits = 7;
- break;
- default:
- dirbits = 9;
- }
- //mirgame.Run( dirbits );
- }
- VOID CALLBACK TimerProc(
- HWND hwnd, // handle of window for timer messages
- UINT uMsg, // WM_TIMER message
- UINT idEvent, // timer identifier
- DWORD dwTime // current system time
- )
- {
- HDC hdc;
- hdc = GetDC( g_hMainDlg );
- pMiniMap->Draw( hdc, 635, 15, 120, 120 );
- pGameMap->Draw( hdc, 420, 20 );
- ReleaseDC( g_hMainDlg, hdc );
- return ;
- }
- int APIENTRY WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow)
- {
- // minimap.InitMiniMap( "d:/mmap.wix", "d:/mmap.wil" );
- // minimap.SetMMap( 160 );
- SetTimer( 0, 0, 10, TimerProc );
- SetTimer( 0, 0, 10, TimerProc2 );
- pGameMap = mirgame.GetGameMap();
- pMiniMap = mirgame.GetMiniMap();
- DialogBox(hInst, (LPCTSTR)IDD_MIRGUIDLG,GetDesktopWindow(), (DLGPROC)MirGuiDlgProc);
- return 0;
- }
- DWORD ThreadProc( PVOID * p )
- {
- return mirgame.EnterGame( 1 );
- }
- LRESULT CALLBACK MirGuiDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- DWORD idcmd;
- static int AreaId = 0;
- static int ServerId = 0;
- static int xofs = 0,yofs = 0;
- static BOOL bMouseDown = FALSE;
- static POINT pt;
- static RECT rcWindow;
- char tmpStr[200];
- char servername[64];
- char serverip[64];
- char Account[64];
- char Password[64];
- DWORD pid;
- switch (message)
- {
- case WM_INITDIALOG:
- //SetWindowRgn( hDlg, h, FALSE );
- g_hMainDlg = hDlg;
- g_hSysLog = GetDlgItem( hDlg, LB_SYSLOG );
- g_hChatLog = GetDlgItem( hDlg, LB_CHATLOG );
- mirgame.InitLogSystem( g_hSysLog, g_hChatLog, MAX_LOGLINES );
- SetGroupFile( "group.dat" );
- SetAreaList( GetDlgItem( hDlg, CB_AREA ));
- SetServerCaptionList( GetDlgItem( hDlg, CB_SERVER ), 0 );
- //SetWindowLong( hDlg, GWL_ID, 0 );
- GetWindowRect( hDlg, &rcWindow );
- mirgame.LogChat( "%d, %d - %d, %d", rcWindow.left, rcWindow.top, rcWindow.right ,rcWindow.bottom );
- return TRUE;
- case WM_PAINT:
- break;
- case WM_LBUTTONDOWN:
- break;
- case WM_LBUTTONUP:
- break;
- case WM_MOUSEMOVE:
- break;
- case WM_CLOSE:
- EndDialog(hDlg, LOWORD(wParam));
- return TRUE;
- break;
- case WM_COMMAND:
- idcmd = LOWORD( wParam );
- switch( idcmd )
- {
- case CB_SERVER:
- ServerId = ComboBox_GetCurSel(GetDlgItem( hDlg, CB_SERVER));
- break;
- case CB_AREA:
- AreaId = ComboBox_GetCurSel(GetDlgItem( hDlg, CB_AREA));
- SetServerCaptionList( GetDlgItem( hDlg, CB_SERVER ), AreaId );
- ServerId = ComboBox_GetCurSel(GetDlgItem( hDlg, CB_SERVER));
- break;
- case BT_CONNECT:
- GetServerName( AreaId, ServerId, servername );
- GetIpAddress( AreaId, serverip );
- sprintf( tmpStr, "%s:%s", servername, serverip );
- if( !mirgame.OpenGateServer( serverip ) )
- break;
- GetDlgItemText( hDlg, ED_ACCOUNT, Account, 64 );
- GetDlgItemText( hDlg, ED_PASSWORD, Password, 64 );
- //if( strlen( Account ) > 0 && strlen( Password ) > 4 )
- {
- if( mirgame.Login( Account, Password ) )
- {
- //mirgame.LogSystem( servername );
- if( mirgame.EnterServer( servername ))
- {
- if( mirgame.EnterSelCharServer() )
- {
- CreateThread( NULL, 1024 * 1024 * 1, (LPTHREAD_START_ROUTINE)ThreadProc, 0, 0, &pid );
- //mirgame.EnterGame( 0 );
- }
- }
- }
- }
- //MessageBox( 0, tmpStr, 0, 0 );
- //LogToList( GetDlgItem( hDlg, LB_SYSLOG ), tmpStr );
- // LogSystem( tmpStr );
- //ComboBox_GetCurSel( GetDlgItem(hDlg, CB_SERVER ))
- break;
- case BT_DISCONNECT:
- mirgame.Logout();
- break;
- case BT_SEND:
- GetDlgItemText( hDlg, ED_CHAT, tmpStr, 200 );
- if( strlen( tmpStr ) > 0 )
- mirgame.Say( tmpStr );
- break;
- }
- break;
- }
- return FALSE;
- }
- LRESULT CALLBACK MirGuiDlgProc2(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- // DWORD idcmd;
- switch (message)
- {
- case WM_INITDIALOG:
- return TRUE;
- case WM_CLOSE:
- EndDialog(hDlg, LOWORD(wParam));
- return TRUE;
- break;
- case WM_COMMAND:
- break;
- }
- return FALSE;
- }