Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source

Робимо просунутий ліфт (Урок №1)

Малюємо прямокутник за допомогою інструменту Block Tool в лівій панелі.


Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


У нас вийшла земля, по якій ходитимуть гравці. Однак її недостатньо для компіляції карти. Тепер робимо небо. Малюємо зверху від землі відповідних розмірів куб з текстурою toolsskybox. Потім робимо його порожнистим зсередини за допомогою функції Make Hallow в верхньому меню Tools. Товщину стінок задаємо будь-яку, наприклад стандартну 32. Наш куб став порожнистим. Тепер необхідно видалити у нього дно, щоб приєднати його до землі (в такому випадку кінцева компіляція пройде набагато швидше). Для цього спочатку виділяємо куб у вікні 3D-виду, і знову повертаємося до меню Tools, де натискаємо на Ungroup. Це потрібно для того, щоб розгрупувати (розділити на частини) нашу фігуру для подальшого видалення дна. Тепер виділяємо дно, і натискаємо клавішу Delete. Дно видалено. Для зручності приєднання небесної коробки до землі, потрібно згрупувати її знову. Виділяємо боку небесної коробки і її верх (низ ми видалили), і в меню Tools натискаємо Group. Тепер коробка (без дна) стала єдиним об'єктом. Виділяємо її, і в віконці 2D-проекції стикуються з землею. Все, тепер у нас вийшла основа карти. Головне, щоб в вийшла коробці (тепер уже з дном з землі) там ні щілин, інакше компіляція буде проведена з помилками освітлення (Leak).

Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Натискаємо Apply. Але тепер необхідно зробити так, щоб сонце світило туди, куди ми його направимо. Для цього внизу карти, біля самої землі ставимо ентіті info_target (тільки щоб ця ентіті нічого не зачіпала і була всередині нашої коробки). Бажано ставити її в протилежному боці від ентіті env_sun і внизу карти, - таким чином ми поставимо більш правильний напрямок світла. Відкриваємо властивості ентіті info_target і прописуємо значення:
Name sun_target
Parent (залишаємо порожнім)
Pitch Yaw Roll (Y Z X) 0 0 0


Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Натискаємо Apply. Все, тепер у нас повноцінна коробка карти, з гарним небом і яскраво сяючим сонечком. Але ми не зможемо його побачити в грі, тому що ми не потрапимо в цю карту через відсутність місця появи гравця. Тому ставимо ближче до землі (але не зачіпаючи її) ентіті info_player_start, і прямо на неї ставимо (поєднуємо їх) ентіті info_player_counterterrorist


Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Тепер ми зможемо з'явитися на цій карті і побачити її. За замовчуванням у нас буде мало зброї - всього лише пістолет і ніж. Щоб зробити інший набір зброї, необхідно поставити байзону (щоб мати можливість його купити). Але мета цієї статті - ліфт, а не повноцінна карта, тому ми не будемо робити байзону, а обмежимося ентіті game_player_equip. Це дуже цікава ентіті (про яку можна написати окрему велику статтю), яка дозволяє видавати гравцям то зброю, яке ви бажаєте бути ним дати. Наприклад, ми обмежимося двома видами зброї; автомат m4a1 і ніж.
Відкриваємо властивості game_player_equip і в функції Name пишемо give_weapon. Потім натискаємо кнопочку SmartEdit і послідовно додаємо значення:
1) Key targetname
Value give_weapon
2) Key spawnflags
Value 0
3) Key weapon_knife (тут ми даємо гравцеві ніж)
Value 1 (вказуємо кількість видаваних ножів)
4) Key weapon_m4a1
Value 1


