Publicidad

Resultados 1 al 6 de 6
  1. #1
    [IG] Leecher Avatar de Leeimeehr
    Ingreso
    21 jul, 13
    Mensajes
    12
    País
    Gracias
    0
    1 agradecimiento en 1 Post

    Ranking de Actualización automática de MatchServer.

    Solución MatchServer: ----------------------------------------------- MBMatchServer.h,
    Buscamos:



    Código HTML:
    bool LoadFileMD5HashValue();
    Abajo de lo que Buscamos Pegamos lo Siguiente


    Código HTML:
    bool RankUpdate(); 
    MBMatchServer.cpp

    Buscamos:



    Código HTML:
    #include "MMatchCheckLoopTime.h"
    Abajo, en la Linea 22 Pagamos lo Siguientes



    Código HTML:
    #include <iostream>
    #include <fstream>
    using namespace std;
    #include <stdio.h>
    
    #define OTL_ODBC_MSSQL_2005
    #define OTL_ENABLE_MSSQL_MARS
    #define OTL_DEFAULT_NUMERIC_NULL_TO_VAL    0
    #include "otlv4.h"
    
    #include <Windows.h>
    #pragma comment(lib, "winmm.lib")
    
    
    
    #define MILLISECOND_SECOND    (1000)                        // 1 sec.
    #define MILLISECOND_MINUTE    (MILLISECOND_SECOND * 60)    // 1 min.
    #define MILLISECOND_HOUR    (MILLISECOND_MINUTE * 60)    // 1 hour.
    #define MILLISECOND_DAY        (MILLISECOND_HOUR * 24)        // 1 day.
    #define MILLISECOND_WEEK    (MILLISECOND_DAY * 7)        // 1 week.
    #define TIME_COLOR    RGB(128, 128, 128)
    
    char m_szDB_DNS[64];                    ///< DB DNS
    char m_szDB_UserName[64];                ///< DB Username
    char m_szDB_Password[64];                ///< DB Password
    
    otl_connect db;
    Ahora Buscamos:



    Código HTML:
    if( !LoadFileMD5HashValue() )
            return false; // - by SungE 2007-05-28
    y Abajo de eso pegamos Esto



    Código HTML:
    if( !RankUpdate() )
            return false;
    Buscamos:



    Código HTML:
    void MBMatchServer::ReleaseSecurity()
    y Arriba de eso pegamos Lo Siguiente



    Código HTML:
    bool SQLErr(otl_exception *e)    {
    cout << e->msg << '\n' << e->stm_text << '\n' << e->var_info << '\n';
    cout << "An error occurred while processing SQL.\n";
    
    ofstream ErrLog("RankingUpdateError.txt", ios:ut | ios::app);
    ErrLog << e->msg << '\n' << e->stm_text << '\n' << e->var_info << '\n';
    ErrLog << "----------------------------------------------------------------------\n";
    ErrLog.close();
    return true;
    }
    
    
    bool MBMatchServer::RankUpdate()
    {
    mlog("================================== Ranking Updater Info ======================================\n\n");
    mlog("CLEAN : Release Date : %s %s\n",__DATE__,__TIME__ );
    mlog("CLEAN : Credits : DelPa, SeaTroll, Ronny\n\n");
    
    #define SERVER_CONFIG_FILENAME     "./server.ini"
    GetPrivateProfileString("DB", "DNS", "dns", m_szDB_DNS, 64, SERVER_CONFIG_FILENAME);
    GetPrivateProfileString("DB", "USERNAME", "username", m_szDB_UserName, 64, SERVER_CONFIG_FILENAME);
    GetPrivateProfileString("DB", "PASSWORD", "password", m_szDB_Password, 64, SERVER_CONFIG_FILENAME);
    
    // lOGIN DATABASE
    char strConnectToDB[256];
    sprintf(strConnectToDB, "%s/%[email protected]%s", m_szDB_UserName, m_szDB_Password, m_szDB_DNS);
    try    
    {    
    // try to connect to the db via ODBC.
    db.rlogon(strConnectToDB);
    db.auto_commit_on();
    }
    catch(otl_exception &e)    
    {    
    // OTL init failed.
    SQLErr(&e);
    mlog("CLEAN : Failed to connect to the database.\n");
    }
    // LOGIN DATABASE END
    
    // TIME SAVE DWORD
    DWORD dwCleanSystemTime= timeGetTime();    
    DWORD dwClanDelTime = timeGetTime();    
    DWORD dwCharacterTime = timeGetTime();    
    DWORD dwClanTime = timeGetTime();    
    DWORD dwSurvivalTime = timeGetTime();    
    DWORD dwDuelTournamentTime = timeGetTime();    
    
    // Delete clan start.
    if(dwCleanSystemTime <= timeGetTime())
    {
    dwCleanSystemTime = timeGetTime() + (MILLISECOND_HOUR * 1);
    
    if(dwClanDelTime <= timeGetTime())    
    {
    dwClanDelTime = timeGetTime() + (MILLISECOND_HOUR * 1);
    try    
    {
    db.direct_exec("DELETE FROM ClanMember WHERE CLID=(SELECT CLID FROM Clan WHERE DeleteFlag=2);", otl_exception::enabled);    // clean clan member.
    db.direct_exec("UPDATE Clan SET Name=NULL, DeleteFlag=1, DeleteName=Name WHERE DeleteFlag=2;", otl_exception::enabled);    // clean clan.
    }
    catch(otl_exception &e)    
    {    
    // fail.
    SQLErr(&e);
    mlog("CLEAN : Clan cleaning - FAILED.\n");
    }
    // success.
    mlog("CLEAN : Clans cleaned successfully successfully.\n");
    }
    // Delete clan end.
    
    // Character ranking start.
    if(dwCharacterTime <= timeGetTime())    
    {
    dwCharacterTime = timeGetTime() + (MILLISECOND_HOUR * 1);
    try    
    {
    db.direct_exec("EXECUTE spFetchTotalRanking;", otl_exception::enabled);    // call character ranking update stored function.
    }
    catch(otl_exception &e)    
    {    
    // fail.
    mlog("CLEAN : Character ranking updated - FAILED.\n");
    }
    // success.
    mlog("CLEAN : Character Ranking Updated successfully.\n");
    }
    // Character ranking end.
    
    // Clan ranking start.
    if(dwClanTime <= timeGetTime())    
    {
    dwClanTime = dwClanTime + (MILLISECOND_HOUR * 1);
    try    
    {
    db.direct_exec("EXECUTE spRegularUpdateClanRanking;", otl_exception::enabled);    // call clan ranking update stored function.
    }
    catch(otl_exception &e)    
    {    
    // fail.
    SQLErr(&e);
    mlog("CLEAN : Clan ranking updated - FAILED.\n");
    }
    // success.
    mlog("CLEAN : Clan Ranking Updated successfully.\n");
    }
    // Clan ranking end.
    
    // Survival ranking start.
    if(dwSurvivalTime <= timeGetTime())    
    {
    dwSurvivalTime = timeGetTime() + (MILLISECOND_HOUR * 1);
    try    
    {
    db.direct_exec("EXECUTE spFetchSurvivalRanking;", otl_exception::enabled);    // call survival ranking update stored function.
    }
    catch(otl_exception &e)    
    {    
    // fail.
    SQLErr(&e);
    mlog("CLEAN : Survival ranking updated - FAILED.\n");
    }
    // success.
    mlog("CLEAN : Survival Ranking Updated successfully.\n");
    }
    // Survival ranking end.
    
    
    // Duel tournament ranking start.
    if(dwDuelTournamentTime <= timeGetTime())    
    {
    dwDuelTournamentTime = timeGetTime() + (MILLISECOND_HOUR * 1);
    try    
    {
    #ifdef DUELTOURNAMENT_RANKING_WEEKLY_UPDATE
    // weekly update.
    db.direct_exec(
    "IF NOT EXISTS(SELECT * FROM DTTimeStamp WHERE TimeStamp=(CONVERT( CHAR(8), DATEADD(dd, DATEPART(WEEKDAY, CONVERT(DATETIME, GETDATE()))*(-1)+2, CONVERT(DATETIME, GETDATE())), 112))) BEGIN\n"
    " EXECUTE spDTInsertDTTimeStamp 1;\n"
    "END\n"
    "EXECUTE spDTFetchDTRanking;", 
    otl_exception::enabled);
    #else
    // daily update.
    db.direct_exec(
    "IF NOT EXISTS(SELECT * FROM DTTimeStamp WHERE TimeStamp=(CONVERT( CHAR(8), GETDATE(), 112))) BEGIN\n"
    " EXECUTE spDTInsertDTTimeStamp 0;\n"
    "END\n"
    "EXECUTE spDTFetchDTRanking;", 
    otl_exception::enabled);
    #endif
    }
    catch(otl_exception &e)    
    {    
    // fail.
    SQLErr(&e);
    mlog("CLEAN : Process duel tournament ranking - FAILED.\n");
    }
    // success.
    mlog("CLEAN : Duel Tournament Ranking Updated successfully.\n\n");
    mlog("=============================== All Rankings Updated Successfully ======================================\n\n");
    }
    // Duel tournament ranking end.
    
    db.logoff();
    }
    return true;
    }
    colocar este archivo en solución de servidor
    otlv4.h [Hola Invitado, necesitas registrarte para ver los links , Has click aquí para registrarte !!]

    Espero que le Guste Amigo y le Ayude

    Estos Son los Resultados de Esta Guía




    Créditos: Leeimeehr
    Saludos
    Última edición por Leeimeehr; 17/04/2017 a las 09:58

  2.    Publicidad


  3. The Following User Says Thank You to Leeimeehr For This Useful Post:


  4. #2
    [IG] Leecher Avatar de Legen88tkz
    Ingreso
    07 ene, 15
    Mensajes
    5
    País
    Gracias
    3
    0 gracias en 0 Posts

    Re: Ranking de Actualización automática de MatchServer.

    waooo aca en ignetwork puede encontrar lo que tanto buscaba :3 csm

  5. #3
    [IG] Leecher Avatar de snakemaster
    Ingreso
    19 jul, 08
    Mensajes
    7
    País
    Gracias
    1
    0 gracias en 0 Posts

    Re: Ranking de Actualización automática de MatchServer.

    gracias va de 10. sigan asi ayuando a la comunidad

  6. #4
    [IG] Leecher Avatar de Leeimeehr
    Ingreso
    21 jul, 13
    Mensajes
    12
    País
    Gracias
    0
    1 agradecimiento en 1 Post

    Re: Ranking de Actualización automática de MatchServer.

    Me Alegra que te ayude esta guia saludos.
    Pronto dare ams soporte y vendere SRC Completo.

  7. #5
    [IG] Leecher Avatar de black21
    Ingreso
    30 mar, 17
    Mensajes
    3
    País
    Gracias
    0
    0 gracias en 0 Posts

    Re: Ranking de Actualización automática de MatchServer.

    Buen aporte hermano sigue asi de 10/10

  8. #6
    [IG] Leecher Avatar de Leeimeehr
    Ingreso
    21 jul, 13
    Mensajes
    12
    País
    Gracias
    0
    1 agradecimiento en 1 Post

    Re: Ranking de Actualización automática de MatchServer.

    Gracias men! Ya subire otra Guia


 

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •