コード例 #1
0
ファイル: ConnectServer.cpp プロジェクト: ADMTec/TitanCS
int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
	UNREFERENCED_PARAMETER(hPrevInstance);
	UNREFERENCED_PARAMETER(lpCmdLine);

 	// TODO: colocar código aquí.
	MSG msg;
	HACCEL hAccelTable;

	// Inicializar cadenas globales
	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	LoadString(hInstance, IDC_CONNECTSERVER, szWindowClass, MAX_LOADSTRING);
	MyRegisterClass(hInstance);

	// Realizar la inicialización de la aplicación:
	if (!InitInstance (hInstance, nCmdShow))
	{
		return FALSE;
	}

	hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_CONNECTSERVER));
	
	gLogOutType = GetPrivateProfileInt("General", "SCFGenerateLogs",0,CONFIGFILE ) ;
	LogInit(TRUE);
	LogAddC(4,"Initializing...");
	serverManager.Init();
	LogDateChange();
	SendMessage(ghWnd, WM_TIMER, WM_LOG_PAINT, NULL);
	OBJInit();
	UDPInit();
	iocpInit();
	//
	UpdateInstanceWindowTitle();

	// Bucle principal de mensajes:
	while (GetMessage(&msg, NULL, 0, 0))
	{
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}

	return (int) msg.wParam;
}
コード例 #2
0
ファイル: SCFDS.cpp プロジェクト: ADMTec/TitanLinkServer
void DSMain()
{
#if (WL_PROTECT==1)
    VM_START
#endif

    /* Server initialization */
    _mkdir("Logs");
    LogInit(TRUE);
    DWORD dwStartTickCount = GetTickCount();
    LogAdd("Initialized log instance");
    LogDateChange();
    //SendMessage(hWnd, WM_TIMER, WM_LOG_PAINT, NULL);

    LogAddC(3,"Initializing Servers...");
    AllowManager.ReadAllowList(ALISTFILE);

    ConfigReadIniFile("./Config.ini");
    DataServer1.Initialize("DataServer1");
    DataServer2.Initialize("DataServer2");
    JoinServer.Initialize("JoinServer");
    ExtraServer.Initialize("ExtraServer");
    WzExDBServer.Initialize("WzExDB");
    PostServer.Initialize("PostServer");

    LogAddC(3,"Servers initialization in %d msec", GetTickCount() - dwStartTickCount);


    UpdateInstanceWindowTitle();
#if (WL_PROTECT==1)
    VM_END

    int MyCheckVar;
    CODEREPLACE_START
    CHECK_PROTECTION(MyCheckVar, 0x12345678)
    if (MyCheckVar != 0x12345678)
        g_Config.IsS6E2 = 0;
    CODEREPLACE_END
#endif
}
コード例 #3
0
ファイル: SCFDS.cpp プロジェクト: ADMTec/TitanLinkServer
//
//  FUNCIÓN: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PROPÓSITO: procesar mensajes de la ventana principal.
//
//  WM_COMMAND	: procesar el menú de aplicación
//  WM_PAINT	: pintar la ventana principal
//  WM_DESTROY	: enviar un mensaje de finalización y volver
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;

    switch (message)
    {

//	case WM_LBUTTONUP:
//			goto ShowPostWin;
//	case WM_CHAR:
//	{
//		if(wParam == VK_RETURN)
//		{
//ShowPostWin:
//			if(hWnd == hWnd_Post)
//				DialogBox(hInst, MAKEINTRESOURCE(IDD_POSTBOX), hWnd, PostWindow);
//		}
//	}break;

    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
        // Analizar las selecciones de menú:
        switch (wmId)
        {
        case ID_OPTIONS_DISCONNECTUSER:
            DialogBox(hInst,MAKEINTRESOURCE(IDD_UserList),hWnd,Users);
            break;
        case IDM_POST:
            DialogBox(hInst, MAKEINTRESOURCE(IDD_POSTBOX), hWnd, PostWindow);
            break;
        case IDM_ABOUT:
            DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
            break;
        case IDM_EXIT:
            DestroyWindow(hWnd);
            break;
        case ID_STATICS:
            JoinServer.Statics();
            break;
        //case ID_POSTSERVER_ADMINMESSAGE:
        //	ShowWindow(hWnd_Post, 1);
        //	UpdateWindow(hWnd_Post);
        //	break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        break;
    case WM_TIMER:
    {
        switch ( wParam )
        {
        case WM_LOG_PAINT:
        {
            RECT rect;
            HDC hdc = GetDC(hWnd);
            GetClientRect(hWnd, &rect);
            FillRect(hdc, &rect, (HBRUSH)GetStockObject(0));
            ReleaseDC(hWnd, hdc);

            if ( LogTextPaint != NULL )
            {
                LogTextPaint(hWnd);
            }
        }
        break;
        //case WM_POSTLOG_PAINT:
        //{
        //	if(PostServer.m_ServerPort != -1)
        //	{
        //		RECT rect;
        //		hdc = GetDC(hWnd_Post);
        //		GetClientRect(hWnd_Post, &rect);
        //		FillRect(hdc, &rect, (HBRUSH)GetStockObject(0));
        //		ReleaseDC(hWnd_Post, hdc);
        //		LogTextPaint(hWnd_Post);
        //	}
        //}break;
        case WM_FOURHOURS:
        {
            if(DSCheckNumber() == 1)
                DataServer1.SendGensRankingUpdate();
            else if(DSCheckNumber() == 2)
                DataServer2.SendGensRankingUpdate();
        }
        break;
        case WM_LOG_DATE_CHANGE:
        {
            if(DSCheckNumber() == 1)
                DataServer1.SendClearCoins();
            else if(DSCheckNumber() == 2)
                DataServer2.SendClearCoins();

            LogDateChange();
        }
        break;
        }
    }
    break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    case WM_CLOSE:
        if(hWnd == hWnd_Post)
        {
            ShowWindow(hWnd,0);
            break;
        }
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
コード例 #4
0
ファイル: MuTimer.cpp プロジェクト: kamilj1988/zTeam-season-8
VOID WINAPI	TimerProcQueue(LPVOID lpParametar, BOOL TimerOrWaitFired)
{
	if( g_MuTimer.GetTimerEnd() == TRUE )
		return;

	g_MuTimer.m_QueueTimer1.SyncLock();

	int nEventID = *(int*)(lpParametar);
	
	switch(nEventID)
	{
	case WM_GUILD_LIST_REQUEST:	DGGuildListRequest();	break;
	case WM_MONSTER_AND_MSG_PROC:
		MonsterAndMsgProc();
		//gDuelSystem.Run();
#if (ENABLETEST_NEWPVP == 1)
		g_NewPVP.Run();
#endif
		break;
	case WM_DUEL_RUN_PROC:
		//g_DuelManager.Run();
		break;
	case WM_MOVE_MONSTER_PROC:
		MoveMonsterProc();
		g_Kanturu.UserMonsterCountCheck();
		break;
	case WM_EVENT_RUN_PROC:
#if (ENABLE_CUSTOM_MONSTERSPAWNER == 1)
		MonsterSpawnerMng::getInstance()->procRun();
#endif
		g_BloodCastle.Run();
		g_RingAttackEvent.Run();
		g_ChaosCastle.Run();
		g_IllusionTemple.Run();
#if (GS_CASTLE==1)
		g_CastleSiege.Run();
		g_CastleDeepEvent.Run();
		g_CsNPC_Weapon.WeaponAttackProc();
		g_Crywolf.Run();
#endif
#if (GS_CASTLE == 0 || GS_SPEC == 1)
		g_Kanturu.Run();
		g_CsNPC_Weapon.WeaponAttackProc();
#endif
		g_Raklion.Run();
		g_XMasAttackEvent.Run();
		g_BlueEvent.Run();
		g_ImperialGuardian.Run();
		gDoubleGoer.Run();

#if (ENABLETEST_ACHERON == 1)
		g_AcheronGuardianEvent.Run();
#endif

#ifdef VMPROTECT
		if( VMProtectIsDebuggerPresent(true) )
		{
			ExitProcess(0);
		}
#endif
		break;
	case WM_AI_MONSTER_MOVE_PROC: TMonsterAI::MonsterMoveProc();	break;
	case WM_AI_MONSTER_PROC: TMonsterAI::MonsterAIProc();	break;
	case WM_SECOND_MSG_PROCESS:
		{
			for(int n = 0; n < MAX_NUMBER_MAP; n++ )
			{
				MapC[n].WeatherVariationProcess();
			}

			wsGServer.m_SendSec = wsGServer.m_SendSecTmp;
			wsGServer.m_RecvSec = wsGServer.m_RecvSecTmp;
			wsGServer.m_SendSecTmp = 0;
			wsGServer.m_RecvSecTmp = 0;
			DragonEvent->Run();
			AttackEvent->Run();
			gEledoradoEvent.Run();
			g_EventManager.Run();
#if (CUSTOM_OLYMP==1)
			g_CustomOlymp.Run();
#endif
		}
		break;
	case WM_CONNECTMEMBER_RELOAD:
		{
			ConMember.Load(gDirPath.GetNewPath(FILE_WHITELIST));
		}
		break;
	case WM_GS_CLOSE:
		if ( gCloseMsg != 0 )
		{
			gCloseMsgTime--;

			if ( gCloseMsgTime <= 1 )
			{
				if ( gCloseMsgTime == 1 )
				{
					AllSendServerMsg(lMsg.Get(MSGGET(1, 193)));
					LogAddC(2, lMsg.Get(MSGGET(1, 193)));
				}
			}
			else
			{
				if ( (gCloseMsgTime % 10) == 0 )
				{
					char szTemp[256];

					wsprintf( szTemp, lMsg.Get(MSGGET(1, 194)), gCloseMsgTime);
					AllSendServerMsg(szTemp);
					LogAddC(2, szTemp);
				}
			}

			if ( gCloseMsgTime < 0 )
			{
				KillTimer(ghWnd, WM_GS_CLOSE);
				gObjAllLogOut();
				gCloseMsgTime = 0;
				gCloseMsg = 0;
			}
		}
		gObjSecondProc();
#if (GS_CASTLE == 1)
		if(cDBSMng.GetActiveDS() > -1)
		{
			if(g_CastleSiege.GetDataLoadState() == 2)
			{
				g_CastleSiege.DataRequest();
			}

#if (CUSTOM_OLYMP==1)
			if(g_CustomOlymp.GetDataLoadState() == 2 )
			{
				g_CustomOlymp.DataRequest();
			}
			
#endif
		}
					
		g_CastleSiege.SendCastleStateSync();
		g_CastleSiegeSync.AdjustTributeMoney();
		g_Crywolf.CrywolfSecondAct();
#endif
#if (GS_CASTLE == 0 || GS_SPEC == 1)
		//g_CastleSiegeSync.AdjustTributeMoney();
#if(__GENS_SYSTEM__ == 1)
		gGensSystem.UpdateRun();
#endif
#endif
		//g_PeriodItemEx.CheckPeriodData(); --  need to decompile
		//g_CashShopInGame.CheckMileageUpdate(); -- need to decompile
		//g_CashShopInGame.CheckShopServerReconnect(); -- need to decompile
		//g_HacktoolBlockEx.CheckHacktoolUse(); -- need to decompile

		/*if ( DBSockMng::GetActiveDS(&cDBSMng) > -1 && !CArcaBattle::IsDataLoadWinGuild(&g_ArcaBattle) )
          CArcaBattle::GDReqWinGuildInfo(&g_ArcaBattle);
        if ( DBSockMng::GetActiveDS(&cDBSMng) > -1 && !CArcaBattle::IsDataLoadProcState(&g_ArcaBattle) )
          CArcaBattle::GDReqProcState(&g_ArcaBattle);
        if ( DBSockMng::GetActiveDS(&cDBSMng) > -1
          && !CArcaBattle::IsInitABProcMultiCast(&g_ArcaBattle)
          && CArcaBattle::IsArcaBattleServer(&g_ArcaBattle) == 1 )
          CArcaBattle::SetArcaBattleProcMultiCast(&g_ArcaBattle, 1);
        if ( DBSockMng::GetActiveDS(&cDBSMng) > -1
          && !CAcheronGuardianEvent::IsInitAEProcMultiCast(&g_AcheronGuardianEvent)
          && CArcaBattle::IsArcaBattleServer(&g_ArcaBattle) == 1 )
          CAcheronGuardianEvent::SetAcheronEventProcMultiCast(&g_AcheronGuardianEvent, 1);*/
		break;
	case WM_SET_DATE:
		gSetDate();
		WhisperCash.TimeCheckCashDelete();
		break;
	case WM_LOG_DATE_CHANGE:

		cpTimerTempUserManager->ClearOverTimeUserData(g_MaintainUserConnectionSecond);
		/*
		if( g_GensAbusingResetTime > 0 )
		{
			for(int n = OBJ_STARTUSERINDEX; n < OBJMAX; n++)
			{
				if( gObjIsConnected(n) )
					g_GensSystem.AbusingInfoReset(&gObj[n]);
			}
		}
		*/

#if (GS_CASTLE == 1)
		if(LogDateChange() == TRUE)
			g_iCastleItemMixLimit = 1;
#else
		LogDateChange()
#endif
		break;

	default:
		break;
	}

	g_MuTimer.m_QueueTimer1.SyncUnlock();
}
コード例 #5
0
ファイル: ConnectServer.cpp プロジェクト: ADMTec/TitanCS
//
//  FUNCIÓN: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PROPÓSITO: procesar mensajes de la ventana principal.
//
//  WM_COMMAND	: procesar el menú de aplicación
//  WM_PAINT	: pintar la ventana principal
//  WM_DESTROY	: enviar un mensaje de finalización y volver
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;

	switch (message)
	{
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// Analizar las selecciones de menú:
		switch (wmId)
		{
		case IDM_BLIST:
				serverManager.ReadBlackList(BLISTFILE);
			break;
		case IDM_SLIST:
				serverManager.ReadList(SLISTFILE);
			break;
		case IDM_ULIST:
				serverManager.ReadUpdateConfig();
			break;

		case IDM_ABOUT:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
		break;
		case WM_TIMER:
			switch ( wParam )
			{
				case WM_LOG_PAINT:
					{
						RECT rect;
						HDC hdc = GetDC(hWnd);
						GetClientRect(hWnd, &rect);
						FillRect(hdc, &rect, (HBRUSH)GetStockObject(0));
						ReleaseDC(hWnd, hdc);

						if ( LogTextPaint != NULL )
							LogTextPaint(hWnd);

						//g_ServerInfoDisplayer.Run(hWnd);
					}
					break;
				case WM_LOG_DATE_CHANGE:
					LogDateChange();
					break;
				case WM_SECONDPROC:
				{
					OBJSecondProc();
				}break;
			}
		break;
	//case WM_PAINT:
	//	hdc = BeginPaint(hWnd, &ps);
	//	// TODO: agregar código de dibujo aquí...
	//	EndPaint(hWnd, &ps);
	//	break;
	case WM_DESTROY:
		DestroyIocp();
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}