Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
273
Server/ManageTool/MonitoringTool/WhisperDlg.cpp
Normal file
273
Server/ManageTool/MonitoringTool/WhisperDlg.cpp
Normal file
@@ -0,0 +1,273 @@
|
||||
// WhisperDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "MonitoringTool.h"
|
||||
#include "WhisperDlg.h"
|
||||
#include "ChattingPage.h"
|
||||
#include "GlobalFunc.h"
|
||||
#include "MonitoringToolSetup.h"
|
||||
#include "ChatServerEventHandler.h"
|
||||
|
||||
#include <Log/ServerLog.h>
|
||||
#include <Network/Packet/PacketStruct/CharCommunityPacket.h>
|
||||
|
||||
|
||||
// CWhisperDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CWhisperDlg, CDialog)
|
||||
CWhisperDlg::CWhisperDlg(CWnd* pParent, WhisperDlgInfo stInfo)
|
||||
: CDialog(CWhisperDlg::IDD, pParent)
|
||||
, m_strWhisperTitle(_T(""))
|
||||
{
|
||||
m_pParent = pParent;
|
||||
CopyMemory(&m_stWhisperDlgInfo, &stInfo, sizeof(WhisperDlgInfo));
|
||||
|
||||
IsWhisperDlgSet = true;
|
||||
}
|
||||
|
||||
CWhisperDlg::CWhisperDlg() : CDialog(CWhisperDlg::IDD)
|
||||
{
|
||||
IsWhisperDlgSet = false;
|
||||
}
|
||||
|
||||
CWhisperDlg::~CWhisperDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CWhisperDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_WHISPER_OUTPUT, m_ctrlWhisperOutput);
|
||||
DDX_Text(pDX, IDC_WHISPER_TITLE, m_strWhisperTitle);
|
||||
DDX_Control(pDX, IDC_SENDBYUID_CHK, m_ctrlSendByUIDChk);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CWhisperDlg, CDialog)
|
||||
ON_WM_CLOSE()
|
||||
ON_BN_CLICKED(IDC_WHISPER_SEND, OnBnClickedWhisperSend)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
// CWhisperDlg <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
BOOL CWhisperDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
SetDlgItemText(IDC_WHISPER_TITLE_STATIC, GetMyINIString("LOCAL_STRING", "STRING_021"));
|
||||
SetDlgItemText(IDC_WHISPER_TRGT_TYPE, GetMyINIString("LOCAL_STRING", "STRING_022"));
|
||||
SetDlgItemText(IDC_WHISPER_LOGINEDNAME_STATIC, GetMyINIString("LOCAL_STRING", "STRING_047"));
|
||||
SetDlgItemText(IDC_WHISPER_SEND, GetMyINIString("LOCAL_STRING", "STRING_017"));
|
||||
SetDlgItemText(IDC_PACKET_TIME, "");
|
||||
|
||||
bool IsEnable = false;
|
||||
|
||||
char strRace[4][4] = {"N/A", "H", "A", "N/A"};
|
||||
|
||||
if (WhisperDlgInfo::WHISPER_TYPE_CLK == m_stWhisperDlgInfo.m_nDlgType)
|
||||
{
|
||||
m_strWhisperTitle.Format("[%s] (UID: %u / CID: %u / Race : %s) %s",
|
||||
m_stWhisperDlgInfo.m_szServerName, m_stWhisperDlgInfo.m_dwUID, m_stWhisperDlgInfo.m_dwCID, strRace[m_stWhisperDlgInfo.m_cRace],
|
||||
m_stWhisperDlgInfo.m_szCharName);
|
||||
|
||||
SetWindowText(m_stWhisperDlgInfo.m_szCharName);
|
||||
|
||||
IsEnable = false;
|
||||
}
|
||||
else if (WhisperDlgInfo::FINDUSER == m_stWhisperDlgInfo.m_nDlgType)
|
||||
{
|
||||
SetDlgItemText(IDC_WHISPER_TITLE, GetMyINIString("LOCAL_STRING", "STRING_023"));
|
||||
SetWindowText(GetMyINIString("LOCAL_STRING", "STRING_023"));
|
||||
|
||||
IsEnable = true;
|
||||
}
|
||||
|
||||
SetDlgItemText(IDC_WHIS_SENDER_EDIT, theApp.GetLoginedName());
|
||||
|
||||
GetDlgItem(IDC_WHISPER_TARGET)->EnableWindow(IsEnable);
|
||||
GetDlgItem(IDC_SENDBYUID_CHK)->EnableWindow(IsEnable);
|
||||
|
||||
UpdateData(false);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CWhisperDlg::OnBnClickedWhisperSend()
|
||||
{
|
||||
CString strServerName, strGMName, strMsg;
|
||||
strServerName.Format("%s", m_stWhisperDlgInfo.m_szServerName); // <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><>
|
||||
strGMName = theApp.GetLoginedName(); // GM<47><4D>
|
||||
GetDlgItemText(IDC_WHISPER_INPUT, strMsg); // <20><EFBFBD><DEBC><EFBFBD>
|
||||
|
||||
bool IsSended = false;
|
||||
|
||||
if (BST_UNCHECKED == ((CChattingPage*)m_pParent)->IsDlgButtonChecked(IDC_GMLOGINED_CHK))
|
||||
{
|
||||
MessageBox(GetMyINIString("LOCAL_STRING", "STRING_046"));
|
||||
IsSended = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// <20>Ϲ<EFBFBD> <20><>ȭ <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>Ʈ<EFBFBD>ڽ<EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC>)
|
||||
if ((true == IsWhisperDlgSet) && (WhisperDlgInfo::WHISPER_TYPE_CLK == m_stWhisperDlgInfo.m_nDlgType))
|
||||
{
|
||||
IsSended = ClientNet::CChatServerEventHandler::SendChatReqPkt(
|
||||
theApp.GetServerIndex(strServerName), PktChat::WHISPER,
|
||||
ChatToolPkt::TARGET_CHARNAME, 0, 0, strGMName, m_stWhisperDlgInfo.m_szCharName, strMsg);
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Է<EFBFBD>)
|
||||
else
|
||||
{
|
||||
CString strTarget;
|
||||
GetDlgItemText(IDC_WHISPER_TARGET, strTarget);
|
||||
|
||||
char szKey[256];
|
||||
CMonitoringToolSetup Setup = CMonitoringToolSetup::GetInstance();
|
||||
unsigned int nMaxGroupNum = Setup.GetInt(_T("SERVER_GROUP_INFO"), _T("SERVER_GROUP_NUM"));
|
||||
|
||||
for(int nIndex = 0; nIndex < (int)nMaxGroupNum; ++nIndex)
|
||||
{
|
||||
unsigned long dwDlgID = ((CChattingPage*)m_pParent)->GetAccountDlgID();
|
||||
|
||||
_snprintf(szKey, 256, "SERVER_GROUP_INDEX_%02d", nIndex);
|
||||
unsigned int nServerGroup = Setup.GetInt("SERVER_GROUP_INFO", szKey);
|
||||
|
||||
if (BST_CHECKED != m_ctrlSendByUIDChk.GetCheck())
|
||||
{
|
||||
IsSended = ClientNet::CChatServerEventHandler::SendChatReqPkt(
|
||||
nServerGroup, PktChat::WHISPER,
|
||||
ChatToolPkt::TARGET_ACCOUNTNAME, 0, dwDlgID, strGMName, strTarget, strMsg);
|
||||
|
||||
// <20>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
//CMonitoringToolLog::GetInstance().WriteAdminLog(nServerGroup, PktChat::WHISPER, strGMName, strTarget, strMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
IsSended = ClientNet::CChatServerEventHandler::SendChatReqPkt(
|
||||
nServerGroup, PktChat::WHISPER,
|
||||
ChatToolPkt::TARGET_UID, (unsigned long)atoi(strTarget), dwDlgID, strGMName, _T(""), strMsg);
|
||||
|
||||
// <20>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
//CMonitoringToolLog::GetInstance().WriteAdminLog(nServerGroup, PktChat::WHISPER, strGMName, strTarget, strMsg);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (true == IsSended)
|
||||
{
|
||||
SetDlgItemText(IDC_WHISPER_INPUT, _T(""));
|
||||
GetDlgItem(IDC_WHISPER_TARGET)->EnableWindow(false);
|
||||
GetDlgItem(IDC_SENDBYUID_CHK)->EnableWindow(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
theApp.ReportResult(GetMyINIString("LOCAL_STRING", "STRING_026"));
|
||||
}
|
||||
}
|
||||
|
||||
BOOL CWhisperDlg::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
if ((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_RETURN))
|
||||
{
|
||||
if ((pMsg->hwnd == GetDlgItem(IDC_WHISPER_INPUT)->m_hWnd))
|
||||
{
|
||||
OnBnClickedWhisperSend();
|
||||
}
|
||||
}
|
||||
|
||||
return CDialog::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
void CWhisperDlg::OnOK()
|
||||
{
|
||||
}
|
||||
|
||||
void CWhisperDlg::OnClose()
|
||||
{
|
||||
DestroyWindow();
|
||||
}
|
||||
|
||||
void CWhisperDlg::OnCancel()
|
||||
{
|
||||
DestroyWindow();
|
||||
}
|
||||
|
||||
void CWhisperDlg::PostNcDestroy()
|
||||
{
|
||||
if(m_stWhisperDlgInfo.m_nDlgType == WhisperDlgInfo::WHISPER_TYPE_CLK)
|
||||
{
|
||||
CChattingPage::WhisperDlgMap::iterator pos1 =
|
||||
((CChattingPage*)m_pParent)->m_WhisperDlgMap.find(m_stWhisperDlgInfo.m_dwUID);
|
||||
|
||||
if (pos1 != ((CChattingPage*)m_pParent)->m_WhisperDlgMap.end())
|
||||
{
|
||||
((CChattingPage*)m_pParent)->m_WhisperDlgMap.erase(pos1);
|
||||
}
|
||||
}
|
||||
|
||||
CChattingPage::WhisperDlgMap::iterator pos2 =
|
||||
((CChattingPage*)m_pParent)->m_AccountDlgMap.find(m_stWhisperDlgInfo.m_dwDlgID);
|
||||
|
||||
if (pos2 != ((CChattingPage*)m_pParent)->m_AccountDlgMap.end())
|
||||
{
|
||||
((CChattingPage*)m_pParent)->m_AccountDlgMap.erase(pos2);
|
||||
}
|
||||
|
||||
delete this;
|
||||
}
|
||||
|
||||
/// \brief ä<><C3A4><EFBFBD><EFBFBD>Ŷ<EFBFBD><C5B6> <20>Ľ<EFBFBD><C4BD>Ͽ<EFBFBD> <20><>ȭâ<C8AD><C3A2> ǥ<><C7A5>
|
||||
/// \param lpChatData ä<><C3A4> <20><>Ŷ
|
||||
void CWhisperDlg::ParseChatData(ChatToolPkt::ChatDataSend* lpChatData)
|
||||
{
|
||||
char strRecvMsg[UCHAR_MAX * 2];
|
||||
CString strOutput;
|
||||
|
||||
char szTime[32];
|
||||
char szDate[32];
|
||||
|
||||
_tzset();
|
||||
_tstrdate( szDate );
|
||||
_tstrtime( szTime );
|
||||
|
||||
memcpy(strRecvMsg, reinterpret_cast<char*>(lpChatData + 1), lpChatData->m_cChatMsgLen);
|
||||
strRecvMsg[lpChatData->m_cChatMsgLen] = 0;
|
||||
|
||||
strOutput.Format("[%s-%s] %s : %s", szDate, szTime, lpChatData->m_szSenderName, strRecvMsg);
|
||||
|
||||
int nIndex = m_ctrlWhisperOutput.AddString(strOutput);
|
||||
|
||||
// <20>ڵ<EFBFBD> <20><>ũ<EFBFBD><C5A9>
|
||||
int nMaxLine = 27; // 1<><31>1 <20><>ȭâ <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD>ڽ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD>μ<EFBFBD>
|
||||
if (nIndex >= nMaxLine)
|
||||
{
|
||||
m_ctrlWhisperOutput.SetTopIndex(nIndex);
|
||||
}
|
||||
|
||||
strOutput.Format("Time : %s-%s", szDate, szTime);
|
||||
SetDlgItemText(IDC_PACKET_TIME, strOutput);
|
||||
}
|
||||
|
||||
void CWhisperDlg::SetKeyUID(unsigned long dwUID, unsigned long dwCID)
|
||||
{
|
||||
m_stWhisperDlgInfo.m_dwUID = dwUID;
|
||||
m_stWhisperDlgInfo.m_dwCID = dwCID;
|
||||
|
||||
if (NULL == ((CChattingPage*)m_pParent)->GetWhisperDlg(dwUID))
|
||||
{
|
||||
((CChattingPage*)m_pParent)->m_WhisperDlgMap.insert(CChattingPage::WhisperDlgMap::value_type(dwUID, this));
|
||||
|
||||
CChattingPage::WhisperDlgMap::iterator pos =
|
||||
((CChattingPage*)m_pParent)->m_AccountDlgMap.find(m_stWhisperDlgInfo.m_dwDlgID);
|
||||
|
||||
((CChattingPage*)m_pParent)->m_AccountDlgMap.erase(pos);
|
||||
|
||||
CString strTitle;
|
||||
strTitle.Format("%u", dwUID);
|
||||
|
||||
SetWindowText(strTitle);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user