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

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

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

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

Русская система логов. Пример /kick

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

Lanser

Умник
Всем привет. Решил как то я для понта:D сделать, чтобы логи писались по-русски и в столбик. Попробывал на команде /kick

ко всем forward
Код:
forward SystemDiniLog(string[]);
и в конец мода

Код:
log(filename[],string[])
{
	new year, month,day;
	new hour,minuite,second;
	new stringer[100];
	new str[500];
	gettime(hour,minuite,second);
	FixHour(hour);
	hour = shifthour+1;
	getdate(year, month, day);
	format(stringer,sizeof(stringer),"Logs/%s.log",filename);// Это куда сохраняются файлы с разширением log
	new File:file = fopen(stringer, io_append);
	format(str,sizeof(str),"%s [Дата:%d/%d/%d][Время:%d:%d:%d]\r\n",string,day,month,year,hour,minuite,second);
	for(new io=0; io<strlen(str); io++)
	{
		fputchar(file, str[io], false);
	}
	fclose(file);
}
Все лог мы рабочим сделали, теперь давайте саму сделаем кик, чтобы сохранялся в лог сам кик
Заменяем свой кик на этот

Код:
	if(strcmp(cmd, "/kick", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, " Èñïîëüçîâàòü: /kick [playerid/PartOfName] [reason]");
				return 1;
			}
			giveplayerid = ReturnUser(tmp);
			if (PlayerInfo[playerid][pAdmin] >= 1)
			{
				if(IsPlayerConnected(giveplayerid))
				{
					if(giveplayerid != INVALID_PLAYER_ID)
					{
						GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						new length = strlen(cmdtext);
						new kickstring[999];
						while ((idx < length) && (cmdtext[idx] <= ' '))
						{
							idx++;
						}
						new offset = idx;
						new result[64];
						while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
						{
							result[idx - offset] = cmdtext[idx];
							idx++;
						}
						result[idx - offset] = EOS;
						if(!strlen(result))
						{
							SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /kick [playerid/PartOfName] [reason]");
							return 1;
						}
						new year, month,day;
						getdate(year, month, day);
						format(string, sizeof(string), "* %s кикнут(а) администратором %s ,причина: %s", giveplayer, sendername, (result));
						log("Kick", string);
						format(string, sizeof(string), " %s кикнут(а) администратором: %s", giveplayer, sendername, (result));
						SendClientMessageToAll(COLOR_LIGHTRED, string);
						format(kickstring, sizeof(kickstring), "* Вы %s, были кикнуты администратором %s *", giveplayer, sendername);
						SendClientMessage(giveplayerid, COLOR_YELLOW, kickstring);
						format(kickstring, sizeof(kickstring), "* Причина: %s *",(result));
						SendClientMessage(giveplayerid, COLOR_YELLOW, kickstring);
						format(kickstring, sizeof(kickstring), "* Дата: %d-%d-%d *",day,month,year);
						SendClientMessage(giveplayerid, COLOR_YELLOW, kickstring);
						Kick(giveplayerid);
						return 1;
					}
				}
			}
			else
			{
				format(string, sizeof(string), "   %d нет в игре.", giveplayerid);
				SendClientMessage(playerid, COLOR_GRAD1, string);
			}
		}
		return 1;
	}
Чуть не забыл, в папке scriptfiles создайте папку Logs.
В папке Logs докумет Kick.log

Пример как будет писаться "* Mels_Rostovski кикнут(а) администратором Mels_Rostovski, причина: Проверка [Дата:26/07/2012][Время:17:17:33]

Всем спасибо, будут ошибки, варнинги, вопросы пишите с теме.

Буду благодарен плюсу)

Автор я)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу