Andrey.pwn
Дебютант
Всем привет ребят!
Сегодня я вам покажу принцип обратного времени в команде.
А именно в копии команды Arizon`ы (не реклама).
Что будем отсчитывать? - Мы будем показывать сколько секунд назад игрок выполнял то, или иное действие.
Ну пожалуй начнем. Помогать нам будет функция gettime!
Ко всем переменным:
В public OnPlayerConnect:
Ну и теперь ко всем пабликам:
Основное мы сделали, приступим к самой команде
У меня команда написана на DC_CMD, вскоре, думаю дополню стандартным процессором.
Признаюсь, что при выделение памяти на стринги - я не измерял досканально. Но думаю, это не так уж и сложно, кто захочет.
Автор команды: Я (Он же Andrey.PWN)
Сегодня я вам покажу принцип обратного времени в команде.
А именно в копии команды Arizon`ы (не реклама).
Что будем отсчитывать? - Мы будем показывать сколько секунд назад игрок выполнял то, или иное действие.
Ну пожалуй начнем. Помогать нам будет функция gettime!
Ко всем переменным:
PHP:
new time_podoz,time_zcar;
new time_vcar,time_lspawn,time_pick;
new addchet[MAX_PLAYERS];
PHP:
addchet[playerid]=0;
В сток/паблик, либо туда, где кикает/подозревает читера:
- В конец паблика до return
- В самое начало
В public OnPlayerEnterVehicle в конец паблика до return:
В public OnPlayerExitVehicle в конец паблика до return:
В public/stock спавна игрока (например public PlayerSpawn) в конец паблика до return:
В OnPlayerPickUp в конец паблика до return:
PHP:
time_podoz = gettime();
PHP:
if(addchet[playerid]==0) addchet[playerid]=1;
else addchet[playerid]=2;
В public OnPlayerEnterVehicle в конец паблика до return:
PHP:
time_zcar = gettime();
PHP:
time_vcar = gettime();
PHP:
time_lspawn = gettime();
PHP:
time_pick = gettime();
Основное мы сделали, приступим к самой команде
У меня команда написана на DC_CMD, вскоре, думаю дополню стандартным процессором.
PHP:
CMD:request(playerid, params[])
{
new str[400], id, string[400];
if(PI[playerid][pAdmin] < 3) return false; //Тут свтами свою ячейку с проверкой на адм.
if(sscanf(params,"u",id)) return SendClientMessage(playerid, COLOR_RED, "Используй: /request [id]");
new speed = GetPlayerSpeed(id);
//
new podoz = gettime();
new result = podoz - time_podoz;
if(result >= 10000000) result = 0;
//
new pick = gettime();
new result1 = pick - time_pick;
if(result1 >= 10000000) result1 = 0;
//
new spawn = gettime();
new result2 = spawn - time_lspawn;
if(result2 >= 10000000) result2 = 0;
//
new vhcar = gettime();
new result3 = vhcar - time_vcar;
if(result3 >= 10000000) result3 = 0;
//
new zohcar = gettime();
new result4 = zohcar - time_zcar;
if(result4 >= 10000000) result4 = 0;
//
format(str,sizeof(str),"{ffffff}Name: %s[%d]\n",Name(id),id); //Name меняем на свою ячейку с Именем игрока, playerid заменяем на id
strcat(string,str);
format(str,sizeof(str),"{ffffff}Подозревался: %d сек. назад\n", result);
strcat(string,str);
if(addchet[id]>0)
{
if(GetPlayerState(playerid)!=2) strcat(string,"{ffffff}Причина подозрения: Пешком: слабый телепорт/летун/airbrake\n\n");
else strcat(string,"{ffffff}Причина подозрения: Машина: speed-hack/слабый телепорт\n\n");
}
else strcat(string,"{ffffff}Причина подозрения: Игрок не подозревался\n\n");
strcat(string,"{ffffff}Доказательства предоставлены античитом:\n");
format(str,sizeof(str),"{ffffff}- За 1-ну секунду переместился на %d метров\n\n", speed);
strcat(string,str);
format(str,sizeof(str),"{ffffff}- Последний легальный телепорт(пикап/мп/админ): %d сек. назад\n", result1);
strcat(string,str);
format(str,sizeof(str),"{ffffff}- Последний раз залазил в машину: %d сек. назад\n", result4);
strcat(string,str);
format(str,sizeof(str),"{ffffff}- Последний выход из машины: %d сек. назад\n", result3);
strcat(string,str);
format(str,sizeof(str),"{ffffff}- Последний легальный спавн: %d сек. назад\n\n", result2);
strcat(string,str);
strcat(string,"{BE2D2D}Гайд. Следите за 2-ой строкой и строкой которая отображает последний лог действий.\n");
strcat(string,"{BE2D2D}Она поможет вам понять: {ffffff}'Правдлива ли информация античита'.\n\n\n\n");
if(addchet[id]==1) strcat(string,"Приговор вторичного античита: {248daa}ЧИТЕР или ПОСТРАДАВШИЙ ОТ ЧИТЕРА [Нужно еще последить]\n");
else if(addchet[id]==2) strcat(string,"Приговор вторичного античита: {248daa}ЧИТЕР [80 процентов]\n");
else if(result>300) strcat(string,"Приговор вторичного античита: Скорее всего нет!\n");
else strcat(string,"Приговор вторичного античита: {248daa}Игрок не подозревался\n");
ShowPlayerDialogEx(playerid,0,0,"",string,"Принять","");
return true;
}
Автор команды: Я (Он же Andrey.PWN)
