Content Warning

Content Warning

Not enough ratings
Мимик | Bot_MimicInfiltrator MimicInfiltrator | Content Warning 1_16_a
By Just L
Тут будет описан класс мимика
   
Award
Favorite
Favorited
Unfavorite
Введение
Класс Bot_MimicInfiltrator представляет собой поведение бота, который пытается имитировать других игроков и действовать агрессивно при определенных условиях. Бот интегрирован в сетевую игру через Photon.Pun.
Параметры
Параметры движения и поведения:

  • customRotationSpeed: скорость вращения бота.
  • minTimeBeforeWalkSprintSwitch: минимальное время между переключениями ходьбы и бега.
  • minTimeBetweenJumps, maxTimeBetweenJumps: диапазон времени между прыжками.
  • distanceToBeConsideredAlone: дистанция, при которой игрок считается одиноким.
  • runUntilThisCloseFromTarget: расстояние, на котором бот будет бежать к цели.
  • stopWhenThisCloseToTarget: расстояние, на котором бот остановится возле цели.
  • timeBetweenJabs: время между ударами.
  • jabForce: сила удара.
  • angryFaceText, angryFaceRotation, angryFaceColor: параметры злого выражения лица.
  • damageOnHit: урон при ударе.
  • fallOnHit, forceOnHit: сила и падение при ударе.

Игровые объекты и состояния:

  • player: игрок, которым управляет бот.
  • hitTarget, mimickingPlayer: цели для удара и имитации.
  • ignorePlayers: список игроков, которых бот игнорирует.
  • fakeFlashLight_grc: объект фонарика.
  • view: сетевой объект PhotonView.

Флаги и состояния:

  • isAngry: флаг, указывающий на агрессию бота.
  • awkwardLookAway, followPlayer, goToRandomPoint, runToPlayer: различные состояния бота.
  • angryMeter: счетчик агрессии.
  • timeAlive: время, которое бот находится в игре.
  • timeSinceJab, timeSinceWalkSprintSwitch, timeSpentLookingAtMe, timeSpentNotLookingAtMe, timeToJab, timeToNextJump: временные параметры для различных действий.
Методы класса
Инициализация и поиск цели:

  • Awake(): инициализация компонентов.
  • FindMimicTarget(): поиск цели для имитации.
  • SearchForTarget(): поиск и назначение целей для бота.
  • Infiltrate(): метод для имитации другого игрока.

Основной игровой цикл:

  • Update(): главный метод, вызываемый каждый кадр, в котором обрабатывается поведение бота.
  • FixedUpdate(): метод, вызываемый каждый физический кадр, обрабатывающий физические взаимодействия.

Агрессия и взаимодействие:

  • MakeAngry(): метод для перевода бота в агрессивное состояние.
  • RPC_AngryVisuals(): сетевой вызов для изменения визуальных параметров бота при агрессии.
  • FlickerRed(): метод для мигания красным цветом.
  • MimickPlayer(), RPC_MimicPlayer(), RPC_ImitateVisuals(): методы для имитации другого игрока.

Дополнительные методы:

  • AnyoneLookingAtMe(): проверка, смотрит ли кто-то на бота.
  • Despawn(): удаление бота из игры.
  • MakeItLessAwkward(): метод для уменьшения неловкости, изменяя поведение бота.
  • IsTargetLookingAtMe(), IamLookingAtTarget(): методы для проверки, смотрят ли бот и его цель друг на друга.
  • Jump(), RPCA_MimicJump(): методы для выполнения прыжка ботом.
Пример использования
Класс Bot_MimicInfiltrator используется для создания бота, который пытается имитировать действия игроков и может становиться агрессивным при определенных условиях. Этот бот предназначен для сетевой игры и может взаимодействовать с другими игроками через систему Photon. Основные действия включают поиск целей, переключение между состояниями (ходьба, бег, агрессия), а также управление различными параметрами поведения для создания реалистичного игрового процесса.
Общее поведение мимика
Бот Bot_MimicInfiltrator в основном предназначен для имитации поведения других игроков и атаки на определенные цели при соблюдении определенных условий. Он может переходить в агрессивное состояние, если его "разозлить", и его поведение управляется различными параметрами и состояниями, чтобы сделать его поведение в игре более реалистичным и сложным для предсказания.

