Контакты Поиск

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

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » GetRandomClient()
GetRandomClient()
dron216 Дата: Суббота, 20.07.2013, 22:24:50 | Сообщение # 1
Сообщений: 151
Репутация: 18 [ +/- ]
Почему не компилируется плагин с GetRandomClient()?
Пишет "error 017: undefined symbol "GetRandomClient"
И в апи соурсмода этой команды тоже нет...
Или же есть какая то альтернатива этой команде?

(GetRandomClient() узнал из этого урока)
 
BeatMaker_R1KO_ Дата: Суббота, 20.07.2013, 23:48:06 | Сообщение # 2
Сообщений: 60
Репутация: 0 [ +/- ]
Потому что такой функции нет. Ее нужно создать.
В том уроке это и сделано. Она сначала вызывается:

Код
// Получить случайного игрока не бота  
  new target = GetRandomClient();


А потом объявляется (тоесть создается):
Код
GetRandomClient(bool:no_bot = true, bool:alive = false, team = 0)  
  {  
      new num = 0, players[MaxClients];  
      for (new i = 1; i <= MaxClients; i++)  
      {  
          if (!IsClientInGame(i) || (no_bot && IsFakeClient(i))) continue;  
          if ((alive && !IsPlayerAlive(i)) || (0 < team < 4 && GetClientTeam(i) != team)) continue;  
          players[num++] = i;  
      }  
      if (num > 0) return players[GetRandomInt(0, num - 1)];  
      return -1;  
  }
 
dron216 Дата: Воскресенье, 21.07.2013, 00:06:07 | Сообщение # 3
Сообщений: 151
Репутация: 18 [ +/- ]
Я вот так делал:
Код
new target = GetRandomClient(true, false, 2);
  if (target != -1)
  {  
   CS_SwitchTeam(client, CS_TEAM_CT);  
  }

И не компилирует
 
BeatMaker_R1KO_ Дата: Воскресенье, 21.07.2013, 00:08:37 | Сообщение # 4
Сообщений: 60
Репутация: 0 [ +/- ]
а это
Код
GetRandomClient(bool:no_bot = true, bool:alive = false, team = 0)   
   {   
       new num = 0, players[MaxClients];   
       for (new i = 1; i <= MaxClients; i++)   
       {   
           if (!IsClientInGame(i) || (no_bot && IsFakeClient(i))) continue;   
           if ((alive && !IsPlayerAlive(i)) || (0 < team < 4 && GetClientTeam(i) != team)) continue;   
           players[num++] = i;   
       }   
       if (num > 0) return players[GetRandomInt(0, num - 1)];   
       return -1;   
   }

есть в коде ?
 
dron216 Дата: Воскресенье, 21.07.2013, 00:39:00 | Сообщение # 5
Сообщений: 151
Репутация: 18 [ +/- ]
Что с этим, что без этого - толку ноль...
 
BeatMaker_R1KO_ Дата: Воскресенье, 21.07.2013, 00:44:01 | Сообщение # 6
Сообщений: 60
Репутация: 0 [ +/- ]
кинь полный код
 
TEIN Дата: Воскресенье, 21.07.2013, 06:59:03 | Сообщение # 7
Сообщений: 568
Репутация: 78 [ +/- ]
Зачем тебе случайный клиент, если он не используется у тебя в коде
 
dron216 Дата: Воскресенье, 21.07.2013, 10:02:55 | Сообщение # 8
Сообщений: 151
Репутация: 18 [ +/- ]
Код
#include <sourcemod>
#include <cstrike>

public Plugin:myinfo =  
{
  name = "CT-T",
  author = "DRoN4Ik",
  description = "",
  version = "1.5",
  url = ""
};

public OnPluginStart()
{
  HookEvent("round_end", Event_RoundEnd);
}

public Action:Event_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
  for (new i = 1; i <= MaxClients; i++)  
     {  
         if(IsClientInGame(i) && GetClientTeam(i) == CS_TEAM_CT && GetEventInt(event, "winner") == CS_TEAM_T)    
         {       
             CS_SwitchTeam(i, CS_TEAM_T);  
         }  
     }
   
  new target = GetRandomClient(true, false, 2)
  if (target != -1)
  {  
   CS_SwitchTeam(target, CS_TEAM_CT);  
  }
}

Вот код...

А это я убрал т.к не помогло...
Код
GetRandomClient(bool:no_bot = true, bool:alive = false, team = 0)    
    {    
        new num = 0, players[MaxClients];    
        for (new i = 1; i <= MaxClients; i++)    
        {    
            if (!IsClientInGame(i) || (no_bot && IsFakeClient(i))) continue;    
            if ((alive && !IsPlayerAlive(i)) || (0 < team < 4 && GetClientTeam(i) != team)) continue;    
            players[num++] = i;    
        }    
        if (num > 0) return players[GetRandomInt(0, num - 1)];    
        return -1;    
    }
 
TEIN Дата: Воскресенье, 21.07.2013, 10:23:08 | Сообщение # 9
Сообщений: 568
Репутация: 78 [ +/- ]
пробуй

Прикрепления: test.sp(0.6 Kb)


Сообщение отредактировал TEIN - Воскресенье, 21.07.2013, 10:23:51
 
ThRunningMan Дата: Воскресенье, 21.07.2013, 13:19:49 | Сообщение # 10
Сообщений: 140
Репутация: 12 [ +/- ]
в smlib есть получение рандомного клиента, живого мертвого бота хоть какого....и мудрить не надо, ибо уже все создано...
 
TEIN Дата: Воскресенье, 21.07.2013, 14:12:53 | Сообщение # 11
Сообщений: 568
Репутация: 78 [ +/- ]
Плохое сравнение
 
dron216 Дата: Воскресенье, 21.07.2013, 17:06:44 | Сообщение # 12
Сообщений: 151
Репутация: 18 [ +/- ]
Цитата (TEIN)
пробуй
Прикрепления: test.sp(1Kb)

Спасибо за помощь
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » GetRandomClient()
  • Страница 1 из 1
  • 1
Поиск: