Resultados 1 a 8 de 8
  1. #1
    Iniciante Odisk's Avatar
    Data de Ingresso
    Aug 2016
    Posts
    6
    Thanks Thanks Given 
    14
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Mencionado
    0 Post(s)
    MEU HUMOR
    Angelic
    País
    Venezuela

    Post Desativar BattleZone 1.04D

    Oi pessoal, o verdd já escapou de um parafuso tentando consertar o mapa BattleZone no 1.04D

    Eu tenho o seguinte problema ao ativar as gens que o battleMap é ativado no Emu. Eu sei que eles conseguiram corrigir esse problema, mas no zteam ou exteam é um problema que ainda persiste. Não sei quem pode me ajudar.
    Por exemplo, @[Somente membros podem ver os links. ] conseguiu dar para remover do soucer para remover a linha da zona de batalha do Main

    mas ainda temos o problema em movimento pelos Gs

    exemplo do que eu quero explicar



    genssystem.cfg
    Código:
    // Description: Gens system settings
    // ----------------------------------------------------------------------------------
    // Revision: 	18:45 23:35 15.12.2013
    //===================================================================================
    
    //=====================================
    // Main
    //=====================================
    0
    // ----------------------------------------------------------------------------------------------------------------
    //	Point	ReqLvl	ReqRes	GuildCreate	GuildEnter	PartyEnter	AllianceEnter	AllowPK	ChatPrice
    // ----------------------------------------------------------------------------------------------------------------
    	1	80	0	1		1		1		1		0	0
    end
    
    //=====================================
    // Battle Zone List
    //=====================================
    1
    // ----------------------------------------------------------------------------------
    //	Index	Description
    // ----------------------------------------------------------------------------------
    //	7	// Atlans
    //	33	// Aida
    //	37	// Kanturu 1-2
    //	56	// Swamp Of Calmness
    //	63	// Vulcanus
    end
    
    //=====================================
    // Battle Map List (Teleport)
    //=====================================
    2
    // ----------------------------------------------------------------------------------
    //	Index	Description
    // ----------------------------------------------------------------------------------
    //	10	// Atlans 1
    //	11	// Atlans 1
    //	12	// Atlans 2
    //	13	// Atlans 3
    //	25	// Aida 1
    //	27	// Aida 2
    //	28	// Kanturu 1
    //	29	// Kanturu 2
    //	33	// Swamp Of Calmness
    //	42	// Vulcanus
    //	45	// Kanturu Island (Crywolf)
    end
    
    //=====================================
    // Reward Table
    //=====================================
    3
    // ----------------------------------------------------------------------------------
    //	Rank	iIndex	iID	iLevel	iCount	Description
    // ----------------------------------------------------------------------------------
    	1	14	141	0	30	// Grand Duke
    	2	14	141	0	20	// Duke
    	3	14	142	0	20	// Marquis
    	4	14	142	0	10	// Count
    	5	14	143	0	10	// Viscount
    	6	14	143	0	5	// Baron
    	7	14	144	0	5	// Knight Commander
    	8	14	144	0	3	// Super Knight
    end
    SRC

    gensSystem.cpp
    [Somente membros podem ver os links. ]
    GensSystem.h
    [Somente membros podem ver os links. ]

    Eu espero que alguém possa me ajudar com isso
    Obrigado cumprimentando EQUIPE.!

  2. #2
    Developer C++ LorenStudio's Avatar




    Data de Ingresso
    Jul 2020
    Posts
    136
    Thanks Thanks Given 
    172
    Thanks Thanks Received 
    267
    Thanked in
    60 Posts
    Mencionado
    10 Post(s)
    País
    Canada
    Olá ^^ bom no mapmanager existe algo chamado gensBattle apenas deixe todos com 0 que vai funcionar 100% eu utilizo dessa forma e não tenho dor de cabeça

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


  4. #3
    RoxGaming Developer Denis Alves's Avatar



    Data de Ingresso
    May 2017
    Posts
    299
    Thanks Thanks Given 
    215
    Thanks Thanks Received 
    705
    Thanked in
    118 Posts
    Mencionado
    36 Post(s)
    MEU HUMOR
    Amused
    País
    Brazil
    Odisk, te mandei privado. Eu ainda não verifiquei essa situação, mas acredito que tenha algo do lado do Main tambem.

    Abraço!

  5. The Following 2 Users Say Thank You to Denis Alves For This Useful Post:


  6. #4
    Iniciante Odisk's Avatar
    Data de Ingresso
    Aug 2016
    Posts
    6
    Thanks Thanks Given 
    14
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Mencionado
    0 Post(s)
    MEU HUMOR
    Angelic
    País
    Venezuela
    Citação Originally Posted by LuciferLGS Ver Post
    Olá ^^ bom no mapmanager existe algo chamado gensBattle apenas deixe todos com 0 que vai funcionar 100% eu utilizo dessa forma e não tenho dor de cabeça
    ola então eu tenho isso no código, não consigo encontrar gensbattle

    Obrigado pela ajuda.


    MapServerManager.cpp
    Código:
    //GS-CS 1.00.90 finished
    #include "stdafx.h"
    #include "MapServerManager.h"
    #include "MapClass.h"
    #include "..\include\readscript.h"
    #include "GameMain.h"
    #include "LogProc.h"
    #include "user.h"
    
    _MAPSVR_DATA::_MAPSVR_DATA()
    {
        this->Clear(1);
    }
    
    _MAPSVR_DATA::~_MAPSVR_DATA()
    {
        return;
    }
    
    void _MAPSVR_DATA::Clear(int iInitSetVal)
    {
        this->m_bIN_USE = FALSE;
        this->m_btMAPSVR_GROUP = -1;
        this->m_sSVR_CODE = -1;
        memset(this->m_cIPADDR, 0, sizeof(this->m_cIPADDR));
        this->m_wPORT = 0;
    
        for ( int iMAP_COUNT =0;iMAP_COUNT<MAX_NUMBER_MAP;iMAP_COUNT++)
        {
            switch ( iInitSetVal )
            {
                case -1:
                    this->m_sMAP_MOVE[iMAP_COUNT] = -2;
                    break;
                case 0:
                    this->m_sMAP_MOVE[iMAP_COUNT] = -1;
                    break;
                default:
                    this->m_sMAP_MOVE[iMAP_COUNT] = -3;
            }
        }
    }
    
    CMapServerManager::CMapServerManager()
    {
        srand(time(NULL)); 
        this->m_bMapDataLoadOk=FALSE;
        this->m_lpThisMapSvrData = NULL;
    
        InitializeCriticalSection(&this->m_critSVRCODE_MAP);
    }
    
    CMapServerManager::~CMapServerManager()
    {
        DeleteCriticalSection(&this->m_critSVRCODE_MAP);
    }
    
    void CMapServerManager::Clear()
    {
        this->m_bMapDataLoadOk = FALSE;
    
        for ( int iGROUP_COUNT=0;iGROUP_COUNT<MAX_MAP_GROUPS;iGROUP_COUNT++)
        {
            this->m_iMAPSVR_GROUP_COUNT[iGROUP_COUNT] = 0;
    
            for ( int iSUB_GROUP_COUNT=0;iSUB_GROUP_COUNT<MAX_MAP_SUBGROUPS;iSUB_GROUP_COUNT++)
            {
                this->m_MAPSVR_DATA[iGROUP_COUNT][iSUB_GROUP_COUNT].Clear(1);
            }
        }
    
        this->m_mapSVRCODE_MAP.clear();
    }
    
    BOOL CMapServerManager::LoadData(char* lpszFileName)
    {
        if ( (lpszFileName == NULL) || ( strcmp(lpszFileName, "")== 0 ) ) 
        {
            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : File Name Error");
            return FALSE;
        }
    
        EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
        __try
        {
            this->Clear();
    
            SMDFile = fopen(lpszFileName, "r");    //ok
    
            if ( SMDFile == NULL )
            {
                MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : fopen() : %s",
                    lpszFileName);
    
                return FALSE;
            }
    
            int type = -1;
            SMDToken Token;
    
            while ( true )
            {
                Token = GetToken();
    
                if ( Token == END )
                    break;
    
                type = TokenNumber;
    
                while ( true )
                {
                    if ( type == 0 )
                    {
                        short sSVR_CODE = -1;
                        short sMAPSVR_GROUP = -1;
                        int iInitSetVal = 1;
                        char szIpAddr[16]={0};
                        WORD wPortNum = 0;
                        
                        Token = GetToken();
    
                        if ( !strcmp("end", TokenString))
                            break;
    
                        sSVR_CODE = TokenNumber;
    
                        Token = GetToken();
                        sMAPSVR_GROUP = TokenNumber;
    
                        Token = GetToken();
                        iInitSetVal = TokenNumber;
    
                        Token = GetToken();
                        memcpy(szIpAddr, &TokenString[1], 16);
                        szIpAddr[15] =0;
    
                        Token = GetToken();
                        wPortNum = TokenNumber;
    
                        if ( sSVR_CODE < 0 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : sSVR_CODE < 0 (SVR:%d) - 1",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( iInitSetVal != -1 && iInitSetVal != 0 && iInitSetVal != 1 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : iInitSetting Value:%d (SVR:%d) - 1",
                                iInitSetVal, sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( !strcmp(szIpAddr, ""))
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : No IpAddress (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( CHECK_LIMIT(sMAPSVR_GROUP, MAX_MAP_GROUPS) == FALSE )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : Map Server Group Index (IDX:%d)",
                                sMAPSVR_GROUP);
    
                            return FALSE;
                        }
    
                        if ( this->m_iMAPSVR_GROUP_COUNT[sMAPSVR_GROUP] >= MAX_MAP_SUBGROUPS )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : No Space to Save SvrInfo (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        _MAPSVR_DATA * lpMapSvrData = NULL;
    
                        lpMapSvrData= &this->m_MAPSVR_DATA[sMAPSVR_GROUP][this->m_iMAPSVR_GROUP_COUNT[sMAPSVR_GROUP]];
    
                        lpMapSvrData->Clear(iInitSetVal);
                        lpMapSvrData->m_bIN_USE = TRUE;
                        lpMapSvrData->m_sSVR_CODE = sSVR_CODE;
                        lpMapSvrData->m_btMAPSVR_GROUP = sMAPSVR_GROUP;
                        lpMapSvrData->m_wPORT = wPortNum;
                        memcpy(lpMapSvrData->m_cIPADDR, szIpAddr, 16);
                        lpMapSvrData->m_cIPADDR[15] = 0;
                        
                        this->m_mapSVRCODE_MAP.insert(std::pair<int,_MAPSVR_DATA *>(sSVR_CODE, lpMapSvrData));
                        this->m_iMAPSVR_GROUP_COUNT[sMAPSVR_GROUP]++;
                    }
                    else if ( type == 1 )
                    {
                        short sSVR_CODE = -1;
                        BYTE btNotMoveOption = 0;
                        WORD wMapNum = 0;
                        short sDEST_SVR_CODE = -1;
                        _MAPSVR_DATA * lpMapSvrData = NULL;
    
                        Token = GetToken();
    
                        if ( !strcmp("end", TokenString))
                            break;
    
                        sSVR_CODE = TokenNumber;
    
                        Token = GetToken();
                        btNotMoveOption = TokenNumber;
    
                        Token = GetToken();
                        wMapNum = TokenNumber;
    
                        Token = GetToken();
                        sDEST_SVR_CODE = TokenNumber;
    
                        if ( sSVR_CODE < 0 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : sSVR_CODE < 0 (SVR:%d) - 2",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( sDEST_SVR_CODE < -2 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : sDEST_SVR_CODE < -1 (SVR:%d, DEST_SVR:%d) - 2",
                                sSVR_CODE, sDEST_SVR_CODE);
    
                            return FALSE;
                        }
    
                        std::map<int  ,_MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(sSVR_CODE);
    
                        if ( it == this->m_mapSVRCODE_MAP.end() )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : sSVR_CODE wasn't registered (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        lpMapSvrData = it->second;
    
                        if ( lpMapSvrData == NULL )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData == NULL (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( lpMapSvrData->m_bIN_USE == FALSE )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData->m_bIN_USE == FALSE (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( lpMapSvrData->m_sSVR_CODE != sSVR_CODE )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData->m_sSVR_CODE != sSVR_CODE (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( btNotMoveOption != 0 && btNotMoveOption != 1 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData->m_sSVR_CODE != sSVR_CODE (SVR:%d, OPT:%d)",
                                sSVR_CODE, btNotMoveOption);
    
                            return FALSE;
                        }
    
                        if ( CHECK_LIMIT(wMapNum, MAX_NUMBER_MAP) == FALSE )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : Map Number is out of bound (SVR:%d, MAP:%d)",
                                sSVR_CODE, wMapNum);
    
                            return FALSE;
                        }
    
                        switch ( btNotMoveOption )
                        {
                            case 0:
                                lpMapSvrData->m_sMAP_MOVE[wMapNum] = sDEST_SVR_CODE;
                                break;
                            case 1:
                                lpMapSvrData->m_sMAP_MOVE[wMapNum] = -3;
                                break;
                            default:
                                MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData->m_sSVR_CODE != sSVR_CODE (SVR:%d, OPT:%d)",
                                    sSVR_CODE, btNotMoveOption);
                                break;
                        }
                    }    // if type
                }    // while ( true )
            }    // while ( true )
    
            fclose(SMDFile);
    
            std::map<int  ,_MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(gGameServerCode);
    
            if ( it != this->m_mapSVRCODE_MAP.end() )
            {
                this->m_lpThisMapSvrData = it->second;
            }
            else
            {
                this->m_lpThisMapSvrData = NULL;
            }
    
            if ( this->m_lpThisMapSvrData == NULL )
            {
                MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : This GameServerCode (%d) doesn't Exist at file '%s' != sSVR_CODE",
                    gGameServerCode, lpszFileName);
    
                return FALSE;
            }
    
            this->m_bMapDataLoadOk = TRUE;
        }
        __finally
        {
            LeaveCriticalSection(&this->m_critSVRCODE_MAP);
        }
    
        return TRUE;
    }
    
    BOOL CMapServerManager::CheckMapCanMove(int iMAP_NUM)
    {
        if ( MapNumberCheck(iMAP_NUM) == 0 )
        {
            return FALSE;
        }
    
        _MAPSVR_DATA * lpMapSvrData = this->m_lpThisMapSvrData;
    
        if ( lpMapSvrData == NULL )
        {
            return FALSE;
        }
    
        if ( lpMapSvrData->m_bIN_USE == FALSE )
        {
            return FALSE;
        }
    
        short sMAP_MOVE_INFO = lpMapSvrData->m_sMAP_MOVE[iMAP_NUM];
    
        if ( sMAP_MOVE_INFO != -3 )
        {
            return FALSE;
        }
    
        return TRUE;
    }
    
    short CMapServerManager::CheckMoveMapSvr(int iIndex, int iMAP_NUM, short sSVR_CODE_BEFORE)
    {
        if ( this->m_bMapDataLoadOk == FALSE )
            return gGameServerCode;
    
        if ( !gObjIsConnected(iIndex))
            return gGameServerCode;
    
        if ( !MapNumberCheck(iMAP_NUM))
        {
            LogAddC(2, "[MapServerMng] CheckMoveMapSvr() - Map Index doesn't exist [%s][%s] : %d",
                gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM);
    
            return gGameServerCode;
        }
    
        _MAPSVR_DATA * lpMapSvrData = this->m_lpThisMapSvrData;
    
        if ( lpMapSvrData == NULL )
        {
            LogAddC(2, "[MapServerMng] CheckMoveMapSvr() - m_lpThisMapSvrData == NULL [%s][%s] : %d",
                gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM);
    
            return gGameServerCode;
        }
    
        if ( lpMapSvrData->m_bIN_USE == FALSE )
        {
            LogAddC(2, "[MapServerMng] CheckMoveMapSvr() - lpMapSvrData->m_bIN_USE == FALSE [%s][%s] : %d",
                gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM);
    
            return gGameServerCode;
        }
    
        short sMAP_MOVE_INFO = lpMapSvrData->m_sMAP_MOVE[iMAP_NUM];
    
        switch ( sMAP_MOVE_INFO )
        {
            case -1:
                {
                    _MAPSVR_DATA * lpDestMapSvrData = NULL;
    
                    if ( sSVR_CODE_BEFORE != -1 )
                    {
                        EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                        std::map<int, _MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(sSVR_CODE_BEFORE);
    
                        if ( it != this->m_mapSVRCODE_MAP.end() )
                        {
                            lpDestMapSvrData = it->second;
                        }
    
                        LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                        if ( lpDestMapSvrData != NULL )
                        {
                            if ( lpDestMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3 )
                            {
                                return sSVR_CODE_BEFORE;
                            }
                        }
                    }
    
                    std::vector<_MAPSVR_DATA *> vtMapSvrData;
    
                    EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                    for ( std::map<int ,_MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.begin() ; it != this->m_mapSVRCODE_MAP.end() ;it++)
                    {
                        _MAPSVR_DATA * lpTempMapSvrData = it->second;
    
                        if ( lpTempMapSvrData != NULL &&
                             lpTempMapSvrData->m_bIN_USE == TRUE &&
                             lpTempMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3)
                        {
                            vtMapSvrData.push_back(it->second);
                        }
                    }
    
                    LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                    short sDestServerCode = -1;
    
                    if ( vtMapSvrData.empty() == 0 )
                    {
                        sDestServerCode = vtMapSvrData[rand()%vtMapSvrData.size()]->m_sSVR_CODE;
                    }
    
                    if ( sDestServerCode != -1 )
                    {
                        LogAddTD("[MapServerMng] CheckMoveMapSvr() - MapServer Check OK [%s][%s] : MAP-%d / SVR-%d(State Map:%d X:%d Y:%d)",
                            gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, sDestServerCode,
                            gObj[iIndex].MapNumber, gObj[iIndex].X, gObj[iIndex].Y);
    
                        return sDestServerCode;
                    }
                }
                break;
    
            case -2:
                {
                    _MAPSVR_DATA * lpDestMapSvrData = NULL;
    
                    if ( sSVR_CODE_BEFORE != -1 )
                    {
                        EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                        std::map<int, _MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(sSVR_CODE_BEFORE);
    
                        if ( it != this->m_mapSVRCODE_MAP.end() )
                        {
                            lpDestMapSvrData = it->second;
                        }
    
                        LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                        if ( lpDestMapSvrData != NULL )
                        {
                            if ( lpDestMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3 )
                            {
                                return sSVR_CODE_BEFORE;
                            }
                        }
                    }
                    
                    short sDestServerCode = -1;
    
                    EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                    for ( std::map<int ,_MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.begin() ; it != this->m_mapSVRCODE_MAP.end() ;it++)
                    {
                        _MAPSVR_DATA * lpTempMapSvrData = it->second;
    
                        if ( lpTempMapSvrData != NULL &&
                             lpTempMapSvrData->m_bIN_USE == TRUE &&
                             lpTempMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3)
                        {
                            sDestServerCode = lpTempMapSvrData->m_sSVR_CODE;
                        }
                    }
    
                    LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                    if ( sDestServerCode != -1 )
                    {
                        LogAddTD("[MapServerMng] CheckMoveMapSvr() - MapServer Check OK [%s][%s] : MAP-%d / SVR-%d(State Map:%d X:%d Y:%d)",
                            gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, sDestServerCode,
                            gObj[iIndex].MapNumber, gObj[iIndex].X, gObj[iIndex].Y);
    
                        return sDestServerCode;
                    }
                }
                break;
    
            case -3:
                LogAddTD("[MapServerMng] CheckMoveMapSvr() - MapServer Check OK [%s][%s] : MAP-%d / SVR-%d (State Map:%d X:%d Y:%d)",
                    gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, gGameServerCode,
                    gObj[iIndex].MapNumber, gObj[iIndex].X, gObj[iIndex].Y);
    
                return gGameServerCode;
                break;
    
            default:
                if ( sMAP_MOVE_INFO > -1 )
                {
                    _MAPSVR_DATA * lpDestMapSvrData = NULL;
    
                    EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                    std::map<int, _MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(sMAP_MOVE_INFO);
    
                    if ( it != this->m_mapSVRCODE_MAP.end() )
                    {
                        lpDestMapSvrData = it->second;
                    }
    
                    LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                    if ( lpDestMapSvrData != NULL &&
                         lpDestMapSvrData->m_bIN_USE == TRUE &&
                         lpDestMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3)
                    {
                        return sMAP_MOVE_INFO;
                    }
    
                    short sDestServerCode = -1;
    
                    EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                    for ( it = this->m_mapSVRCODE_MAP.begin() ; it != this->m_mapSVRCODE_MAP.end() ;it++)
                    {
                        _MAPSVR_DATA * lpTempMapSvrData = it->second;
    
                        if ( lpTempMapSvrData != NULL &&
                             lpTempMapSvrData->m_bIN_USE == TRUE &&
                             lpTempMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3)
                        {
                            sDestServerCode = lpTempMapSvrData->m_sSVR_CODE;
                        }
                    }
                    
                    LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                    if ( sDestServerCode != -1 )
                    {
                        LogAddTD("[MapServerMng] CheckMoveMapSvr() - MapServer Check OK [%s][%s] : MAP-%d / SVR-%d(State Map:%d X:%d Y:%d)",
                            gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, sDestServerCode,
                            gObj[iIndex].MapNumber, gObj[iIndex].X, gObj[iIndex].Y);
    
                        return sDestServerCode;
                    }
                }
                else
                {
                    LogAddC(2, "[MapServerMng] CheckMoveMapSvr() - Unknown MapMove Info [%s][%s] : MAP-%d / INFO-%d",
                        gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, sMAP_MOVE_INFO);
    
                    return gGameServerCode;
                }
        }
    
        return gGameServerCode;
    }
    
    
    BOOL CMapServerManager::GetSvrCodeData(WORD wServerCode, char* lpszIpAddress, WORD * lpwPort)
    {
        if ( !lpszIpAddress || !lpwPort )
            return FALSE;
    
        _MAPSVR_DATA * lpMapSvrData = NULL;
    
        EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
        std::map<int, _MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(wServerCode);
    
        if ( it != this->m_mapSVRCODE_MAP.end() )
        {
            lpMapSvrData = it->second;
        }
    
        LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
        if ( lpMapSvrData == NULL )
            return FALSE;
    
        strcpy(lpszIpAddress, lpMapSvrData->m_cIPADDR);
        *lpwPort = lpMapSvrData->m_wPORT;
    
        return TRUE;
    }
    
    
    
    
        
    CMapServerManager g_MapServerManager

  7. #5
    Developer C++ LorenStudio's Avatar




    Data de Ingresso
    Jul 2020
    Posts
    136
    Thanks Thanks Given 
    172
    Thanks Thanks Received 
    267
    Thanked in
    60 Posts
    Mencionado
    10 Post(s)
    País
    Canada
    Citação Originally Posted by Odisk Ver Post
    ola então eu tenho isso no código, não consigo encontrar gensbattle

    Obrigado pela ajuda.


    MapServerManager.cpp
    Código:
    //GS-CS 1.00.90 finished
    #include "stdafx.h"
    #include "MapServerManager.h"
    #include "MapClass.h"
    #include "..\include\readscript.h"
    #include "GameMain.h"
    #include "LogProc.h"
    #include "user.h"
    
    _MAPSVR_DATA::_MAPSVR_DATA()
    {
        this->Clear(1);
    }
    
    _MAPSVR_DATA::~_MAPSVR_DATA()
    {
        return;
    }
    
    void _MAPSVR_DATA::Clear(int iInitSetVal)
    {
        this->m_bIN_USE = FALSE;
        this->m_btMAPSVR_GROUP = -1;
        this->m_sSVR_CODE = -1;
        memset(this->m_cIPADDR, 0, sizeof(this->m_cIPADDR));
        this->m_wPORT = 0;
    
        for ( int iMAP_COUNT =0;iMAP_COUNT<MAX_NUMBER_MAP;iMAP_COUNT++)
        {
            switch ( iInitSetVal )
            {
                case -1:
                    this->m_sMAP_MOVE[iMAP_COUNT] = -2;
                    break;
                case 0:
                    this->m_sMAP_MOVE[iMAP_COUNT] = -1;
                    break;
                default:
                    this->m_sMAP_MOVE[iMAP_COUNT] = -3;
            }
        }
    }
    
    CMapServerManager::CMapServerManager()
    {
        srand(time(NULL)); 
        this->m_bMapDataLoadOk=FALSE;
        this->m_lpThisMapSvrData = NULL;
    
        InitializeCriticalSection(&this->m_critSVRCODE_MAP);
    }
    
    CMapServerManager::~CMapServerManager()
    {
        DeleteCriticalSection(&this->m_critSVRCODE_MAP);
    }
    
    void CMapServerManager::Clear()
    {
        this->m_bMapDataLoadOk = FALSE;
    
        for ( int iGROUP_COUNT=0;iGROUP_COUNT<MAX_MAP_GROUPS;iGROUP_COUNT++)
        {
            this->m_iMAPSVR_GROUP_COUNT[iGROUP_COUNT] = 0;
    
            for ( int iSUB_GROUP_COUNT=0;iSUB_GROUP_COUNT<MAX_MAP_SUBGROUPS;iSUB_GROUP_COUNT++)
            {
                this->m_MAPSVR_DATA[iGROUP_COUNT][iSUB_GROUP_COUNT].Clear(1);
            }
        }
    
        this->m_mapSVRCODE_MAP.clear();
    }
    
    BOOL CMapServerManager::LoadData(char* lpszFileName)
    {
        if ( (lpszFileName == NULL) || ( strcmp(lpszFileName, "")== 0 ) ) 
        {
            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : File Name Error");
            return FALSE;
        }
    
        EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
        __try
        {
            this->Clear();
    
            SMDFile = fopen(lpszFileName, "r");    //ok
    
            if ( SMDFile == NULL )
            {
                MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : fopen() : %s",
                    lpszFileName);
    
                return FALSE;
            }
    
            int type = -1;
            SMDToken Token;
    
            while ( true )
            {
                Token = GetToken();
    
                if ( Token == END )
                    break;
    
                type = TokenNumber;
    
                while ( true )
                {
                    if ( type == 0 )
                    {
                        short sSVR_CODE = -1;
                        short sMAPSVR_GROUP = -1;
                        int iInitSetVal = 1;
                        char szIpAddr[16]={0};
                        WORD wPortNum = 0;
                        
                        Token = GetToken();
    
                        if ( !strcmp("end", TokenString))
                            break;
    
                        sSVR_CODE = TokenNumber;
    
                        Token = GetToken();
                        sMAPSVR_GROUP = TokenNumber;
    
                        Token = GetToken();
                        iInitSetVal = TokenNumber;
    
                        Token = GetToken();
                        memcpy(szIpAddr, &TokenString[1], 16);
                        szIpAddr[15] =0;
    
                        Token = GetToken();
                        wPortNum = TokenNumber;
    
                        if ( sSVR_CODE < 0 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : sSVR_CODE < 0 (SVR:%d) - 1",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( iInitSetVal != -1 && iInitSetVal != 0 && iInitSetVal != 1 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : iInitSetting Value:%d (SVR:%d) - 1",
                                iInitSetVal, sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( !strcmp(szIpAddr, ""))
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : No IpAddress (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( CHECK_LIMIT(sMAPSVR_GROUP, MAX_MAP_GROUPS) == FALSE )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : Map Server Group Index (IDX:%d)",
                                sMAPSVR_GROUP);
    
                            return FALSE;
                        }
    
                        if ( this->m_iMAPSVR_GROUP_COUNT[sMAPSVR_GROUP] >= MAX_MAP_SUBGROUPS )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : No Space to Save SvrInfo (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        _MAPSVR_DATA * lpMapSvrData = NULL;
    
                        lpMapSvrData= &this->m_MAPSVR_DATA[sMAPSVR_GROUP][this->m_iMAPSVR_GROUP_COUNT[sMAPSVR_GROUP]];
    
                        lpMapSvrData->Clear(iInitSetVal);
                        lpMapSvrData->m_bIN_USE = TRUE;
                        lpMapSvrData->m_sSVR_CODE = sSVR_CODE;
                        lpMapSvrData->m_btMAPSVR_GROUP = sMAPSVR_GROUP;
                        lpMapSvrData->m_wPORT = wPortNum;
                        memcpy(lpMapSvrData->m_cIPADDR, szIpAddr, 16);
                        lpMapSvrData->m_cIPADDR[15] = 0;
                        
                        this->m_mapSVRCODE_MAP.insert(std::pair<int,_MAPSVR_DATA *>(sSVR_CODE, lpMapSvrData));
                        this->m_iMAPSVR_GROUP_COUNT[sMAPSVR_GROUP]++;
                    }
                    else if ( type == 1 )
                    {
                        short sSVR_CODE = -1;
                        BYTE btNotMoveOption = 0;
                        WORD wMapNum = 0;
                        short sDEST_SVR_CODE = -1;
                        _MAPSVR_DATA * lpMapSvrData = NULL;
    
                        Token = GetToken();
    
                        if ( !strcmp("end", TokenString))
                            break;
    
                        sSVR_CODE = TokenNumber;
    
                        Token = GetToken();
                        btNotMoveOption = TokenNumber;
    
                        Token = GetToken();
                        wMapNum = TokenNumber;
    
                        Token = GetToken();
                        sDEST_SVR_CODE = TokenNumber;
    
                        if ( sSVR_CODE < 0 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : sSVR_CODE < 0 (SVR:%d) - 2",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( sDEST_SVR_CODE < -2 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : sDEST_SVR_CODE < -1 (SVR:%d, DEST_SVR:%d) - 2",
                                sSVR_CODE, sDEST_SVR_CODE);
    
                            return FALSE;
                        }
    
                        std::map<int  ,_MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(sSVR_CODE);
    
                        if ( it == this->m_mapSVRCODE_MAP.end() )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : sSVR_CODE wasn't registered (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        lpMapSvrData = it->second;
    
                        if ( lpMapSvrData == NULL )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData == NULL (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( lpMapSvrData->m_bIN_USE == FALSE )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData->m_bIN_USE == FALSE (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( lpMapSvrData->m_sSVR_CODE != sSVR_CODE )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData->m_sSVR_CODE != sSVR_CODE (SVR:%d)",
                                sSVR_CODE);
    
                            return FALSE;
                        }
    
                        if ( btNotMoveOption != 0 && btNotMoveOption != 1 )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData->m_sSVR_CODE != sSVR_CODE (SVR:%d, OPT:%d)",
                                sSVR_CODE, btNotMoveOption);
    
                            return FALSE;
                        }
    
                        if ( CHECK_LIMIT(wMapNum, MAX_NUMBER_MAP) == FALSE )
                        {
                            MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : Map Number is out of bound (SVR:%d, MAP:%d)",
                                sSVR_CODE, wMapNum);
    
                            return FALSE;
                        }
    
                        switch ( btNotMoveOption )
                        {
                            case 0:
                                lpMapSvrData->m_sMAP_MOVE[wMapNum] = sDEST_SVR_CODE;
                                break;
                            case 1:
                                lpMapSvrData->m_sMAP_MOVE[wMapNum] = -3;
                                break;
                            default:
                                MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : lpMapSvrData->m_sSVR_CODE != sSVR_CODE (SVR:%d, OPT:%d)",
                                    sSVR_CODE, btNotMoveOption);
                                break;
                        }
                    }    // if type
                }    // while ( true )
            }    // while ( true )
    
            fclose(SMDFile);
    
            std::map<int  ,_MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(gGameServerCode);
    
            if ( it != this->m_mapSVRCODE_MAP.end() )
            {
                this->m_lpThisMapSvrData = it->second;
            }
            else
            {
                this->m_lpThisMapSvrData = NULL;
            }
    
            if ( this->m_lpThisMapSvrData == NULL )
            {
                MsgBox("[MapServerMng] CMapServerManager::LoadData() - file load error : This GameServerCode (%d) doesn't Exist at file '%s' != sSVR_CODE",
                    gGameServerCode, lpszFileName);
    
                return FALSE;
            }
    
            this->m_bMapDataLoadOk = TRUE;
        }
        __finally
        {
            LeaveCriticalSection(&this->m_critSVRCODE_MAP);
        }
    
        return TRUE;
    }
    
    BOOL CMapServerManager::CheckMapCanMove(int iMAP_NUM)
    {
        if ( MapNumberCheck(iMAP_NUM) == 0 )
        {
            return FALSE;
        }
    
        _MAPSVR_DATA * lpMapSvrData = this->m_lpThisMapSvrData;
    
        if ( lpMapSvrData == NULL )
        {
            return FALSE;
        }
    
        if ( lpMapSvrData->m_bIN_USE == FALSE )
        {
            return FALSE;
        }
    
        short sMAP_MOVE_INFO = lpMapSvrData->m_sMAP_MOVE[iMAP_NUM];
    
        if ( sMAP_MOVE_INFO != -3 )
        {
            return FALSE;
        }
    
        return TRUE;
    }
    
    short CMapServerManager::CheckMoveMapSvr(int iIndex, int iMAP_NUM, short sSVR_CODE_BEFORE)
    {
        if ( this->m_bMapDataLoadOk == FALSE )
            return gGameServerCode;
    
        if ( !gObjIsConnected(iIndex))
            return gGameServerCode;
    
        if ( !MapNumberCheck(iMAP_NUM))
        {
            LogAddC(2, "[MapServerMng] CheckMoveMapSvr() - Map Index doesn't exist [%s][%s] : %d",
                gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM);
    
            return gGameServerCode;
        }
    
        _MAPSVR_DATA * lpMapSvrData = this->m_lpThisMapSvrData;
    
        if ( lpMapSvrData == NULL )
        {
            LogAddC(2, "[MapServerMng] CheckMoveMapSvr() - m_lpThisMapSvrData == NULL [%s][%s] : %d",
                gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM);
    
            return gGameServerCode;
        }
    
        if ( lpMapSvrData->m_bIN_USE == FALSE )
        {
            LogAddC(2, "[MapServerMng] CheckMoveMapSvr() - lpMapSvrData->m_bIN_USE == FALSE [%s][%s] : %d",
                gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM);
    
            return gGameServerCode;
        }
    
        short sMAP_MOVE_INFO = lpMapSvrData->m_sMAP_MOVE[iMAP_NUM];
    
        switch ( sMAP_MOVE_INFO )
        {
            case -1:
                {
                    _MAPSVR_DATA * lpDestMapSvrData = NULL;
    
                    if ( sSVR_CODE_BEFORE != -1 )
                    {
                        EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                        std::map<int, _MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(sSVR_CODE_BEFORE);
    
                        if ( it != this->m_mapSVRCODE_MAP.end() )
                        {
                            lpDestMapSvrData = it->second;
                        }
    
                        LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                        if ( lpDestMapSvrData != NULL )
                        {
                            if ( lpDestMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3 )
                            {
                                return sSVR_CODE_BEFORE;
                            }
                        }
                    }
    
                    std::vector<_MAPSVR_DATA *> vtMapSvrData;
    
                    EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                    for ( std::map<int ,_MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.begin() ; it != this->m_mapSVRCODE_MAP.end() ;it++)
                    {
                        _MAPSVR_DATA * lpTempMapSvrData = it->second;
    
                        if ( lpTempMapSvrData != NULL &&
                             lpTempMapSvrData->m_bIN_USE == TRUE &&
                             lpTempMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3)
                        {
                            vtMapSvrData.push_back(it->second);
                        }
                    }
    
                    LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                    short sDestServerCode = -1;
    
                    if ( vtMapSvrData.empty() == 0 )
                    {
                        sDestServerCode = vtMapSvrData[rand()%vtMapSvrData.size()]->m_sSVR_CODE;
                    }
    
                    if ( sDestServerCode != -1 )
                    {
                        LogAddTD("[MapServerMng] CheckMoveMapSvr() - MapServer Check OK [%s][%s] : MAP-%d / SVR-%d(State Map:%d X:%d Y:%d)",
                            gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, sDestServerCode,
                            gObj[iIndex].MapNumber, gObj[iIndex].X, gObj[iIndex].Y);
    
                        return sDestServerCode;
                    }
                }
                break;
    
            case -2:
                {
                    _MAPSVR_DATA * lpDestMapSvrData = NULL;
    
                    if ( sSVR_CODE_BEFORE != -1 )
                    {
                        EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                        std::map<int, _MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(sSVR_CODE_BEFORE);
    
                        if ( it != this->m_mapSVRCODE_MAP.end() )
                        {
                            lpDestMapSvrData = it->second;
                        }
    
                        LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                        if ( lpDestMapSvrData != NULL )
                        {
                            if ( lpDestMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3 )
                            {
                                return sSVR_CODE_BEFORE;
                            }
                        }
                    }
                    
                    short sDestServerCode = -1;
    
                    EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                    for ( std::map<int ,_MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.begin() ; it != this->m_mapSVRCODE_MAP.end() ;it++)
                    {
                        _MAPSVR_DATA * lpTempMapSvrData = it->second;
    
                        if ( lpTempMapSvrData != NULL &&
                             lpTempMapSvrData->m_bIN_USE == TRUE &&
                             lpTempMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3)
                        {
                            sDestServerCode = lpTempMapSvrData->m_sSVR_CODE;
                        }
                    }
    
                    LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                    if ( sDestServerCode != -1 )
                    {
                        LogAddTD("[MapServerMng] CheckMoveMapSvr() - MapServer Check OK [%s][%s] : MAP-%d / SVR-%d(State Map:%d X:%d Y:%d)",
                            gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, sDestServerCode,
                            gObj[iIndex].MapNumber, gObj[iIndex].X, gObj[iIndex].Y);
    
                        return sDestServerCode;
                    }
                }
                break;
    
            case -3:
                LogAddTD("[MapServerMng] CheckMoveMapSvr() - MapServer Check OK [%s][%s] : MAP-%d / SVR-%d (State Map:%d X:%d Y:%d)",
                    gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, gGameServerCode,
                    gObj[iIndex].MapNumber, gObj[iIndex].X, gObj[iIndex].Y);
    
                return gGameServerCode;
                break;
    
            default:
                if ( sMAP_MOVE_INFO > -1 )
                {
                    _MAPSVR_DATA * lpDestMapSvrData = NULL;
    
                    EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                    std::map<int, _MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(sMAP_MOVE_INFO);
    
                    if ( it != this->m_mapSVRCODE_MAP.end() )
                    {
                        lpDestMapSvrData = it->second;
                    }
    
                    LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                    if ( lpDestMapSvrData != NULL &&
                         lpDestMapSvrData->m_bIN_USE == TRUE &&
                         lpDestMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3)
                    {
                        return sMAP_MOVE_INFO;
                    }
    
                    short sDestServerCode = -1;
    
                    EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
                    for ( it = this->m_mapSVRCODE_MAP.begin() ; it != this->m_mapSVRCODE_MAP.end() ;it++)
                    {
                        _MAPSVR_DATA * lpTempMapSvrData = it->second;
    
                        if ( lpTempMapSvrData != NULL &&
                             lpTempMapSvrData->m_bIN_USE == TRUE &&
                             lpTempMapSvrData->m_sMAP_MOVE[iMAP_NUM] == -3)
                        {
                            sDestServerCode = lpTempMapSvrData->m_sSVR_CODE;
                        }
                    }
                    
                    LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
                    if ( sDestServerCode != -1 )
                    {
                        LogAddTD("[MapServerMng] CheckMoveMapSvr() - MapServer Check OK [%s][%s] : MAP-%d / SVR-%d(State Map:%d X:%d Y:%d)",
                            gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, sDestServerCode,
                            gObj[iIndex].MapNumber, gObj[iIndex].X, gObj[iIndex].Y);
    
                        return sDestServerCode;
                    }
                }
                else
                {
                    LogAddC(2, "[MapServerMng] CheckMoveMapSvr() - Unknown MapMove Info [%s][%s] : MAP-%d / INFO-%d",
                        gObj[iIndex].AccountID, gObj[iIndex].Name, iMAP_NUM, sMAP_MOVE_INFO);
    
                    return gGameServerCode;
                }
        }
    
        return gGameServerCode;
    }
    
    
    BOOL CMapServerManager::GetSvrCodeData(WORD wServerCode, char* lpszIpAddress, WORD * lpwPort)
    {
        if ( !lpszIpAddress || !lpwPort )
            return FALSE;
    
        _MAPSVR_DATA * lpMapSvrData = NULL;
    
        EnterCriticalSection(&this->m_critSVRCODE_MAP);
    
        std::map<int, _MAPSVR_DATA *>::iterator it = this->m_mapSVRCODE_MAP.find(wServerCode);
    
        if ( it != this->m_mapSVRCODE_MAP.end() )
        {
            lpMapSvrData = it->second;
        }
    
        LeaveCriticalSection(&this->m_critSVRCODE_MAP);
    
        if ( lpMapSvrData == NULL )
            return FALSE;
    
        strcpy(lpszIpAddress, lpMapSvrData->m_cIPADDR);
        *lpwPort = lpMapSvrData->m_wPORT;
    
        return TRUE;
    }
    
    
    
    
        
    CMapServerManager g_MapServerManager
    Não amigo isso seria na pasta data

  8. #6
    Iniciante Odisk's Avatar
    Data de Ingresso
    Aug 2016
    Posts
    6
    Thanks Thanks Given 
    14
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Mencionado
    0 Post(s)
    MEU HUMOR
    Angelic
    País
    Venezuela
    Citação Originally Posted by LuciferLGS Ver Post
    Não amigo isso seria na pasta data
    não é um problema nos dados. é um problema no src amigo.

  9. #7
    RoxGaming Developer Denis Alves's Avatar



    Data de Ingresso
    May 2017
    Posts
    299
    Thanks Thanks Given 
    215
    Thanks Thanks Received 
    705
    Thanked in
    118 Posts
    Mencionado
    36 Post(s)
    MEU HUMOR
    Amused
    País
    Brazil
    Citação Originally Posted by Odisk Ver Post
    não é um problema nos dados. é um problema no src amigo.
    I understood what you want, remove the Battle Zone from the maps and use it without the need for Gens, is that it?


    If so, I have this idea for future updates on my files but I believe that, seeing your codes, I saw some points that, at least in my opinion, I consider important to note, which is where BATTLE_ZONE_BLOCK is, anything talks to me in private that I will always be available there. Hugs Odisk!

  10. #8
    Iniciante Odisk's Avatar
    Data de Ingresso
    Aug 2016
    Posts
    6
    Thanks Thanks Given 
    14
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Mencionado
    0 Post(s)
    MEU HUMOR
    Angelic
    País
    Venezuela
    up up post

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • You may not post Resposta(s)
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •  
Sobre nós
Somos uma comunidade em atividade a 8 anos que aborda assuntos relacionados a games em geral, principalmente games MMORPG. e que busca sempre ajudar os membros através de conteúdos, tutoriais e suporte...
Nossos anunciantes
Hinetworks
VelozHost
InovHost
Rede Sociais