IceHash
Умник
Нужно сделать спавн игрока после авторизации.
Код:
//Подключение
public OnPlayerConnect(playerid)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
TogglePlayerSpectating(playerid, true);
if(IsPlayerRegister(playername))
{
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "Авторизация на сервере", "Здравствуйте, уважаемый игрок!\nВы зарегистрированы на сервере!\nПожалуйста, введите пароль для авторизации:", "Войти", "");
}
else
{
ShowPlayerDialog(playerid, D_REGISTER, DIALOG_STYLE_INPUT, "Регистрация на сервере", "Здравствуйте, уважаемый игрок!\nВы не зарегистрированы на сервере!\nПожалуйста, введите пароль для регистрации:", "Войти", "");
}
return 1;
}
//Авторизация
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new playername[MAX_PLAYER_NAME], string[256];
switch(dialogid)
{
case D_LOGIN:
{
new query[256], DBResult:result, value[16];
GetPlayerName(playerid, playername, sizeof(playername));
format(query, sizeof(query), "SELECT * FROM `users` WHERE `login`='%s' AND `password`='%s'", EscapeDB(playername), EscapeDB(inputtext));
result = db_query(DataBase, query);
if(db_num_rows(result))
{
db_get_field_assoc(result, "level", value, 16); PlayerInfo[playerid][Level] = strval(value);
db_get_field_assoc(result, "health", value, 16); PlayerInfo[playerid][Health] = floatstr(value);
db_get_field_assoc(result, "armour", value, 16); PlayerInfo[playerid][Armour] = floatstr(value);
db_get_field_assoc(result, "posx", value, 16); PlayerInfo[playerid][PosX] = floatstr(value);
db_get_field_assoc(result, "posy", value, 16); PlayerInfo[playerid][PosY] = floatstr(value);
db_get_field_assoc(result, "posz", value, 16); PlayerInfo[playerid][PosZ] = floatstr(value);
db_get_field_assoc(result, "passport", value, 16); PlayerInfo[playerid][Passport] = strval(value);
db_get_field_assoc(result, "age", value, 16); PlayerInfo[playerid][Age] = strval(value);
db_get_field_assoc(result, "skin", value, 16); PlayerInfo[playerid][Skin] = strval(value);
db_get_field_assoc(result, "admin", value, 16); PlayerInfo[playerid][Admin] = strval(value);
db_get_field_assoc(result, "fraction", value, 16); PlayerInfo[playerid][Fraction] = strval(value);
SetSpawnInfo(playerid, PlayerInfo[playerid][Fraction], PlayerInfo[playerid][Skin], PlayerInfo[playerid][PosX], PlayerInfo[playerid][PosY], PlayerInfo[playerid][PosZ], 1.0, -1, -1, -1, -1, -1, -1);
if(PlayerInfo[playerid][Admin] > 0)
{
format(string, sizeof(string), "Вы администратор %d уровня!", PlayerInfo[playerid][Admin]);
SendClientMessage(playerid, C_ORANGE, string);
}
}
else
{
SendClientMessage(playerid, C_RED, "Ошибка: Вы ввели неверный пароль!");
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "Авторизация на сервере", "Здравствуйте, уважаемый игрок!\nВы зарегистрированы на сервере!\nПожалуйста, введите пароль для авторизации:", "Войти", "");
}
db_free_result(result);
}
}
return 1;
}
