Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

3 страниц V   1 2 »

amx_kick заменить на перевод в наблюдатели

Статус пользователя usercn
сообщение 7.3.2014, 1:11
Сообщение #1


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

Есть код:
server_cmd("amx_kick %s", Player[Selected]) - кикает с сервера игрока Player[Selected]
Хочу заменить кик, на перевод игрока в наблюдатели (спектаторы).
Типа выполнить код: server_cmd("amx_spect %s", Player[Selected])
но такой команды amx_spect - нет. Как быть?


Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 7.3.2014, 1:27
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

использовать user_silentkill и cs_set_user_team
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя usercn
сообщение 7.3.2014, 10:56
Сообщение #3


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

Было так:

Код:
public ActualKick(Selected)
{
server_cmd("amx_kick %s", Player[Selected])
}

Если заменить кик на перевод в спектаторы, подскажите.
Вот так правильно??

Код:
public ActualKick(Selected)
{
client_cmd(Player[Selected], "kill")
cs_set_user_team(Player[Selected],CS_TEAM_SPECTATOR)
}

есть ещё второй вариант:

Код:
public ActualKick(Selected)
{
if(is_user_alive(Player[Selected]))
{
user_silentkill(Player[Selected])
cs_set_user_team(Player[Selected],CS_TEAM_SPECTATOR)
}
}


Отредактировал: usercn, - 7.3.2014, 10:58


Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 7.3.2014, 10:58
Сообщение #4


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

вот так примерно

Цитата
public ActualKick(Selected)
{
if(is_user_alive(Player[Selected]))
{
user_silentkill(Player[Selected])
cs_set_user_team(Player[Selected],CS_TEAM_SPECTATOR)
}
}


только надо по другом

Код
    if(is_user_alive(Player[Selected]))
            user_silentkill(Player[Selected])

    cs_set_user_team(Player[Selected],CS_TEAM_SPECTATOR)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя usercn
сообщение 7.3.2014, 11:08
Сообщение #5


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

В итоге получилось:
Код:
public ActualKick(Selected)
{
if(is_user_alive(Player[Selected])) user_silentkill(Player[Selected])
cs_set_user_team(Player[Selected],CS_TEAM_SPECTATOR)
}


а тип переменной Player[Selected] правильный будет??
изначано было server_cmd("amx_kick %s", Player[Selected])
где Player[Selected] - это ник игрока в текстовом виде


Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Stimul1
сообщение 7.3.2014, 13:51
Сообщение #6


Стаж: 13 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

usercn, больше кода.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя admin4ik
сообщение 7.3.2014, 14:10
Сообщение #7
Стаж: 12 лет

Сообщений: 68
Благодарностей: 13
Полезность: 119

Код
if(is_user_alive(Player[Selected]))
{
   //code убить и перевести
}else{
           //code перевести
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя usercn
сообщение 12.3.2014, 0:44
Сообщение #8


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

Сделал так:

Код:
public ActualKick(Selected)
{
new Pid = get_user_index(sp_PlayerName[Selected])

if (is_user_alive(Pid))
user_silentkill(Pid)

cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
}



Иногда ошибочка в лог вываливается

L 03/11/2014 - 21:21:51: Start of error session.
L 03/11/2014 - 21:21:51: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20140311.log")
L 03/11/2014 - 21:21:51: [CSTRIKE] Invalid player 10
L 03/11/2014 - 21:21:51: [AMXX] Displaying debug trace (plugin "votekick_v2.amxx")
L 03/11/2014 - 21:21:51: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 03/11/2014 - 21:21:51: [AMXX] [0] votekick_v2.sma::ActualKick (line 255)
L 03/11/2014 - 21:21:51: [AMXX] [1] votekick_v2.sma::outcomkick (line 227)


Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TarikYuzkiv
сообщение 12.3.2014, 0:59
Сообщение #9
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

Цитата(usercn @ 12.3.2014, 2:44) *
Сделал так:

Код:
public ActualKick(Selected)
{
new Pid = get_user_index(sp_PlayerName[Selected])

if (is_user_alive(Pid))
user_silentkill(Pid)

cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
}



Иногда ошибочка в лог вываливается

L 03/11/2014 - 21:21:51: Start of error session.
L 03/11/2014 - 21:21:51: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20140311.log")
L 03/11/2014 - 21:21:51: [CSTRIKE] Invalid player 10
L 03/11/2014 - 21:21:51: [AMXX] Displaying debug trace (plugin "votekick_v2.amxx")
L 03/11/2014 - 21:21:51: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 03/11/2014 - 21:21:51: [AMXX] [0] votekick_v2.sma::ActualKick (line 255)
L 03/11/2014 - 21:21:51: [AMXX] [1] votekick_v2.sma::outcomkick (line 227)

Добавьте проверку на подключение.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя usercn
сообщение 12.3.2014, 13:06
Сообщение #10


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

Какую проверку, куда именно?


Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 12.3.2014, 13:09
Сообщение #11


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

любой AFK менеджер глянь и посмотри что он делает
кстати надо еще и бомбу тебе дропать
и хорошо проверять vip игрок или нет для as_ карт

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя usercn
сообщение 12.3.2014, 16:18
Сообщение #12


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

Так правильно или что-то другое???

Код:
public ActualKick(Selected)
{
new Pid = get_user_index(sp_PlayerName[Selected])

if(is_user_connected(Pid) && cs_get_user_team(Pid) != CS_TEAM_SPECTATOR)
{
if (is_user_alive(Pid))
user_silentkill(Pid)

cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
}
}




Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 12.3.2014, 16:20
Сообщение #13


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

нет конечно
смысла нет в if(is_user_connected(Pid))

is_user_alive включает в себя проверку на is_user_connected


попробуй так
Код:
public ActualKick(Selected)
{
new Pid = get_user_index(sp_PlayerName[Selected])
if (cs_get_user_team(Pid) != CS_TEAM_SPECTATOR) {
is_user_alive(Pid) ? user_silentkill(Pid), cs_set_user_team(Pid,CS_TEAM_SPECTATOR) : cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
}

}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя usercn
сообщение 12.3.2014, 16:33
Сообщение #14


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

В чём разница, тоже самое, только ещё проверяется не в спектаторах ли он уже.
Ведь писали про проверку на подключение


Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 12.3.2014, 17:01
Сообщение #15


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(usercn @ 12.3.2014, 18:33) *
В чём разница, тоже самое, только ещё проверяется не в спектаторах ли он уже.
Ведь писали про проверку на подключение

кое-кто просто не знает что такое is_user_alive
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя usercn
сообщение 12.3.2014, 22:30
Сообщение #16


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

Цитата(Legenda @ 12.3.2014, 17:20) *
попробуй так
Код:
public ActualKick(Selected)
{
new Pid = get_user_index(sp_PlayerName[Selected])
if (cs_get_user_team(Pid) != CS_TEAM_SPECTATOR) {
is_user_alive(Pid) ? user_silentkill(Pid), cs_set_user_team(Pid,CS_TEAM_SPECTATOR) : cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
}

}



is_user_alive(Pid) ? user_silentkill(Pid), cs_set_user_team(Pid,CS_TEAM_SPECTATOR) : cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
Не компилится эта строчка, синтакически что-то не так


Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 12.3.2014, 22:32
Сообщение #17
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

if(is_user_alive(Pid) ? user_silentkill(Pid) : cs_set_user_team(Pid, CS_TEAM_SPECTATOR))

если игрок жив убиваем, если мертв то он идет в спектатор


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TarikYuzkiv
сообщение 12.3.2014, 22:36
Сообщение #18
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

Разве смысл не в том, чтоб убить и переместить игрока если он жив/просто переместить если мертв? В первом случае вполне хватит проверки "is_user_alive", а во втором?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя usercn
сообщение 12.3.2014, 22:39
Сообщение #19


Стаж: 12 лет

Сообщений: 341
Благодарностей: 140
Полезность: 495

Цитата(csnet @ 12.3.2014, 23:32) *
if(is_user_alive(Pid) ? user_silentkill(Pid) : cs_set_user_team(Pid, CS_TEAM_SPECTATOR))

если игрок жив убиваем, если мертв то он идет в спектатор


а должно быть
если игрок жив убиваем + отправляем в спектаторы, если мертв то он идет в спектатор

И вообще мы счас вернёмся к коду с чего всё начиналось...
Код:
public ActualKick(Selected)
{
new Pid = get_user_index(sp_PlayerName[Selected])

if (is_user_alive(Pid))
user_silentkill(Pid)

cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
}

но в этом случае в лог вываливается

L 03/11/2014 - 21:21:51: Start of error session.
L 03/11/2014 - 21:21:51: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20140311.log")
L 03/11/2014 - 21:21:51: [CSTRIKE] Invalid player 10
L 03/11/2014 - 21:21:51: [AMXX] Displaying debug trace (plugin "votekick_v2.amxx")
L 03/11/2014 - 21:21:51: [AMXX] Run time error 10: native error (native "cs_set_user_team")
L 03/11/2014 - 21:21:51: [AMXX] [0] votekick_v2.sma::ActualKick (line 255)
L 03/11/2014 - 21:21:51: [AMXX] [1] votekick_v2.sma::outcomkick (line 227)


Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 12.3.2014, 22:41
Сообщение #20


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(usercn @ 13.3.2014, 0:30) *
is_user_alive(Pid) ? user_silentkill(Pid), cs_set_user_team(Pid,CS_TEAM_SPECTATOR) : cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
Не компилится эта строчка, синтакически что-то не так


хз как там скобки правильно ставить
сделай так
Код:
public ActualKick(Selected)
{
new Pid = get_user_index(sp_PlayerName[Selected])
if (cs_get_user_team(Pid) != CS_TEAM_SPECTATOR) {
is_user_alive(Pid) ? kill_and_transfer(Pid) : cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
}

}

public kill_and_transfer(Pid)
{
user_silentkill(Pid)
cs_set_user_team(Pid,CS_TEAM_SPECTATOR)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V   1 2 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: