- Регистрация
- 13 Июн 2013
- Сообщения
- 65
- Лучшие ответы
- 0
- Репутация
- 22
Добрый день
Думаю многие из вас знают про чит God Of Cars, для тех, кто не в курсе
В общем поиздевался над серверами, стало жалко поляков, около 8 серверов центрифугой выключил xD
Данный прототит анти-чита поможет защитить ваш сервер от всех этих "недугов", кроме центрифуги, у нее походу по другому система устроена...
Ложные срабатывания? - не видел
Для справочки:
Тестировал системку на пустом сервере с ~2000 машин, срабатывало на все, кроме центрифуги... после активации лагера у меня комп минут 20 отвисал
Для тестов:
При тесте, если обнаружил вас с читом - замораживает и отправляет смс в чат, чтобы очистить его и разморозиться - кнопка N
Если все устроило -
Версия 2 - без таймера, действуют 2 каллбэка
Здесь уже очищен код и будет кикать при обнаружении чита
Так же рекомендую заменить все PutPlayerInVehicle на putPlayerInVehicle
Вот и все) Удачной ловли тунеядцев!
Автор - Seregamil
Так же во время тестирования заметил, что ловит за
AutoGet, т.е. телепортирует в любую близстоящую машину
И пульсатор цвета (игрок стоит рядом с тачкой и ее цвет меняется)
P.S. срабатывает при использовании не в машине
[hr][/hr]
Вариант Кемпера
Думаю многие из вас знают про чит God Of Cars, для тех, кто не в курсе
В общем поиздевался над серверами, стало жалко поляков, около 8 серверов центрифугой выключил xD
Данный прототит анти-чита поможет защитить ваш сервер от всех этих "недугов", кроме центрифуги, у нее походу по другому система устроена...
Ложные срабатывания? - не видел
Для справочки:
Тестировал системку на пустом сервере с ~2000 машин, срабатывало на все, кроме центрифуги... после активации лагера у меня комп минут 20 отвисал
Для тестов:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
При тесте, если обнаружил вас с читом - замораживает и отправляет смс в чат, чтобы очистить его и разморозиться - кнопка N
Если все устроило -
PHP:
#include <a_samp>
main(){}
new p_ac[MAX_PLAYERS];
public OnGameModeInit()
{
SetTimer("AC_Car",200,0);
return 1;
}
forward AC_Car();
public AC_Car(){
for(new j;j!=GetMaxPlayers();j++){
if(!IsPlayerConnected(j)) continue;
if(p_ac[j]!=0) p_ac[j]--;
if(p_ac[j] != 0){
p_ac[j] = 0;
Kick(j);
}
}
SetTimer("AC_Car",200,0);
}
public OnPlayerConnect(playerid)
{
p_ac[playerid] = 0;
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate){
if(newstate == PLAYER_STATE_DRIVER){
p_ac[playerid]+=1;
}
return 1;
}
Версия 2 - без таймера, действуют 2 каллбэка
PHP:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
//все PutPlayerInVehicle замените на putPlayerInVehicle
#include <a_samp>
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){
SetPVarInt(playerid,"ac_car_id",vehicleid);
return 1;
}
public OnPlayerUpdate(playerid){
if(IsPlayerInAnyVehicle(playerid)){
if(GetPlayerVehicleID(playerid) != GetPVarInt(playerid,"ac_car_id")){
SetPVarInt(playerid,"ac_car_id",-1);
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
SetPlayerPos(playerid,x,y,z+1);
SendClientMessage(playerid,-1,"Не шали засранец!");
}
}
return 1;
}
putPlayerInVehicle(playerid,vehicle,seat){
SetPVarInt(playerid,"ac_car_id",vehicle);
PutPlayerInVehicle(playerid,vehicle,seat);
}
public OnPlayerConnect(playerid){
SetPVarInt(playerid,"ac_car_id",-1);
return 1;
}
Так же рекомендую заменить все PutPlayerInVehicle на putPlayerInVehicle
Вот и все) Удачной ловли тунеядцев!
Автор - Seregamil
Так же во время тестирования заметил, что ловит за
AutoGet, т.е. телепортирует в любую близстоящую машину
И пульсатор цвета (игрок стоит рядом с тачкой и ее цвет меняется)
P.S. срабатывает при использовании не в машине
[hr][/hr]
Вариант Кемпера
PHP:
#include <a_samp>
forward AC_Car();
new p_ac[MAX_PLAYERS char];
public OnGameModeInit() {
SetTimer("AC_Car", 200, true);
return true;
}
public AC_Car() {
for(new j, maxPL = GetMaxPlayers(); j != maxPL; j++) {
if (!IsPlayerConnected(j)) continue;
if (--p_ac{j} < 0)
return p_ac{j} = 0, Kick(j);
}
return true;
}
public OnPlayerConnect(playerid) {
p_ac{playerid} = 0;
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate){
if (newstate == PLAYER_STATE_DRIVER)
p_ac{playerid}++;
return true;
}
Последнее редактирование: