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;
}
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;
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") );
}
}
}
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; }
GetPlayerPos(playerid, Info[playerid][pPos_x], Info[playerid][pPos_y], Info[playerid][pPos_z]);
No estoy muy seguro, pero me parece que se estan guardando mal las coordenadas... Mira esta parte:
Код:
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; } Код:
GetPlayerPos(playerid, Info[playerid][pPos_x], Info[playerid][pPos_y], Info[playerid][pPos_z]); |