Античит -
Jon_De - 24.09.2014
Суть чита в том, что он позволяет переподключаться к серверу без вызова OnPlayerDisconnect, соответственно, если у вас при выходе с сервера должны сохраняться деньги или какие то другие переменные аккаунта, они сохранены не будут.
Особенность чита в том, что он может подключить только под тем же ID, который у вас был.
// В начало скрипта
Code:
new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
// Там, где игрок
логинится и где
регистрирует аккаунт
Code:
GetPlayerName(playerid, PlayerName[playerid], sizeof(PlayerName[]));
// OnPlayerConnect
Code:
if(strlen(PlayerName[playerid]) > 1)
{
/*
Тут баним ник или удаляем аккаунт игроку PlayerName[playerid]
т.к. на нем возможно имеются дюпнутые деньги или какие то другие вещи
Но советую всё же банить, а не удалять
*/
printf("%s использовал баг", PlayerName[playerid]);
return 1;
}
GetPlayerName(playerid, PlayerName[playerid], sizeof(PlayerName[]));
// OnPlayerDisconnect
Code:
PlayerName[playerid] = "";
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
White_116 - 24.09.2014
Чит древний как мир, уже года два ему.
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
DartfoL - 25.09.2014
Но использовать стали недавно
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
OKStyle - 25.09.2014
Зачем так сложно. Ставь при логине pvar с рандомным числом, а при коннекте проверяй. Если pvar > 0 - бань.
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
stabker - 25.09.2014
У меня от one slot flood осталось
pawn Code:
new connected[MAX_PLAYERS char];
public OnPlayerConnect(playerid)
{
if(connected{playerid})
{
BanEx(playerid, "One Slot Flood");
return 0;
}
else connected{playerid} = 1;
//Остальное
}
public OnPlayerDisconnect(playerid, reason)
{
connected{playerid} = 0;
//Остальное
}
За тему спасибо. Увидел ее и вспомнил, что недавно этот код перенес ниже обнуления переменных (чего не стоило делать).
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
Jon_De - 25.09.2014
Quote:
Originally Posted by stabker
У меня от one slot flood осталось
pawn Code:
new connected[MAX_PLAYERS char];
public OnPlayerConnect(playerid) { if(connected{playerid}) { BanEx(playerid, "One Slot Flood"); return 0; } else connected{playerid} = 1; //Остальное }
public OnPlayerDisconnect(playerid, reason) { connected{playerid} = 0; //Остальное }
За тему спасибо. Увидел ее и вспомнил, что недавно этот код перенес ниже обнуления переменных (чего не стоило делать).
|
в твоем коде банит только ип адрес, это не спасет
Quote:
Зачем так сложно. Ставь при логине pvar с рандомным числом, а при коннекте проверяй. Если pvar > 0 - бань.
|
пвары не сохраняются вроде бы + как я сказал, надо банить старый ник, а не под тем, которым ты подключился, т.е. тебе в любом случае придется использовать массив для хранения ника
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
stabker - 25.09.2014
Почему не спасает? OnPlayerConnect > OnPlayerConnect > Ban > OnPlayerDisconnect (сохранение аккаунта).
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
Jon_De - 25.09.2014
Quote:
Originally Posted by stabker
Почему не спасает? OnPlayerConnect > OnPlayerConnect > Ban > OnPlayerDisconnect (сохранение аккаунта).
|
второй OnPlayerConnect вызовется с другим ником, с другого аккаунта. Зависит от того как сохраняется акк, у меня лично на пварах, так что такое не прокатит
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
OKStyle - 25.09.2014
Пвар и не должен сохраняться - ещё раз прочитай схему работы, предложенную мной. И ник не надо банить - баньте IP и текущий ник.
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
Yera96 - 25.09.2014
Про этот чит впервые слышу. Решил подстраховаться и сделать так как OKStyle написал. По сути PVar автоматический обнуляются когда вызывается OnPlayerDisconnect, так что не надо проверки по имени.
pawn Code:
public OnPlayerConnect(playerid)
{
if(GetPVarInt(playerid, "ConnectedWithCheat")) return Ban(playerid);
SetPVarInt(playerid, "ConnectedWithCheat", 1);
return 1;
}
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
Jon_De - 25.09.2014
Quote:
Originally Posted by OKStyle
Пвар и не должен сохраняться - ещё раз прочитай схему работы, предложенную мной. И ник не надо банить - баньте IP и текущий ник.
|
Напиши код, не совсем понимаю что ты предлагаешь. Текущий ник нельзя банить + банить надо обязательно залоигненный аккаунт
Quote:
if(GetPVarInt(playerid, "ConnectedWithCheat")) return Ban(playerid);
SetPVarInt(playerid, "ConnectedWithCheat", 1);
|
Во первых, так ты забанишь только ип
Во вторых, так ты не определишь ник игрока, который был до подключения твинка, а банить надо именно его, для этого и хранится ник в массиве
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
OKStyle - 26.09.2014
В
OnPlayerConnect:
pawn Code:
if(GetPVarInt(playerid, "Disconnect") > 0)
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
new string[MAX_PLAYER_NAME + 4];
format(account, sizeof(account), "%s.ini", PlayerName);
fremove(account); // файл должен быть закрыт
BanEx(playerid, "Disconnect");
}
В логин:
pawn Code:
SetPVarInt(playerid, "Disconnect", 1);
Зачем банить имя до перезахода, читер разве его может поменять? Т.е. дублируется инфа с прошлого акка на другой по playerid? Тогда так:
В
OnPlayerConnect:
pawn Code:
new PlayerName[MAX_PLAYER_NAME];
GetPVarString(playerid, "Disconnect", PlayerName, sizeof(PlayerName));
if(strlen(PlayerName) > 0)
{
new string[MAX_PLAYER_NAME + 4];
format(account, sizeof(account), "%s.ini", PlayerName);
fremove(account); // файл должен быть закрыт
BanEx(playerid, "Disconnect");
}
В логин:
pawn Code:
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
SetPVarString(playerid, "Disconnect", PlayerName);
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
cm666 - 26.09.2014
Разве в сампе не фиксанули заход под одним слотом ?
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
Jon_De - 26.09.2014
Quote:
Зачем банить имя до перезахода, читер разве его может поменять?
|
в том и дело, что да
и я не тестил, сохраняются ли пвары после второго коннекта в 1 слот, так что гарантировать работоспособность твоего кода не могу
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
OKStyle - 26.09.2014
Если не вызывается OnPlayerDisconnect, то сохраняются.
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
Mexanizm93 - 04.11.2014
удалено, тупанул
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
ea8de1 - 26.07.2015
Не проще чистить переменные в самом начале OnPlayerConnect?
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
James_Braga - 26.07.2015
Quote:
Originally Posted by ea8de1
Не проще чистить переменные в самом начале OnPlayerConnect?
|
А вообще лучше делать переменные с авто чисткой к примеру использовать unixtime для этого... но в этом случаи нужно обновлять драйвера мозга чтобы он смог правильно построить логику для скрипта.
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
FanHamMer - 01.08.2015
Quote:
Originally Posted by cm666
Разве в сампе не фиксанули заход под одним слотом ?
|
Это же SA:MP...
Re: Фикс чита (У кого система аккаунтов - читать обязательно!!!) -
Mcc - 04.08.2015
Quote:
Originally Posted by FanHamMer
Это же SA:MP...
|
Что это должно значить?