Elrmrnt-Kritik (30.05.2018)
А что в ней непонятного? Функция просто берёт массив, ищет в нём первое попавшееся нулевое значение (оно же символ завершения строки '\0') и возвращает индекс, по которому нашла это значение - это и будет длина строки. Например, строку "abc" в виде массива можно представить как { 'a', 'b', 'c', '\0' } - strlen() найдёт '\0' на 3-й позиции, что будет означать, что в строке 3 символа.
Это подробно объяснено в Pawn Implementer's Guide. Если вкратце, то компилятор генерирует для switch таблицу записей типа "значение - адрес перехода". Интерпретатор берёт значение, переданное в switch, и сравнивает его со значениями из таблицы, если находит - переходит по соответствующему адресу и выполняет код из соответствующего case, не находит - переходит на адрес, соответствующий метке default:, либо просто выходит из switch, если той метки нет.
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Elrmrnt-Kritik (30.05.2018)
INVALID_PLAYER_ID сработает, если проверять на нике или эта проверка подходит только к id?
Эмм, INVALID_PLAYER_ID - это не проверка, а макрос, который содержит значение 65535. Само по себе это значение не означает ровным счётом ничего, но ряд функций, взаимодействующих с игроком, возвращают это значение, когда тот самый игрок не найден. Именно поэтому результат ряда функций и сравнивается с этим значением (не потому что макрос называется "INVALID_PLAYER_ID" и это наделяет макрос какими-то особыми свойствами, а потому что в самих функциях прописан возврат определённого значения, которое сделали во всех функциях идентичным и потом обозначили как макрос). Это во-первых.
Во-вторых, сформулируй конкретнее свой вопрос. Что ты подразумеваешь под фразой "проверять на нике"?
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Sambook (31.05.2018)
Ну вот, например, взял из мануала. В случае использования в команде никнейма(вместо id) игрока, который есть в сети, второе условие(targetid == INVALID_PLAYER_ID) выполнится или нет? Почти уверен, что нет, но не в первой команде такое уже вижу и появляются сомнения =\
PHP код:
CMD:ban(playerid, params[])
{
// if(!IsPlayerAdmin(playerid)) return 1;
new
targetid,
days,
days_string[4+1],
targetid_name[MAX_PLAYER_NAME+1],
playerid_name[MAX_PLAYER_NAME+1];
if(sscanf(params, !"uds[120]", targetid, days, params[0]))
return SendClientMessage(playerid, -1, !"Использование: /ban [ID/Ник] [Кол-во дней] [Причина]");
if(targetid == INVALID_PLAYER_ID)
return SendClientMessage(playerid, -1, !"Игрок не найден.");
}
Последний раз редактировалось Sambook; 30.05.2018 в 21:46.
Так там используется спецификатор "u" в sscanf. Этот спецификатор помимо того, что позволяет писать как ник, так и ID игрока, сразу проверяет, находится ли указанный игрок в сети и если не находится, вернёт "INVALID_PLAYER_ID". Именно благодаря этому спецификатору и тому, что в sscanf для него вшита проверка на онлайн, проверка "if(targetid == INVALID_PLAYER_ID)" сработает как надо
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Sambook (31.05.2018)
Так наверное невозможно, верно ведь?PHP код:
%.%ds
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Эту тему просматривают: 6 (пользователей: 0 , гостей: 6)