📄 gmtoolmanager.cpp
字号:
}
}
}
void CGMToolManager::OnClickMenu( int nMenu )
{
if( nMenu >= eMenu_Count )
{
if( m_nSelectMenu < eMenu_Count )
{
if( m_hWndSub[m_nSelectMenu] )
ShowWindow( m_hWndSub[m_nSelectMenu], SW_HIDE );
CheckDlgButton( m_hWndDlg, IDC_GM_MNBTN_MOVE + m_nSelectMenu, BST_UNCHECKED );
}
m_nSelectMenu = eMenu_Count;
CheckDlgButton( m_hWndDlg, IDC_GM_MNBTN_NONE, BST_CHECKED );
m_bSubShow = FALSE;
SetFocus( _g_hWnd );
}
else
{
if( m_nSelectMenu == nMenu )
{
if( m_hWndSub[m_nSelectMenu] )
ShowWindow( m_hWndSub[m_nSelectMenu], SW_HIDE );
CheckDlgButton( m_hWndDlg, IDC_GM_MNBTN_MOVE + m_nSelectMenu, BST_UNCHECKED );
m_nSelectMenu = eMenu_Count;
CheckDlgButton( m_hWndDlg, IDC_GM_MNBTN_NONE, BST_CHECKED );
m_bSubShow = FALSE;
SetFocus( _g_hWnd );
}
else
{
ShowWindow( m_hWndSub[m_nSelectMenu], SW_HIDE );
CheckDlgButton( m_hWndDlg, IDC_GM_MNBTN_MOVE + m_nSelectMenu, BST_UNCHECKED );
m_nSelectMenu = nMenu;
SetPositionSubDlg();
CheckDlgButton( m_hWndDlg, IDC_GM_MNBTN_MOVE + m_nSelectMenu, BST_CHECKED );
if( m_hWndSub[m_nSelectMenu] )
AnimateWindow( m_hWndSub[m_nSelectMenu], 200, AW_SLIDE | AW_HOR_POSITIVE );
m_bSubShow = TRUE;
}
}
}
BOOL CGMToolManager::OnGMMoveCommand( int nMethod )
{
if( !HERO ) return FALSE;
if( !m_hWndSub[eMenu_Move] ) return FALSE;
SetFocus( _g_hWnd );
if( nMethod == 0 )
{
BOOL bRt;
VECTOR3 pos;
pos.x = GetDlgItemInt( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_X, &bRt, TRUE ) * 100.0f;
if( !bRt ) return FALSE;
pos.y = 0;
pos.z = GetDlgItemInt( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_Y, &bRt, TRUE ) * 100.0f;
if( !bRt ) return FALSE;
MOVE_POS msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MOVE_SYN;
msg.dwObjectID = HEROID;
msg.dwMoverID = HEROID;
msg.cpos.Compress(&pos);
NETWORK->Send(&msg,sizeof(msg));
}
else if( nMethod == 1 )
{
char buf[MAX_NAME_LENGTH+1] = {0,};
int nLen = GetDlgItemText( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_NAME, buf, MAX_NAME_LENGTH+1 );
if( nLen > MAX_NAME_LENGTH || nLen < 4 ) return FALSE;
if( strncmp( HERO->GetObjectName(), buf, MAX_NAME_LENGTH+1 ) == 0 ) //磊扁 磊脚
return FALSE;
MSG_NAME_DWORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MOVETOCHAR_SYN;
msg.dwObjectID = HEROID;
msg.dwData = 0; //某腐磐肺 啊扁
SafeStrCpy( msg.Name, buf, MAX_NAME_LENGTH + 1 );
NETWORK->Send(&msg, sizeof(msg));
}
else if( nMethod == 2)
{
char buf[MAX_NAME_LENGTH+1] = {0,};
//int nLen = GetDlgItemText( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_MAP, buf, MAX_NAME_LENGTH+1);
int nLen = GetDlgItemText( m_hWndSub[eMenu_Move], IDC_GMMOVE_CMB_MAP, buf, MAX_NAME_LENGTH+1 );
if( nLen > MAX_NAME_LENGTH ) return FALSE;
WORD wMapNum = GetMapNumForName( buf );
if( wMapNum == 0 ) return FALSE;
//BOOL bRt;
//int nChannel = GetDlgItemInt( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_CHANNEL, &bRt, TRUE );
//int nChannel = GetDlgItemInt( m_hWndSub[eMenu_Move], IDC_GMMOVE_CMB_CHANNEL, &bRt, TRUE );
int nChannel = SendDlgItemMessage( m_hWndSub[eMenu_Move], IDC_GMMOVE_CMB_CHANNEL, CB_GETCURSEL, 0, 0 ) + 1;
//if( bRt )
if( m_cbChannelCount > 0 && nChannel > 0 && nChannel <= m_cbChannelCount )
{
gChannelNum = nChannel - 1; //0何磐 矫累窍绰 牢郸胶扼 -1
}
MSG_NAME_DWORD2 msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_CHANGEMAP_SYN;
// msg.Category = MP_USERCONN;
// msg.Protocol = MP_USERCONN_CHANGEMAP_SYN;
msg.dwObjectID = HEROID;
msg.dwData1 = (DWORD)wMapNum;
msg.dwData2 = (DWORD)gChannelNum;
msg.Name[0] = 0; //hero
NETWORK->Send( &msg, sizeof(msg) );
}
return TRUE;
}
BOOL CGMToolManager::OnUserMoveCommand( int nMethod )
{
if( !m_hWndSub[eMenu_Move] ) return FALSE;
SetFocus( _g_hWnd );
if( nMethod == 0 )
{
BOOL bRt;
VECTOR3 pos;
pos.x = GetDlgItemInt( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_X, &bRt, TRUE ) * 100.0f;
if( !bRt ) return FALSE;
pos.y = 0;
pos.z = GetDlgItemInt( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_Y, &bRt, TRUE ) * 100.0f;
if( !bRt ) return FALSE;
char buf[MAX_NAME_LENGTH+1] = {0,};
int nLen = GetDlgItemText( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_USER, buf, MAX_NAME_LENGTH+1 );
if( nLen > MAX_NAME_LENGTH || nLen < 4 ) return FALSE;
if( (FILTERTABLE->IsInvalidCharInclude((unsigned char*)buf)) == TRUE )
return FALSE;
MOVE_POS_USER msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MOVEUSER_SYN; //
msg.dwObjectID = HEROID;
SafeStrCpy( msg.Name, buf, MAX_NAME_LENGTH + 1 );
msg.cpos.Compress(&pos);
NETWORK->Send(&msg,sizeof(msg));
}
else if( nMethod == 1 )
{
char buf[MAX_NAME_LENGTH+1] = {0,};
int nLen = GetDlgItemText( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_USER, buf, MAX_NAME_LENGTH+1 );
if( nLen > MAX_NAME_LENGTH || nLen < 4 ) return FALSE;
if( strncmp( HERO->GetObjectName(), buf, MAX_NAME_LENGTH ) == 0 ) //磊扁 磊脚
return FALSE;
if( (FILTERTABLE->IsInvalidCharInclude((unsigned char*)buf)) == TRUE )
return FALSE;
MSG_NAME_DWORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MOVETOCHAR_SYN;
msg.dwObjectID = HEROID;
msg.dwData = 1; //单妨坷扁
SafeStrCpy( msg.Name, buf, MAX_NAME_LENGTH + 1 );
NETWORK->Send(&msg, sizeof(msg));
}
else if( nMethod == 2 )
{
//username
char buf[MAX_NAME_LENGTH+1] = {0,};
int nLen;
//nLen = GetDlgItemText( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_MAP, buf, MAX_NAME_LENGTH+1 );
nLen = GetDlgItemText( m_hWndSub[eMenu_Move], IDC_GMMOVE_CMB_MAP, buf, MAX_NAME_LENGTH+1 );
if( nLen > MAX_NAME_LENGTH ) return FALSE;
WORD wMapNum = GetMapNumForName( buf );
// BOOL bRt;
//int nChannel = GetDlgItemInt( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_CHANNEL, &bRt, TRUE );
//int nChannel = GetDlgItemInt( m_hWndSub[eMenu_Move], IDC_GMMOVE_CMB_CHANNEL, &bRt, TRUE );
int nChannel = SendDlgItemMessage( m_hWndSub[eMenu_Move], IDC_GMMOVE_CMB_CHANNEL, CB_GETCURSEL, 0, 0 ) + 1;
// if( bRt )
if( m_cbChannelCount > 0 && nChannel > 0 && nChannel <= m_cbChannelCount )
{
gChannelNum = nChannel - 1;
}
nLen = GetDlgItemText( m_hWndSub[eMenu_Move], IDC_GMMOVE_EDT_USER, buf, MAX_NAME_LENGTH+1 );
if( nLen > MAX_NAME_LENGTH || nLen < 4 ) return FALSE;
MSG_NAME_DWORD2 msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_CHANGEMAP_SYN;
msg.dwObjectID = HEROID;
msg.dwData1 = (DWORD)wMapNum;
msg.dwData2 = (DWORD)gChannelNum;
SafeStrCpy( msg.Name, buf, MAX_NAME_LENGTH + 1 );
NETWORK->Send( &msg, sizeof(msg) );
}
return TRUE;
}
BOOL CGMToolManager::OnItemCommand()
{
if( !m_hWndSub[eMenu_Item] ) return FALSE;
SetFocus( _g_hWnd );
int nResult = 0;
WORD wCount = 1;
char buf[64];
if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_BTN_WEAPON ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
GetDlgItemText( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_WEAPON, buf, MAX_ITEMNAME_LENGTH+1 );
int nSel = SendDlgItemMessage( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_WEAPONGRADE, CB_GETCURSEL, 0, 0 );
if( nSel > 0 && nSel <= 9 )
wsprintf( buf, "%s+%d", buf, nSel );
nResult = 1; //1:Item
}
else if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_BTN_CLOTHES ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
GetDlgItemText( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_CLOTHES, buf, MAX_ITEMNAME_LENGTH+1 );
int nSel = SendDlgItemMessage( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_CLOTHESGRADE, CB_GETCURSEL, 0, 0 );
if( nSel > 0 && nSel <= 9 )
wsprintf( buf, "%s+%d", buf, nSel );
nResult = 1; //1:Item
}
else if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_BTN_ACCESSORY ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
GetDlgItemText( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_ACCESSORY, buf, MAX_ITEMNAME_LENGTH+1 );
nResult = 1; //1:Item
}
else if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_BTN_SKILLBOOK ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
GetDlgItemText( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_SKILLBOOK, buf, MAX_ITEMNAME_LENGTH+1 );
nResult = 1; //1:Item
}
else if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_BTN_POTION ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
GetDlgItemText( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_POTION, buf, MAX_ITEMNAME_LENGTH+1 );
BOOL rt;
int nCount = GetDlgItemInt( m_hWndSub[eMenu_Item], IDC_GMITEM_EDT_POTION, &rt, TRUE );
if( rt )
{
if( nCount < 0 ) nCount = 0;
else if( nCount > 50 ) nCount = 50;
wCount = (WORD)nCount;
nResult = 1; //1:Item;
}
}
else if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_BTN_ETC ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
GetDlgItemText( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_ETC, buf, MAX_ITEMNAME_LENGTH+1 );
BOOL rt;
int nCount = GetDlgItemInt( m_hWndSub[eMenu_Item], IDC_GMITEM_EDT_ETC, &rt, TRUE );
if( rt )
{
if( nCount < 0 ) nCount = 0;
else if( nCount > 50 ) nCount = 50;
wCount = (WORD)nCount;
nResult = 1; //1:Item;
}
}
else if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_BTN_MONEY ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
BOOL rt;
DWORD dwMoney = GetDlgItemInt( m_hWndSub[eMenu_Item], IDC_GMITEM_EDT_MONEY, &rt, TRUE );
if( !rt ) return FALSE;
SetDlgItemInt( m_hWndSub[eMenu_Item], IDC_GMITEM_EDT_MONEY, 0, TRUE );
MSG_DWORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MONEY_SYN;
msg.dwObjectID = HEROID;
msg.dwData = dwMoney;
NETWORK->Send( &msg, sizeof(msg) );
}
else if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_BTN_SKILL ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
GetDlgItemText( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_SKILL, buf, MAX_ITEMNAME_LENGTH+1 );
int nSel = SendDlgItemMessage( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_SKILLSUNG, CB_GETCURSEL, 0, 0 );
if( nSel < 0 ) nSel = 0;
else if( nSel > 12 ) nSel = 12;
ITEM_INFO* pInfo = ITEMMGR->FindItemInfoForName( buf );
if( pInfo == NULL ) return FALSE;
CMugongBase* pBase = MUGONGMGR->GetMugongByMugongIdx( pInfo->MugongNum );
if( pBase == NULL )
{
MSG_WORD3 msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_ADDMUGONG_SYN;
msg.dwObjectID = HEROID;
msg.wData1 = pInfo->MugongNum;
msg.wData2 = pInfo->ItemKind;
msg.wData3 = nSel;
NETWORK->Send(&msg,sizeof(msg));
EnableWindow( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_CMB_SKILLSUNG ), TRUE );
}
else
{
if( pBase->GetSung() != nSel )
{
MSG_WORD2 msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MUGONGSUNG_SYN;
msg.dwObjectID = HEROID;
msg.wData1 = pInfo->MugongNum;
msg.wData2 = nSel;
NETWORK->Send(&msg,sizeof(msg));
}
}
}
else if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Item], IDC_GMITEM_BTN_ABILITY ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
BOOL rt;
int nAbil = GetDlgItemInt( m_hWndSub[eMenu_Item], IDC_GMITEM_EDT_ABILITY, &rt, TRUE );
if( nAbil <= 0 ) return FALSE;
if( nAbil > 1000000000 ) nAbil = 1000000000; //郴妇措肺 10撅..
SetDlgItemInt( m_hWndSub[eMenu_Item], IDC_GMITEM_EDT_ABILITY, 0, TRUE );
MSG_DWORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_ABILITYEXP_SYN;
msg.dwObjectID = HEROID;
msg.dwData = (DWORD)nAbil;
NETWORK->Send(&msg,sizeof(msg));
}
if( nResult == 1 )
{
ITEM_INFO* pInfo = ITEMMGR->FindItemInfoForName( buf );
if( pInfo == NULL ) return FALSE;
MSG_WORD2 msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_ITEM_SYN;
msg.dwObjectID = HEROID;
// msg.wData = pInfo->ItemIdx;
msg.wData1 = pInfo->ItemIdx;
msg.wData2 = wCount;
NETWORK->Send(&msg,sizeof(msg));
}
return TRUE;
}
BOOL CGMToolManager::OnDisconCommand()
{
if( !m_hWndSub[eMenu_Block] ) return FALSE;
SetFocus( _g_hWnd );
char buf[MAX_NAME_LENGTH+1] = { 0, };
if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Discon], IDC_GMDISCON_BTN_USER ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
{
int nLen = GetDlgItemText( m_hWndSub[eMenu_Discon], IDC_GMDISCON_EDT_CHAR, buf, MAX_NAME_LENGTH+1 );
if( nLen < 4 || nLen > MAX_NAME_LENGTH )
return FALSE;
if( strncmp( HERO->GetObjectName(), buf, MAX_NAME_LENGTH ) == 0 )
return FALSE;
if( (FILTERTABLE->IsInvalidCharInclude((unsigned char*)buf)) == TRUE )
return FALSE;
MSG_NAME msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_BANCHARACTER_SYN;
msg.dwObjectID = HEROID;
SafeStrCpy( msg.Name, buf, MAX_NAME_LENGTH + 1 );
NETWORK->Send( &msg,sizeof(msg) );
}
else //map傈眉
{
int nLen = GetDlgItemText( m_hWndSub[eMenu_Discon], IDC_GMDISCON_CMB_MAP, buf, MAX_NAME_LENGTH+1 );
if( nLen > MAX_NAME_LENGTH )
return FALSE;
WORD wMapNum = GetMapNumForName( buf );
if( wMapNum == 0 ) return FALSE;
WORD wExceptSelf = 0;
if( SendMessage( GetDlgItem( m_hWndSub[eMenu_Discon], IDC_GMDISCON_BTN_EXCEPTSELF ), BM_GETCHECK, 0, 0 ) == BST_CHECKED )
wExceptSelf = 1;
//channel档 备盒且 鞘夸啊 乐绰啊... Agent啊 盲澄阑 舅绊 乐唱?
MSG_WORD2 msg;
msg.Category = MP_CHEAT;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -