11.12.2016, 04:41
(
Последний раз редактировалось AlexisBorgia; 11.12.2016 в 08:46.
Причина: Ortografнa.
)
Hola a todos.
Recientemente tuve el siguiente problema de que al desconectarme del GM en cual trabajo no se guarda nada de lo que hice, al conectarme en dicha cuenta aparezco SIEMPRE en una posiciуn igual. No obstante en la cuenta de admin uso no sucede esto, pero cuando cualquier otra persona (o me creo otra cuenta) reloguea, lo mismo.
Estuve viendo y en OnPlayerLoginEx estб lo siguiente:
Es exactamente todo, y en las posiciones que estбn tipeadas, es exactamente donde aparecen las cuentas luego de reloguear. Pero no entiendo por quй estб eso, y por quй con una cuenta no pasa y con las demas sн :/
En OnPlayerDisconnect me pareciу que lo importante a agregar era eso:
Y por ъltimo en un timer que hay estб lo siguiente:
Lo que me extraсa de esto, es que primero no se guardaba, luego un tiempo funcionу bien, y ahora devuelta no.
Me deja patidifuso
Un saludo y gracias de antemano.
Recientemente tuve el siguiente problema de que al desconectarme del GM en cual trabajo no se guarda nada de lo que hice, al conectarme en dicha cuenta aparezco SIEMPRE en una posiciуn igual. No obstante en la cuenta de admin uso no sucede esto, pero cuando cualquier otra persona (o me creo otra cuenta) reloguea, lo mismo.
Estuve viendo y en OnPlayerLoginEx estб lo siguiente:
PHP код:
function OnPlayerLoginEx(playerid)
{
TotalLogin++;
PLuces[playerid] = 0;
CancelSelectTextDraw(playerid);
ResetPlayerMoney(playerid);
CurrentMoney[playerid] = GetPVarInt(playerid, "Cash");
HideMenuLogin(playerid);
if(Info[playerid][pBanned] >= 2)
{
SetPlayerName(playerid, "BannedPlayer");
SendClientMessageEx(playerid, COLOR_GRAD1,"Error - [#002]");
SendClientMessageEx(playerid, COLOR_WHITE, "[INFO]: Usted esta baneado del servidor.");
SendClientMessageEx(playerid, COLOR_WHITE, "[INFO]: Puedes apelar a desbaneo en la web.");
SendClientMessageEx(playerid, COLOR_WHITE, "[INFO]: Link de la web: Proximamente.");
Expulsar(playerid);
return 1;
}
GetPlayerIp(playerid, Info[playerid][pIP], 32);
SetPlayerScore(playerid, Info[playerid][pLevel]);
if(Info[playerid][pReg] == 0)
{
Info[playerid][pLevel] = 0;
Info[playerid][pHealth] = 100.0;
Info[playerid][pPos_x] = 924.8110;
Info[playerid][pPos_y] = -1646.9933;
Info[playerid][pPos_z] = 13.5469;
Info[playerid][pInt] = 0;
Info[playerid][pChar] = 101;
Info[playerid][pPnumber] = 0;
Info[playerid][pPhousekey] = INVALID_HOUSE_ID;
Info[playerid][pMoneyBank] = 0;
SetPlayerSpawn(playerid);
}
if(Info[playerid][pPos_x] == 0.0 && Info[playerid][pPos_y]== 0.0&& Info[playerid][pPos_z]== 0.0){
Info[playerid][pPos_x] = 924.8110;
Info[playerid][pPos_y] = -1646.9933;
Info[playerid][pPos_z] = 13.5469;
}
if(Info[playerid][pAdmin] == 0) { Info[playerid][pGangModerator] = 0; Info[playerid][pShopTech] = 0; Info[playerid][pBanAppealer] = 0;Info[playerid][pStaffManager] = 0; Info[playerid][pFactionModerator] = 0; }
if(Info[playerid][pHospital] == 1){ Info[playerid][pHospital] = 0; SetPVarInt(playerid, "Hospital", 1); }
if(Info[playerid][pLevel] < 5 || Info[playerid][pAdmin] > 0 || Info[playerid][pHelper] > 0) gNewbie[playerid] = 0;
SetSpawnInfo(playerid, 0, Info[playerid][pChar], Info[playerid][pPos_x], Info[playerid][pPos_y], Info[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
gPlayerLogged{playerid} = 1;
SpawnPlayer(playerid);
ClearChatbox(playerid);
SetPlayerColor(playerid,TEAM_HIT_COLOR);
SendClientMessageEx(playerid, -1,"Has ingresado correctamente.");
SendClientMessageEx(playerid, -1,"Te damos la bienvenida nuevamente.");
ShowProgressBarForPlayer(playerid, HungryBar[playerid]);
SetPlayerFightingStyle(playerid, Info[playerid][pFStyle]);
SetPlayerToTeamColor(playerid);
LoadPlayerVehicles(playerid);
return 1;
}
En OnPlayerDisconnect me pareciу que lo importante a agregar era eso:
PHP код:
public OnPlayerDisconnect(playerid, reason)
{
saveHouse(Info[playerid][pPhousekey]);
GuardarArmas(playerid);
DestroyProgressBar(HungryBar[playerid]);
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
if(!strcmp(plname, "BannedPlayer", true)) return 1;
if(!strcmp(plname, "InvalidNick", true)) return 1;
for(new d = 0 ; d < MAX_PLAYERVEHICLES; d++)
{
new Float:x, Float:y, Float:z, Float:angle, vw;
vw = GetPlayerVirtualWorld(playerid);
GetVehiclePos(PlayerVehicleInfo[playerid][d][pvId], x, y, z);
GetVehicleZAngle(PlayerVehicleInfo[playerid][d][pvId], angle);
PlayerVehicleInfo[playerid][d][pvPosX] = x;
PlayerVehicleInfo[playerid][d][pvPosY] = y;
PlayerVehicleInfo[playerid][d][pvPosZ] = z;
PlayerVehicleInfo[playerid][d][pvPosAngle] = angle;
PlayerVehicleInfo[playerid][d][pvVW] = vw;
}
if(playerid == MAX_PLAYERS) return 1;
PHP код:
timer saveAccounts[60000]()
{
foreach(Player, i)
{
if(IsPlayerConnectedEx(i))
{
if(Info[i][pSpectating] != -1) break;
Info[i][pInt] = GetPlayerInterior(i);
Info[i][pVW] = GetPlayerVirtualWorld(i);
GetPlayerPos(i, Info[i][pPos_x], Info[i][pPos_y], Info[i][pPos_z]);
GetPlayerFacingAngle(i, Info[i][pPos_r]);
new playerip[32];
GetPlayerIp(i, playerip, sizeof(playerip));
format(Info[i][pIP], 32, "%s", playerip);
GuardarArmasSV();
SaveVarPlayer(1,i, "Money", GetPVarInt(i, "Cash") );
}
}
}
Me deja patidifuso
Un saludo y gracias de antemano.