Частина 3. Компіляція (ZHLT).
Частина 3.8 Зміна карти без компіляції.
У цьому матеріалі ми познайомимо вас з швидким і зручним способом внесення змін до готовий рівень без запуску його компіляції. Даним чином можливо вносити зміни у всякі рівні, не маючи їх початкових кодів в форматах RMF або MAP.
В першу чергу, потрібно щоб у вас була офіційна версія утиліт Зонера 2.5.3. Самі програми-компілятори нам не будуть потрібні, але разом з ними йде утиліта Ripent (ripent.exe), яка нам знадобиться.
В яких випадках може знадобитися утиліта Ripent?
- Якщо потрібно поміняти прозорість скла, води, і інших ентіті-об'єктів
- Якщо потрібно вказати правильний кут відкриття дверей
- Якщо потрібно змінити швидкість руху автомобіля
- Якщо потрібно зробити об'єкт невидимим
- Якщо потрібно виправити або додати місця народження гравців
- Якщо потрібно змінити назву картинки неба
Уявімо ситуацію, що ми відкомпільоване рівень за дві-три години, і випадково забули вказати назву картинки неба в її властивості. Це означає, що в рівні буде використано стандартне небо desert, замість того, яке ми хотіли.
Щоб ще раз не компілювати карту і не витрачати 2-3 години через таку дурницю, можна використовувати програму Ripent, за допомогою якої ми можемо дописати в потрібному місці назва картинки неба.
Як це працює?
Опис ентітей будь-якої карти починається так:
застосовуємо Ripent
Ripent - програма, яка працює з командного рядка і не має графічного інтерфейсу.
Витягуємо текстову інформацію про ентіті-об'єктах
- Перенесіть відкомпільований BSP-рівень в директорію, де знаходиться програма Ripent
- Виберіть команду «Пуск -> Виконати. »(« Start -> Run. »)
- Натиснувши кнопку «Огляд» ( «Browse»), вкажіть шлях до програми Ripent
- В кінці шляху після лапок допишіть наступні параметри: -export -texdata 1 ім'я_карти
Буквально через кілька секунд в папці з Ripent і рівнем з'явиться новий файл, в нашому випадку це de_dust.ent.
Вносимо назад змінену інформацію в BSP-рівень
Розглянемо, як здійснюється зворотна процедура щодо внесення змінених даних в рівень.
Виконуємо перші три пункти, як описано вище, але тепер замість -export пишемо -import (дивіться картинку нижче).
Властивості ентіті-об'єктів всередині BSP-файлу
На зображенні нижче ми наводимо зведену таблицю, де представлені головні параметри ентітей в тому вигляді, як вони відображаються в Хаммері - і знаходяться всередині * .BSP файлу рівня.
Звідси ми бачимо, що, щоб змінити назву картинки неба, необхідно знайти в ENT-файлі параметр "skyname" і після цього слова так само в лапках вписати назву неба.
Наприклад: "skyname" "desert".
Або, інший приклад: припустимо нам треба змінити прозорість скла (наприклад, func_breakable з ім'ям 123), потрібно в ENT-файлі знайти об'єкт з "targetname" "123" для зміни налаштувань "renderamt" "". Таким чином, змінюються і інші параметри ентітей.
недоліки Ripent
Переваги Ripent безперечні - немає необхідності витрачати години на компіляцію, якщо зроблена невелика помилка у властивостях ентітей. Але є і свій недолік.
Використовуючи утиліту Ripent, ви повинні мати на увазі, що исходник рівня в форматі RMF або MAP не оновлюється! Оновлюється лише откомпіллірованний * .BSP файл рівня. А, тому, або використовуйте утиліту Ripent для внесення невеликих змін в фінальний варіант рівня, або ж записуйте все пророблені виправлення і потім в Хаммері правте исходник.
Кілька цікавих фактів
Цікаво, що список властивостей ентітей щоразу передається клієнту при приєднанні до сервера.
Завдяки утиліті Ripent можна вносити зміни в властивості ентітей на будь-яких BSP-рівнях. Наприклад, можна створити міст на De_Aztec (з Counter-Strike 1.5) прозорим. Для даної операції необхідно відшукати ентіті-об'єкт func_illusionary і виставити параметри: "rendermode" "2" і "renderamt" "0" (в Хаммері це виглядає як: Render Mode: "Texture" і FX Amount "0"). Міст «зникне».
Важливо! Пам'ятайте, що такі параметри, як колір джерела світла і його яскравість (точкові ентіті-об'єкти light, light_spot, light_environment) міняти без толку, так як освітленість розраховується при компіляції.