pawn Код:
public OnPlayerDisconnect( playerid, reason )
{
if ( IsPlayerNPC( playerid ) )
return 1;
GotLogged[playerid]=0;
PlayerInfo2[playerid][Helmet]=0;
PlayerInfo2[playerid][Seatbelt]=0;
LoadedData[playerid]=0;
KillTimer( LoadingTimer[playerid] );
new veh = GetPlayerVehicleID( playerid );
if( IsABusVehicle( veh ) && BusCP[playerid] != 0 )
SetVehicleToRespawn( veh );
if ( IsAQuarryVehicle( veh ) && ( QuarryCP[playerid] == 3 || QuarryCP[playerid] == 1 ) )
{
SetVehicleToRespawn( veh );
if( IsValidObject( VehicleObject[veh] ) ) { DestroyObject( VehicleObject[veh] ); VehicleObject[veh]=0; }
}
DestroyPlayerObject( playerid, FirstViewObject[playerid] );
StopAudioStreamForPlayer( playerid );
InCall[playerid] = 0;
Calling[playerid] = -1;
FlashLight[playerid] = 0;
RiotShield[playerid] = 0;
new qStr[92];
switch( reason )
{
case 0: format( qStr, 92, "* %s has disconnected from the server. (Timed out)", GetPName( playerid ) );
case 1: format( qStr, 92, "* %s has disconnected from the server. (Leaving)", GetPName( playerid ) );
case 2: format( qStr, 92, "* %s has disconnected from the server. (Kicked/Banned)", GetPName( playerid ) );
}
if( !isnull( qStr ) ) ProxDetector( 30.0, playerid, qStr, -1, -1, -1, -1, -1 );
if( Roped[playerid] == 1 )
{
for(new d = 0; d <= ROPE_LENGHT; d++ )
{
DestroyDynamicObject(Ropes[playerid][d]);
}
}
for( new k = 0; k < 10; k++ )
RemovePlayerAttachedObject( playerid, k );
if ( PlayerInfo[playerid][LoggedIn] == 1 )
{
GetPlayerPos( playerid, PlayerInfo[playerid][LastX], PlayerInfo[playerid][LastY], PlayerInfo[playerid][LastZ] );
GetPlayerFacingAngle( playerid, PlayerInfo[playerid][LastA] );
InCall[playerid] = 0;
Calling[playerid] = -1;
if ( PlayerInfo[playerid][LoggedIn] == 1 )
{
if ( InHouse[playerid] != 0 )
{
PlayerInfo[playerid][LastX] = HouseInfo[InHouse[playerid]][hx];
PlayerInfo[playerid][LastY] = HouseInfo[InHouse[playerid]][hy];
PlayerInfo[playerid][LastZ] = HouseInfo[InHouse[playerid]][hz];
PlayerInfo[playerid][VirtualWorld] = 0;
PlayerInfo[playerid][Interior] = 0;
SetPlayerInterior( playerid, 0 );
SetPlayerVirtualWorld( playerid, 0 );
}
if ( InBusiness[playerid] != 0 )
{
PlayerInfo[playerid][LastX] = BusinessInfo[InBusiness[playerid]][bx];
PlayerInfo[playerid][LastY] = BusinessInfo[InBusiness[playerid]][by];
PlayerInfo[playerid][LastZ] = BusinessInfo[InBusiness[playerid]][bz];
PlayerInfo[playerid][VirtualWorld] = 0;
PlayerInfo[playerid][Interior] = 0;
SetPlayerInterior( playerid, 0 );
SetPlayerVirtualWorld( playerid, 0 );
}
if ( InBuilding[playerid] != 0 )
{
PlayerInfo[playerid][LastX] = PublicBuildings[InBuilding[playerid]][enterx];
PlayerInfo[playerid][LastY] = PublicBuildings[InBuilding[playerid]][entery];
PlayerInfo[playerid][LastZ] = PublicBuildings[InBuilding[playerid]][enterz];
PlayerInfo[playerid][VirtualWorld] = 0;
PlayerInfo[playerid][Interior] = 0;
SetPlayerInterior( playerid, 0 );
SetPlayerVirtualWorld( playerid, 0 );
}
if ( InHq[playerid] != 0 )
{
PlayerInfo[playerid][LastX] = FactionInfo[InHq[playerid]][EntranceX];
PlayerInfo[playerid][LastY] = FactionInfo[InHq[playerid]][EntranceY];
PlayerInfo[playerid][LastZ] = FactionInfo[InHq[playerid]][EntranceZ];
PlayerInfo[playerid][VirtualWorld] = 0;
PlayerInfo[playerid][Interior] = 0;
SetPlayerInterior( playerid, 0 );
SetPlayerVirtualWorld( playerid, 0 );
}
SetPlayerInterior( playerid, 0 );
SetPlayerVirtualWorld( playerid, 0 );
SaveUserData( playerid );
PlayerInfo[playerid][LoggedIn] = 0;
}
}
if ( PlayerInfo2[playerid][RentCarKey] != -255 )
{
new car = PlayerInfo2[playerid][RentCarKey];
RentalInfo[car][RentedBy] = -255;
PlayerInfo2[playerid][RentCarKey] = -255;
SetVehicleToRespawn( car );
}
if ( PlayerInfo[playerid][LoggedIn] == 1 )
KillTimer( MinutePayTimer[playerid] );
PlayerTextDrawDestroy( playerid, ErrorMessage[playerid] );
PlayerTextDrawDestroy( playerid, Pay1[playerid] );
PlayerTextDrawDestroy( playerid, Pay2[playerid] );
PlayerTextDrawDestroy( playerid, Watch1[playerid] );
PlayerTextDrawDestroy( playerid, Watch2[playerid] );
PlayerTextDrawDestroy( playerid, BloodMeter[playerid] );
PlayerTextDrawDestroy( playerid, FillTextdraw0[playerid] );
PlayerTextDrawDestroy( playerid, FillTextdraw1[playerid] );
PlayerTextDrawDestroy( playerid, FillTextdraw2[playerid] );
PlayerTextDrawDestroy( playerid, FillTextdraw3[playerid] );
PlayerTextDrawDestroy( playerid, HorseBetting[playerid] );
PlayerTextDrawDestroy( playerid, HorseInfo[playerid] );
PlayerTextDrawDestroy( playerid, FishingText[playerid] );
PlayerTextDrawDestroy( playerid, WireText[playerid] );
PlayerTextDrawDestroy( playerid, CarInfo[playerid] );
PlayerTextDrawDestroy( playerid, Ammu2[playerid] );
PlayerTextDrawDestroy( playerid, CopRadar[playerid] );
PlayerTextDrawDestroy( playerid, Speedo1[playerid] );
PlayerTextDrawDestroy( playerid, Speedo2[playerid] );
PlayerTextDrawDestroy( playerid, Speedo3[playerid] );
PlayerTextDrawDestroy( playerid, SpectateDraw[playerid] );
TextDrawHideForPlayer( playerid, IntroGraphic0 );
TextDrawHideForPlayer( playerid, IntroGraphic1 );
TextDrawHideForPlayer( playerid, IntroGraphic2 );
TextDrawHideForPlayer( playerid, IntroGraphic3 );
TextDrawHideForPlayer( playerid, IntroGraphic4 );
TextDrawHideForPlayer( playerid, IntroGraphic5 );
TextDrawHideForPlayer( playerid, IntroGraphic6 );
TextDrawHideForPlayer( playerid, Text:TestTextdraw3 );
TextDrawHideForPlayer( playerid, Text:TestTextdraw4 );
TextDrawHideForPlayer( playerid, Text:TestTextdraw5 );
PlayerInfo[playerid][LoggedIn]=0;
memset( PlayerInfo[playerid], 0 );
return 1;
}
BTW I'm certain this problem is regarding loading because when someone disconnects their user file is correct but when they login they can adquire other stats.