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

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.

Run time error: Player is not ingame

Сообщение sebhi19 » 06 фев 2017, 04:56

:(

Код: Выделить всё
L 02/05/2017 - 01:18:17: Start of error session.
L 02/05/2017 - 01:18:17: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20170205.log")
L 02/05/2017 - 01:18:17: Player 3 is not ingame
L 02/05/2017 - 01:18:17: [AMXX] Displaying debug trace (plugin "yap_menu.amxx")
L 02/05/2017 - 01:18:17: [AMXX] Run time error 10: native error (native "player_menu_info")
L 02/05/2017 - 01:18:17: [AMXX]    [0] yap_menu.inc::pug_display_menu_client (line 31)

YAP_MENU.INC

Код: Выделить всё
#if defined _yap_menu_included
    #endinput
#endif
#define _yap_menu_included

stock pug_voted[33]
stock pug_menu_tmp_id[33]

stock pug_display_menu_all(menu_id)
{
    static 
Players[32]
    new 
playerCountiplayer
    get_players
(PlayersplayerCount"ch")
    for (
i=0i<playerCounti++) 
    {
        
player Players[i]
        
pug_menu_tmp_id[player] = menu_id
        pug_display_menu_client
(player)
    }
}

stock pug_display_menu_single(id,menu_id)
{
    
pug_menu_tmp_id[id] = menu_id
    pug_display_menu_client
(id)
}

public 
pug_display_menu_client(id)
{
    
    if(!
is_user_connected(id))
        return
    
    new 
menu_idkeys;
    new 
menuUp player_menu_infoidmenu_idkeys );
    
    if ( 
menuUp <= || menu_id menu_display idpug_menu_tmp_id[id], )
    else 
set_task1.0"pug_display_menu_client"id );
}

stock pug_cancel_menu()
{
    static 
Players[32]
    new 
playerCounti
    get_players
(PlayersplayerCount"ch")
    for (
i=0i<playerCounti++) menu_cancel(Players[i]);
}

stock pug_should_stopvote()
{
    static 
Players[32]
    new 
playerCounti
    get_players
(PlayersplayerCount"ch")
    for (
i=0i<playerCounti++) if(!pug_voted[Players[i]]) return 0;
    
    return 
1;

Topic title has been corrected // Subb98
Аватара пользователя
sebhi19
 
Сообщения: 1
Зарегистрирован: 06 фев 2017, 04:48
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Run time error: Player is not ingame

Сообщение ko22009 » 06 фев 2017, 19:36

В pug_display_menu_client не срабатывает похоже is_user_connected.
Аватара пользователя
ko22009
 
Сообщения: 127
Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 25 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#

Re: Run time error: Player is not ingame

Сообщение EvilCoder » 06 фев 2017, 21:29

Код: Выделить всё
for (i=0i<playerCounti++) 
    {
        
player Players[i]
        
pug_menu_tmp_id[player] = menu_id
        pug_display_menu_client
(player)
    } 

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

Re: Run time error: Player is not ingame

Сообщение Subb98 » 06 фев 2017, 21:41

EvilCoder, не нужна, используется

Код: Выделить всё
get_players(PlayersplayerCount"ch"

выше. Проблема не в connect'е как таковом (как я понял), а в том, что игрок ещё не вступил в игру (не выбрал команду).
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5197
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1295 раз.
Поблагодарили: 2270 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Run time error: Player is not ingame

Сообщение EvilCoder » 06 фев 2017, 21:51

Subb98 писал(а):EvilCoder, не нужна, используется

Код: Выделить всё
get_players(Players, playerCount, "ch")

выше. Проблема не в connect'е как таковом (как я понял), а в том, что игрок ещё не вступил в игру (не выбрал команду).

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

Re: Run time error: Player is not ingame

Сообщение Subb98 » 06 фев 2017, 21:57

EvilCoder, get_players получает index'ы игроков, которые присутствуют на сервере. Вы должны зарегистрироваться, чтобы видеть ссылки.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5197
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1295 раз.
Поблагодарили: 2270 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Run time error: Player is not ingame

Сообщение EvilCoder » 07 фев 2017, 20:51

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

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

Re: Run time error: Player is not ingame

Сообщение Subb98 » 07 фев 2017, 22:29

EvilCoder, инструкции в коде выполняются слишком быстро, чтобы что-то успело поменяться в игре за время их выполнения (в данном случае). Иначе существование get_players не имело бы никакого смысла.

Добавлено спустя 1 час 6 минут 2 секунды:
П.с.: ё-моё, да у него же там рекурсия. Вот, в чём дело.

Добавлено спустя 2 минуты 1 секунду:
EvilCoder писал(а):
Код: Выделить всё
for (i=0; i<playerCount; i++) 
    
{
        player = Players[i]
        pug_menu_tmp_id[player] = menu_id
        pug_display_menu_client
(player)
    }

Здесь проверка на коннект нужна перед pug_display_menu_client(player).

Но проверка нужна не здесь, а внутри самой функции pug_display_menu_client уже.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5197
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1295 раз.
Поблагодарили: 2270 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Run time error: Player is not ingame

Сообщение EvilCoder » 07 фев 2017, 23:25

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

Re: Run time error: Player is not ingame

Сообщение Subb98 » 07 фев 2017, 23:37

EvilCoder, точно, что-то я зафэйлился. Однако всё равно убеждён, что код выполнится быстрее, чем что-то произойдёт в игре. Не должно такого быть.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5197
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1295 раз.
Поблагодарили: 2270 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

След.

Вернуться в Scripting

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

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