Перейти к содержанию
Авторизация  
SCRIPTMAN

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

Рекомендуемые сообщения

SCRIPTMAN

Приветствую!

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

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

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

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

 

Спойлер

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, x, y, z, a, weapon1, ammo1, weapon2, ammo2, weapon3, ammo3);
SpawnPlayer(playerid);
SetPlayerInterior(playerid, interior);
SetPlayerVirtualWorld(playerid, world);

 

Спойлер

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"))

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

К сожалению, ответа не дождался. Но, я поделюсь решением данной проблемы. Отчаянный, переписав уже всю систему спавна, я решил проверить скрипты. Проблема оказалась в camera_point_fix.asi, именно он и вызывал эту штуку. И теперь понятно, почему такого не было, когда мы спавнили скин для выбора - не требовался фикс камеры игрока, т. к. она была фиксированной. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.