Half-Life и Adrenaline Gamer форум
http://aghl.ru/forum/

[AMXX] Проверка игроков на подключение к другому серверу
http://aghl.ru/forum/viewtopic.php?f=28&t=2736
Страница 2 из 2

Автор:  MXPLRS|Kirill [ 04 сен 2017, 14:27 ]
Заголовок сообщения:  Re: [AMXX] Проверка игроков на подключение к другому серверу

А смысл поднимать i после первого parse, если мне одно и то же значение надо получить дважды (один для массива g_playerlist[ServerID][PlayerID], второй для значения g_playerlist[ServerID][PlayerID][ID])?
Его логично было бы поднимать только в том случае, если бы я не записывал g_playerlist[ServerID][PlayerID][ID].

Насчет доп проверки - понял. Ну и дописать скорее всего while до конца строки, чтобы не парсить еще раз текущую.
 

И еще один вопрос: как правильно и корректнее очищать трехмерный массив?
Код:
      new i, i_pl;
      for (i = 0; i < MAXPLAYERS; i++)
(62)      for (i_pl = 0; i_pl < sizeof(g_playerlist[pcvar_serverid][i]); i_pl++)
            arrayset(g_playerlist[pcvar_serverid][i][i_pl], 0, sizeof(g_playerlist[pcvar_serverid][i][i_pl]));
плюется ошибками
Цитата:
//(62) : error 001: expected token: "]", but found "-identifier-"
//(62) : error 029: invalid expression, assumed zero
//(62) : warning 217: loose indentation
//(62) : error 029: invalid expression, assumed zero
// (62) : fatal error 107: too many error messages on one line

Автор:  Lev [ 04 сен 2017, 18:48 ]
Заголовок сообщения:  Re: [AMXX] Проверка игроков на подключение к другому серверу

MXPLRS|Kirill писал(а):
А смысл поднимать i после первого parse, если мне одно и то же значение надо получить дважды
Не смотрел внимательно что ты читаешь, и предположил что ты разбил чтобы поскипать userID.
Код:
                     parse (response[i], p_id, 2);
                     parse (response[i], g_playerlist[pcvar_serverid][p_id][ID],
Надо p_id в число сконвертировать чтобы в индексаторе использовать, ну и снова парсить его нет смысла, наверное.

MXPLRS|Kirill писал(а):
как правильно и корректнее очищать трехмерный массив?
Код:
arrayset(g_playerlist[pcvar_serverid][i], 0, sizeof(g_playerlist[pcvar_serverid][i]));
Но зависит от потребностей. Можно ведь просто
Код:
g_playerlist[pcvar_serverid][i][p_id] = 0;

Код:
g_playerlist[sizeof(g_serverlist)][MAXPLAYERS][PLAYERSLIST];
А что это за массив в целом? sizeof(g_serverlist) тут о чем?
По идее, должно быть [номер сервера][номер игрока][поле данных].
Соответственно, либо заранее задаешь сколько у тебя максимум серверов будет (а сейчас у тебя это sizeof(g_serverlist) = 32+10+64), либо динамические массивы нужны.

Автор:  MXPLRS|Kirill [ 05 сен 2017, 14:40 ]
Заголовок сообщения:  Re: [AMXX] Проверка игроков на подключение к другому серверу

Lev писал(а):
Надо p_id в число сконвертировать чтобы в индексаторе использовать, ну и снова парсить его нет смысла, наверное.
Хорошо, наверное действительно опустим.
Lev писал(а):
Код:
arrayset(g_playerlist[pcvar_serverid][i], 0, sizeof(g_playerlist[pcvar_serverid][i]));
Но зависит от потребностей. Можно ведь просто
Код:
g_playerlist[pcvar_serverid][i][p_id] = 0;
Мне это надо чтобы перед заливкой новой инфы не оставались поля со старой.
Lev писал(а):
Код:
g_playerlist[sizeof(g_serverlist)][MAXPLAYERS][PLAYERSLIST];
А что это за массив в целом? sizeof(g_serverlist) тут о чем?
По идее, должно быть [номер сервера][номер игрока][поле данных].
Соответственно, либо заранее задаешь сколько у тебя максимум серверов будет (а сейчас у тебя это sizeof(g_serverlist) = 32+10+64), либо динамические массивы нужны.
Понял, тогда через дефайн сделаю зашитое количество(как наивный думал что будет браться количество записей на первом уровне :) )

 

Страница 2 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/