Форум Pawn.Wiki - Воплоти мечту в реальность!: хелп ми - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
хелп ми

#1
Пользователь офлайн   DedInside 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Всем доброй ночи, написал систему репорта и вот появился очередной баг...)))
Дело в том, что игрок отправляет репорт и этот репорт могут рассмотреть 2 администратора одновременно. Необходимо сделать так, чтобы 1 репорт мог взять - 1 администратор. (Если репорт взяли, то отказаться от ответа нельзя ес че)

Умные люди, помогите пожалуйста и подскажите как это можно релизнуть?) :rolleyes:

Код:
CMD:rep(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) < 1) return 1;
	mysql_tquery(mysql, "SELECT * FROM `reports` WHERE `status` = 0 ORDER BY `id` ASC LIMIT 1", "OnReportQueueLoaded", "d", playerid);
    return 1;
}


forward OnReportQueueLoaded(playerid);
public OnReportQueueLoaded(playerid)
{
    if(!cache_get_row_count()) return SendClientMessage(playerid, -1, "{FFFF00}| {ffffff}Свободных жалоб на даный момент нет.");
    new r_id = cache_get_field_content_int(0, "id");
    new s_name[24], r_text[128], info[400];

    cache_get_field_content(0, "sender_name", s_name);
    cache_get_field_content(0, "text", r_text);

    AdminCurrentReportID[playerid] = r_id;
    format(AdminCurrentReportSender[playerid], 24, "%s", s_name);
	new targetid = GetPlayerIDByName(s_name);
    new status[20];

    if(targetid == INVALID_PLAYER_ID) status = "[OFFLINE]";
    else status = "";

    format(info, sizeof(info), "{FFFFFF}Отправитель: {FF0000}%s{FFFFFF} %s[%d]\n{FFFFFF}Содержимое: {FFFF00}%s\n\n{FFFFFF}Вам необходимо сформулировать, а затем ввести ответ на\nжалобу игрока в диалоговое поле ниже.", status, s_name, targetid, r_text);
    ShowPlayerDialog(playerid, DIALOG_REPORT_ANSWER, DIALOG_STYLE_INPUT, "{FFFF00}OverSun RP {ffffff}| Жалоба", info, "Ответить", "Закрыть");
    return 1;
}


В коде команда и функция которая показывает диалоговое окно с репортом

Сообщение отредактировал DedInside: 04 апреля 2026 - 00:37

0

#2
Пользователь офлайн   M I S T E V 

  • Вставить ник
  • Раскрыть информацию
Тебе нужно разделить статусы так:

status = 0 - без ответа
status = 1 - просматривается
status = 2 - с ответом

Когда админ открывает жалобу, выставляй в статус = 1, при этом, тебе нужно сначала проверить, что выбранный репорт имеет статус = 0
2

#3
Пользователь офлайн   DedInside 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияM I S T E V (04 апреля 2026 - 01:09) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


Блин чета я туплю, отправляю запрос в бд на статус 1, но почемуто не меняется статус и все равно 1 репорт могуть брать все сразу

		new query12[45];
		mysql_format(mysql, query12, sizeof(query12),"UPDATE `reports` SET `status` = '1' WHERE `id` = %d", r_id);
		mysql_tquery(mysql, query12);

0

#4
Пользователь офлайн   Saibot 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
А, ты этот статус получаешь в OnReportQueueLoaded?
1

#5
Пользователь офлайн   DedInside 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияSaibot (04 апреля 2026 - 11:50) писал:

А, ты этот статус получаешь в OnReportQueueLoaded?

угу
0

#6
Пользователь офлайн   DedInside 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Так, с похмелья я затупил и просто не хватило памяти от массива. MISTEV спасибо за идею, вчера ее рассматривал но чета не получилось))
По + за помощь)

Сообщение отредактировал DedInside: 04 апреля 2026 - 12:03

0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика