• Страница 1 из 1
  • 1
Русская система логов. Пример /kick
Дмитрий Дата: Понедельник, 06.08.2012, 22:40 | Сообщение # 1 | Сообщить о нерабочей теме


Аватар для Дмитрий

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

ко всем forward

Code
forward SystemDiniLog(string[]);


и в конец мода

Code
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);
}


Все лог мы рабочим сделали, теперь давайте саму сделаем кик, чтобы сохранялся в лог сам кик
Заменяем свой кик на этот

Code
    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]

Автор: Lanser


From Russia With Love!
  • Страница 1 из 1
  • 1
Поиск: