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

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

  • Страница 1 из 1
  • 1
Некорректный рандом
DEMO-Stalker Дата: Вторник, 25.03.2014, 23:25:21 | Сообщение # 1
Сообщений: 49
Репутация: 0 [ +/- ]
Код
public Action:randominv(Handle:timer)
{
  new t = GetRandomPlayer();
  for (new i=1;i<=MaxClients;i++)  
  {
   if (IsClientInGame(i))
   {
    if (GetClientTeam(i) == 2)
    {
     CS_SwitchTeam(i, 3);
    }
   }
  }
  if (t != -1)
  {
   xd = GetAlivePlayers();
   if (xd > 10)
   {
    for (new y=1;y<=2;y++)
    {
     CPrintToChatAll(msg, "2 t's", xd++);
     CS_SwitchTeam(t, 2);
     CS_RespawnPlayer(t);
     CPrintToChatAll(msg, "player go to terrorists", t);
     PrintCenterTextAll("Игрок %N выбран следующим невидимкой!", t);
    }
   }
   else
   {
    if (IsClientInGame(t))
    {
     CPrintToChatAll(msg, "need more players for more t's", xd++);
     CS_SwitchTeam(t, 2);
     CS_RespawnPlayer(t);
     CPrintToChatAll(msg, "player go to terrorists", t);
     PrintCenterTextAll("Игрок %N выбран следующим невидимкой!", t);
    }
   }
  }
}

Плагин выбирает двух рандомных Т, если достаточно КТ, если же нет, то выбирает лишь одного террориста рандомно. В этом плагине, когда нужно выбрать 2-ух рандом Т (условия соответствуют), выбирает 2 Т, но это 1 и тот же человек, от чего террористов не становится более 1. Что изменить?
 
TEIN Дата: Среда, 26.03.2014, 04:42:38 | Сообщение # 2
Сообщений: 563
Репутация: 78 [ +/- ]
Код
if (xd > 10)
{
       for (new y=1;y<=2;y++)  
       {
             new t = GetRandomPlayer();
             if (t != -1)  
             {
                   // ...
              }
       }
}
 
DEMO-Stalker Дата: Четверг, 27.03.2014, 00:48:08 | Сообщение # 3
Сообщений: 49
Репутация: 0 [ +/- ]
TEIN,
Код
public Action:randominv(Handle:timer)
{
  for (new i=1;i<=MaxClients;i++)  
  {
   if (IsClientInGame(i))
   {
    if (GetClientTeam(i) == 2)
    {
     CS_SwitchTeam(i, 3);
    }
   }
  }
  xd = GetAlivePlayers();
  if (xd > 10)
  {
   new t = GetRandomPlayer();  
   if (t != -1)   
   {
    for (new y=1;y<=2;y++)
    {
     CPrintToChatAll(msg, "2 t's", xd++);
     CS_SwitchTeam(t, 2);
     CS_RespawnPlayer(t);
     CPrintToChatAll(msg, "player go to terrorists", t);
     PrintCenterTextAll("Игрок %N выбран следующим невидимкой!", t);
    }
   }
  }
  else
  {
   new t = GetRandomPlayer();  
   if (IsClientInGame(t))
   {
    CPrintToChatAll(msg, "need more players for more t's", xd++);
    CS_SwitchTeam(t, 2);
    CS_RespawnPlayer(t);
    CPrintToChatAll(msg, "player go to terrorists", t);
    PrintCenterTextAll("Игрок %N выбран следующим невидимкой!", t);
   }
  }


Вроде не работает :C

Добавлено (27.03.2014, 00:48:08)
---------------------------------------------
Разобрался

 
  • Страница 1 из 1
  • 1
Поиск: