Доступ к архиву

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

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

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

Команда с обратным отсчетом времени действия игрока

Статус
В этой теме нельзя размещать новые ответы.

Andrey.pwn

Дебютант
Всем привет ребят!
Сегодня я вам покажу принцип обратного времени в команде.
А именно в копии команды Arizon`ы (не реклама).
Что будем отсчитывать? - Мы будем показывать сколько секунд назад игрок выполнял то, или иное действие.
Ну пожалуй начнем. Помогать нам будет функция gettime!

Ко всем переменным:
PHP:
new time_podoz,time_zcar;
new time_vcar,time_lspawn,time_pick;
new addchet[MAX_PLAYERS];
В public OnPlayerConnect:

PHP:
addchet[playerid]=0;
Ну и теперь ко всем пабликам:

В сток/паблик, либо туда, где кикает/подозревает читера:

PHP:
time_podoz = gettime();
- В конец паблика до return
PHP:
if(addchet[playerid]==0) addchet[playerid]=1;
else addchet[playerid]=2;
- В самое начало

В public OnPlayerEnterVehicle в конец паблика до return:

PHP:
time_zcar = gettime();
В public OnPlayerExitVehicle в конец паблика до return:

PHP:
time_vcar = gettime();
В public/stock спавна игрока (например public PlayerSpawn) в конец паблика до return:

PHP:
time_lspawn = gettime();
В OnPlayerPickUp в конец паблика до return:

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)
​
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу