После регистрации/авторизация кидает в "Loading"

SCRIPTMAN

Новичок
Автор темы
1
0
Приветствую!

С проблемой разбираюсь уже около месяца, суть такая:
У нас своя сборка SAMP на карте CRMP, у меня и ещё у одного человека (у нас обоих разрешение FHD), всё работает нормально, у других, разрешение у которых отлично от нашего, при спавне после реги или авторизации кидает в загрузку(белый экран, по центру чёрный прямоугольник), при этом, стоит заметить, что при спавне на выбор скина при регистрации у них всё нормально, а вот потом, либо после окончания регистрация, либо после авторизации такая штука.

Что было предпринято мной: полностью переписан спавн игроков во всём модем, убрал так называемый "двойной" спавн, всё сделал по грамотному, так же проверяли на локалке - проблема не исчезла.

Искренне надеюсь, что тут есть люди, которые смогут мне помочь с решением данной проблемы. Приложу видео, как это выглядит в игре, а так же код спавна.

Демонстрация проблемы

Сток спавна:
stock SpawnPlayerEx(playerid)

{

    new Float: x,

        Float: y,

        Float: z,

        Float: a,

        skin = PI[playerid][pModel],

        world = 0,

        interior = 0,

        weapon1 = 0, ammo1 = 0,

        weapon2 = 0, ammo2 = 0,

        weapon3 = 0, ammo3 = 0;

    

    if(GetPVarInt(playerid, "player_in_enter") == 1) // вот это координаты и спавн выбора скина

    {       

        x = -2716.9604,

        y = 1953.1338,

        z = 35.5185,

        a = 45.0,

        world = (playerid + 1),

        skin = JoinRegM[SelectCharPlace[playerid]];

    }

    

    else

    {

    

        PlayerSpawned[playerid] = false;



        if(PI[playerid][pMember]) skin = PI[playerid][pMemberSkin];

        else skin = PI[playerid][pModel];

        if(PI[playerid][Spectating][0] != INVALID_PLAYER_ID) // Был в спектре

        {

            x = GetPVarFloat(playerid, "SpecX"),

            y = GetPVarFloat(playerid, "SpecY"),

            z = GetPVarFloat(playerid, "SpecZ"),

            a = GetPVarFloat(playerid, "SpecA"),

            world = GetPVarInt(playerid, "SpecVw"),

            interior = GetPVarInt(playerid, "SpecInt");



            if(PI[playerid][pMember]) skin = PI[playerid][pMemberSkin];

            else if(Oldskin2[playerid] > 0) skin = Oldskin2[playerid];

            else skin = PI[playerid][pModel];

        }



        else if(ClothesRound[playerid] == 2) // В магазине одежды

        {

            new WM = 2 +random(100);

            interior = playerid,

            world = WM;

            x = -1774.4742,

            y = 1768.3673,

            z = 2377.4409,

            a = 180;

            switch(PI[playerid][pSex])

            {

                case 1:

                {

                    SelectCharPlace[playerid] = 0;

                    skin = JoinShopM[SelectCharPlace[playerid]][0];

                }

                case 2:

                {

                    SelectCharPlace[playerid] = 0;

                    skin = JoinShopF[SelectCharPlace[playerid]][0];

                }

            }

        }

Конец стока спавна:
 SetSpawnInfo(playerid, 0, skin, Float:x, Float:y, Float:z, Float:a, weapon1, ammo1, weapon2, ammo2, weapon3, ammo3);
    SpawnPlayer(playerid);
    SetPlayerInterior(playerid, interior);
    SetPlayerVirtualWorld(playerid, world);

public OnPlayerSpawn (вызывается в стоке):
public OnPlayerSpawn(playerid)
{
    if(GetPVarInt(playerid, "player_in_enter") == 1) // вызывается тоже при выборе скина
    {       
        TogglePlayerControllable(playerid, false);
        SetPlayerCameraPos(playerid, -2721.5674, 1957.3044, 36.5426);
        SetPlayerCameraLookAt(playerid, -2720.9348, 1956.5221, 36.4679);
        return false; // остальной код не вызывается
    }
// вызыается при авторизации или окончании реги
    if(GetPVarInt(playerid,"Killed_Go_Reset_Spawn") == 1) ResetPlayerWeaponAC(playerid);

    #if defined ALBION_GUARD

    PG_DATA[playerid][Kill_Time] = 0;
    
    if(PlayerLogged[playerid] != true)
    {
        SendMess(playerid, MSG_PLAYER_NEED_TO_LOGGED);
        return AC_KICK(playerid,  "NO SPAWN (1)", 7);
    }
    
    #endif

    // Global
    StopAudioStreamForPlayer(playerid);
    TogglePlayerControllable(playerid, true);
    SetHunger(playerid, PI[playerid][pHunger]);
     DisablePlayerCheckpoint(playerid);
    SetPlayerScore(playerid, PI[playerid][pLevel]);
    SetPlayerColorEx(playerid, TeamColors[GetTeamID(playerid)]);   
    if(PI[playerid][pFightStyle]) SetPlayerFightingStyle(playerid, PI[playerid][pFightStyle]);
    else SetPlayerFightingStyle(playerid, 0);
    if(PI[playerid][pWanted]) SetPlayerWantedLevel(playerid, PI[playerid][pWanted]);   

    if(PI[playerid][pCash])
    {
        ResetPlayerMoney(playerid);
        GivePlayerMoney(playerid, PI[playerid][pCash]);
    }

    SetPVarInt(playerid, "K_Times", 0);
    SetPVarInt(playerid, "AC_Protection", 1);
    SetPlayerSkills(playerid);
    if(GetPVarInt(playerid, "Connected"))