командный процессор DC_CMD v2.8 - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
командный процессор DC_CMD v2.8
SeX-PrO-AdReNaLiN Дата: Воскресенье, 21.09.2014, 13:47 | Сообщение # 1
Авторитет
Сообщений: 1310
Статус: Offline
Здравствуйте, представляю вашему вниманию новый командный движок DC_CMD, реализованный в виде плагина.

Все команды обрабатываются в плагине, что ускоряет их выполнение, однако принцип работы схож с ZCMD.

Установка:
Файл dc_cmd.dll (или dc_cmd.so, если на хостинге) закинуть в папку "plugins", dc_cmd.inc - в папку "pawno/include".
В server.cfg в поле plugins добавить dc_cmd (на хостинге - dc_cmd.so)
После строки #include <a_samp> добавить подключение инклуда

Код
#include <dc_cmd>


Внимание: Если вы используете команды на DC_CMD в фильтрскрипте, не забудьте в самом верху кода указать #define FILTERSCRIPT.
Выглядеть это должно примерно так:

Код
#define FILTERSCRIPT // сама строка

#include <a_samp> // дальше - инклуды
#include <dc_cmd>  


В моде создавать команды, как для ZCMD:

Код
// тестовая команда
CMD:info(playerid, params[])
{
     return SendClientMessage(playerid, -1, "Плагин dc_cmd успешно установлен.");
}  


Функционал плагина:
Можно создавать команды с альтернативными именами 3 разными способами:

Макрос ALTX
Описание:

Данным способом можно создавать любые альт. имена для команд (в т.ч. и русские).
Использование:
Код
ALTX:<команда>(<альт. имена>);

Здесь <альт. имена> - одно или несколько альт. названий для команды.
Пример:

Код
CMD:help(playerid, params[])
{
     // ...
}
ALTX:help("/info", "/помощь", "/инфо");

CMD:menu(playerid, params[])
{
     return ShowPlayerDialog(playerid, ...);
}
ALTX:menu("/меню");


Функция RegisterAlt
Описание

RegisterAlt(оригинальная команда, команда на русском языке)
RegisterAlt(оригинальная команда, команда на русском языке (1), команда на русском языке (2), команда на русском языке (3), ...)
Пример:

Код
public OnGameModeInit()
{
     RegisterAlt("/family", "/f");
     RegisterAlt("/help", "/info", "/hlp", "/помощь", "/h"); // теперь, если в игре набрать "/h" или "/помощь", будет вызвана команда /help
     //...
}  


Макрос ALT
Описание

Использование:

Код
ALT:<имя команды>:<имя альт. команды>;

Пример: допустим, мы создали команду "/info" и нужно сделать сокращённый вариант "/i".
Пример использования ALT:

Код
// тестовая команда
CMD:info(playerid, params[])
{
     return SendClientMessage(playerid, -1, "Плагин dc_cmd успешно установлен.");
}
ALT:info:i; // "/i" - альтернативный вариант для "/info"


На данный момент рекоментуется использовать 1-й способ. Остальные 2 оставлены лишь для совместимости с предыдущими версиями DC_CMD.

Колбэки OnPlayerCommandReceived и OnPlayerCommandPerformed:
Описание
OnPlayerCommandReceived:

Код
OnPlayerCommandReceived(playerid, cmdtext[])

Вызывается перед обработкой команды. В ней можно указать условия выполнения команды.
При этом с помощью return 1/0 можно разрешить/запретить выполнение команды.
Пример:

Код
public OnPlayerCommandReceived(playerid, cmdtext[])
{
     if(PlayerInfo[playerid][pMute] == 1) // если у игрока затычка (/mute)
     {
         SendClientMessage(playerid, -1, "Дождитесь окончания действия заглушки!");
         return 0; // передать плагину, чтобы он не выполнял команду
     }
     return 1; // разрешить выполнение команды
}  

OnPlayerCommandPerformed:

Код
OnPlayerCommandPerformed(playerid, cmdtext[], success);  

Вызывается после выполнения команды.
При этом если success = 1 - команда выполнилась успешно, success = 0 - с ошибкой, success = -1 - команда не найдена.
Таким образом можно самостоятельно сделать поддержку стандартных команд:

Код
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
     if(success == -1) // если команда не найдена
     {
         return OnPlayerCommandText(playerid, cmdtext);
     }
     return 1; // разрешить выполнение команды
}  

Либо можно сделать сообщение о несуществующей команде:

