Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Счетчик игроков. (Считает игроков и при условии выполняет серверную команду.)
Счетчик игроков.
MongoL666 Дата: Понедельник, 06.05.2013, 09:43:27 | Сообщение # 1
Сообщений: 92
Репутация: -9 [ +/- ]
Всем привет.
Хочу упорядочить запуск cw-mix в автоматическом режиме и поэтому решил поискать код который будет при наличии состава 5х5 выполнять серверную команду.
Нашел код
Код
public OnMapStart() CreateTimer(60.0, Timer_Func, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);   

public Action:Timer_Func(Handle:timer)
{
   new client = 0;
   for (new i = 1; i <= MaxClients; i++)
   {
    if (IsClientInGame(i) && !IsFakeClient(i)) client = i;
   }
   if (client == 0) ServerCommand("Changelevel de_cbble");
}   


Но он работает только когда на сервере 0 игроков.
Как можно перекодить, на формат 5х5???
 
Scarface_slv Дата: Понедельник, 06.05.2013, 10:20:06 | Сообщение # 2
Сообщений: 737
Репутация: 61 [ +/- ]
Попробуй так


Сообщение отредактировал Scarface_slv - Понедельник, 06.05.2013, 11:27:17
 
MongoL666 Дата: Понедельник, 06.05.2013, 10:47:49 | Сообщение # 3
Сообщений: 92
Репутация: -9 [ +/- ]
Scarface_slv,
О спасибо большое, но не мог бы ты в исходнике залить.
Просто у меня на планшете все плюсики и ковычки заменяет смайлами и код не читаем становится.
Пожалуйста.
 
Scarface_slv Дата: Понедельник, 06.05.2013, 11:27:36 | Сообщение # 4
Сообщений: 737
Репутация: 61 [ +/- ]
vshapke

Гости не могут скачивать файлы


Сообщение отредактировал Scarface_slv - Понедельник, 06.05.2013, 11:27:50
 
MongoL666 Дата: Понедельник, 06.05.2013, 12:37:22 | Сообщение # 5
Сообщений: 92
Репутация: -9 [ +/- ]
Спасибо все норм работает.
Щас я прикручу туда пару условий и буду тестировать

Добавлено (06.05.2013, 12:33:04)
---------------------------------------------
Scarface_slv, Все работает - но плагин все время задает команду начала микса.
То есть если я правильно понимаю таймер который задает проверку игроков не выключается после запуска серверной команды.((((
Как реализовать можно?

Добавлено (06.05.2013, 12:37:22)
---------------------------------------------
Может выгружать плагин атотаймера? А подгружать его уже после окончания микса????

 
TEIN Дата: Понедельник, 06.05.2013, 12:55:56 | Сообщение # 6
Сообщений: 563
Репутация: 78 [ +/- ]
Смысл такой.

Гости не могут скачивать файлы


Сообщение отредактировал DoK_1997 - Понедельник, 06.05.2013, 12:58:11
 
MongoL666 Дата: Понедельник, 06.05.2013, 13:01:15 | Сообщение # 7
Сообщений: 92
Репутация: -9 [ +/- ]
DoK_1997, Нет это не подходит, так ка ку не меня не вармод.
Запуск матча идет командой sm_start.
Можно ли как в самом коже сделать проверку на запуск матча и остановку таймера ???
 
TEIN Дата: Понедельник, 06.05.2013, 13:05:02 | Сообщение # 8
Сообщений: 563
Репутация: 78 [ +/- ]
Создай глобальную переменную, запустил матч? переменную в true, смысл такой.
 
MongoL666 Дата: Понедельник, 06.05.2013, 13:30:19 | Сообщение # 9
Сообщений: 92
Репутация: -9 [ +/- ]
Scarface_slv,

Я только учусь кодить и сделал вот так. Правельно?

Код
new Handle:g_ForceStartMix = INVALID_HANDLE;

public OnMapStart() CreateTimer(60.0, ForceStartMix, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);    

public Action:ForceStartMix(Handle:timer)
{
  new T,CT;
  for (new i = 1; i <= MaxClients; i++)
  {
   if (IsClientInGame(i))
   {
    switch (GetClientTeam(i))
    {
     case 2: T++;
     case 3: CT++;
    }      
   }
  }
  PrintToChatAll("\x04%[AutoMix] \x01За команду теров => %d | За команду контров => %d", T, CT);
  if (T ==5 && CT == 5) ServerCommand("sm_start");  
  if ( g_ForceStartMix != INVALID_HANDLE )
     {
         KillTimer( g_ForceStartMix );
         g_ForceStartMix = INVALID_HANDLE;
     }
  return Plugin_Stop
}    


Вопрос - как выполнить настройку cvar количества игроков от 6 на 6 до 1 на 1 (для разного рода условий, но вписываться будет в server.cfg)
 
TEIN Дата: Понедельник, 06.05.2013, 13:44:59 | Сообщение # 10
Сообщений: 563
Репутация: 78 [ +/- ]
Правельно - нет

А так, все равно не правильно (После не должен стоять пробел, тут, по крайней мере), а без таймера еще можно подумать
Вернее
Код
  if ( g_ForceStartMix != INVALID_HANDLE )    
        {    
            KillTimer( g_ForceStartMix );    
            g_ForceStartMix = INVALID_HANDLE;    
        }    
     return Plugin_Stop


Сообщение отредактировал DoK_1997 - Понедельник, 06.05.2013, 13:49:39
 
MongoL666 Дата: Понедельник, 06.05.2013, 13:55:35 | Сообщение # 11
Сообщений: 92
Репутация: -9 [ +/- ]
DoK_1997,

А как сделать правельно, ведь я проверил, мой код работает.
 
Scarface_slv Дата: Понедельник, 06.05.2013, 15:19:25 | Сообщение # 12
Сообщений: 737
Репутация: 61 [ +/- ]
Сделай в round_start проверку, типо так

Гости не могут скачивать файлы
 
MongoL666 Дата: Понедельник, 06.05.2013, 15:32:26 | Сообщение # 13
Сообщений: 92
Репутация: -9 [ +/- ]
Scarface_slv,
Ничего не понял! new bool:MixOn должен же как то ровнятся запуску плагина или что?
Как плагин отследить что другой плагин запущен???
Этот пример меня просто выбил из седла!
В моем коде вроде все работает норм. Плагин проверяет еслть ли 5 на 5 игроков и запускает команду запуска другого плагина.
А тут как реализовано это ????
 
Scarface_slv Дата: Понедельник, 06.05.2013, 20:06:25 | Сообщение # 14
Сообщений: 737
Репутация: 61 [ +/- ]
Тут сделано так, в начале раунда считает количество игроков и если их 5 на 5 запускает sm_start и больше проверка не запускается, ты уверен что твой вариант работает? Если ты создал Handle:g_ForceStartMix надо присвоить его
g_ForceStartMix = CreateTimer...
И по моему твой таймер через минуту проверит количество игроков и остановиться из за return Plugin_Stop
То есть если он проверил количество игроков через 60 сек и игроков меньше 5 то повторной проверки уже не будет...
 
MongoL666 Дата: Понедельник, 06.05.2013, 20:16:18 | Сообщение # 15
Сообщений: 92
Репутация: -9 [ +/- ]
Scarface_slv,
Я только учусь писать плагины, не мог бы ты помочь мне с этой проблемой.
Я не могу понять как ты вычислил в коде
Код
if(MixOn == false) //проверяем запущен ли микс;

запуск моего микс плагина???
А вот тут
Код
ServerCommand("sm_start");    
     MixOn = true;//микс начался отключаем проверку
     //что бы снова включить проверку пишем в любом блоке MixOn = false;

Как мне запустить проверку заного если уже идет во всю выполнение микса???
Я так понимаю надо вписать в исходник плагина микса это???


Сообщение отредактировал MongoL666 - Понедельник, 06.05.2013, 21:55:55
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Счетчик игроков. (Считает игроков и при условии выполняет серверную команду.)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: