Доступ к готовым решениям

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

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

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

/o(ooc) | Команда для общего чата

Jam999

Нуль
Регистрация
16 Янв 2019
Сообщения
4
Лучшие ответы
0
Репутация
1
Всем привет! Сегодня я сделаю команду /o (/ooc), это будет отправление сообщение всему серверу.
Приступим.

Действие №1: Создание команды
PHP:
CMD:o(playerid, params[])
{
    return true;
}
CMD: - Функция создания команды
o - Сама команда (при вводе ее, эта команда активируется)
playerid - ID Персонажа
params[] - Параметры (Он для проверки на правильный ввод команды)

Действие №2: Делаем проверку на админку
PHP:
CMD:o(playerid, params[])
{
    if(PI[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, "Ошибка! Вы не администратор."); // Здесь своя проверка
    return true;
}
if(PI[playerid][pAdmin] - Своя проверка
< 1 - Это если у игрока уровень админки меньше 1. (Т.е это команда доступна от 1-го уровня)
если у него нету админки, то выводим ему сообщение.

Действие №3: Используем sscanf для проверки на то, верно ли игрок ввел команду.
PHP:
CMD:o(playerid, params[])
{
    if(PI[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, "Ошибка! Вы не администратор."); // Здесь своя проверка
    if(sscanf(params, "s[128]", params[0])) return SendClientMessage(playerid, -1, "Ошибка! Используйте: /o(oc) [Текст]");
    return true;
}
Параметр "s[128]" - Это текстовое значение, длина которого не может превышать 128-ми символов
Параметр "s[128]" записывается в params[0]
Если игрок не ввел параметры, то ему выводится текст.

Действие №4: Выводим текст всем игрокам
PHP:
CMD:o(playerid, params[])
{
    if(PI[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, "Ошибка! Вы не администратор."); // Здесь своя проверка
    if(sscanf(params, "s[128]", params[0])) return SendClientMessage(playerid, -1, "Ошибка! Используйте: /o(oc) [Текст]");
    new string[256];
    format(string, sizeof(string), "[OOC] %s[%d]: {FFFFFF}%s", PI[playerid][pName], playerid, params[0]);
    SendClientMessageToAll(0xFF0000FF, string);
    return true;
}
neew string[256] - Создание переменной.
format(string, sizeof(string), - Форматируем строку
%s - Ник персонажа (Используется: PI[playerid][pName] (Заменить на свою проверку)
%d - ID игрока (Используется: playerid)
%s - Выводимый текст (Используется: params[0]);
SendClientMessageToAll(0xFF0000FF, string) - Выводим текст всем игрокам
0xFF0000FF - Красный цвет
string - Переменная.
Действие №5: Делаем так, что бы при вводе /ooc - тоже использовалась команда /o
PHP:
CMD:o(playerid, params[])
{
    if(PI[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, "Ошибка! Вы не администратор."); // Здесь своя проверка
    if(sscanf(params, "s[128]", params[0])) return SendClientMessage(playerid, -1, "Ошибка! Используйте: /o(oc) [Текст]");
    new string[256];
    format(string, sizeof(string), "[OOC] %s[%d]: {FFFFFF}%s", PI[playerid][pName], playerid, params[0]);
    SendClientMessageToAll(0xFF0000FF, string);
    return true;
}
alias:o("ooc");
Вот и все, команда создана. Надеюсь я помог кому-нибудь. Всем удачи!
 
Сверху Снизу