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

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

  • Страница 1 из 1
  • 1
Перемещение игрока в конце раунда
Dsx Дата: Воскресенье, 21.10.2012, 21:45:50 | Сообщение # 1
Сообщений: 19
Репутация: 0 [ +/- ]
Как переместить нужного игрока в конце раунда?
 
Scarface_slv Дата: Воскресенье, 21.10.2012, 23:58:09 | Сообщение # 2
Сообщений: 737
Репутация: 61 [ +/- ]
делается это с помощью события round_end и с помощью цикла for...
и как ты хочешь переместить нужного игрока? нужно какое либо условие
Code

#include <cstrike>

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

public Round_End(Handle:event, const String:name[], bool:dontBroadcast)
{
             for (new i = 1; i <= MaxClients; i++)
             {
                     if(IsClientInGame(i) && GetClientTeam(i) == CS_TEAM_CT)      
                    {      
                             CS_SwitchTeam(i, CS_TEAM_T);
                    }
             }
}

например вот пример(не проверял), должен перекинуть всех КТ в Т в конце раунда, в общем главное это условие либо стим ид там или индекс или еще что ни будь что бы перекинуть определенного игрока...


Сообщение отредактировал Scarface_slv - Понедельник, 22.10.2012, 00:01:52
 
Dsx Дата: Понедельник, 22.10.2012, 01:20:29 | Сообщение # 3
Сообщений: 19
Репутация: 0 [ +/- ]
Допустим, что игрок выбрал в меню пункт - "Перейти за такую-то команду в конце раунда".
Как переместить?
 
Scarface_slv Дата: Понедельник, 22.10.2012, 08:09:40 | Сообщение # 4
Сообщений: 737
Репутация: 61 [ +/- ]
сохранить его индекс в глобальной переменной, и закинуть за какую ни будь команду в конце раунда
Code

#include <cstrike>

new players[MAXPLAYERS+1] //Глобальный массив) Пример: players[client] = 1 в меню присваиваешь игроку цифру 1 а в конце раунда проверяешь есть ли игроки с цифрой 1 если есть кидаешь игрока за какую нибудь команду и присваиваешь переменной players ноль players[client] = 0 чтобы не кидало игрока постоянно в конце раунда.    

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

public Round_End(Handle:event, const String:name[], bool:dontBroadcast)
{
           for (new i = 1; i <= MaxClients; i++)
           {
                   if(IsClientInGame(i) && GetClientTeam(i) > 1 && players[i] == 1)         
                   {         
                          CS_SwitchTeam(i, CS_TEAM_T);
                          players[i] = 0;
                   }
            }
}

Должно быть так примерно, меню тут нет поэтому присвоить кому нибудь 1 я не могу=)


Сообщение отредактировал Scarface_slv - Понедельник, 22.10.2012, 08:16:53
 
Dsx Дата: Вторник, 23.10.2012, 23:17:17 | Сообщение # 5
Сообщений: 19
Репутация: 0 [ +/- ]
Спасибо, все получилось, лови плюс.
 
Scarface_slv Дата: Среда, 24.10.2012, 00:12:55 | Сообщение # 6
Сообщений: 737
Репутация: 61 [ +/- ]
vshapke


Сообщение отредактировал Scarface_slv - Среда, 24.10.2012, 00:13:31
 
  • Страница 1 из 1
  • 1
Поиск: