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

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

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

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

Команда для просмотра последних сообщений

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

TawerGhetto1488

Ученик
Доброго времени суток!
Я решил сделать мануал по команде: /dop [ID] - Проверка последних 10-ти сообщений игрока.
​

Плюсы:

- Таким способом можно избавляться от любителей затронуть родителей.
- Находить игроков, которые оскор***ли кого либо.

Минусы:

- Отсутствуют.


Итак, приступим к самой команде.


В enum pInfo суем pEvent1[64], pEvent2[64], pEvent3[64], pEvent4[64], pEvent5[64], pEvent6[64], pEvent7[64], pEvent8[64], pEvent9[64], pEvent10[64],
Будет так:
enum pInfo
{
Bla-bla...
pEvent1[64], pEvent2[64], pEvent3[64], pEvent4[64], pEvent5[64], pEvent6[64], pEvent7[64], pEvent8[64], pEvent9[64], pEvent10[64]
}

Дальше создаем специальный stock.
Будет так:
stock AddPlayerEvent(playerid, event[])
{
format(Player[playerid][pEvent10], 64, "%s", Player[playerid][pEvent9]);
format(Player[playerid][pEvent9], 64, "%s", Player[playerid][pEvent8]);
format(Player[playerid][pEvent8], 64, "%s", Player[playerid][pEvent7]);
format(Player[playerid][pEvent7], 64, "%s", Player[playerid][pEvent6]);
format(Player[playerid][pEvent6], 64, "%s", Player[playerid][pEvent5]);
format(Player[playerid][pEvent5], 64, "%s", Player[playerid][pEvent4]);
format(Player[playerid][pEvent4], 64, "%s", Player[playerid][pEvent3]);
format(Player[playerid][pEvent3], 64, "%s", Player[playerid][pEvent2]);
format(Player[playerid][pEvent2], 64, "%s", Player[playerid][pEvent1]);
format(Player[playerid][pEvent1], 64, "%s", event);
}
Player меняете на свое.
Этот сток нужен для добавления нового сообщения в чат от игрока.

Теперь создаем саму команду:
CMD:dop(playerid, params[])
{
if(Player[playerid][pAdmin] < 1) return 1;

// -- всякие твои проверки

if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_GREY, "Введите: /dop [ID]");
new body[1500];
new dop[1500];
format(dop, sizeof(dop), "{FFFFFF}Дополнительная статистика %s [%d]", // ник введенного игрока, в моем случае - GN(params[0]), params[0]);
strcat(body, dop);
strcat(body, "\n\n{FFFF00}Последние сообщения:");
format(dop, sizeof(dop), "\n{FFFFFF}1. %s", Player[params[0]][pEvent1]);
strcat(body, dop);
format(dop, sizeof(dop), "\n{FFFFFF}2. %s", Player[params[0]][pEvent2]);
strcat(body, dop);
format(dop, sizeof(dop), "\n{FFFFFF}3. %s", Player[params[0]][pEvent3]);
strcat(body, dop);
format(dop, sizeof(dop), "\n{FFFFFF}4. %s", Player[params[0]][pEvent4]);
strcat(body, dop);
format(dop, sizeof(dop), "\n{FFFFFF}5. %s", Player[params[0]][pEvent5]);
strcat(body, dop);
format(dop, sizeof(dop), "\n{FFFFFF}6. %s", Player[params[0]][pEvent6]);
strcat(body, dop);
format(dop, sizeof(dop), "\n{FFFFFF}7. %s", Player[params[0]][pEvent7]);
strcat(body, dop);
format(dop, sizeof(dop), "\n{FFFFFF}8. %s", Player[params[0]][pEvent8]);
strcat(body, dop);
format(dop, sizeof(dop), "\n{FFFFFF}9. %s", Player[params[0]][pEvent9]);
strcat(body, dop);
format(dop, sizeof(dop), "\n{FFFFFF}10. %s", Player[params[0]][pEvent10]);
strcat(body, dop);
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Дополнительнася статистика", body, "Выход", "");
return true;
}
Опять же Player меняете на свое

Теперь перейдем в public OnPlayerText и ищем отправку сообщения в чат

У меня это вот так:
format(string, sizeof(string), "%s: %s", GN(playerid), text);
SetPlayerChatBubble(playerid, text, COLOR_WHITE, 20.0, 10000);
ProxDetector(20.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_GREY3, COLOR_GREY4, COLOR_GREY5);

Cоздаем новую переменную, допустим new kek[200];
И делаем после отправки сообщения в чат вот так:
format(kek,sizeof(kek),"Сообщение в чат: %s", text);
AddPlayerEvent(playerid, kek);

В общем получится вот так:
format(string, sizeof(string), "%s: %s", GN(playerid), text);
SetPlayerChatBubble(playerid, text, COLOR_WHITE, 20.0, 10000);
ProxDetector(20.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_GREY3, COLOR_GREY4, COLOR_GREY5);
format(kek,sizeof(kek),"Сообщение в чат: %s", text);
AddPlayerEvent(playerid, kek);

Использовать функцию AddPlayerEvent можно везде, даже в рации, в общем дальше сделаете как вам будет удобнее :)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу