Приветствую. Есть ли какая-нибудь функция для получения ника игрока, находящегося на сервере? (При этом подключённого к серверу и авторизованного)
Приветствую. Есть ли какая-нибудь функция для получения ника игрока, находящегося на сервере? (При этом подключённого к серверу и авторизованного)
GetPlayerName + проверка, что авторизован + проверить, что GetPlayerName не вернуло 0.
Последний раз редактировалось $continue$; 04.06.2017 в 00:53.
Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman
PawnoNoob (04.06.2017)
Хм, а как это будет выглядеть? Просто мне необходима эта функция для проверки игрока на онлайн (например, для выдачи каких-то определённых прав). Если игрок в игре, то оповестить его о том, что ему выданы определённые привилегии, ну а если оффлайн, то просто внести изменения в базу данных.
Вернёт ID игрока, если он найден и INVALID_PLAYER_ID, если не найденPHP код:
stock GetPlayerID(const input_name[])
{
new player_name[MAX_PLAYER_NAME];
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))// Замени на проверку авторизации
continue;
GetPlayerName(i, player_name, MAX_PLAYER_NAME);
if(!strcmp(player_name, input_name))
return i;
}
return INVALID_PLAYER_ID;
}
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
PawnoNoob (04.06.2017)
А когда то, ты мне заливал, что sscanf лучше для таких целей...
На что я ответил, что он не у всех подключен. И да не лучше ли будет заменить проверку с коннектом на:
ТС: в следующий раз задавайте вопрос корректно: "Нужно найти игрока с определенным ником на сервере". Так бы я сразу понял суть вопроса.PHP код:
if(0 == GetPlayerName(i, player_name, MAX_PLAYER_NAME)) continue;
Последний раз редактировалось $continue$; 04.06.2017 в 01:16.
Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman
PawnoNoob (04.06.2017)
Использовать в командах - да, лучше (я про спецификаторы "u" и "r").
Но если тебе нужно найти конкретного игрока - нет, ибо он ищет по части ника и для него "DeimoSs" и "DeimoS" будут считаться одинаковыми, если ты вобьёшь в поиск "DeimoS". Если тебе просто по части ника нужно найти игрока - определённо sscanf, ибо глупо писать дополнительную функцию, когда уже есть функция с тем же функционалом
У автора ведь есть система авторизации, посему лучше именно по ней и фильтровать. А IsPlayerConnected там для вида стоит (дабы авто понял где должна стоять его проверка)
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
PawnoNoob (04.06.2017)
Я как то писал пост с такой же функцией. Только не помню, где это было. Может и на PI. Но, суть в том, что ты начал там использовать sscanf. Зная, то что "u" - ищет часть ника, а не полный ник.
Ты не до конца дочитал: "подключённого к серверу и авторизованного"
Хотя не представляю себе, как игрок может быть не подключен к серверу и авторизован.
Последний раз редактировалось $continue$; 04.06.2017 в 01:40.
Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman
PawnoNoob (04.06.2017)
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
PawnoNoob (04.06.2017)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)