rxki
Пользователь
- Регистрация
- 5 Янв 2019
- Сообщения
- 208
- Симпатии
- 5
- Пол
- Мужской
Здравствуйте. У меня проблемка.
Добавил в меню сервера пункт "Перейти в наблюдатели", если игрок в игре и "Вернутся в игру", если он в спектаторах. В наблюдатели переходит отлично, а вот с возвращением есть баги. После нажатия на пункт меню "Вернутся в игру" - игроку не присваивает команду и не сразу респаунит его. После 3-4 нажатий на пункт игрока возвращает в игру, а после в меню при нажатии "В наблюдатели" его заново респаунит.
P.S. Мод зомби, в идеале это должно было бы работать так: если игрок в наблюдателях и переходит в игру, но время для респауна в текущем раунде прошло - ему просто должно присваивать команду и ждать начала сл раунда. Если же игрок нажал "вернутся в игру" на протяжении первых 15 секунд (когда сервер дает возможность заспавниться в текущем раунде) - его ресало в игру сразу. Вот функция возвращения. Делал таском повторный респаун - тоже не сработало. Прошу вашей помощи, господа
Добавил в меню сервера пункт "Перейти в наблюдатели", если игрок в игре и "Вернутся в игру", если он в спектаторах. В наблюдатели переходит отлично, а вот с возвращением есть баги. После нажатия на пункт меню "Вернутся в игру" - игроку не присваивает команду и не сразу респаунит его. После 3-4 нажатий на пункт игрока возвращает в игру, а после в меню при нажатии "В наблюдатели" его заново респаунит.
P.S. Мод зомби, в идеале это должно было бы работать так: если игрок в наблюдателях и переходит в игру, но время для респауна в текущем раунде прошло - ему просто должно присваивать команду и ждать начала сл раунда. Если же игрок нажал "вернутся в игру" на протяжении первых 15 секунд (когда сервер дает возможность заспавниться в текущем раунде) - его ресало в игру сразу. Вот функция возвращения. Делал таском повторный респаун - тоже не сработало. Прошу вашей помощи, господа
Код:
public GoToPlay(id)
{
new iCT;
new iTT;
new g_MaxPlayers;
for(new i = 1 ; i <= g_MaxPlayers ; i++)
{
if(is_user_alive(i))
{
switch( get_user_team(i) )
{
case 1: iTT++;
case 2: iCT++;
}
}
}
engclient_cmd(id, "jointeam 5; joinclass 5");
if(iTT == iCT || iTT > iCT)
{
cs_set_user_team(id, CS_TEAM_CT, CS_DONTCHANGE);
}
else
{
cs_set_user_team(id, CS_TEAM_T, CS_DONTCHANGE);
}
return PLUGIN_HANDLED;
}