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

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
 
Сообщения: 131
Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#

Re: Run time error: Player is not ingame

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

Где этот смельчак, который гадость написал про меня, основываясь на данную тему. И пусть переубедит меня в моих же словах верно написанных.
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1960
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 44 раз.
Поблагодарили: 663 раз.
Опыт программирования: Больше трех лет
Языки программирования: 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 раз.
Поблагодарили: 562 раз.

Re: Run time error: Player is not ingame

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

Я имею в виду во время цикла в реальном времени изменятся параметры, тот же игрок выйдет например, или вылетит(не отключаясь, и пакеты не дойдут).
На практике, без этой проверки в цикле... могут вылезать ошибки.
Такая мелочь сервер не уронит, т.к. плагин это всё отработает со своими условиями(если других нет), но ошибку вызовет.
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1960
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 44 раз.
Поблагодарили: 663 раз.
Опыт программирования: Больше трех лет
Языки программирования: 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 раз.
Поблагодарили: 562 раз.

Re: Run time error: Player is not ingame

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

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

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

Re: Run time error: Player is not ingame

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

EvilCoder, код выполнится для валидного игрока, откуда там будет ошибка, если сервер не знает об отключении?
get_players() - выдаст валидных игроков и пока мы находимся в теле текущей функции валидность игроков не изменится.
Ошибки бывают там, где не гарантируется валидность игрока.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: 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 раз.
Поблагодарили: 562 раз.

Re: Run time error: Player is not ingame

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

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

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

Пред.

Вернуться в Scripting

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

Сейчас этот форум просматривают: Google [Bot] и гости: 4