CFT (Захват флага) - CSS Исправление багов и очень нужна помощь)

DENZEL519

Работаю через AI !
Сообщения
491
Реакции
315
Плагин был написан через ии) Видео о его работе есть, нужна помощь в его доработке.

Этот плагин реализует режим "Захват флага" (Capture The Flag, CTF) в стиле Quake для Counter-Strike: Source. Вот что он делает:

Основные возможности:​

🎯 Игровой процесс

  • Две команды (Террористы и Спецназ) имеют свои флаги и базы
  • Игроки автоматически подбирают вражеский флаг при приближении
  • Для захвата нужно доставить вражеский флаг на свою базу
  • Захват флага приносит очко команде

⚙️ Настройки через ConVars

  • Время автоматического возврата флага
  • Свечение носителя флага
  • Скорость носителя флага
  • Лимит очков для победы
  • Длительность раунда
  • Время подготовки (grace period)

✨ Визуальные эффекты

  • Подсветка баз лазерными лучами (вертикальный столб + крест + круг)
  • Мигание баз при захвате флага
  • Свечение носителей флага (красное/синее)
  • Частицы при подборе и захвате флага

🔊 Звуковые эффекты

  • Звуки подбора, выпадения, захвата и возврата флага
  • Звуковое предупреждение при приближении к флагу

🎮 Команды администрирования

  • sm_settflag / sm_setctflag - установка позиций флагов для Т и CT
  • sm_settbase / sm_setctbase - установка позиций баз для Т и CT

🔧 Технические особенности

  • Автоматическое сохранение позиций через куки
  • Блокировка C4 и заложников
  • HUD с информацией о счете и статусе флагов
  • Таймеры раунда и периода подготовки

Как играть:​

  1. Админ устанавливает позиции флагов и баз
  2. В начале раунда - период подготовки
  3. Игроки автоматически подбирают вражеские флаги при приближении
  4. Несут флаг на свою базу для захвата
  5. Первая команда, набравшая установленное количество очков, побеждает






Баг в том, что при достижение в конфиге sm_ctf_score_limit" "N" (Очков для победы) Раунд не заканчивается.
Нужна помощь от гуру скриптинга.
 

Вложения

  • Захват флага.7z
    64.8 КБ · Просмотры: 43
Последнее редактирование:

Synd1qate

Участник
Сообщения
865
Реакции
335
Количество очков и round_end, не сработает?
 

DENZEL519

Работаю через AI !
Сообщения
491
Реакции
315
Количество очков и round_end, не сработает?
Не срабатывает sm_ctf_score_limit если поставить в конфиге. Тут как вариан только убивать противоположную команду, но мне хотелось бы реализовать чтобы не убивая команду, а срабатывало бы после достижения которое выставлю тут sm_ctf_score_limit.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,598
Реакции
5,085
я всё, конечно, понимаю, но на кой писать в кукисы игрокам позиции баз и флагов я не понимаю

тут много кода переписывать придётся (и в том число моё любимое создание массивов внутри циклов)
 

DENZEL519

Работаю через AI !
Сообщения
491
Реакции
315
@Grey83, Если не сложно, напиши пожалуйста что лучше и как подправить, постараюсь это сделать)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,598
Реакции
5,085
и нафига оно создало дефайны с индексом команд и результатами боя непонятно, если всё это в инклюде cstrike прописано

убивает энтити флагов и лучей при старте карты, хотя в этот момент они ну никак не могут существовать

в общем хорошо, если к завтрашнему дню получится эти авгиевы конюшни говнокода вычистить
Сообщения автоматически склеены:

лол, оно создаёт событие окончания раунда, но раунд так не завершится
C-подобный:
void EndRound(int reason)
{
    Event event = CreateEvent("round_end");
    if (event != null)
    {
        event.SetInt("winner", reason == ROUNDEND_CTS_WIN ? TEAM_CT : TEAM_T);
        event.SetInt("reason", reason);
        event.Fire();
    }
}
нужно использовать CS_TerminateRound() для такого
Сообщения автоматически склеены:

