[Crash] OnPlayerDisconnect
#1

Buenas amigos de SAMP me dirijo hacia usted para pedirles ayuda ya que no encuentro soluciуn a este problema.

Pasa que si me registro y me pongo AdminDuty y me desconecto con el AdminDuty se crashea el SV pero si me desconecto sin AdminDuty el SV continua nolmar sin errores.

Esto solo pasa si me creo una cuenta nueva pero si me logueo y me desconecto con admin duty puesto el SV no se crashea.(їRaro verdad?)

Aqui los errores:
Код:
[16:43:41] [debug] Server crashed while executing TX-RP-SQL.amx
[16:43:41] [debug] AMX backtrace:
[16:43:41] [debug] #0 native mysql_function_query () [002d8f00] from mysql.DLL
[16:43:41] [debug] #1 00056ae8 in ?? () from TX-RP-SQL.amx
[16:43:41] [debug] #2 00051a84 in public S@@_OnPlayerDisconnect () from TX-RP-SQL.amx
[16:43:41] [debug] #3 native CallLocalFunction () [00472c00] from samp-server.exe
[16:43:41] [debug] #4 000164f0 in public Streamer_OnPlayerDisconnect () from TX-RP-SQL.amx
[16:43:41] [debug] #5 native CallLocalFunction () [00472c00] from samp-server.exe
[16:43:41] [debug] #6 0000c1b8 in public Itter_OnPlayerDisconnect () from TX-RP-SQL.amx
[16:43:41] [debug] #7 native CallLocalFunction () [00472c00] from samp-server.exe
[16:43:41] [debug] #8 0000b6d4 in public SSCANF_OnPlayerDisconnect () from TX-RP-SQL.amx
[16:43:41] [debug] #9 native CallLocalFunction () [00472c00] from samp-server.exe
[16:43:41] [debug] #10 000055a8 in public FIXES_OnPlayerDisconnect () from TX-RP-SQL.amx
[16:43:41] [debug] #11 native CallLocalFunction () [00472c00] from samp-server.exe
[16:43:41] [debug] #12 00002114 in public OnPlayerDisconnect () from TX-RP-SQL.amx
Aqui el codigo:

OnPlayerDisconnect:
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    if(pConectado[playerid] == 1 )
    {
       ToggleHUD(playerid, false);
       GuardarCuenta(playerid); printf("[DataCenter]: %s - Ha guardado su cuenta correctamente.", GetName(playerid));
       pConectado[playerid] = 0;
       pAdminDuty[playerid] = 0;
    }
    return 1;
}
OnPlayerConnect:

pawn Код:
public OnPlayerConnect(playerid)
{
    pWarning[playerid] = 0;
    pAdminDuty[playerid] = 0;
    pConectado[playerid] = 0;
    pMuerto[playerid] = 0;
    CheckSerial(playerid);
    return 1;
}
Solo seteo las variables por si las mocas, aunque ellas se setean a 0 por defecto al desconectarse el usuario...

pConectado se setea en 1 en OnPlayerSpawn osea cuando spawnea para evitar BUGS con los sistemas que usan esta variable.

Comando adminduty:
pawn Код:
YCMD:adminduty(playerid, params[], help)
{
    if(PlayerInfo[playerid][pAdmin] > 1 || IsPlayerAdmin(playerid))
    {
        if( help ) return SendClientMessage( playerid, COLOR_BLUE, "[Informaciуn]: Este comando sirve para cambiar tu estado administrativo a On/Off Duty." );
        if (pAdminDuty[playerid] == 0)
        {
            static MyString[81];
            static Float:x,Float:y,Float:z;
            new Text3D:label = CreateDynamic3DTextLabel("Admin On Duty!", COLOR_RED,x,y,z, 40.0, 0, 0);
            GetPlayerPos(playerid,x,y,z);
            SetPlayerHealth(playerid, 9999);
            SetPlayerColor(playerid, COLOR_RED);
            SetPlayerSkin(playerid, SKIN_ADMIN);
            format(MyString, sizeof (MyString), "{FF0000}[AdmWarning]: {FF8000}%s - Administrador On Duty.", GetName(playerid));
            SendAdminMessage(playerid, COLOR_ADMIN, MyString);
            SendClientMessage(playerid,COLOR_USER,"[Warning]: Usted a cambiado su estado administrativo a On Duty.");
            Attach3DTextLabelToPlayer(label,playerid,0.0, 0.0, 0.7);
            pAdminDuty[playerid] = 1;
        }
        else if(pAdminDuty[playerid] == 1)
        {
            static MyString[82];
            static Float:x,Float:y,Float:z;
            new Text3D:label = CreateDynamic3DTextLabel("Admin On Duty!", COLOR_RED,x,y,z, 40.0, 0, 0);
            DestroyDynamic3DTextLabel(label);
            SetPlayerHealth(playerid, g_PlayerInfo[playerid][pVida]);
            SetPlayerColor(playerid, COLOR_CONECTADO);
            SetPlayerSkin(playerid, g_PlayerInfo[playerid][pSkin]);
            format(MyString, sizeof (MyString),"{FF0000}[AdmWarning]: {FF8000}%s - Administrador Off Duty.", GetName(playerid));
            SendAdminMessage(playerid, COLOR_ADMIN, MyString);
            SendClientMessage(playerid, COLOR_USER,"[Warning]: Usted a cambiado su estado administrativo a Off Duty.");
            pAdminDuty[playerid] = 0;
        }
    }
    else return PlayerPlaySound(playerid,1054,0.0,0.0,0.0), SendClientMessage( playerid, COLOR_ERROR, "[Error]: Usted no esta autorizado para usar este comando." );
    return 1;
}
La verdad como pueden ver esto esta rarisimo el CMD funciona bien aunque si es cuenta nueva y lo uso para ponerme Off Duty
me setea la vida en 0, pero eso se debe a que setee la vida con SetPlayerHeal y la variable de vida esta en 0 creare una funciуn para eso . (Me acorde ahora xDDD)

PD: He cambiado a mil formas la callback y nada lo mismo siempre se crashea solo si me creo una cuenta nueva y me desconecto en adminduty osea en On Duty.

Muchas gracias.

Un saludo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)