- 1
- 0
Приветствую!
С проблемой разбираюсь уже около месяца, суть такая:
У нас своя сборка SAMP на карте CRMP, у меня и ещё у одного человека (у нас обоих разрешение FHD), всё работает нормально, у других, разрешение у которых отлично от нашего, при спавне после реги или авторизации кидает в загрузку(белый экран, по центру чёрный прямоугольник), при этом, стоит заметить, что при спавне на выбор скина при регистрации у них всё нормально, а вот потом, либо после окончания регистрация, либо после авторизации такая штука.
Что было предпринято мной: полностью переписан спавн игроков во всём модем, убрал так называемый "двойной" спавн, всё сделал по грамотному, так же проверяли на локалке - проблема не исчезла.
Искренне надеюсь, что тут есть люди, которые смогут мне помочь с решением данной проблемы. Приложу видео, как это выглядит в игре, а так же код спавна.
Демонстрация проблемы
С проблемой разбираюсь уже около месяца, суть такая:
У нас своя сборка 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"))