їHaces guardado de cuenta cuando un X se desconecta? Pбsanos el OnPlayerDisconnect.
|
public OnPlayerDisconnect(playerid, reason) { GuardarPosicion(playerid); GuardadoCuentas(playerid); KillTimer(timerorina[playerid]); KillTimer(timercansancio[playerid]); KillTimer(timerhambre[playerid]); DestroyProgressBar(OrinaB[playerid]); DestroyProgressBar(HambreB[playerid]); DestroyProgressBar(CansancioB[playerid]); DestroyProgressBar(ProgresoB[playerid]); KillTimer(timerbajarminutos[playerid]); Guardar_Graffitis(playerid); //KillTimer(timerplayer[playerid]); YSI_Save_Account(playerid); GuardarPosicion(playerid); SendAdminsPlayerConnection(playerid, reason, false), SaveIpUser(playerid, false); /////////////////////////////////// KILL TIMER /////////////////////////////////// if(EstaEnIntro[playerid] == true) { KillTimer(NextConceptTimer[playerid]); } else if(Player_In_Login[playerid] != 0) { KillTimer(Player_In_Login[playerid]); printf("DEBUG: Player_In_Login Timer from player %s(%i) stopped.", GetPlayerNameEx(playerid), playerid); } else if(KickReason[playerid] != 0) { KillTimer(KickLoginTimer[playerid]); printf("DEBUG: KickReason Timer from player %s(%i) stopped.", GetPlayerNameEx(playerid), playerid); } if(GetPlayerData[playerid][P_DresserID] != NONE_ID && TotalDresserData[GetPlayerData[playerid][P_DresserID]][PlayerInDresser] == playerid) { TotalDresserData[GetPlayerData[playerid][P_DresserID]][PlayerInDresser] = NONE_ID; printf("[LOGUEADOS]: El Jugador %s [Vestidor: %i] se ha desconectado.", GetPlayerNameEx(playerid), GetPlayerData[playerid][P_DresserID]); } if(TVPeriodistaID == playerid) { TVPeriodistaID = NONE_ID; new MsgTelevisionOffline[MAX_TEXT_CHAT]; VolverPosAEspectadores(), Transmitiendo[playerid] = false; format(NombreDelPrograma, sizeof(NombreDelPrograma), "Finalizado"); format(MsgTelevisionOffline, sizeof(MsgTelevisionOffline), "** Televisiуn: {FFFFFF}El Periodнsta {C3FF00}%s {FFFFFF}ha Finalizado la Transmisiуn de Televisiуn. ( Fallos Tйcnicos ).", GetPlayerNameEx(playerid)); SendClientMessageToAll(COLOR_OTROS, MsgTelevisionOffline); TextDrawHideForAll(TextDrawFondo); TextDrawHideForAll(TextDrawTitulo); TextDrawHideForAll(TextDrawTexto); printf(MsgTelevisionOffline); } if(IsPlayerWatchingTV[playerid]) { Televidentes --; new MsgTelevisionOffline[MAX_TEXT_CHAT]; format(MsgTelevisionOffline, sizeof(MsgTelevisionOffline), "{FF0000}Informaciуn: {FFFFFF}%s {FF0000}ha Salido a tu Transmisiуn. Total de Especatadores: {FFFFFF}%d{FF0000}.", GetPlayerNameEx(playerid), Televidentes); SendClientMessage(TVPeriodistaID, COLOR_OTROS, MsgTelevisionOffline); } if(NextBusStop[playerid] > 0) { new MsgBusData[MAX_TEXT_CHAT]; if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 431) { format(MsgBusData, sizeof(MsgBusData), "%s: El Conductor del Colectivo %s [Bus:#%i] se ha Desconectado. El Colectivo fue Respawneado con йxito.", LOGO_ADMIN, GetPlayerNameEx(playerid), GetPlayerVehicleID(playerid)); SendAdminMessage(COLOR_ADMIN_NEWS, MsgBusData); SetVehicleToRespawnEx(GetPlayerVehicleID(playerid)); printf("[Colectivos]: %s desconectado. Colectivo ID: %i Respawneado", GetPlayerNameEx(playerid), GetPlayerVehicleID(playerid)); } else { format(MsgBusData, sizeof(MsgBusData), "%s: El Conductor del Colectivo %s (POSIBLE ID: %i) se ha Desconectado. El Colectivo fue Respawneado sin йxito.", LOGO_ADMIN, GetPlayerNameEx(playerid), GetPlayerVehicleID(playerid)); SendAdminMessage(COLOR_ADMIN_NEWS, MsgBusData); } } if(CalledID[playerid] != NONE_ID) { PlayerUsePhone(CalledID[playerid], ACCION_COLGAR); IDLlamador[CalledID[playerid]] = NONE_ID; NumLlamando[CalledID[playerid]] = false; TelefonoOcupado[CalledID[playerid]] = false; CalledID[CalledID[playerid]] = NONE_ID; SendClientMessage(CalledID[playerid], COLOR_GRIS, "Se ha cortado la llamada Telйfonica. (El jugador se ha desconectado)."); PlayerDoAction(CalledID[playerid], 0, "guarda su telйfono mуvil."); } else if(IDLlamador[playerid] != NONE_ID) { PlayerUsePhone(IDLlamador[playerid], ACCION_COLGAR); CalledID[IDLlamador[playerid]] = NONE_ID; NumLlamando[IDLlamador[playerid]] = false; TelefonoOcupado[IDLlamador[playerid]] = false; IDLlamador[IDLlamador[playerid]] = NONE_ID; SendClientMessage(IDLlamador[playerid], COLOR_GRIS, "Se ha cortado la Llamada Telйfonica. (El Jugador se ha desconectado)."); PlayerDoAction(IDLlamador[playerid], 0, "guarda su telйfono mуvil."); } if(IsPlayerManager(playerid)) // REVIEWING SYSTEM { DoLoop(i, false, MAX_PLAYERS) // Player's Loop { DoLoop(ii, false, MAX_REVIEWING_COUNT) // Reviewing's Loop { if(Manager_Reviewing_Player[i][ii] == playerid) { Manager_Reviewing_Player[i][ii] = NONE_MANAGER_REVIEWING; } } } } if(playerid == ReinforcementStatus[1] && GetPlayerFactionID(playerid) == FACTION_TYPE_LSPD) { SetPoliceReinforcementMarket(playerid, 0 + 2); } GuardarPosicion(playerid); ini_Guardar_Email(playerid); ResetPlayerStats(playerid); return 1; }
if(JugadorConectado[playerid] == true)
{
GuardadoCuentas(playerid);
}
Haz que la cuenta solo se guarde cuando el jugador esta logueado, ya que si este entra y no termina de poner su contraseсa y luego sale, se le borraran/reseteara sus datos, ya que todas las variables estan en 0.
No te paso un ejemplo por que nose como tienes la variable para cuando el jugador inicia sesiуn. pero seria algo asi: PHP код:
|