командный процессор 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> добавить подключение инклуда
Внимание: Если вы используете команды на 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
|
|
Норм. Добавь в скайп nicelse.ws предложение есть.
|
|
|
|
Плисс |
Дата: Вторник, 19.07.2016, 20:51 | Сообщение # 12
|
Боец
Сообщений: 70
Статус: Offline
|
Кросс,полезная темка!
|
|
|
|