событие Spectate
|
|
slogic | Дата: Среда, 02.05.2007, 13:08:57 | Сообщение # 1 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Вроде простая проблема, но не хочется завязываться на очередь предшествующих событий. Итак, в зрителя можно перейти сразу выбрав его при подключении к серверу, либо если тебя кокнули (в CS). В любом случае рассылается событие "Spectator". По pev атрибутам выяснил, что pev_nextthink для убитого игрока не равен 0 (или не равен -1, по памяти говорю, т.к. результаты исследования оставил дома). Думал сначала использовать pev_team, а он в обоих случаях равен 0. Хак-функцию из CStrike модуля для определения команды использовать не собираюсь. Плюс там флаги отличаются (это еще не успел проверить). pev_deadflag у обоих одинаковый. Может есть у кого более стоящие идеи (кроме pev_nextthink и pev_flags)?
|
|
| |
VEN | Дата: Среда, 02.05.2007, 17:18:56 | Сообщение # 2 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Для наблюдателя, который им стал не вследствие смерти выставляется флаг FL_SPECTATOR. Если умерший наблюдатель сменит команду дважды (например: T->SPE->CT), ему также будет присвоен вышеупомянутый флаг. Под наблюдателем я подразумеваю неживого игрока из любой команды, в том числе и UNASSIGNED.
Сообщение отредактировал VEN - Среда, 02.05.2007, 17:30:36 |
|
| |
slogic | Дата: Суббота, 05.05.2007, 16:17:59 | Сообщение # 3 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Короче по флагу сделал. Вроде надежный метод. Тестовый скрипт прилагаю.
|
|
| |
VEN | Дата: Суббота, 05.05.2007, 16:39:29 | Сообщение # 4 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Примечание: при заходе в "команду" Spectators вызывается дважды. При повторном заходе туда же вообще не вызывается.
|
|
| |
slogic | Дата: Суббота, 05.05.2007, 17:37:05 | Сообщение # 5 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (VEN) | При повторном заходе туда же вообще не вызывается. | В CS разве можно повторно зайти за зрителя?
|
|
| |
VEN | Дата: Суббота, 05.05.2007, 18:34:46 | Сообщение # 6 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Да, после вот этого событияCode | register_event("HLTV", "event_new_round", "a", "1=0", "2=0") | можно снова перезаходить. И не только в spectator'ы, можно, например СT->СT.
|
|
| |
slogic | Дата: Понедельник, 07.05.2007, 13:02:39 | Сообщение # 7 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (VEN) | Если умерший наблюдатель сменит команду дважды (например: T->SPE->CT), ему также будет присвоен вышеупомянутый флаг. | Гм. Теперь дошло. Так значит просто по флагу ненадежно получается, хотя такая ситуация достаточно редкая.
|
|
| |
VEN | Дата: Понедельник, 07.05.2007, 13:33:16 | Сообщение # 8 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| "Ненадежно" - смотря, что именно ты пытаешься определить. Для меня, например, это логично, выдавать флаг наблюдателя умершему, который сменил команду. Другой вопрос, что выдается после двойной смены команды. Не достаточно логически обосновано, по моему мнению, не брать во внимание единичную смену команды. Ну с CT<->T еще можно понять (ретировался - мертвым и остался), а вот с [C]T->SPE нелогично не выдавать флаг, будь игрок хоть самый "наимертвейший" на всем сервере: зашел в "реальные" наблюдатели - получи заслуженный "флажок". :]
Сообщение отредактировал VEN - Понедельник, 07.05.2007, 13:37:11 |
|
| |