[Любая игра] Timeleft Round End

Тема в разделе "Утверждённые плагины", создана пользователем AlmazON, 16 янв 2013.

  1. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.523
    Симпатии:
    1.972
    Timeleft Round End
    Текущая версия: 2.0.0

    Описание:
    Универсальный вариант плагина (в плане эффективности кода) для завершения раунда в любой игре, где этого не происходит по обычным причинам, т.е. нет конкретных задач, какой-либо миссии (например, спасти заложников, заложить бомбу).
    Автоматический поиск сигнатуры окончания раунда: не нужно никаких файлов, как в http://hlmod.ru/forum/plaginy-dlya-sourcemod/4361-cs-s-advanced-end-round-1-2-a.html - это будет взято прямо из игры, самое свежее (как бы "автообновление" - зависит только от обновлений SourceMod'а), а значит, работать должно самым надёжным образом (Windows, Linux, Mac).
    Зависимость от кваров сервера mp_timelimit и mp_chattime/mp_win_panel_display_time - плагин полностью следует им (переключает карту по окончании первого с задержкой второго).
    Карты, где время оканчивается само по себе - просто пропускаются плагином (он отключается).
    Если всё же возникнет какой-либо сбой сигнатуры (сигнатурный режим) - окончание раунда произойдёт в форсированном режиме.
    Форсированный режим включает в себя 2 уровня (в случае фатальных сбоев - все 3 уровня), которые будут задействованы по цепочке, один за другим, в случае неэффективности/сбоя предыдущего уровня.
    Показ статистики текущей игры в любом режиме (в некоторых играх), кроме последнего уровня форсирования (просто смена карты на следующую).
    P.S. Данная версия НЕ просчитывает победу карты (причина при обычной работе едина - "Игра начинается.").

    Требования:

    Поддерживаются игры:
    • Любая игра
      Полная поддержка: CS:GO, CS:S и частично TF2 (на данный момент, такой сигнатуры там нет).
      Скорей всего, пойдут и другие игры (в форсированном режиме).

    Установка:
    • Переместите или скопируйте файл "TimeleftRoundEnd.sp" в директорию addons\sourcemod\scripting сервера.
    • Скомпилируйте плагин. Переместите или скопируйте полученный файл "TimeleftRoundEnd.smx" в директорию addons\sourcemod\plugins сервера.

    Настройки (CVAR's):
    • mp_timelimit - Время игры для текущей карты (в минутах).
    • mp_win_panel_display_time (или mp_chattime) - Время отображения панели победителя матча (в секундах).
    • mp_forced_nextlevel_delay - Задержка для принудительной смены карты (в секундах).
      CS:S
      Автоматическая подстройка.
      • На данный момент, для всех версий игры, не нуждается в изменении (по умолчанию 1,5).

      CS:GO
      Полуавтоматическая подстройка.
      • Необходимо вписать своё значение, которое складывается из суммы кваров:
        mp_endmatch_votenextleveltime + mp_round_restart_delay + 1,5 (квар mp_win_panel_display_time учитывается автоматически).

    Описание:
    Максимально упрощённый вариант плагина (в плане основного кода) для завершения раунда в среде cstrike там, где этого не происходит по обычным причинам, т.е. нет конкретных задач, какой-либо миссии (например, спасти заложников, заложить бомбу). Завершение раунда происходит по mp_timelimit сервера, не зависимо от оставшегося времени для раунда (игнорирование mp_roundtime).
    В отличии от некоторых подобных уже существующих плагинов, например, Death Match Timer или стандартно встроенного модуля в CSS DM (cssdm_force_mapchanges "1"), данный код не только завершает раунд, но и показывает привычную статистику фрагов за раунд в конце каждой карты, что предыдущие примеры делать не в состоянии.
    Как только время, отпущенное для карты (mp_timelimit) истечёт, начнётся полноценное выполнение скрипта. Любое последующее убийство приведёт к завершению раунда с показом её статистики и, через определённое время - к смене карты (выбранной игроками или указанной в списке переключаемых по порядку карт сервера).
    В случае, если на сервере никто не играет (даже хотя бы боты) - карта меняться не будет!

    Требования:

    P.S. Готовый файл плагина новой версии с расширением smx ("TimeleftRoundEnd.smx") можно взять здесь.
     

    Вложения:

    Последнее редактирование: 10 май 2015
    TWRP, Godsend, rodgerland и 5 другим нравится это.
  2. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.017
    Симпатии:
    611
    9 причина: Round Draw!
    А причина CT Win - 7, правильно?

    И если не сложно, объясни:
    PHP:
        if (timeleft 15 <= 0//почему он прибавляет 15?
        
    {
            
    CS_TerminateRound(6.0CSRoundEndReason:9); //почему именно 6.0? Это типо вместо mp_chattime?
        
    }
    Тогда уж лучше сделать проверку mp_chattime :yes:
     
  3. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.523
    Симпатии:
    1.972
    Да. :)
    Код:
     0 - Бомба взорвана; 
     1 - VIP спасен;
     2 - VIP убит;
     3 - Террористы ускользнули;
     4 - CT не дали уйти большинству террористов;  
     5 - Все террористы были нейтрализованы;
     6 - Бомба обезврежена; 
     7 - Контр-террористы победили!  
     8 - Террористы победили!  
     9 - Ничья;
     10 - Все заложники спасены;
     11 - Цель карты сохранена;
     12 - Заложников не спасли;
     13 - Террористы не спаслись;
     14 - VIP не убежал;
     15 - Новая игра.
     
  4. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.017
    Симпатии:
    611
    Оффтоп
     
  5. Red4911

    Red4911

    Сообщения:
    110
    Симпатии:
    22
    А как этот плагин заставить работать в cs go ? У меня время раунда стоит 35 мин. Но плагин не хочет работать. Время заканчивается и карта все равно продолжается.
     
  6. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.523
    Симпатии:
    1.972
    Думаю, в CS:GO просто-напросто нет такой функции, которую использует плагин (от cstrike include). Поэтому, никак.
    Самый эффективный способ в таких случаях - убить всех игроков разом.
     
    Red4911 и TWRP нравится это.
  7. Red4911

    Red4911

    Сообщения:
    110
    Симпатии:
    22
    А нет ли какого нибудь другого плагина наподобие, чтоб карта менялась когда время заканчивается. У меня так же включено голосование за 3 минуты до конца раунда. Люди голосуют, но карта как то не меняется. Хочется что плагин все делал. А то если убивать всех разом то это надо постоянно на сервере сидеть и следить за временем ))
    У меня так же стоят такие настройки: mp_roundtime 35, mp_timelimit 35
     
  8. Red4911

    Red4911

    Сообщения:
    110
    Симпатии:
    22
    Я видел пару серверов бхоп где люди даже не стрелялись, а просто прыгали и когда время заканчивалось, одна из сторон объявлялась победителем и даже выдавались дропы. Сервер был америкаским назывался "хаус климб" помойму, да он и сейчас есть. У меня же сейчас стоит плагин "timer limit enforcer" но он немного глючный и только просто переключает карту. Ка я ни пытался сделать смену карты по окончанию времени раунда, без доп. плагина так и не получилось. Хотелось бы найти нормальный плагин.
     
    Последнее редактирование: 23 дек 2014
  9. Red4911

    Red4911

    Сообщения:
    110
    Симпатии:
    22
    Нет там такого или я просто не видел, карты никак не меняются. У меня есть сервер awp и bhop и я для этих серверов вот и ищу плагин. Вот написал сюда может кто подскажет.
     
  10. Konstantin

    Konstantin

    Сообщения:
    1.789
    Симпатии:
    767
    +1
     
  11. Red4911

    Red4911

    Сообщения:
    110
    Симпатии:
    22
    кстати заходил на сервер awp dm смена карты была путем выигрыша стороной T, т.е когда заканчивалось время террорам давалась +1 победа и карта менялась. Заметил там такой плаг "Advanced End Round" (1.3) by FrozDark (HLModders LLC), тут я видел только версию 1.2 может пропустил где обновлённую версию ?
     
  12. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.523
    Симпатии:
    1.972
    Посмотрел. Там тот же принцип окончания раунда/карты, только в виде сигнатуры. Эту сигнатуру можно найти отдельно в любой игре, если она вообще есть и через неё окончить бесконечный раунд, что вызовет ту же последующую работу этого плагина.
    Пилить надо. :-D
    Может это? Без вариантов, может сами вписали, просто что-то убрав.
     
  13. Red4911

    Red4911

    Сообщения:
    110
    Симпатии:
    22
    Я думаю это ближе к действительности. Попробовал. Может у меня настройки не те, но победа добавляется как время заканчивается и ничего )) Играем дальше )
     
  14. Red4911

    Red4911

    Сообщения:
    110
    Симпатии:
    22
    Если бы я знал как ) То мог бы попробовать ) Если от этого будет толк и карта будет меняться )
     
  15. rodgerland

    rodgerland

    Сообщения:
    500
    Симпатии:
    122
    Наверно для полноценного плагина нужно добавить причину смены карты - респаун
     
  16. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.523
    Симпатии:
    1.972
    Свои причины добавлять нельзя, по сути. Можно разве что перебить причину игры (только текст по центру). Да и зачем писать такой примитив?
    Либо победа одной из команд, либо ничья - вот, что хорошо увидеть. Такое я давно сделал для раунда, однако, получается CS:GO всё так же не поддерживается.
    Надо делать сигнатурами и резервный вариант. :-D
     
  17. rodgerland

    rodgerland

    Сообщения:
    500
    Симпатии:
    122
    Я не про то, например есть mg карты в которых люди не умирают, а просто респаунятся и получается не подходит ни к одной причине. Вроде так.
     
  18. rodgerland

    rodgerland

    Сообщения:
    500
    Симпатии:
    122
    Сейчас попробую, поэкспериментирую.
    Да и разницы с DM нет, пусть выводит окно как в dm, все полноценно. Даже заканчивается так же.
     
  19. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.523
    Симпатии:
    1.972
    В общем-то, может даже лучше, если определять тип игры: для MG не надо считать очки, кто выиграл - просто "Новая игра" по истечении времени и показ статистики.
    Для DM желательно просчитать победу.
    Оффтоп
     
    rodgerland нравится это.
  20. Red4911

    Red4911

    Сообщения:
    110
    Симпатии:
    22
    Пробовал убить сразу всех на карте по истечению 35 минут раунда. Все равно карта не меняется.