コード例 #1
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
BOOL CLController::AddLEComponent( CLEComponent* pComponent )
{	// 군주 이벤트 생성 저장
	if( GetQueryObject()->Execute( "uspAddLEComponent %d, %d, %d, %3.2f, %3.2f", g_appInfo.dwSys, pComponent->GetIdPlayer(), pComponent->GetTick(), pComponent->GetEFactor(), pComponent->GetIFactor() ) 
		&& GetQueryObject()->Fetch() )
		return static_cast<BOOL>( GetQueryObject()->GetInt( "bResult" ) );
	return FALSE;
}
コード例 #2
0
void CAccountTimeLimitDBCtrl::Handler( LPDB_OVERLAPPED_PLUS pov, DWORD dwCompletionKey )
{
	CAr ar( pov->lpBuf, pov->uBufSize );

	switch( pov->nQueryMode )
	{
		case QUERY_TIMELIMIT_LOAD:
		{
			DWORD	dwPlayerId; 
			int		nPlayTime = -1;
			char	szAccount[MAX_ACCOUNT];

			ar >> dwPlayerId;
			ar.ReadString( szAccount, MAX_ACCOUNT );
			
			CQuery* pQuery = GetQueryObject();
			if( pQuery->Execute( "USP_AccountPlay_Select '%s'", szAccount ) )
			{
				if( pQuery->Fetch() )
				{
					nPlayTime = pQuery->GetInt( "PlayTime" ) * SEC( 1 );	// 초단위를 ms단위로 변환
					DWORD dwLastPlayDate	= static_cast<DWORD>( pQuery->GetInt( "PlayDate" ) );
					int nYear = dwLastPlayDate/10000;	dwLastPlayDate%=10000;
					int nMonth = dwLastPlayDate/100;	dwLastPlayDate%=100;
					int nDay = dwLastPlayDate;
					CTime time( nYear, nMonth, nDay+1, 0, 0, 0 );	// 하루를 더한 값이 더 작으면 초기화..
					if( time < CTime::GetCurrentTime() )
						nPlayTime = 0;
					
					if( !prj.m_EventLua.IsTimeLimit() )		// 루아이벤트 스크립트에 베트남 제한 여부 설정
						nPlayTime = 0;
				}
			}

			if( nPlayTime < 0 )
				Error( "PlayTime is wrong - PlayerId : %d, PlayTime : %d", dwPlayerId, nPlayTime );
			CDPTrans::GetInstance()->SendTimeLimitAck( dwPlayerId, nPlayTime, dwCompletionKey );
		}
		break;

		case QUERY_TIMELIMIT_UPDATE:
		{
			char	szAccount[MAX_ACCOUNT];
			int		nPlayTime;

			ar.ReadString( szAccount, MAX_ACCOUNT );
			ar >> nPlayTime;
			nPlayTime /= SEC( 1 );	// ms 단위를 초단위로 변환

			CTime time = CTime::GetCurrentTime();
			DWORD dwLastDate = (time.GetYear()*10000) + (time.GetMonth()*100) + time.GetDay();
			
			GetQueryObject()->Execute( "USP_AccountPlay_Update '%s', %d, %d", szAccount, dwLastDate, nPlayTime );
		}
		break;
	}
}
コード例 #3
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
BOOL CLController::SetPledge( u_long idPlayer, const char* szPledge )
{	// 공약 설정 저장
	char szQuery[255]	= { 0,};
	IElection* pElection	= m_pLord->GetElection();
	sprintf( szQuery, "{call uspElectionSetPledge( %d, %d, %d, ? )}", g_appInfo.dwSys, pElection->GetId(), idPlayer );
	SQLINTEGER cbLen	= SQL_NTS;
	if( !GetQueryObject()->BindParameter( 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, CCandidate::nMaxPledgeLen, 0, const_cast<char*>( szPledge ), 0, &cbLen ) )
		return FALSE;
	return GetQueryObject()->Exec( szQuery );
}
コード例 #4
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
int CLController::BeginVote( void )
{	// 투표 시작 상태 저장
	int nRequirement	= -1;
	char szQuery[255]	= { 0,};
	IElection* pElection	= m_pLord->GetElection();
	sprintf( szQuery, "uspElectionBeginVote %d, %d", g_appInfo.dwSys, pElection->GetId() );
	if( GetQueryObject()->Exec( szQuery ) && GetQueryObject()->Fetch() )
		nRequirement	= GetQueryObject()->GetInt( "nRequirement" );
	return nRequirement;
}
コード例 #5
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
BOOL CLController::IncVote( u_long idPlayer, u_long idElector )
{	// 투표 저장
	// 이미 투표한 사용자면 FALSE 반환
	char szQuery[255]	= { 0,};
	IElection* pElection	= m_pLord->GetElection();
	sprintf( szQuery, "uspElectionIncVote %d, %d, %d, %d", g_appInfo.dwSys, pElection->GetId(), idPlayer, idElector );
	if( !GetQueryObject()->Exec( szQuery ) )
		return FALSE;
	if( !GetQueryObject()->Fetch() )
		return FALSE;
	return static_cast<BOOL>( GetQueryObject()->GetInt( "bResult" ) );
}
コード例 #6
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
BOOL CLController::AddDeposit( u_long idPlayer, __int64 iDeposit, time_t tCreate )
{	// 군주 입찰 저장
	char szQuery[255]	= { 0,};
	IElection* pElection	= m_pLord->GetElection();
	sprintf( szQuery, "uspElectionAddDeposit %d, %d, %d, %I64d, %d", g_appInfo.dwSys, pElection->GetId(), idPlayer, iDeposit, tCreate );
	return GetQueryObject()->Exec( szQuery );
}
コード例 #7
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
BOOL CLController::BeginCandidacy( void )
{	// 입후보 시작 상태 저장
	char szQuery[255]	= { 0,};
	IElection* pElection	= m_pLord->GetElection();
	sprintf( szQuery, "uspElectionBeginCandidacy %d, %d", g_appInfo.dwSys, pElection->GetId() );
	return GetQueryObject()->Exec( szQuery );
}
コード例 #8
0
ファイル: HousingDBCtrl.cpp プロジェクト: iceberry/flyffsf
void CHousingDBCtrl::DeleteFurnitureList( DWORD dwPlayerId, HOUSINGINFO housingInfo )
{
    if( GetQueryObject()->Execute( "usp_Housing_Del '%02d', '%07d', %d", g_appInfo.dwSys, dwPlayerId, housingInfo.dwItemId ) )
    {
        CHousingMng::GetInstance()->SetFurnitureList( dwPlayerId, housingInfo, FALSE );
        CDPTrans::GetInstance()->SendHousingFurnitureList( dwPlayerId, housingInfo, FALSE, DPID_ALLPLAYERS );
    }
}
コード例 #9
0
ファイル: couplehelper.cpp プロジェクト: iceberry/flyffsf
BOOL CCoupleController::DeletePropose( time_t t )
{
	if( !GetQueryObject()->Execute( "uspDeletePropose %d, %d", g_appInfo.dwSys, t ) )
	{
		Error( "couldn't execute uspDeletePropose" );
		return FALSE;
	}
	return TRUE;
}
コード例 #10
0
ファイル: couplehelper.cpp プロジェクト: iceberry/flyffsf
BOOL CCoupleController::Couple( u_long idProposer, u_long idTarget )
{
	if( !GetQueryObject()->Execute( "uspAddCouple %d, %d, %d", g_appInfo.dwSys, idProposer, idTarget ) )
	{
		Error( "couldn't execute uspAddCouple" );
		return FALSE;
	}
	return TRUE;
}
コード例 #11
0
ファイル: couplehelper.cpp プロジェクト: iceberry/flyffsf
BOOL CCoupleController::Decouple( u_long idPlayer )
{
	if( !GetQueryObject()->Execute( "uspDeleteCouple %d, %d", g_appInfo.dwSys, idPlayer ) )
	{
		Error( "couldn't execute uspDeleteCouple" );
		return FALSE;
	}
	return TRUE;
}
コード例 #12
0
ファイル: couplehelper.cpp プロジェクト: iceberry/flyffsf
BOOL CCoupleController::AddExperience( u_long idPlayer, int nExperience )
{
	if( !GetQueryObject()->Execute( "uspAddCoupleExperience %d, %d, %d", g_appInfo.dwSys, idPlayer, nExperience ) )
	{
		Error( "couldn't execute uspAddCoupleExperience" );
		return FALSE;
	}
	return TRUE;
}
コード例 #13
0
void CRainbowRaceDBCtrl::FailedUser( DWORD dwPlayerId )
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// 레인보우레이스 시작시 접속안한 유저 실패처리
	sprintf( szQuery, "RAINBOWRACE_STR 'U3', '%02d', %d, '%07d', 0", g_appInfo.dwSys, m_nTimes, dwPlayerId );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }
}
コード例 #14
0
void CRainbowRaceDBCtrl::UpdateWinnersLosers()
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// 랭킹예약자와 완주실패자를 저장한다.
	sprintf( szQuery, "RAINBOWRACE_STR 'U2', '%02d', %d, '0000000', 0", g_appInfo.dwSys, m_nTimes );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }
}
コード例 #15
0
void CRainbowRaceDBCtrl::UpdateRanking( DWORD dwPlayerId, int nRanking )
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// 완주한 유저를 랭킹 예약한다.
	sprintf( szQuery, "RAINBOWRACE_STR 'U1', '%02d', %d, '%07d', %d", g_appInfo.dwSys, m_nTimes, dwPlayerId, nRanking );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }
}
コード例 #16
0
void CGuildHouseDBCtrl::RemoveGuildHouse( DWORD dwGuildId )
{
	if( GetQueryObject()->Execute( "usp_GuildHouse_Delete '%02d', '%06d'", g_appInfo.dwSys, dwGuildId ) )
		GuildHouseMng->RemoveGuildHouse( dwGuildId );
	
	BEFORESENDDUAL( arOut, PACKETTYPE_GUILDHOUSE_REMOVE, DPID_UNKNOWN, DPID_UNKNOWN );
	arOut << dwGuildId;
	SEND( arOut, CDPTrans::GetInstance(), DPID_ALLPLAYERS );

}
コード例 #17
0
void CRainbowRaceDBCtrl::Application( DWORD dwPlayerId )
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// 등록한 신청자를 DB에 저장한다.
	sprintf( szQuery, "RAINBOWRACE_STR 'I1', '%02d', %d, '%07d', 0", g_appInfo.dwSys, m_nTimes, dwPlayerId );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }
}
コード例 #18
0
ファイル: HousingDBCtrl.cpp プロジェクト: iceberry/flyffsf
void CHousingDBCtrl::SetupFurniture( DWORD dwPlayerId, HOUSINGINFO housingInfo, DPID dpId )
{
    if( GetQueryObject()->Execute( "usp_Housing_Update '%02d', '%07d', %d, %d, %f, %f, %f, %f",
                                   g_appInfo.dwSys, dwPlayerId, housingInfo.dwItemId, housingInfo.bSetup,
                                   housingInfo.vPos.x, housingInfo.vPos.y, housingInfo.vPos.z, housingInfo.fAngle ) )
    {
        CHousingMng::GetInstance()->SetupFurniture( dwPlayerId, housingInfo );
        CDPTrans::GetInstance()->SendHousingSetupFurniture( dwPlayerId, housingInfo, dpId );
    }
    else
        CDPTrans::GetInstance()->SendHousingDBFailed( dwPlayerId, NULL_ID, dpId );
}
コード例 #19
0
ファイル: HousingDBCtrl.cpp プロジェクト: iceberry/flyffsf
void CHousingDBCtrl::SetVisitAllow( DWORD dwPlayerId, DWORD dwTargetId, BOOL bAllow, DPID dpId )
{
    if( GetQueryObject()->Execute( "%s '%02d', '%07d', '%07d'",
                                   bAllow? "usp_Housing_Visit_Insert": "usp_Housing_Visit_Delete",
                                   g_appInfo.dwSys, dwPlayerId, dwTargetId ) )
    {
        CHousingMng::GetInstance()->SetVisitAllow( dwPlayerId, dwTargetId, bAllow );
        CDPTrans::GetInstance()->SendHousingSetVisitAllow( dwPlayerId, dwTargetId, bAllow, dpId );
    }
    else
        CDPTrans::GetInstance()->SendHousingDBFailed( dwPlayerId, NULL_ID, dpId );
}
コード例 #20
0
BOOL CGuildHouseDBCtrl::ExcuteQuery( DWORD dwGuildId, CGuildHouseBase* pGuildHouse, int nPacketType, GH_Fntr_Info & gfi, int nIndex )
{
	switch( nPacketType )
	{
		case GUILDHOUSE_PCKTTYPE_LISTUP:
			if( GetQueryObject()->Execute( "usp_GuildFurniture_Insert '%02d', '%06d', %d, %d, %d, %d,\
											%f, %f, %f, %f", 
											g_appInfo.dwSys, dwGuildId,	GuildHouseMng->GetSeqNum() + 1, gfi.dwItemId, gfi.tKeepTime, static_cast<int>( gfi.bSetup ), 
											gfi.vPos.x, gfi.vPos.y, gfi.vPos.z, gfi.fAngle ) )
			{		
				gfi.nSeqNum = GuildHouseMng->AddSeqNum();
				return TRUE;
			}
			else
				return FALSE;

		case GUILDHOUSE_PCKTTYPE_LISTDROP:
			if( nIndex >= pGuildHouse->GetFurnitureListSize() )
				return FALSE;
			gfi.nSeqNum = pGuildHouse->GetFurnitureInfo( nIndex ).nSeqNum;
			return GetQueryObject()->Execute( "usp_GuildFurniture_Delete '%02d', '%06d', %d", g_appInfo.dwSys, dwGuildId, gfi.nSeqNum );
		
		case GUILDHOUSE_PCKTTYPE_SETUP:
		case GUILDHOUSE_PCKTTYPE_REMOVE:
		case GUILDHOUSE_PCKTTYPE_RESET:
			if( nIndex >= pGuildHouse->GetFurnitureListSize() )
				return FALSE;
			gfi.nSeqNum = pGuildHouse->GetFurnitureInfo( nIndex ).nSeqNum;
			return GetQueryObject()->Execute(  "usp_GuildFurniture_Update '%02d', '%06d', %d, %d, %d, \
												%f, %f, %f, %f, %d", 
												g_appInfo.dwSys, dwGuildId, gfi.nSeqNum, gfi.dwItemId, static_cast<int>( gfi.bSetup ), 
												gfi.vPos.x, gfi.vPos.y, gfi.vPos.z, gfi.fAngle, gfi.tKeepTime );	

		case GUILDHOUSE_PCKTTYPE_UPKEEP:
			return GetQueryObject()->Execute( "usp_GuildHouse_Update '%02d', '%06d', %d", g_appInfo.dwSys, dwGuildId, gfi.tKeepTime );

		case GUILDHOUSE_PCKTTYPE_EXPIRED:
			return GetQueryObject()->Execute( "usp_GuildHouse_Expired '%02d', '%06d'", g_appInfo.dwSys, dwGuildId );
	}
コード例 #21
0
ファイル: HousingDBCtrl.cpp プロジェクト: iceberry/flyffsf
void CHousingDBCtrl::InsertFurnitureList( DWORD dwPlayerId, DWORD dwItemId, DPID dpId )
{
    HOUSINGINFO housingInfo( dwItemId );	// 저장 정보를 만든다.
    // int n = sizeof(time_t);
    // time_t size가 4바이트로 나온다.
    // VS2003에서는 __int64라고 생각되는데..., 그래서 일단 __int64로 강제 casting
    if( GetQueryObject()->Execute( "usp_Housing_Insert '%02d', '%07d', %d, %I64d",
                                   g_appInfo.dwSys, dwPlayerId, housingInfo.dwItemId, static_cast<__int64>(housingInfo.tKeepTime) ) )
    {
        CHousingMng::GetInstance()->SetFurnitureList( dwPlayerId, housingInfo, TRUE );
        CDPTrans::GetInstance()->SendHousingFurnitureList( dwPlayerId, housingInfo, TRUE, dpId );
    }
    else
        CDPTrans::GetInstance()->SendHousingDBFailed( dwPlayerId, housingInfo.dwItemId, dpId );
}
コード例 #22
0
void CRainbowRaceDBCtrl::LoadRainbowRace( DPID dpId )
{
	CQuery* pQuery = GetQueryObject();
	char szQuery[QUERY_SIZE] = {0,};

	// m_nTimes 정보 가져오기.. 없으면 0
	sprintf( szQuery, "RAINBOWRACE_STR 'S1', '%02d', 0, '0000000', 0", g_appInfo.dwSys );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }

	if( pQuery->Fetch() )
		m_nTimes = pQuery->GetInt( "nTimes" );
	if( m_nTimes == 0 )
	{
		m_nTimes = 1;
		return;
	}

	// 신청자 목록
	vector<DWORD> vec_dwNowPlayerId;
	sprintf( szQuery, "RAINBOWRACE_STR 'S2', '%02d', %d, '0000000', 0", g_appInfo.dwSys, m_nTimes );
	if( pQuery->Exec( szQuery ) == FALSE )
	{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }

	while( pQuery->Fetch() )
		vec_dwNowPlayerId.push_back( static_cast<DWORD>( pQuery->GetInt( "m_idPlayer" ) ) );
	
	if( vec_dwNowPlayerId.size() == 0 )		// 현재 신청자가 없으면 다음 회 진행...
		m_nTimes++;

	// 이전 대회 랭킹
	vector<DWORD> vec_dwPrevRanking;
	if( m_nTimes > 1 )	// 현재가 2회 이상일때만..( 1회 이상 진행했을 경우 )
	{
		sprintf( szQuery, "RAINBOWRACE_STR 'S3', '%02d', %d, '0000000', 0", g_appInfo.dwSys, m_nTimes );
		if( pQuery->Exec( szQuery ) == FALSE )
		{ WriteLog( "%s, %d\t%s", __FILE__, __LINE__, szQuery ); return; }

		while( pQuery->Fetch() )
			vec_dwPrevRanking.push_back( static_cast<DWORD>( pQuery->GetInt( "m_idPlayer" ) ) );
	}

	CDPTrans::GetInstance()->SendRainbowRaceInfo( vec_dwNowPlayerId, vec_dwPrevRanking, dpId );
}
コード例 #23
0
ファイル: HousingDBCtrl.cpp プロジェクト: iceberry/flyffsf
void CHousingDBCtrl::LoadHousingInfo( DWORD dwPlayerId, DPID dpId )
{
    CHousing* pHousing = CHousingMng::GetInstance()->GetHousing( dwPlayerId );
    if( !pHousing )
    {
        pHousing = CHousingMng::GetInstance()->CreateHousing( dwPlayerId );
        if( !pHousing )	// 생성 실패시 그냥 리턴..
            return;

        // DB 로딩...
        CQuery* pQuery = GetQueryObject();
        if( pQuery->Execute( "usp_Housing_Load '%02d', '%07d'", g_appInfo.dwSys, dwPlayerId ) )
        {
            while( pQuery->Fetch() )
            {
                HOUSINGINFO housingInfo;
                housingInfo.dwItemId = static_cast<DWORD>( pQuery->GetInt( "ItemIndex" ) );
                housingInfo.tKeepTime = static_cast<time_t>( pQuery->GetInt64( "tKeepTime" ) );
                housingInfo.bSetup = static_cast<BOOL>( pQuery->GetInt( "bSetup" ) );
                housingInfo.vPos.x = pQuery->GetFloat( "x_Pos" );
                housingInfo.vPos.y = pQuery->GetFloat( "y_Pos" );
                housingInfo.vPos.z = pQuery->GetFloat( "z_Pos" );
                housingInfo.fAngle = pQuery->GetFloat( "fAngle" );

                ItemProp* pItemProp = prj.GetItemProp( housingInfo.dwItemId );
                if( pItemProp && pItemProp->dwItemKind1 == IK1_HOUSING )
                    pHousing->SetFurnitureList( housingInfo, TRUE );
            }

            if( pQuery->MoreResults() )
            {
                while( pQuery->Fetch() )
                    pHousing->SetVisitAllow( pQuery->GetInt( "f_idPlayer" ), TRUE );
            }
        }
    }

    // 하우징 정보를 월드서버에 전달...
    CDPTrans::GetInstance()->SendHousingLoadInfo( dwPlayerId, pHousing, dpId );
}
コード例 #24
0
void CGuildHouseDBCtrl::CreateGuildHouse( CAr & ar, DPID dpId )
{
	DWORD dwPlayerId, dwGuildId;
	ar >> dwPlayerId >> dwGuildId;
	
	BOOL bResult = FALSE;
	CQuery* pQuery = GetQueryObject();

	BEFORESENDDUAL( arCreate, PACKETTYPE_GUILDHOUSE_BUY, DPID_UNKNOWN, DPID_UNKNOWN );
	{
		arCreate << dwPlayerId << dwGuildId;
		CGuildHouseBase* pGuildHouse = GuildHouseMng->MakeGuildHouse( dwGuildId, WI_GUILDHOUSE_SMALL );
		if( pGuildHouse )
		{
			pGuildHouse->SetUpkeeptime( time_null() + ( UPKEEP_DAY_TIME * 7 ) );	// 기본 유지기간을 제공한다.
			if( pQuery->Execute( "usp_GuildHouse_Insert '%02d', '%06d', %d, %d", g_appInfo.dwSys, dwGuildId, WI_GUILDHOUSE_SMALL, pGuildHouse->GetUpkeepTime() ) // DB에 추가 성공
				&& GuildHouseMng->AddGuildHouse( dwGuildId, pGuildHouse ) )
			{
				arCreate << TRUE;
				dpId = DPID_ALLPLAYERS;	// 모든 월드 서버로 전송한다.
				GH_Fntr_Info gfi( II_GHOU_FUR_NPC_TELEPORTER, TRUE, pGuildHouse->GetTeleporterPos(), 0.0f, ( UPKEEP_DAY_TIME * 7 ) );
				if( ExcuteQuery( dwGuildId, pGuildHouse, GUILDHOUSE_PCKTTYPE_LISTUP, gfi, NULL_ID ) )
					pGuildHouse->OnGuildHousePacket( GUILDHOUSE_PCKTTYPE_LISTUP, gfi, NULL_ID );
				pGuildHouse->SerializeAllInfo( arCreate );
			}
			else
			{
				arCreate << FALSE;
				SAFE_DELETE( pGuildHouse );
			}
		}
		else
			arCreate << FALSE;
	}
	SEND( arCreate, CDPTrans::GetInstance(), dpId );
}
コード例 #25
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
BOOL CLController::InitializeLEvent( void )
{	// 군주 이벤트 초기화 저장
	return GetQueryObject()->Execute( "uspInitializeLEvent %d", g_appInfo.dwSys );
}
コード例 #26
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
BOOL CLController::EndVote( u_long idPlayer )
{	// 투표 종료 상태 저장
	IElection* pElection	= m_pLord->GetElection();
	return GetQueryObject()->Execute( "uspElectionEndVote %d, %d, %d, %s", g_appInfo.dwSys, pElection->GetId(), idPlayer,
		(LPCSTR)CTElection::ttos( pElection->GetNextBegin() ) );
}
コード例 #27
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
BOOL CLController::UpdateLordEventTick( CLEComponent* pComponent )
{	// 군주 이벤트 남은 시간 저장
	return GetQueryObject()->Execute( "uspLordEventTick %d, %d, %d", g_appInfo.dwSys, pComponent->GetIdPlayer(), pComponent->GetTick() );
}
コード例 #28
0
void CGuildHouseDBCtrl::Handler( LPDB_OVERLAPPED_PLUS pov, DWORD dwCompletionKey )
{
	CAr ar( pov->lpBuf, pov->uBufSize );

	switch( pov->nQueryMode )
	{
		case GUILDHOUSE_LOAD:
			if( !LoadGuildHouse() )
				AfxMessageBox( "GuildHouse Load Failed!!!" );
			break;

		case GUILDHOUSE_SEND:
			SendGuildHouse( dwCompletionKey );
#ifdef __GUILD_HOUSE_MIDDLE
			SendGuildHouseTenderInfo( dwCompletionKey );
#endif // GUILDHOUSE_SEND
			break;

		case GUILDHOUSE_CREATE:
			CreateGuildHouse( ar, dwCompletionKey );
			break;

		case GUILDHOUSE_REMOVE:
			RemoveGuildHouse( dwCompletionKey );
			break;

		case GUILDHOUSE_DEFAULT_PACKET:
			RunDefaultPacket( ar, dwCompletionKey );
			break;	

		case GUILDHOUSE_SAVE_RESTPOINT:
			DWORD dwPlayerId; int nRestPoint; time_t tLogOut;
			ar >> dwPlayerId >> nRestPoint >> tLogOut;
			GetQueryObject()->Execute( "usp_RestPoint_Update '%02d', '%07d', %d, %d", g_appInfo.dwSys, dwPlayerId, nRestPoint, tLogOut );
			break;

#ifdef __GUILD_HOUSE_MIDDLE
		case GUILDHOUSE_TENDER_JOIN:
			{
				JoinGuildHouseTender( ar, dwCompletionKey );
			}
			break;

		case GUILDHOUSE_GRADE_UPDATE:
			{
				UpgradeGuildHouseGrade( ar, dwCompletionKey );
			}
			break;

		case GUILDHOUSE_LEVEL_UPDATE:
			{
				UpgradeGuildHouseLevel( ar, dwCompletionKey );
			}
			break;
		case GUILDHOUSE_EXPIRED:
			{
				UpdateGuildHouseExpired( ar );
			}
			break;
#endif // __GUILD_HOUSE_MIDDLE
	}
}
コード例 #29
0
ファイル: tlord.cpp プロジェクト: iceberry/flyffsf
BOOL CLController::UpdateLordSkillTick( CLordSkillComponent* pSkill, int nTick )
{	// 군주 스킬 재사용 대기 시간 저장
	return GetQueryObject()->Execute( "uspLordSkillTick %d, %d, %d", g_appInfo.dwSys, pSkill->GetId(), nTick );
}