Возможность спауна до логина - как убрать?
#1

Доброго времени суток! Пишу гейммод с нуля, использую плагин MySQL и наткнулся на такие грабли при организации авторизации:
PHP код:
public OnPlayerConnect(playerid)
{
    new 
query[MAX_QUERY];
    new 
PlayerName[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    
mysql_format(MySQL, query, sizeof(query), "SELECT * FROM `players` WHERE `name` = '%e'", PlayerName);
    
mysql_tquery(MySQL, query, "OnPlayerConnected", "d", playerid);
    return 
1;
} 
Т.е. игрок подключается, уходит запрос в базу данных в отдельном потоке, дальше вызывается функция OnPlayerConnected - с этим всё нормально. Но получается, что игрок сразу переходит в режим выбора скина, а только после этого появляется диалог для ввода пароля.

Как бы это дело пофиксить, кто подскажет?
Reply
#2

PHP код:
public OnPlayerConnect(playerid) 
{ 
    new 
query[MAX_QUERY]; 
    new 
PlayerName[MAX_PLAYER_NAME]; 
    
GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); 
    
mysql_format(MySQL, query, sizeof(query), "SELECT * FROM `players` WHERE `name` = '%e'", PlayerName); 
    
mysql_tquery(MySQL, query, "OnPlayerConnected", "d", playerid); 
    
TogglePlayerSpectating(playerid, true);
    return 
1; 
} 
public 
OnPlayerConnected(playerid) 
{
    
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    
// дальше твоё
} 
Reply
#3

а диалог на авторизацию откуда вызывается?
Reply
#4

PHP код:
public OnPlayerRequestSpawn(playerid)
{
    return 
false;
} 
Reply
#5

после авторизации игрока используй
pawn Код:
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
в Onplayerlogin или что там у тебя
Reply
#6

Спасибо, первый же вариант оказался тем, что мне нужно...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)