auto join
|
|
Naykon
|
Дата: Четверг, 29.03.2012, 17:32:43 | Сообщение # 1 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Дайте небольшой пример... Если игрок из спекторов заходит за СТ то его всеравно перекидывает за Т. (Запрет захода из спекторов за СТ (только за Т))
|
|
| |
sssw
|
Дата: Четверг, 29.03.2012, 17:46:36 | Сообщение # 2 |
|
Сообщений: 123
Репутация: 14 [ +/- ]
|
|
Code #include <cstrike>
public OnPluginStart() { AddCommandListener(ChooseTeam, "jointeam"); }
public Action:ChooseTeam(client, const String:command[], args) { if (client == 0) return Plugin_Continue; GetCmdArg(1, teamString, sizeof(teamString)); new Target_Team = StringToInt(teamString); if (Target_Team == 0) { return Plugin_Handled; } //PrintToChatAll("%f", GetTeamCountj(Terrorist, Counter)); if (Target_Team == CS_TEAM_СT && GetClientTeam(client) == 1) { return Plugin_Handled; } return Plugin_Continue; }
Вроде такДобавлено (29.03.2012, 17:46:36) --------------------------------------------- Ой, забыл добавить после if (Target_Team == CS_TEAM_СT && GetClientTeam(client) == 1) вот это CS_SwitchTeam(client, CS_TEAM_T)
|
|
| |
Naykon
|
Дата: Четверг, 29.03.2012, 17:51:17 | Сообщение # 3 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Ошибка при компиляции.. указывает на Code GetCmdArg(1, teamString, sizeof(teamString));
Дайте исправленный скрипт чтоб с мог разобраться...
|
|
| |
sssw
|
Дата: Четверг, 29.03.2012, 18:02:08 | Сообщение # 4 |
|
Сообщений: 123
Репутация: 14 [ +/- ]
|
|
Code #include <sourcemod> #include <cstrike>
public OnPluginStart() { AddCommandListener(ChooseTeam, "jointeam"); }
public Action:ChooseTeam(client, const String:command[], args) { if (client == 0) return Plugin_Continue; decl String:teamString[3]; GetCmdArg(1, teamString, sizeof(teamString)); new Target_Team = StringToInt(teamString); if (Target_Team == 0) { return Plugin_Handled; } if (Target_Team == 2 && GetClientTeam(client) == 1) { CS_SwitchTeam(client, CS_TEAM_T) return Plugin_Handled; } return Plugin_Continue; }
|
|
| |
Naykon
|
Дата: Четверг, 29.03.2012, 18:09:15 | Сообщение # 5 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
скрипт ничего не делает... по прежнему могу из спекторов заходить за СТ ((((
|
|
| |
_wS_
|
Дата: Четверг, 29.03.2012, 18:16:56 | Сообщение # 6 |
|
Code public Action:ChooseTeam(client, const String:command[], args) { if (client < 1 || args < 1 || GetClientTeam(client) != 1) return Plugin_Continue; decl String:str_team[3]; GetCmdArg(1, str_team, 3); if (StringToInt(str_team) == 3) { CS_SwitchTeam(client, 2); return Plugin_Handled; } return Plugin_Continue; }
Нужели так тяжело это сделать? Обычные условия если и то..
|
|
| |
Naykon
|
Дата: Четверг, 29.03.2012, 18:31:56 | Сообщение # 7 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Работает только если зайдешь за команду СТ или Т а потом выйдеш в спекторы.... после чего при попытке зайте за СТ ты заходишь за Т. НО когда ты только зашел на сервер ты можеш заходить за СТ (хотя по факту ты спектор)
|
|
| |
_wS_
|
Дата: Четверг, 29.03.2012, 18:41:40 | Сообщение # 8 |
|
Значит сделай не так GetClientTeam(client) != 1 а так GetClientTeam(client) < 2
|
|
| |
sssw
|
Дата: Четверг, 29.03.2012, 18:44:02 | Сообщение # 9 |
|
Сообщений: 123
Репутация: 14 [ +/- ]
|
|
Когда игрок не выбрал команду, он как бы не совсем спектр, то есть он будет спектром тогда когда выберет команду наблюдателей из меню. А так он просто зашедший и не играющий занимавший слот игрок и ID команды равен 0 а не 1 как у спектров.
|
|
| |
Naykon
|
Дата: Четверг, 29.03.2012, 19:16:18 | Сообщение # 10 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Обратите внимание пожалуйста на пост в "Предмет"... жду ответа (Как создать таймер знаю но не знаю как написать чтоб именно после появления предмета таймер запустился)Добавлено (29.03.2012, 19:16:18) --------------------------------------------- Все равно пускает за СТ
|
|
| |
_wS_
|
Дата: Четверг, 29.03.2012, 20:04:54 | Сообщение # 11 |
|
Ты хоть сам пробовал подумать и сделать?
Code public Action:ChooseTeam(client, const String:command[], args) { if (client < 1 || args < 1) return Plugin_Handled; if (GetClientTeam(client) < 2) { decl String:str_team[3]; GetCmdArg(1, str_team, 3); if (StringToInt(str_team) == 3) { CS_SwitchTeam(client, 2); return Plugin_Handled; } } return Plugin_Continue; }
Так работает, но если игрок нажмет авто-выбор команды и его кинет за кт - не сработает. Так что думай, если хочешь это исправить, а то ждешь готовое.
|
|
| |
Naykon
|
Дата: Четверг, 29.03.2012, 21:12:12 | Сообщение # 12 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
хорошо, как обозначается кнопка Авто-входа?Добавлено (29.03.2012, 21:12:12) --------------------------------------------- поясните каждую строчку.. но пойму скрипт
|
|
| |
nynCuKaH
|
Дата: Вторник, 03.04.2012, 19:52:54 | Сообщение # 13 |
|
Сообщений: 110
Репутация: 0 [ +/- ]
|
|
пфф тут все элементарно.Добавлено (03.04.2012, 19:31:33) --------------------------------------------- у меня не получается добавить звук который производится при нажатие на автовыбор типо ошибки Добавлено (03.04.2012, 19:52:54) --------------------------------------------- Что у меня не правильно? Не проигрывается звук и не показывается в чате сообщение.
Code #include <sourcemod> #include <cstrike>
public OnPluginStart() { AddCommandListener(ChooseTeam, "jointeam"); }
public Action:ChooseTeam(client, const String:command[], args) { if (client == 0) return Plugin_Continue; decl String:teamString[3]; GetCmdArg(1, teamString, sizeof(teamString)); new Target_Team = StringToInt(teamString); if (Target_Team == 0) { return Plugin_Handled; } if (Target_Team == 2 && GetClientTeam(client) == 1) { CS_SwitchTeam(client, CS_TEAM_T) return Plugin_Handled; } return Plugin_Continue; } else { //----------------------------------------- // Send client sound //----------------------------------------- ClientCommand( client, "buttons/button11.wav" ); //----------------------------------------- // Show client message //----------------------------------------- PrintToChat( client, "\x03[nJoin] \x04Автовыбор отключен, нажми 1 или 2!", teamRatio );
return Plugin_Handled; } } return Plugin_Continue; }
|
|
| |
_wS_
|
Дата: Среда, 04.04.2012, 05:04:16 | Сообщение # 14 |
|
Проигрывать звук надо перед командой return и под нужным условием. Неужели тяжело запустить тест скрипт, чтобы понять как работает return?
|
|
| |
Scarface_slv
|
Дата: Среда, 04.04.2012, 05:36:06 | Сообщение # 15 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
так?) буду так учиться =) нельзя зайти в спекторы и автовыбор тоже запрещен) Code #include <sourcemod> #include <cstrike>
public OnPluginStart() { AddCommandListener(ChooseTeam, "jointeam"); }
public Action:ChooseTeam(client, const String:command[], args) { if (client == 0) return Plugin_Continue; decl String:teamString[3]; GetCmdArg(1, teamString, sizeof(teamString)); new Target_Team = StringToInt(teamString); if (Target_Team == 0) { ClientCommand(client, "buttons/button11.wav"); PrintToChat(client, "\x03[nJoin] \x04Автовыбор отключен, нажми 1 или 2!"); return Plugin_Handled; } if (Target_Team == 1) { ClientCommand(client, "buttons/button11.wav"); PrintToChat(client, "\x03[nJoin] \x04Автовыбор отключен, нажми 1 или 2!"); return Plugin_Handled; } return Plugin_Continue; }
|
|
| |