Косой_Карлик
Умник
Создал лог нарушения игрока чтобы он мог видеть кто ему выдал варн, виден всем, сделал через команду /playerlogs. каждый игрок может ввести лог и видеть нарушение одного игрока.
Сделал следующим образом
в команде /warn
Сделал следующим образом
в команде /warn
format(stringer1, sizeof(stringer1), "выдал предупреждение");
PlayerLogs(playerid,stringer1, params[1]);
C++:
stock PlayerLogs(playerid, const type[], const reason[])
{
const max_name_type = 140,max_lenght_reason = 30;
new year, month,day, hour,minuite,second;
getdate(year, month, day);
gettime(hour,minuite,second);
static const fmt_str[] = "INSERT INTO `player_logs` (`date`, `admin_name`, `type`, `reason`) VALUES ('%02d/%02d/%d %02d:%02d:%02d', '%s' ,'%s', '%s')";
new string[sizeof(fmt_str) + (- 2 + MAX_PLAYER_NAME) * 2 + (- 2 + max_name_type) + (- 2 + max_lenght_reason)];
format(string, sizeof(string),fmt_str, day,month,year,hour,minuite,second,PlayerInfo[playerid][pNames],type,reason);
mysql_function_query(connects, string, false, "", "");
}
CMD:playerlogs(playerid)
{
DeletePVar(playerid, "PlayerLogsLoading");
PlayerLoadingLogs(playerid);
return 1;
}
PlayerLoadingLogs(playerid)
{
mysql_format(connects, mysql_query_, sizeof(mysql_query_),"SELECT * FROM `player_logs` LIMIT %i", PlayerInfo[playerid][pID], GetPVarInt(playerid, "PlayerLogsLoading") * 15 + 15);
mysql_function_query(connects, mysql_query_, true, "PlayerLoges", "i", playerid);
return 1;
}
publics: PlayerLoges(playerid)
{
new rows = cache_num_rows(), page = GetPVarInt(playerid, "PlayerLogsLoading");
if(rows)
{
new year, month,day, hour,minuite,second;
getdate(year, month, day);
gettime(hour,minuite,second);
new tmp,admin_name[25], type[128],reason[30],date[20], stringall[2000];
format(stringall, 50, "дата\tадмин\tтекст\tпричина\t\n");
for(new i = page * 15; i < rows; i++)
{
cache_get_field_content(i, "date", date, connects, 30);
cache_get_field_content(i, "admin_name", admin_name, connects, 25);
cache_get_field_content(i, "type", type, connects, 144);
cache_get_field_content(i, "reason", reason, connects, 50);
format(stringall, 2000, "%s%02d/%02d/%d %02d:%02d:%02d\t%s\t%s\t%s\n", stringall,day,month,year,hour,minuite,second,admin_name,type,reason);
tmp++;
}
if(tmp)
{
format(stringall, 2000, "%sСледующая страница\n", stringall);
if(page)
{
format(stringall, 2000, "%sПредыдущая страница", stringall);
}
new string[50];
format(string, 50, "{FFCC00}Все логи %i", page + 1);
SPD(playerid, 207, DIALOG_STYLE_TABLIST_HEADERS, string, stringall, "Далее", "Отмена");
}
else
{
if(page)
{
new string[50];
format(string, 50, "{FFCC00}Все логи %i", page + 1);
SPD(playerid, 208, DSM, string, "{FFFFFF}На этой странице не найдены.", "Назад", "Закрыть");
}
}
}
else
{
if(page)
{
new string[50];
format(string, 50,"{FFCC00}Все логи %i", page + 1);
SPD(playerid, 208, DSM, string, "{FFFFFF}На этой странице не найдены.", "Назад", "Закрыть");
}
}
return 1;
}
