» Написано на: jass, cjass Для большинства современных масштабных (как DotA) и не очень (например Legion TD) карт характерно наличие команд чата как основного метода управления игрой. Если команд немного, то с ними вполне можно справиться и обычным образом (создав кучу однотипных триггеров). Но когда кол-во команд начинает расти, то организовать их стает очень сложно. Самым очевидным решением для такой ситуации мне кажется создание системы учета этих самых команд. Однажды я попал в такую ситуацию, но у меня было решение, коим я и хочу поделиться с вами. Полная работоспособность данной системы не гарантируется, поэтому используйте ее с осторожностью.
Как было сказано ранее, при большом кол-ве команд управлять ими становится неудобно. Эта система может спасти ваше положение и обеспечить безбедную старость простое управление оными. Просто берем и добавляем команду в систему. Нужно указать только ее имя и функцию, которая будет её обрабатывать. Вот так: CommandSystem_RegisterCommand("open", "OpenHandler");
Система поддерживает переименование команд и обмен их обработчиками. Добавление самих команд может происходить "на лету" (в т.ч после запуска карты), что позволяет создавать более гибкие сценарии. Команды, вводимые в чате могут иметь параметры (доп. информацию). Чтобы использовать параметры, нужно написать имя команды и отделить их пробелами. Кол-во параметров в системе настраивается полем MaxParamCount. По умолчанию оно равно пяти.