Files
2022-10-26 12:25:11 +08:00

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;
}