Русское сообщество по скриптингу

Run time error: Player is not ingame

Scripting help for english speaking users. While not very active, you still have a chance to get help here.
Правила форума
We cannot maintain english version version of our forum rules, but shortly (it's simple) - Don't be a dick. If you really want to know our rules you should check appropriate thread.

Re: Run time error: Player is not ingame

Сообщение ko22009 » 07 фев 2017, 23:41

Лучше реализовать все это через проверку игроков в команде, оставить только CT и T.
Кстати, есть баг, связанный с тем, что нельзя узнать людей в команде CT через get_players напрямую, нужно сначала всех взять, а затем уже если нужно отсортировать по принадлежности к команде.
Аватара пользователя
ko22009
 
Сообщения: 127
Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 25 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#

Re: Run time error: Player is not ingame

Сообщение EvilCoder » 10 фев 2017, 00:07

Где этот смельчак, который гадость написал про меня, основываясь на данную тему. И пусть переубедит меня в моих же словах верно написанных.
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1961
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 41 раз.
Поблагодарили: 659 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Run time error: Player is not ingame

Сообщение Controller » 10 фев 2017, 10:39

Возможно ли просто перенос действия кода по определенному времени чтоб код срабатывал после действия в игре ?
Аватара пользователя
Controller
 
Сообщения: 10
Зарегистрирован: 20 апр 2016, 00:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Run time error: Player is not ingame

Сообщение Chuvi » 10 фев 2017, 13:00

EvilCoder писал(а):
Subb98 писал(а):EvilCoder, get_players получает index'ы игроков, которые присутствуют на сервере. Вы должны зарегистрироваться, чтобы видеть ссылки.

В цикле это 100 раз может поменяться.

Возможно, вы уже как-то подзабыли, но HLDS у нас, пока что, однопоточный. Каким чудом в цикле может что-то поменяться?

согласно вашей логике цикл
Код: Выделить всё
do{}while(1
не должен привести к зависанию сервера.

"Незнание английского языка - это ваша проблема."

Плагинами на заказ не занимаюсь. Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 561 раз.

Re: Run time error: Player is not ingame

Сообщение EvilCoder » 11 фев 2017, 17:12

Я имею в виду во время цикла в реальном времени изменятся параметры, тот же игрок выйдет например, или вылетит(не отключаясь, и пакеты не дойдут).
На практике, без этой проверки в цикле... могут вылезать ошибки.
Такая мелочь сервер не уронит, т.к. плагин это всё отработает со своими условиями(если других нет), но ошибку вызовет.
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1961
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 41 раз.
Поблагодарили: 659 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Run time error: Player is not ingame

Сообщение Chuvi » 11 фев 2017, 17:45

EvilCoder, да даже если он вылетит во время цикла, сервер всё равно узнает об этом потом. Пока выполняется код функции плагина, никакой другой код на сервере больше не выполняется.

"Незнание английского языка - это ваша проблема."

Плагинами на заказ не занимаюсь. Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 561 раз.

Re: Run time error: Player is not ingame

Сообщение EvilCoder » 11 фев 2017, 19:27

Chuvi писал(а):EvilCoder, да даже если он вылетит во время цикла, сервер всё равно узнает об этом потом. Пока выполняется код функции плагина, никакой другой код на сервере больше не выполняется.

Ёп, я о чём говорю? Меня слышат вообще?
Сервер узнает потом, а плагин попытается отработать это на вылетевшем игроке, отработает, и выпадет ошибка. Как Вы думаете, почему вообще происходит данная ошибка отсутствующего игрока по такому то индексу?! Вот ради интереса посмотреть ответ и логику понять чью-либо.
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1961
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 41 раз.
Поблагодарили: 659 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Run time error: Player is not ingame

Сообщение Mistrick » 11 фев 2017, 19:43

EvilCoder, код выполнится для валидного игрока, откуда там будет ошибка, если сервер не знает об отключении?
get_players() - выдаст валидных игроков и пока мы находимся в теле текущей функции валидность игроков не изменится.
Ошибки бывают там, где не гарантируется валидность игрока.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2759
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1164 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Run time error: Player is not ingame

Сообщение Chuvi » 11 фев 2017, 19:46

EvilCoder, сервер не будет знать, что игрок вылетел, и на вопрос "а здесь ли игрок?" ответит, что игрок здесь.

"Незнание английского языка - это ваша проблема."

Плагинами на заказ не занимаюсь. Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 561 раз.

Re: Run time error: Player is not ingame

Сообщение EvilCoder » 11 фев 2017, 19:57

get_players не всегда надёжен в совокупности с некоторыми флагами отбора игроков.
Я вообще то вопрос ещё задал:
Как Вы думаете, почему вообще происходит данная ошибка отсутствующего игрока по такому то индексу?!

Во вторых - цикл немного не так составлен, по принципу deathrun модов зачем то.
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1961
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 41 раз.
Поблагодарили: 659 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Пред.

Вернуться в Scripting

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1