Главная О проекте Статьи Файлы Фотоальбомы Форум
Добавить сайт в «Избранное» | Вход в профиль

GTA VI

Информация:

GTA V

Информация:

Информация:

Информация:

Информация:

Информация:

Информация: Изображения:

Информация:

Информация: iFruit

GTA: Chinatown Wars

Информация:

GTA IV

Информация:

Информация:

Информация:

Информация:

GTA: Vice City Stories

Информация: Изображения:

GTA: Liberty City Stories

Файлы: Информация: Изображения:

GTA: Trilogy

Файлы: ...


GTA: San-Andreas



Информация: Статьи: Изображения:

GTA: Vice City



Информация: Изображения:

Информация: Изображения: Файлы:

GTA ]I[



Информация: Изображения:

Информация: Файлы:

GTA 2

  • 1
  • 2

GTA: Advance

Информация:

GTA

  • 1
  • 2




[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Plugin] Командный процессор DC_CMD
OKStyle Дата: Вторник, 16/06/2015, 14:28 | Сообщение # 1
Analgésico



Регистрация: 17/01/2009
Клан:
[ACF]
Статус:


За последнее время в паблик выкладывалось много разных командных процессоров. Один самый быстрый командный процессор сменялся другим, шли споры, какой из них быстрее и т.д. и т.п. Пришло время положить конец этим спорам. Представляю вашему вниманию новый командный движок DC_CMD, реализованный в виде плагина. Все команды обрабатываются в плагине, что ускоряет их выполнение, однако принцип работы схож с ZCMD.

Установка:
1. Файл dc_cmd.dll (или dc_cmd.so, если на хостинге) закинуть в папку "plugins", dc_cmd.inc - в папку "pawno/include".
2. В server.cfg в поле plugins добавить dc_cmd (на хостинге - dc_cmd.so)
3. После строки #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 разными способами:

1. Макрос ALTX

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

Код
ALTX:<команда>(<альт. имена>); // Здесь <альт. имена> - одно или несколько альт. названий для команды.


Пример:

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

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


2. Функция RegisterAlt

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


Пример:

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


3. Макрос 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);


Динамическое переименование и удаление команд:

В версии 2.8 были добавлены функции RenameCmd и RemoveCmd для переименования и удаления команд соответственно.

Примеры использования:

Код
RenameCmd("/help", "/menu"); // команда /help будет переименована в /menu


Код
RemoveCmd("/makeadmin"); // команда /makeadmin будет удалена и больше не будет работать


Сравнение с другими командными процессорами (2 разные версии):




Тест скорости приложен к сообщению.
Скачать (*.dll, *.so, *.inc): http://gta-news.org/files/plugins/dc_cmd_v2.8_daniel_cortez.zip
Автор: Daniel_Cortez.
Прикрепления: speed_test.zip (993.2 Kb) · 8696398.png (11.7 Kb) · 9634479.jpg (68.9 Kb)




 
  • Страница 1 из 1
  • 1
Поиск:

GTA MP

Мультиплееры

GTA Modding

Статьи:
GTA III

GTA: Criminal Russia


GTA: Underground


GTA Network


GTA WIKI


Блок пользователя

Календарь новостей
«  Март 2015  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Поиск

Наша кнопка



Партнёры

Multi Theft Auto Community Russia

Alliance of Cheater's Fighters
Elite Force Opossition
Brotherhood of Plumbum
E1ect
San-Andreas Bugousers
Seville Crew
Русский•Exclusive•Сервер
Mixes
http://rus-gta.do.am/
Здесь вы можете все узнать про pawno,так же скачать моды, скрипты, программы, новости и много другое
Pawno-Info: всё о GTA, статьи, wiki, скрипты и многое другое

Вход на сайт

Поиск

Мини-чат

Наш опрос
Считаете ли вы IV-MP лучше SA-MP?
Всего ответов: 481

Меню сайта

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright © Лаборатория O.K.Style 2001-2026 | GTA-Exclusive 2007-2026 | GTA News 2007-2026 | Хостинг от uCoz