- Регистрация
- 30 Апр 2012
- Сообщения
- 528
- Лучшие ответы
- 0
- Репутация
- 272
Всем привет.
За последнее время в паблик выкладывалось много разных командных процессоров.
Один самый быстрый командный процессор сменялся другим, шли споры, какой из них быстрее и т.д. и т.п.
Пришло время положить конец этим спорам.
Представляю вашему вниманию новый командный движок DC_CMD, реализованный в виде плагина.
Все команды обрабатываются в плагине, что ускоряет их выполнение, однако принцип работы, схож с ZCMD.
Установка:
Функционал плагина:
Тесты скорости:
В следующих версиях планируется:
Ссылки:
Внимание! В Шindoшs для работы плагина требуются библиотеки MSVC++, скачать их можно здесь:
Автор: Daniel_Cortez
За последнее время в паблик выкладывалось много разных командных процессоров.
Один самый быстрый командный процессор сменялся другим, шли споры, какой из них быстрее и т.д. и т.п.
Пришло время положить конец этим спорам.
Представляю вашему вниманию новый командный движок 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> добавить подключение инклуда
PHP:#include <dc_cmd>
- В моде создавать команды, как для ZCMD:
PHP:// тестовая команда CMD:info(playerid, params[]) { return SendClientMessage(playerid, -1, "Плагин dc_cmd успешно установлен."); }
Функционал плагина:
- Добавлен макрос ALT для объявления альтернативных названий команд.
Использование:
Код:ALT:<имя команды>:<имя альт. команды>;
Пример использования ALT:
PHP:// тестовая команда CMD:info(playerid, params[]) { return SendClientMessage(playerid, -1, "Плагин dc_cmd успешно установлен."); } ALT:info:i; // "/i" - альтернативный вариант для "/info"
- Можно создавать альтернативные команды (в том числе и на русском языке) с помощью функции RegisterAlt:
RegisterAlt(оригинальная команда, команда на русском языке) RegisterAlt(оригинальная команда, команда на русском языке (1), команда на русском языке (2), команда на русском языке (3), ...)
PHP:public OnGameModeInit() { RegisterAlt("/family", "/f"); RegisterAlt("/help", "/info", "/hlp", "/помощь", "/h"); // теперь, если в игре набрать "/h" или "/помощь", будет вызвана команда /help //... }
- Колбэки OnPlayerCommandReceived и OnPlayerCommandPerformed:
- OnPlayerCommandReceived:
PHP:OnPlayerCommandReceived(playerid, cmdtext[])
При этом с помощью return 1/0 можно разрешить/запретить выполнение команды.
Пример:
PHP:public OnPlayerCommandReceived(playerid, cmdtext[]) { if(PlayerInfo[playerid][pMute] == 1) // если у игрока затычка (/mute) { SendClientMessage(playerid, -1, "Дождитесь окончания действия заглушки!"); return 0; // передать плагину, чтобы он не выполнял команду } return 1; // разрешить выполнение команды }
- OnPlayerCommandPerformed:
PHP:OnPlayerCommandPerformed(playerid, cmdtext[], success);
При этом если success = 1 - команда выполнилась успешно, success = 0 - с ошибкой, success = -1 - команда не найдена.
Таким образом можно самостоятельно сделать поддержку стандартных команд:
PHP:public OnPlayerCommandPerformed(playerid, cmdtext[], success) { if(success == -1) // если команда не найдена { return OnPlayerCommandText(playerid, cmdtext); } return 1; }
PHP:public OnPlayerCommandPerformed(playerid, cmdtext[], success) { if(success == -1) // если команда не найдена { return SendClientMessage(playerid, -1, "Несуществующая команда. Используйте /help, чтобы узнать список команд сервера."); } return 1; }
- OnPlayerCommandReceived:
Тесты скорости:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
В следующих версиях планируется:
- Повышение быстродействия
- Добавление новых функций
Ссылки:
Плагин (.dll, .so, .inc): Ссылка не актуальна
Исходники: Ссылка не актуальна
Тест скорости: Ссылка не актуальна
Внимание! В Шindoшs для работы плагина требуются библиотеки MSVC++, скачать их можно здесь:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Автор: Daniel_Cortez
Последнее редактирование модератором: