Курка на карті cs_italy

Примітка: ми розповімо про «пристрій» курки такий, тобто. так, як це зроблено на картіCS_ITALY. Цей метод має кілька недоліків, про які ми розповімо наприкінці статті.

1. Створення курки (як cs_italy)

Курка наcs_italyє моделлю (файл*.mdl). Моделі на карту вставляються за допомогою об'єктаcycler. Раніше, коли даного об'єкта не було, моделі вставлялися через об'єктcycler_sprite, який взагалі призначений для вставки спрайтів. Ми вирішили робити курку «як є», тому використовуватимемоcycler_sprite.

Проблема з куркою полягає в її вбивстві :) При відправленні курки в інший світ, вона повинна зникнути, видати передсмертний звук і випустити пару пір'їнок - всього цього модель робити не вміє. Модель просто стоїть на карті, вона може бути застрелена, вона може випустити пір'їнки, вона може видавати звуків.

Ось, як влаштовано вбивство курки

Насправді гравець не вбиває курку (привіт GreenPeace:). Він стріляє в невидимий об'єкт, що розбиваєтьсяfunc_breakable. Цей об'єкт розташований у тому місці, де й курка.

Від руйнування невидимогоfunc_breakableактивуються одразу 3 ентити-об'єкта, т.к. усі вони мають однакове ім'я.

  • Активуєтьсяenv_render, який робить курку-модель невидимою
  • Активуєтьсяenv_shooter, який викидає пір'я (теж моделі)
  • Активуєтьсяambient_generic(тобто лунає передсмертний крик курки)
Народження курки заново

З початком нового раунду курка не стане знов видимою! Її необхідно зробити відмією за допомогою іншого об'єктаenv_render. НаCS_ITALYцей другийenv_renderактивується тригером,розташованим з урахуванням контров. При народженні на початку раунду контри пробігають через тригер, і курка знову оживає (стає видимою).

На малюнку нижче показано розташування об'єктів.

курка

Чорний виділений жовтою рамкою кубик – це курка. Усередині курки розташований об'єкт, що розбивається невидимий у грі (CS_ITALY).

Зверху курки знаходитьсяenv_shooter. Цей об'єкт викидає пір'я від курки. Справа внизу розташований звук (CS_ITALY), який лунає при вбивстві курки.

Зліва від курки розташовані 2 об'єктиenv_render. Один з них робить курку невидимою, інший навпаки видимою.

На нашій тестовій карті так само, як і наCS_ITALY, є ще один об'єкт - цеtrigger_multiple. Цей тригер, будучи активованим гравцями, запускає другийenv_render, який робить курку видимою.

карті

1. Cycler_sprite (використовується для вставки моделі курки)Name:chicken1 (ім'я курки)Angle:кут, який може бути використаний для розвороту курки в потрібному напрямкуSprite:models/chick .mdl (шлях до файлу з моделлю курки)Frames per second:1 (швидкість програвання анімації, тобто 1 рух за секунду)Render mode:SolidFX Amount:255 (при значенні 0 | модель буде повністю невидимою)

2. Func_breakable (невидимий об'єкт, що розбивається, розташований на місці курки)Target on break:chicken1kill (імена трьох об'єктів, що активуються при руйнуванні даного func_breakable)Strenght:1 (міцність)Material type:flesh (тип матеріалу, шматки м'яса)Gibs Direction:Relative to attack (шматки летять у напрямку атаки)Render mode:TextureFX Amount:0 (робить цей об'єкт невидимим)

3.1 Env_render (робить курку невидимою після її вбивства)Name:chicken1killTarget:chicken1Render mode:SolidFX Amount:0 (робить курку невидимою)

3.2 Env_render (робить курку видимою на початку раунду)Name:chicken1respawnTarget:chicken1Render mode:SolidFX Amount:255 (робить курку видимої)

4. Env_shooter (викидає пір'я з "убитої" курки)Name:chicken1killNumber of gibs:15 (кількість моделей, що викидаються, тобто пір'я)Gib velocity:100 (швидкість падіння пір'я)Cource variance:5 (параметр визначає на скільки пір'я, що летить, будуть відхилятися від прямої траєкторії)Gib life:4 (час «життя» пір'я, потім вони зникають)Model:models/feather.mdl (шлях до файлу з моделлю пір'я)

Repeatable- дозволяє активувати env_shooter багаторазово

5. Ambient_generic (звук при вбивстві курки)Name:chicken1killPath:misc/killChicken.wav (шлях до звуку)Volume:10 (гучність, максимальна)

Medium Radius- середній радіус поширення звукуNot Toggled- Грає 1 раз (потім його необхідно активувати повторно)

6. Trigger_multiple (активує env_render, який робить курку видимою)Target:chicken1respawnDelay before reset:180 (наступного разу спрацює лише через 180 секунд)

2. Недоліки методу

За деяких обставин курка може не з'явиться на початку раунду, або вона може стати невбивною!

Вся справа в тригеріtrigger_multiple, у якого встановлено час обнулення в 180 секунд. Автор карти розраховував на те, що в середньому раунд триває 3 хвилини або 180 секунд. Але всім відомо, що раунд може бути і 30-секундним, а може тривати більше 3 хвилин.

Якщо Ви вб'єте курку і раунд закінчиться швидше за 3 хвилини, то в наступному раунді курки не буде!

  • Гравець вбиває курку
  • Раунд закінчується швидше за 3 хвилини, отже, тригер не встигає обнулитися (не закінчилися 180 секунд)
  • У наступному раунді гравці пробігають через тригер, але він ще не працює, отже курка залишається невидимою!
Якщо Ви вб'єте курку, потім пройде 3 хвилини, і Ви ще раз пробіжіть через тригер на базі контрів, то курка стане невбивною!

  • Гравець вбиває курку
  • Проходить 3 хвилини, тригер знову може активувати появу курки
  • Гравець пробігає через тригер, курка стає видимою
  • Але оскільки об'єкт func_breakable вже був розбитий, то курка стає невбивною до кінця раунду!