Snegovik1337
Новичок
Описание:
Автоматический вход в аккаунт, реализовал при помощи айпи игрока, и хеш игрока от аккаунта пользователя Windows
ФункцияАвтоматический вход в аккаунт, реализовал при помощи айпи игрока, и хеш игрока от аккаунта пользователя 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);
p.s. Это пример использование этого скрипта
