Найти в Дзене
Техноманьяк

- Таблица результатов (Tab): имена игроков, K/D/A, очки, деньги

- Таблица результатов (Tab): имена игроков, K/D/A, очки, деньги - Автопереход к следующему раунду через 5 секунд ЭКРАН КОНЦА МАТЧА: - Итоговый счёт - MVP раунда (игрок с максимум убийств) - Кнопка "PLAY AGAIN" </hud_interface> <visual_effects> ВИЗУАЛЬНЫЕ ЭФФЕКТЫ: - Вспышка при выстреле (PointLight на 50ms у дула оружия) - Частицы: искры при попадании в стену (мелкие жёлтые спрайты) - Кровавые частицы при попадании в игрока (красные спрайты) - Дым: полупрозрачные спрайты-облака - Взрыв бомбы: крупные оранжевые частицы + яркая вспышка + screen shake - Bullet holes: тёмные декали на стенах после попаданий (мелкие PlaneGeometry) - Тени от DirectionalLight (Three.js shadow maps) - Пыль/частицы в воздухе (лёгкий атмосферный эффект) - Screen shake при получении урона - Красная виньетка по краям при низком HP - Эффект смерти: экран сереет, камера "падает" вниз </visual_effects> <sound_design> ЗВУКОВОЙ ДИЗАЙН (Web Audio API, процедурная генерация): Генерируй ВСЕ звуки программно через Aud

В ответ на пост

- Таблица результатов (Tab): имена игроков, K/D/A, очки, деньги

- Автопереход к следующему раунду через 5 секунд

ЭКРАН КОНЦА МАТЧА:

- Итоговый счёт

- MVP раунда (игрок с максимум убийств)

- Кнопка "PLAY AGAIN"

</hud_interface>

<visual_effects>

ВИЗУАЛЬНЫЕ ЭФФЕКТЫ:

- Вспышка при выстреле (PointLight на 50ms у дула оружия)

- Частицы: искры при попадании в стену (мелкие жёлтые спрайты)

- Кровавые частицы при попадании в игрока (красные спрайты)

- Дым: полупрозрачные спрайты-облака

- Взрыв бомбы: крупные оранжевые частицы + яркая вспышка + screen shake

- Bullet holes: тёмные декали на стенах после попаданий (мелкие PlaneGeometry)

- Тени от DirectionalLight (Three.js shadow maps)

- Пыль/частицы в воздухе (лёгкий атмосферный эффект)

- Screen shake при получении урона

- Красная виньетка по краям при низком HP

- Эффект смерти: экран сереет, камера "падает" вниз

</visual_effects>

<sound_design>

ЗВУКОВОЙ ДИЗАЙН (Web Audio API, процедурная генерация):

Генерируй ВСЕ звуки программно через AudioContext и OscillatorNode:

- Выстрелы: белый/коричневый шум + низкочастотный удар, разная длина для каждого оружия

* Пистолет: короткий щелчок (50ms)

* AK-47: мощный хлопок (80ms) с низким тоном

* AWP: глубокий басовый удар (200ms) + эхо

* M4: среднечастотный хлопок (70ms)

- Перезарядка: металлический клик (высокочастотный тон 2000Hz, 100ms)

- Шаги: ритмичные мягкие удары (низкочастотный тон 100Hz, 30ms), разный ритм при ходьбе/беге

- Взрыв бомбы: длинный низкочастотный гул (1.5с) + белый шум

- Попадание: короткий глухой удар

- Хедшот: характерный "динк" (высокий металлический тон 3000Hz)

- Смерть: низкочастотный стон

- Звук бомбы: тикающий бип, ускоряющийся перед взрывом

- Разминирование: нарастающий тон

- Объявления раунда: визуальный текст (без синтеза речи)

</sound_design>

<performance>

ОПТИМИЗАЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ:

- Целевой FPS: 60

- Frustum culling (Three.js встроенный)

- Object pooling для частиц и пуль (не создавать новые объекты каждый кадр)

- Удалять неактивные частицы после 2-3 секунд

- LOD: упрощённые модели ботов на расстоянии > 40 юнитов

- Ограничить одновременное количество частиц до 200

- Использовать BufferGeometry везде

- Минимизировать draw calls: объединять статичную геометрию карты в merge

- requestAnimationFrame для игрового цикла с delta time

- Ботов обновлять AI-логику каждые 3-5 кадров, а не каждый кадр

</performance>

<code_structure>

СТРУКТУРА ФАЙЛА (СТРОГО СОБЛЮДАЙ):

<!DOCTYPE html>

<html>

<head>

<title>Counter-Strike Web</title>

<style>/* ВСЕ стили здесь */</style>

</head>

<body>

<!-- HTML элементы: канвас, HUD div'ы, меню -->

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>

<script>

// ===== 1. CONFIG =====

// ===== 2. ASSET GENERATOR =====

// ===== 3. SOUND ENGINE =====

// ===== 4. MAP BUILDER =====

// ===== 5. WEAPON SYSTEM =====

// ===== 6. BOT AI =====

// ===== 7. PLAYER CONTROLLER =====

// ===== 8. GAME MANAGER =====

// ===== 9. HUD =====

// ===== 10. MAIN INIT & GAME LOOP =====

</script>

</body>

</html>

</code_structure>

<critical_requirements>

КРИТИЧЕСКИ ВАЖНО:

1. Весь код в ОДНОМ файле. Ни одного внешнего файла кроме Three.js CDN.

2. Игра должна ЗАПУСКАТЬСЯ сразу при открытии HTML файла в браузере.

3. Pointer Lock API для управления мышью (requestPointerLock при клике).

4. Все текстуры — процедурные через Canvas 2D, затем CanvasTexture.

5. Все звуки — процедурные через Web Audio API.

6. Все 3D-модели — из примитивов Three.js (Box, Cylinder, Sphere, Plane).

7. НЕ используй THREE.CapsuleGeometry (не существует в r128). Используй CylinderGeometry + SphereGeometry.

8. Collision detection через Raycaster для стрельбы, AABB для передвижения.

9. Код должен быть чистым, с комментариями на английском языке.

10. Минимальный размер файла — 3000+ строк полностью рабочего кода.

</critical_requirements>

Напиши ПОЛНЫЙ, ЗАВЕРШЁННЫЙ, РАБОЧИЙ код. Не пропускай секции, не пиши "// TODO" или "// аналогично". Каждая функция должна быть полностью реализована. Это должен быть готовый к запуску файл.