[FIX] BAGMESS - darmart123

Ir abajo

[FIX] BAGMESS - darmart123

Mensaje por MrKrhiz el Dom Nov 06, 2011 2:40 am

CODE de arreglar el BagMess seria un FIX de KaoZureS pero lo arreglo darmart y lo acorto un poquito ^^


Probado !

Nos vamos al Game.cpp HG SRC
Buscamos:


Código:
void CGame::RequestInitDataHandler(int iClientH, char * pData, char cKey, BOOL bIsResurrected)
Ahora en la misma funcion buscamos:


Código:
case DEF_XSOCKEVENT_SOCKETCLOSED:
En esta parte tienen que ser muy cuidadosos para que no le de errores.
Una lineas mas abajo encontraremos...


Código:
bFlag = FALSE;
Desde ahi hasta el ultimo


Código:
}
Remplazamos todo por:

Código:
 
    bFlag = FALSE; // Kaozures - Adaptado darmart123.
    while (bFlag == FALSE) {
    bFlag = TRUE;
    for (i = 0; i < DEF_MAXITEMS-1; i++)
    if ((m_pClientList[iClientH]->m_pItemList[i] == NULL) && (m_pClientList[iClientH]->m_pItemList[i+1] != NULL)) {
    m_pClientList[iClientH]->m_pItemList[i] = m_pClientList[iClientH]->m_pItemList[i+1];
    m_pClientList[iClientH]->m_pItemList[i+1] = NULL;
    m_pClientList[iClientH]->m_ItemPosList[i].x = m_pClientList[iClientH]->m_ItemPosList[i+1].x;
    m_pClientList[iClientH]->m_ItemPosList[i].y = m_pClientList[iClientH]->m_ItemPosList[i+1].y;
    bFlag = FALSE;
    }
    }
Ahi terminamos la parte mas compleja...

Ahora nos vamos a la funcion:


Código:
BOOL CGame::_bDecodePlayerDatafileContents(int iClientH, char * pData, DWORD dwSize)
Dentro de esta funcion buscamos:


Case 50
Remplazamos todo ese case por:



Código:
case 50:
    if (_bGetIsStringIsNumber(token) == FALSE) {
    wsprintf(cTxt, "(!!!) Player(%s) data file error! wrong Data format - Connection closed. ", m_pClientList[iClientH]->m_cCharName);
    PutLogList(cTxt);
    delete pContents;
    delete pStrTok;
    return FALSE;
    }

    m_pClientList[iClientH]->m_ItemPosList[cReadModeB-1].x = atoi(token);
    if (m_pClientList[iClientH]->m_ItemPosList[cReadModeB-1].x < -10) m_pClientList[iClientH]->m_ItemPosList[cReadModeB-1].x = -10; //KaoZureS adaptado darmart123
    cReadModeB++;
    if (cReadModeB > 50) {
    cReadModeA = 0;
    cReadModeB = 0;
    }
    break;


Eso seria tienen su Bag-Mess fixieado!

ATENCION:

Este code se podria decir que esta solo hecho para servidores fast ya que solo te soluciona este problema cuando pasas de un mapa a otro dentro de un mismo HG de lo contrario seguira igual

Espero que halla ayudado...

Base de code por KaoZureS
Rescatado y adaptado sacando unas minimas lineas xD darmart123

_________________
************ Helbreath Black & White ************

avatar
MrKrhiz
Hellbreath HellOfAngel
Hellbreath HellOfAngel

Mensajes : 29
Reputacion : 1
Fecha de inscripción : 17/10/2011

Ver perfil de usuario http://helbreathymas.activo.mx

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.