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

DENZEL519

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

Этот плагин реализует режим "Захват флага" (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 КБ · Просмотры: 11
Последнее редактирование:

DENZEL519

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

Grey83

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

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

DENZEL519

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

Grey83

не пишу плагины с весны 2022
Сообщения
8,552
Реакции
5,029
и нафига оно создало дефайны с индексом команд и результатами боя непонятно, если всё это в инклюде 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,552
Реакции
5,029
@DENZEL519, а чего для флагов сделано 3 текстурки, а используется моделька с одной?
Неужели и модельку чатгопота делала? =)
 

Grey83

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

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

Vit_ amin

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

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

7pElllHuK

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

Sniff

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