Заходимо на вкладку Flags і знімаємо галочку з Use Only. Потім натискаємо кнопку Apply. Все, головне зроблено. Тепер наш набір зброї буде виданий гравцеві відразу ж при старті гри. Перевага цієї ентіті в тому, що зброя не треба купувати, або підбирати де-небудь, - воно буде видано відразу. Компілюємо контрольну карту, щоб подивитися, чи все у нас вийшло. Для цього натискаємо клавішу F9, ставимо всюди значення Normal і натискаємо OK. Карта повинна скомпілювати дуже швидко, оскільки вона по суті ще порожня. Подивимося на результат.


Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Основа ліфта готова. Але з нього гравець може випасти, оскільки в ліфті немає стін. Для наочності ми зробимо скляні стіни (з неразбіваемого скла), а також поставимо скляні двері, яка буде відкриватися, коли гравець підійде до ліфта (але це трохи пізніше). Спочатку робимо стіни. Вибираємо текстуру скла, - знову натискаємо Browse і в вікні Filter пишемо glass. Потім беремо інструмент Block Tool і малюємо стіни. Виходить так.


Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Тепер затискаємо клавішу Ctrl і виділяємо всі складові частини ліфта; металеву основу і скла. Групувалися їх в одне ціле за допомогою функції Group. Потім знову йдемо в меню Tools і натискаємо на Tie to Entity (тобто робимо об'єкт з Брашей ентіті-об'єктом). У вікні знаходимо вкладку Class і вибираємо func_tanktrain. Натискаємо Apply. З'являється список різних налаштувань ліфта. Потрібно поставити такі налаштування:
Name - lift
First Stop Target - path1 (тобто задаємо параметр, щоб ліфт стояв в даній точці за замовчуванням)
Change angles - Never (фіксована орієнтація)
Max Speed ​​(units / second) - 50 (тут задаємо швидкість руху ліфта від 1 до 100)
Move Sound - можна вибрати будь-який звук, натиснувши кнопку Brows, але ми залишимо це поле порожнім, оскільки ліфт у нас буде з дверима, у якій буде власний звук. Якщо привласнити звук ліфта і двері одночасно, то буде чути лише звук дверей. Не має сенсу озвучувати ліфт.


Далі потрібно відкрити вкладку Flags і поставити галочки на; No User Control, Fixed Orientation і Is unblockable by player, а все інше зробити порожнім (без галочок).


Тепер, для краси, зробимо в ліфті відкривається двері. Вибираємо інструмент Block Tool і малюємо її в отворі ліфта. Я її намалюю такий же, як стіни - такий же скляній (природно, неразбівающейся). Отже, двері готова. Але це ще не двері, це звичайний браш, який необхідно зробити робочої дверима. Виділяємо її і відкриваємо в верхньому меню вкладку Tools, потім натискаємо Tie to Entity. У вікні, у вкладці Class, вибираємо функцію func_door і натискаємо Apply. Потім виставляємо наступні настройки:
Name - door
Parent - lift (цією командою ми прикріплюємо двері до ліфта)
Speed ​​- 50 (задаємо швидкість руху двері від 1 до 100)
Delay Before Reset (- 1 stay) - -1 (Мінус один дозволяє двері виконувати лише одну операцію, або закриватися, або відкриватися)
Start Sound - doors / door_metal_rusty_move1.wav (можна вибрати інший звук, натиснувши Browse)
Move Direction Pitch Yaw Roll - 0 270 0 (напрямок руху двері. Тут можуть бути значення: 0 0 0, 0 90 0, 0 270 0, 0 180 0., в залежності від положення ваших дверей і ліфта на карті. Вибирається самостійно, і тестується швидкої компіляцією).

Відкриваємо вкладку Flags і прибираємо всі галочки, щоб їх там взагалі не було, оскільки двері у нас буде відкриватися по команді від тригерів.


Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Тепер ліфт і двері у нас одне ціле. Залишається змусити все це рухатися по команді вгору і вниз. Для цього будуємо шлях. Вибираємо інструмент Entity Tool (в лівій панелі), а праворуч, в віконці Objects вибираємо функцію path_track. Один path_track створюємо в середині ліфта (всередині нього), строго по центру (інакше він може зміщуватися).


Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Другий path_track ставимо там, де повинен зупинятися ліфт після підйому (бажано зробити його без зміщення, рівно, інакше ліфт буде зміщуватися під час руху).
Відкриваємо властивості першого path_track'а, двічі натиснувши на нього у вікні 3D-проекції. Виставляємо наступні значення:
name - path1
Next stop Target - path2
orientation type - No change


У властивостях ж другого path_track'а виставляємо:
name - path2
orientation type - No change


Шлях готовий. Тепер необхідно зробити кнопки, натиснувши на які, ми змогли б змусити ліфт рухатися, оскільки без них він буде стояти на місці. Але перш ніж їх створити, необхідно поставити ентіті logic_branch в будь-якому місці карти (бажано недалеко від ліфта). Ентіті logic_branch створюється таким же способом, як і ентіті path_track (див. Вище). У властивостях logic_branch встановлюємо параметри:
name - tester
initial value - 0


Відкриваємо вкладку OutPuts і додаємо рядки:



Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Отже, тепер виділяємо браш (вашу майбутню кнопку), і натискаємо у верхній панелі вкладку Tools, потім натискаємо Tie to Entity і у вікні, у вкладці Class вибираємо func_button. Потім задаємо настройки:
name - button1
parent - lift (тут ми приєднуємо кнопку до ліфта)
speed - 200 (задаємо необхідну швидкість натискання, тобто спрацювання)


Відкриваємо вкладку Flags і ставимо галочки на значеннях:
Do not move
Damage Activates
Use Activates


Потім відкриваємо вкладку OutPuts і додаємо рядок:



Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Виділяємо цей блок, йдемо в меню Tools, натискаємо Tie to Entity і в віконці Class вибираємо trigger_multiple і натискаємо Apply. Відкриваємо вкладку Flags і ставимо галочку на Clients, інше залишаємо без галочок. Переходимо у вкладку OutPuts і додаємо рядки:



На цьому можна зупинитися, але ми зробимо ліфт ще краще, додавши дві кнопки виклику - вгорі і внизу, щоб можна було викликати ліфт як в реальності.
Отже, малюємо кнопки; одну внизу, поруч з ліфтом, іншу нагорі (нам доведеться зробити там невеликий майданчик, щоб її розмістити). Виділяємо кнопку, йдемо в меню Tools, натискаємо Tie to Entity і в віконці Class вибираємо func_button. Задаємо наведене нижче
name - button1
speed - 200


Відкриваємо вкладку Flags і ставимо галочки на значеннях:
Do not move
Damage Activates
Use Activates


Відкриваємо вкладку OutPuts і додаємо рядки:



Це кнопка для нижнього поверху. Тепер робимо для верхнього (попередньо малюємо там майданчик). Копіюємо нижню кнопку і ставимо її наверх. Потім натискаємо на неї двічі і у властивостях відкриваємо вкладку OutPuts. Змінюємо значення так:



Тепер все готово - ліфт можна буде викликати.


Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source


Для більшої краси і природності можна зробити ліфта напрямні, щоб він у вас не літав в повітрі як пепелац. Напрямні можна намалювати ззаду або збоку від ліфта, користуючись інструментом Block Tool і металевими текстурами. Словом - на ваш смак. Я зроблю напрямні ліворуч і праворуч від ліфта, так, щоб вони прилягали до нього майже впритул, з невеликим проміжком. Після того як вони зроблені, їх бажано зробити ентіті-об'єктами для спрощення майбутньої компіляції. Для цього йдемо в меню Tools, натискаємо Tie to Entity, і в віконці Class вибираємо func_detail і натискаємо Apple. Все, ліфт повністю готовий до використання. Можна приступати до компіляції.

Завантажити готову карту з цим ліфтом, щоб на нього подивитися і навіть поїздити на ньому, ви можете тут. Удачі в картостроеніі.

Робимо просунутий ліфт (урок №1) - картостроеніе - каталог статей - все для cs source

Схожі статті