stock ShowPlayerBanLogCache(playerid)
{
{
"При отображении списка блокировок произошла ошибка [#001]. Повторите попытку.");
return;
}
new Cache
:cache_id
= Cache
:GetPVarInt(playerid
, pVar__BanLog_Cache
);
if(!cache_is_valid(cache_id))
{
"При отображении списка блокировок произошла ошибка [#002]. Повторите попытку.");
return;
}
if(cache_is_any_active())
cache_unset_active();
cache_set_active(cache_id);
new rows;
cache_get_row_count(rows);
new page
= GetPVarInt(playerid
, pVar__BanLog_Page
);
new i = page*MAX_ROW_IN_BANLOG_DIALOG_PAGE;
new max_i = i + MAX_ROW_IN_BANLOG_DIALOG_PAGE;
if(max_i > rows)
max_i = rows;
new ban_date[22];
new admin_name[MAX_PLAYER_NAME - 3];
new reason[20];
new dialog_string[(2+5+sizeof(ban_date)+sizeof(admin_name)+sizeof(reason))*MAX_ROW_IN_BANLOG_DIALOG_PAGE+1];
dialog_string = "№. Админ.\tДата блокировки\tПричина\n";
for(; i < max_i; i++)
{
cache_get_value_name(i, "BanDate", ban_date);
cache_get_value_name(i, "AdmNick", admin_name);
cache_get_value_name(i, "Reason", reason);
format(dialog_string
, sizeof(dialog_string
), "%s%i. %s\t%s\t%s\n", dialog_string
, i
+ 1, admin_name
, ban_date
, reason
); }
if(rows > MAX_ROW_IN_BANLOG_DIALOG_PAGE)
{
if(max_i < rows)
{
strcat(dialog_string
, "»» Далее\n"); }
if(page > 0)
{
strcat(dialog_string
, "«« Назад\n"); }
}
new banned_player_name[MAX_PLAYER_NAME];
GetPVarString(playerid
, pVar__BanLog_BannedName
, banned_player_name
, MAX_PLAYER_NAME); ShowPlayerDialog(playerid
, dBanLogList
, DIALOG_STYLE_TABLIST_HEADERS, banned_player_name
, dialog_string
, "Выбрать", "Закрыть"); }