Школа counter-strike - частина 3

Частина 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 ім'я_карти
Рядок запуску утиліти для карти de_dust буде виглядати так:

Буквально через кілька секунд в папці з 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) міняти без толку, так як освітленість розраховується при компіляції.

Схожі статті