Код
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
     if(success == -1) // если команда не найдена
     {
         return SendClientMessage(playerid, -1, "Несуществующая команда. Используйте /help, чтобы узнать список команд сервера.");
     }
     return 1;
}  


Вызов команд напрямую из мода:

В версии 2.02 был добавлен макрос "cmd::", благодаря которому можно удобно вызывать команды из любого места в моде.
Пример использования:

Код
// без параметров
cmd::help(playerid, "");

// с параметрами
new param_str[11]; // размер строки зависит от параметров
format(param_str, sizeof(param_str), "%d", targetid);
cmd::invite(playerid, param_str);


Скачать: Плагин (.dll, .so, .inc): http://rghost.ru/53289178

Автор: Daniel_Cortez
Источник: pro-pawn


user N over 99999
[CM]Fich Дата: Понедельник, 22.09.2014, 21:31 | Сообщение # 2
Бывалый
Сообщений: 401
Статус: Offline
zcmd лучше по мне.
SeX-PrO-AdReNaLiN Дата: Понедельник, 22.09.2014, 22:37 | Сообщение # 3
Авторитет
Сообщений: 1310
Статус: Offline
Цитата [CM]Fich ()
zcmd лучше по мне.


Кому как.....но по тестам явно видно что dcmd быстрее.

Добавлено (22.09.2014, 22:37)
---------------------------------------------
и если не ошибаюсь срп и многие известные проекты используют данный ком.процессор


user N over 99999
Fake{yl] Дата: Понедельник, 22.09.2014, 23:01 | Сообщение # 4
Боец
Сообщений: 107
Статус: Offline
DC_CMD уже достаточно давно стал одним из самым популярных CMD процессоров. Как ты и сказал, он используется во многих популярных проектах. Скорость у него, действительно, самая быстрая, по крайней мере из тех что мне представлялось использовать.

ушел, не вернусь <_<
SeX-PrO-AdReNaLiN Дата: Четверг, 25.09.2014, 10:47 | Сообщение # 5
Авторитет
Сообщений: 1310
Статус: Offline
Цитата Fake{yl] ()
DC_CMD уже достаточно давно стал одним из самым популярных CMD процессоров. Как ты и сказал, он используется во многих популярных проектах. Скорость у него, действительно, самая быстрая, по крайней мере из тех что мне представлялось использовать.


Согласен


user N over 99999
[CM]Fich Дата: Пятница, 26.09.2014, 00:53 | Сообщение # 6
Бывалый
Сообщений: 401
Статус: Offline
Цитата SeX-PrO-AdReNaLiN ()
и если не ошибаюсь срп и многие известные проекты используют данный ком.процессор

А откуда ты узнал что они именно DC_CMD используют? вдруг что-то другое?
SeX-PrO-AdReNaLiN Дата: Вторник, 07.10.2014, 11:08 | Сообщение # 7
Авторитет
Сообщений: 1310
Статус: Offline
Цитата [CM]Fich ()
А откуда ты узнал что они именно DC_CMD используют? вдруг что-то другое?


Давно на п-и написал один профес.

Добавлено (07.10.2014, 11:08)
---------------------------------------------
Up


user N over 99999
Nikita55222 Дата: Вторник, 04.11.2014, 13:53 | Сообщение # 8
Новичок
Сообщений: 12
Статус: Offline
Скиньте в лс версию 2.7,очень надо!
Нигде найти не могу :((


Sosisochka 228
SeX-PrO-AdReNaLiN Дата: Вторник, 04.11.2014, 17:57 | Сообщение # 9
Авторитет
Сообщений: 1310
Статус: Offline
Nikita55222, скинул

user N over 99999
SopranoV Дата: Суббота, 08.11.2014, 09:08 | Сообщение # 10
Боец
Сообщений: 282
Статус: Offline
DC_CMD самый быстрый и хороший командный процессор для серверов с большим онлайном, спасибо взял себе , как раз новый мод пишу.

Изучаю AHK программирование

Сообщение отредактировал SopranoV - Суббота, 08.11.2014, 09:08
[WS]Grenhelgets Дата: Пятница, 28.11.2014, 17:02 | Сообщение # 11
Боец
Статус: Offline
Норм. Добавь в скайп nicelse.ws предложение есть.
Плисс Дата: Вторник, 19.07.2016, 20:51 | Сообщение # 12
Боец
Сообщений: 70
Статус: Offline
Кросс,полезная темка!
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума