75 lines
1.5 KiB
C++
75 lines
1.5 KiB
C++
#include "StdAfx.h"
|
|
#include ".\script.h"
|
|
|
|
Script::Script(void)
|
|
{
|
|
m_byServerType = 0;
|
|
m_hFile = NULL;
|
|
}
|
|
|
|
Script::~Script(void)
|
|
{
|
|
CloseHandle( m_hFile );
|
|
m_hFile = NULL;
|
|
}
|
|
|
|
BOOL Script::MakeScriptFile( CString strFilePath )
|
|
{
|
|
CloseHandle(m_hFile);
|
|
|
|
m_hFile = CreateFile( strFilePath, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, NULL,
|
|
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
|
|
|
|
if(m_hFile == INVALID_HANDLE_VALUE)
|
|
return FALSE;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
void Script::WriteMessge( CString& strMsg )
|
|
{
|
|
int nCount = strMsg.GetLength();
|
|
SetFilePointer(m_hFile, 0, NULL, FILE_END);
|
|
DWORD dwWritten = 0;
|
|
BOOL bRet = WriteFile(m_hFile, strMsg.GetString(), nCount, &dwWritten, NULL);
|
|
}
|
|
|
|
|
|
//현재 월드리스트중에서 byServerType를 가진 첫번째 정보를 리턴한다.
|
|
_BaseInfo* Script::FindBaseInfo( WORLD_LIST& WorldList, BYTE byServerType )
|
|
{
|
|
WORLD_LIST::iterator iter;
|
|
for( iter = WorldList.begin(); iter != WorldList.end(); iter++ )
|
|
{
|
|
_BaseInfo* pInfo = *iter;
|
|
if( pInfo )
|
|
{
|
|
if( pInfo->m_wServerType == byServerType )
|
|
return pInfo;
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
|
|
//현재 월드리스트중에서 byServerType를 가지고 pNowInfo의 채널정보와 일치하는 정보를 리턴한다.
|
|
_BaseInfo* Script::FindBaseInfoEx( WORLD_LIST& WorldList, BYTE byServerType, _BaseInfo* pNowInfo )
|
|
{
|
|
if( !pNowInfo )
|
|
return NULL;
|
|
|
|
WORLD_LIST::iterator iter;
|
|
for( iter = WorldList.begin(); iter != WorldList.end(); iter++ )
|
|
{
|
|
_BaseInfo* pInfo = *iter;
|
|
if( pInfo )
|
|
{
|
|
if( pInfo->m_wServerType == byServerType && pInfo->m_wChannel== pNowInfo->m_wChannel )
|
|
return pInfo;
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
} |