Эта статья научит вас такой фишке, как скрытие введённых в чат сообщений. Это один из первых шагов в создании чат-систем для RPG или ORPG.
Таким же образом можно отфильтровать все команды и другое, что вы не хотите показывать.
1. Скрытие сообщений чата из игры. Сейчас мы научимся скрывать сообщения с экрана после ввода. Я сделал такую систему, которая не отображает -cheat.
1. Скачайте файл
GameInterface101.rar.
2. Распакуйте содержимое в папку с WarCraft III.
3. Запустите World Editor, откройте вашу карту и зайдите в "Дополнительно -> Игровой интерфейс".
4. Поставьте птичку на "Нестандартный игровой интерфейс".
5. Найдите такие поля:
Chat Reciepient All | Chat Reciepient Allies | Chat Reciepient Observers | Chat Reciepient Private | Chat Reciepient Referees.
6. На каждое из этих значений щёлкните правой кнопкой, выберите "Редактировать значение". Теперь откройте извлечённую папку UI, затем текстовый документ
war3mapSkin.txt. Скопируйте все пробелы после каждого = и вставьте в каждое из пяти полей Игрового интерфейса.
Все действия видны по скриншоту ниже.
Примечание: Кол-во пробелов - максимальное кол-во символов. Если ввести хоть на один больше, игра вылетит.
Если вы хотите также убрать звук при отправке сообщения, тогда следуйте по шагам дальше. Если же нет - то просто перейдите к пункту 2.
7. Создайте пустой .wav-файл или пустой текстовый документ.
8. Откройте Менеджер импорта (F12) и импортируйте этот пустой файл (Ctrl-I).
9. Измените путь у импортированного файла на
Sound\Interface\InGameChatWhat1.wav Теперь на экране чат не отображается.
Примечание: Если у вас игра не одиночная, тогда в чатлоге сообщения всё ещё будут видны.
Примечание: Не существует лёгких путей для скрытия сообщений из чатлога, но они есть (см. часть 2)
Примечание: Существует событие, которым всё равно можно отловить введённое сообщение.
Код
Player - (<Your Player>) types a chat message containing <Empty String> as A substring
Примечание: Невозможно (или очень сложно) изменить размер текста, выводимого через действие "Игра -> Показать текстовое сообщение"
2. Скрытие сообщений чата из чатлога (F12). Теперь давайте скроем сообщения и из чатлога. Существует 2 способа, но, к сожалению, у каждого есть свои минусы и свои плюсы.
Можно увидеть, что первый пример лучше, но всё же, выберите один из примеров и следуйте инструкциям.
Пример 1 (слева):
Пример 2 (справа):
3. Фиксим растянутые бары. Когда я скрыл сообщения в чатлоге, я столкнулся с такой проблемой:
Примечание: Использование цвета |c00000000 сделает имя абсолютно прозрачным для тултипа.
Если мы используем способность "Москиты" ('Aloc') в нужном виде, то мы можем спрятать тултип. На самом деле требуется только добавить и убрать её нужному юниту.
Custom Script: call UnitAddAbility(u,'Aloc')
Custom Script: call UnitRemoveAbility(u,'Aloc')
Вместо u поставьте нужного юнита и вуаля!