Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Автоматический вход в аккаунт

Snegovik1337

Новичок
Описание:
Автоматический вход в аккаунт, реализовал при помощи айпи игрока, и хеш игрока от аккаунта пользователя Windows​
Функция
PHP:
#if !defined GetPlayerGpci
    native GetPlayerGpci(playerid, serial[], len) = gpci;
#endif
Макросы
PHP:
#if !defined MAX_PLAYER_IP
    #define MAX_PLAYER_IP 15
#endif

#if !defined MAX_PLAYER_GPCI
    #define MAX_PLAYER_GPCI 40
#endif
Массив
PHP:
enum _Info {
    Ip[MAX_PLAYER_IP +1],
    Gpci[MAX_PLAYER_GPCI +1],
    Name[MAX_PLAYER_NAME +1]
};
new PlayerInfo[MAX_PLAYERS][_Info];
Колбэк
PHP:
public OnPlayerConnect(playerid)
{
    GetPlayerIp(playerid, PlayerInfo[playerid][Ip], MAX_PLAYER_IP);
    GetPlayerGpci(playerid, PlayerInfo[playerid][Gpci], MAX_PLAYER_GPCI);
    GetPlayerName(playerid, PlayerInfo[playerid][Name], MAX_PLAYER_NAME);

    new
        query[46 -2+MAX_PLAYER_NAME +1];
    mysql_format(connects, query, sizeof(query), "SELECT * FROM accounts WHERE Name='%e' LIMIT 1", PlayerInfo[playerid][Name]); 
    mysql_pquery(connects, query, "LoadAccount", "i", playerid);
    return 1;
}
PHP:
forward LoadAccount(playerid);
public LoadAccount(playerid)
{
    new
        rows;
    cache_get_row_count(rows);
    if (rows) {
        new
            ip[MAX_PLAYER_IP +1],
            gpci[MAX_PLAYER_GPCI +1];

        cache_get_value_name(0, "Ip", ip, MAX_PLAYER_IP);
        cache_get_value_name(0, "Gpci", gpci, MAX_PLAYER_GPCI);

        if(!strcmp(ip, PlayerInfo[playerid][Ip], false) && !strcmp(gpci, PlayerInfo[playerid][Gpci], false)) {
            //Автоматический вход в аккаунт.
        } else {
            //Если айпи или хеш аккаунта пользователя Windows не совпадают 
        }
    }
    return 1;
}

После успешной авторизации, в случае неверного айпи или хеш аккаунта пользователя Windows
Обновляем данные
PHP:
new
     query[61 -2+MAX_PLAYER_IP -2+MAX_PLAYER_GPCI -2+MAX_PLAYER_NAME +1];
mysql_format(connects, query, sizeof(query), "UPDATE accounts SET Ip='%e',Gpci='%e' WHERE Name='%e' LIMIT 1", PlayerInfo[playerid][Ip], PlayerInfo[playerid][Gpci], PlayerInfo[playerid][Name]);
mysql_pquery(connects, query);
Автор: Snegovik1337 (он же ur_Krass)

p.s. Это пример использование этого скрипта
 
Сверху Снизу