215 lines
6.2 KiB
C++
215 lines
6.2 KiB
C++
#include "SunClientPrecompiledHeader.h"
|
|
|
|
#include "InterfaceManager.h"
|
|
#include "uiBuffEvent/uiBuffEvent.h"
|
|
#include "uiEventMan/uiEventMan_def.h"
|
|
#include "GlobalFunc.h"
|
|
#ifdef _NA_008395_20150710_EVENT_CRYSTAL_UI_TEXT_CONTROL
|
|
#include "SunEventInfoParser.h"
|
|
#endif //_NA_008395_20150710_EVENT_CRYSTAL_UI_TEXT_CONTROL
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
WzID uiBuffEvent::m_wzID[eDIALOG_BUFF_EVENT_MAX] =
|
|
{
|
|
StrToWzID("B002"),//eDIALOG_BUFF_EVENT_OK_BTN
|
|
StrToWzID("B001"),//eDIALOG_BUFF_EVENT_EXIT_BTN
|
|
#ifdef _NA_008395_20150710_EVENT_CRYSTAL_UI_TEXT_CONTROL
|
|
StrToWzID("ST02"),//eDIALOG_BUFF_EVENT_STATIC_LEVELRANGE
|
|
StrToWzID("ST08"),//eDIALOG_BUFF_EVENT_STATIC_LEVELRANGE_PCBANG
|
|
#endif //_NA_008395_20150710_EVENT_CRYSTAL_UI_TEXT_CONTROL
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
uiBuffEvent::uiBuffEvent(InterfaceManager * pUIMan) : uiBase(pUIMan)
|
|
{
|
|
m_bShow = FALSE;
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
uiBuffEvent::~uiBuffEvent()
|
|
{
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
void uiBuffEvent::Init(CDrawBase* pDrawBase)
|
|
{
|
|
uiBase::Init(pDrawBase);
|
|
m_bShow = FALSE;
|
|
|
|
InitControl();
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
void uiBuffEvent::Release()
|
|
{
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
void uiBuffEvent::OnUpdateSolarDialog()
|
|
{
|
|
if( ! m_bShow )
|
|
{
|
|
ShowDialog(FALSE);
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
void uiBuffEvent::Process(DWORD dwTick)
|
|
{
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
void uiBuffEvent::OnShowWindow(BOOL val)
|
|
{
|
|
if( val )
|
|
{
|
|
m_bShow = TRUE;
|
|
|
|
keyMsg msg;
|
|
ZeroMemory(&msg,sizeof(msg));
|
|
msg.dwType = eDoType_Dialog_Buffer_Event_Dlg;
|
|
msg.wParam = IM_EVENT_MANAGER::EVENT_BUFF;
|
|
msg.DoSomething = GlobalFunc::DoShowWindowEx;
|
|
g_KeyQueueManager.PushBack(msg);
|
|
|
|
#ifdef _NA_008395_20150710_EVENT_CRYSTAL_UI_TEXT_CONTROL
|
|
SetTextControl();
|
|
#endif //_NA_008395_20150710_EVENT_CRYSTAL_UI_TEXT_CONTROL
|
|
}
|
|
else
|
|
{
|
|
m_bShow = FALSE;
|
|
|
|
g_KeyQueueManager.DeleteMsg(eDoType_Dialog_Buffer_Event_Dlg);
|
|
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
void uiBuffEvent::MessageProc(SI_MESSAGE * pMessage)
|
|
{
|
|
switch ( pMessage->eResultMsg )
|
|
{
|
|
case RT_MSG_LBUTTONCLICK:
|
|
{
|
|
switch ( getControlIDToPos( pMessage->dwCtrlID ) )
|
|
{
|
|
case eDIALOG_BUFF_EVENT_OK_BTN:
|
|
{
|
|
MSG_CG_EVENT_BUFF_EVENT_SYN SendMsg;
|
|
SendMsg.m_NpcCode = eNPC_TYPE_EVENT_BUFF;
|
|
GlobalFunc::SendPacket(CI_GAMESERVERIDX, &SendMsg, sizeof(SendMsg));
|
|
|
|
OnShowWindow(FALSE);
|
|
}
|
|
break;
|
|
|
|
case eDIALOG_BUFF_EVENT_EXIT_BTN:
|
|
{
|
|
OnShowWindow(FALSE);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
|
|
default:
|
|
{
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
void uiBuffEvent::InitControl()
|
|
{
|
|
m_pBtnOk = static_cast<CCtrlButtonWZ*>(getControl(eDIALOG_BUFF_EVENT_OK_BTN));
|
|
assert(m_pBtnOk);
|
|
}
|
|
|
|
|
|
#ifdef _NA_008395_20150710_EVENT_CRYSTAL_UI_TEXT_CONTROL
|
|
void uiBuffEvent::SetTextControl()
|
|
{
|
|
const int buff_ctystal_type = 22;
|
|
EVENT_INFO_VEC* event_info_vector = SunEventInfoParser::Instance()->FindEventInfoFromNpcType(buff_ctystal_type);
|
|
if (event_info_vector == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
EVENT_INFO_VEC::iterator begin_iter = event_info_vector->begin();
|
|
EVENT_INFO_VEC::iterator end_iter = event_info_vector->end();
|
|
for (; begin_iter < end_iter; ++begin_iter)
|
|
{
|
|
EVENT_INFO* event_info = (*begin_iter);
|
|
|
|
if (event_info == NULL)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if (event_info->CheckEvent())
|
|
{
|
|
SYSTEMTIME system_time;
|
|
util::TimeSync::GetLocalTime(&system_time);
|
|
|
|
WORD time = (system_time.wHour*100) + (system_time.wMinute);
|
|
|
|
if (time >= event_info->m_wPeakTimeStart &&
|
|
time <= event_info->m_wPeakTimeEnd)
|
|
{
|
|
//À̺¥Æ® ŸÀÓÀ̶ó¸é
|
|
|
|
TCHAR min_level_string[5] = {0,};
|
|
TCHAR max_level_string[5] = {0,};
|
|
_itot(event_info->m_byApplyToLvRng[EVENT_INFO::LEVEL_MIN], min_level_string, 10);
|
|
_itot(event_info->m_byApplyToLvRng[EVENT_INFO::LEVEL_MAX], max_level_string, 10);
|
|
|
|
// 1689
|
|
TCHAR temp_string[INTERFACE_STRING_LENGTH];
|
|
g_InterfaceManager.GetInterfaceStringFormat(temp_string, INTERFACE_STRING_LENGTH,
|
|
1689, min_level_string, max_level_string);
|
|
|
|
CCtrlStaticWZ* static_control = NULL;
|
|
static_control = static_cast<CCtrlStaticWZ*>(getControl(eDIALOG_BUFF_EVENT_STATIC_LEVELRANGE));
|
|
if (static_control)
|
|
{
|
|
static_control->SetTextWZ(temp_string);
|
|
}
|
|
static_control = static_cast<CCtrlStaticWZ*>(getControl(eDIALOG_BUFF_EVENT_STATIC_LEVELRANGE_PCBANG));
|
|
if (static_control)
|
|
{
|
|
static_control->SetTextWZ(temp_string);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif //_NA_008395_20150710_EVENT_CRYSTAL_UI_TEXT_CONTROL
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|