ну и ещё индексы у причин окончания раунда неправильные: значения должны быть на единицу меньше
C-подобный:
enum CSRoundEndReason
{
    CSRoundEnd_TargetBombed = 0,           /**< Target Successfully Bombed! */
    CSRoundEnd_VIPEscaped,                 /**< The VIP has escaped! - Doesn't exist on CS:GO */
    CSRoundEnd_VIPKilled,                  /**< VIP has been assassinated! - Doesn't exist on CS:GO */
    CSRoundEnd_TerroristsEscaped,          /**< The terrorists have escaped! */
    CSRoundEnd_CTStoppedEscape,            /**< The CTs have prevented most of the terrorists from escaping! */
    CSRoundEnd_TerroristsStopped,          /**< Escaping terrorists have all been neutralized! */
    CSRoundEnd_BombDefused,                /**< The bomb has been defused! */
    CSRoundEnd_CTWin,                      /**< Counter-Terrorists Win! */
    CSRoundEnd_TerroristWin,               /**< Terrorists Win! */
    CSRoundEnd_Draw,                       /**< Round Draw! */
    CSRoundEnd_HostagesRescued,            /**< All Hostages have been rescued! */
    CSRoundEnd_TargetSaved,                /**< Target has been saved! */
    CSRoundEnd_HostagesNotRescued,         /**< Hostages have not been rescued! */
    CSRoundEnd_TerroristsNotEscaped,       /**< Terrorists have not escaped! */
    CSRoundEnd_VIPNotEscaped,              /**< VIP has not escaped! - Doesn't exist on CS:GO */
    CSRoundEnd_GameStart,                  /**< Game Commencing! */
   
    // The below only exist on CS:GO
    CSRoundEnd_TerroristsSurrender,        /**< Terrorists Surrender */
    CSRoundEnd_CTSurrender,                /**< CTs Surrender */
    CSRoundEnd_TerroristsPlanted,          /**< Terrorists Planted the bomb */
    CSRoundEnd_CTsReachedHostage           /**< CTs Reached the hostage */
};
Сообщения автоматически склеены:

ну и для плагина нужно добавлять считывание конфига, в котором будут храниться координаты баз обеих команд для каждой карты (а если эти координаты не будут прописаны, то за базу чтобы считало центр спавна соответствующей команды)

короче: говнокод и глюки
Сообщения автоматически склеены:

Так-то я могу исправить вот это правкой десятка строк:
Раунд не заканчивается
Но использовать в таком виде очень не советую
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,598
Реакции
5,085
@DENZEL519, а чего для флагов сделано 3 текстурки, а используется моделька с одной?
Неужели и модельку чатгопота делала? =)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,598
Реакции
5,085
Кстати, а разве в CS:S ввели у пропов параметр m_bGlowEnabled? Емнип он только в CS:GO и ещё пару других игр имеется, но точно не в CS:S.
Сообщения автоматически склеены:

"Игрок захватил флаг команды противника и запихнул в очко своей команды"=)
 

Vit_ amin

Добрая душа
Сообщения
1,548
Реакции
735
неа, я ему давал описание, а модельку уже поставил с gamebanana
Сообщения автоматически склеены:

@Vit_ amin, Плагин сырой ещё)
@DENZEL519 Боюсь,что нейросеть (по крайней мере на текущем уровне развития) никогда вам такого не сделает, на какой бы стадии готовности плагин не был
 
Последнее редактирование:

7pElllHuK

Участник
Сообщения
1,493
Реакции
515
и нафига оно создало дефайны с индексом команд и результатами боя непонятно, если всё это в инклюде cstrike прописано
Нейронка не понимает что за цитирую: "магические числа 2 и 3", потому создает дефайны или int где сам указывает стороны)
 

Sniff

Участник
Сообщения
37
Реакции
21
Вот Плагин вроде с фиксами, его попробовать обновлять всяко думаю грязи поменьше, автор все равно заблокирован
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,598
Реакции
5,085
вроде с фиксами
и фисы, похоже, сделаны мной =)

нуно код глянуть, а то я уже давно успел забыть что с таким плагином работал
Сообщения автоматически склеены:

Пока что сделал чтение конфига с таким вот содержимым:
C-подобный:
"CTF"
{
    // Путь к модели флага относительно папки models.
    "flag"    "cssflags/flag.mdl"
    // Путь к текстурке луча на базе относительно папки sprites
    "beam"    "laserbeam.vmt"

    // Пути к звукам относительно папки sound. Если не указать, то будет использован дефолтный.
//    "snd_pickup"    "items/itempickup.wav"
//    "snd_drop"        "weapons/hegrenade/he_bounce-1.wav"
//    "snd_capture"    "ambient/atmosphere/cave_hit5.wav"
//    "snd_return"    "items/flashlight1.wav"
//    "snd_alert"        "buttons/button9.wav"

    // Координаты баз и точек спавна флагов.
    // Если не указано, то будут использоваться координаты центров соответствующих точек закупки команд.
    "de_dust2" // Название карты
    {
        // Координаты базы Т
        "base_t"    "-758.735 -808.516 133.144"
        // Координаты базы КТ
        "base_ct"    "275.913 2198.882 -126.733"
        // Координаты спавна флага Т
        "flag_t"    "-758.735 -808.516 133.144"
        // Координаты спавна флага КТ
        "flag_ct"    "275.913 2198.882 -126.733"
    }
}
Но там ещё кодить и кодить.
Сообщения автоматически склеены:

Ещё по идее будет на радаре показывать игроков несущих флаг (террориста - как бомбу, а спецназовца как VIP), но работоспособность не тестировал ещё.
Кроме того добавил квар, который будет регулировать через какое время после смерти будет возрождён.
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,598
Реакции
5,085
Добавил админское меню, в котором будет отображаться текущая позиция установки баз и флагов.
Нужно ещё сделать, чтобы эти позиции после изменения дописывались в конфиг.
Ну и переводы меню и сообщений сделать.

Поменял визуализацию баз. Теперь вместо креста будет круг с анимацией сходящихся к центру колец.
Может лучше всё же спрайтом, а не лазером базу обозначать? Ну как метки в Revival.

При доставке флага добавил эффект взрыва (без урона, дыма и следа) на той базе, куда доставлен флаг, вместо эффекта с частицами (он вроде не работал и так?). Нужно будет оттестировать на всякий случай.

Но до минимально рабочей версии такими темпами не меньше пары дней ещё.
 

DENZEL519

Работаю через AI !
Сообщения
491
Реакции
315
Мне тут скинул Yurka_Bear две версии. Я их не тестил.
 

Вложения

  • New 2.2.7z
    36.8 КБ · Просмотры: 38
  • V2.0.7z
    30.6 КБ · Просмотры: 19

Grey83

не пишу плагины с весны 2022
Сообщения
8,598
Реакции
5,085
@DENZEL519, глянул код. Круг всё так же из 16 отрезков создаётся вместо одного единственного круга. Плюс ещё 2 отрезка на крест.
Вертикальный луч в центре базы так и не отображается?

Код управления ботами даёт эффект как запланировано? Он их просто разворачивает на цель каждые полсекунды в зависимости от назначеной им плагином роли.

Мне разве что координаты для карт из конфигов пригодятся. Может возьму кусок кода управления ботами, но хз как на счёт эффективности управления ими.
 

DENZEL519

Работаю через AI !
Сообщения
491
Реакции
315
@Grey83, я так понял он изменял мою версию, где как раз были 16 отрезков. С ботами я вот хз, я сам этот плагин не тестил. Я вообще думаю лучше сделать чисто захват флага, а для ботов можно будет отдельный плагин замутить чтобы они захватывали флаг через инклюды
 

Vit_ amin

Добрая душа
Сообщения
1,548
Реакции
735
Вертикальный луч в центре базы так и не отображается?

Код управления ботами даёт эффект как запланировано? Он их просто разворачивает на цель каждые полсекунды в зависимости от назначеной им плагином роли.

Мне разве что координаты для карт из конфигов пригодятся. Может возьму кусок кода управления ботами, но хз как на счёт эффективности управления ими.
Код на управление ботом - полный "кринж", даже не пробуй, лучше тогда вообще не добавляй поддержку ))))
 
Сверху Снизу