Поиск целей:
  • Бот начинает поиск цели для имитации и атаки. Он вызывает метод FindMimicTarget(), который проверяет всех игроков в игре и ищет того, кто находится на значительном расстоянии от других игроков (определяется параметром distanceToBeConsideredAlone).
  • Если находится подходящий игрок для имитации (mimickingPlayer), бот также выбирает игрока, который будет его целью для атаки (hitTarget).
  • Если находится подходящий игрок для имитации (mimickingPlayer), бот также выбирает игрока, который будет его целью для атаки (hitTarget).

Назначение целей и переход в состояние имитации:
  • Если бот успешно находит цели, он вызывает метод Infiltrate(), чтобы начать имитировать выбранного игрока и установиться в определенной позиции.

Поведение в игре
  • Основной игровой цикл:
    • В методе Update(), который вызывается каждый кадр, бот обновляет свои временные параметры, такие как timeAlive, timeToNextJump, timeSinceJab, и timeSinceWalkSprintSwitch.
    • Бот проверяет различные условия, такие как расстояние до целей и видимость целей, чтобы определить, следует ли ему продолжать преследование, атаковать или сменить стратегию.
  • Переход в агрессивное состояние:
    • Если счетчик агрессии (angryMeter) превышает пороговое значение (angryThreshold), бот переходит в агрессивное состояние с помощью метода MakeAngry(). В этом состоянии бот начинает активно атаковать свою цель с увеличенной скоростью и силой.
  • Атака:
    • В агрессивном состоянии бот периодически совершает удары (jab) по своей цели, если она находится в пределах досягаемости (hitDistance). Удары наносят урон и могут сбивать цель с ног.
  • Имитация игрока:
    • Бот копирует внешние параметры игрока, которого он имитирует, такие как цвет лица и текст, отображаемый на визоре. Это происходит через сетевые вызовы методов, чтобы другие игроки в игре могли видеть изменения.
  • Поведение в случае отсутствия цели:
    • Если у бота нет цели или его текущая цель мертва, бот начинает двигаться к случайным точкам на карте (goToRandomPoint). Если никто не смотрит на бота, он может исчезнуть из игры (Despawn).
  • Решение неловких ситуаций (когда живые игроки могут подозревать, что около них мимик)
    • Бот также может попадать в неловкие ситуации, когда его цель долгое время смотрит на него. Для решения таких ситуаций бот может:
    • Вспыхивать красным цветом (FlickerRed).
    • Отходить от цели.
    • Отворачиваться от цели.
    • Ничего не делать, чтобы снизить неловкость.
Заключение
Bot_MimicInfiltrator — это комплексный и многофункциональный игровой бот, разработанный для повышения сложности и реализма игрового процесса в многопользовательских играх. Его поведение варьируется от пассивной имитации других игроков до агрессивных атак на выбранные цели, что делает его непредсказуемым и трудным для противостояния.

На написание руководства ушло 3 дня, за это время:
Мне удалось досконально изучить код.
Начал писать руководство, первые 2 главы.
Составлял иерархию, для руководства, тобшь последовательность глав.
Сходить в Rostic's :D
И собственно сегодня, закончил руководство.

Руководство вышло достаточно объемным, относительно предыдущих руководств, и заняло больше времени, в руководстве могут быть ошибки, как грамматические, так и ошибки с описанием методов и тд, так как изучить поведение бота не удалось, и понаблюдать за ним тоже, так как он ещё не может спавнитсья в игровом мире, и ещё на стадии разработки.

Ещё руководства:
https://steamproxy.net/sharedfiles/filedetails/?id=3239092056