Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 8 из 8
  1. #1
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±

    Получение ника

    Приветствую. Есть ли какая-нибудь функция для получения ника игрока, находящегося на сервере? (При этом подключённого к серверу и авторизованного)

  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    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

  3. Пользователь сказал cпасибо:
    PawnoNoob (04.06.2017)
  4. #3
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    GetPlayerName + проверка, что авторизован + проверить, что GetPlayerName не вернуло 0.
    Хм, а как это будет выглядеть? Просто мне необходима эта функция для проверки игрока на онлайн (например, для выдачи каких-то определённых прав). Если игрок в игре, то оповестить его о том, что ему выданы определённые привилегии, ну а если оффлайн, то просто внести изменения в базу данных.

  5. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    stock GetPlayerID(const input_name[])
    {
        new 
    player_name[MAX_PLAYER_NAME];
        for(new 
    iMAX_PLAYERSi++)
        {
            if(!
    IsPlayerConnected(i))// Замени на проверку авторизации
                
    continue;
            
    GetPlayerName(iplayer_nameMAX_PLAYER_NAME);
            if(!
    strcmp(player_nameinput_name))
                return 
    i;
        }
        return 
    INVALID_PLAYER_ID;

    Вернёт ID игрока, если он найден и INVALID_PLAYER_ID, если не найден
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. Пользователь сказал cпасибо:
    PawnoNoob (04.06.2017)
  7. #5
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    А когда то, ты мне заливал, что sscanf лучше для таких целей...
    На что я ответил, что он не у всех подключен. И да не лучше ли будет заменить проверку с коннектом на:
    PHP код:
    if(== GetPlayerName(iplayer_nameMAX_PLAYER_NAME)) continue; 
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    stock GetPlayerID(const input_name[])
    {
        new 
    player_name[MAX_PLAYER_NAME];
        for(new 
    iMAX_PLAYERSi++)
        {
            if(!
    IsPlayerConnected(i))// Замени на проверку авторизации
                
    continue;
            
    GetPlayerName(iplayer_nameMAX_PLAYER_NAME);
            if(!
    strcmp(player_nameinput_name))
                return 
    i;
        }
        return 
    INVALID_PLAYER_ID;

    Вернёт ID игрока, если он найден и INVALID_PLAYER_ID, если не найден
    ТС: в следующий раз задавайте вопрос корректно: "Нужно найти игрока с определенным ником на сервере". Так бы я сразу понял суть вопроса.
    Последний раз редактировалось $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

  8. Пользователь сказал cпасибо:
    PawnoNoob (04.06.2017)
  9. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    А когда то, ты мне заливал, что sscanf лучше для таких целей...
    На что я ответил, что он не у всех подключен. И да не лучше ли будет заменить проверку с коннектом на:
    Использовать в командах - да, лучше (я про спецификаторы "u" и "r").
    Но если тебе нужно найти конкретного игрока - нет, ибо он ищет по части ника и для него "DeimoSs" и "DeimoS" будут считаться одинаковыми, если ты вобьёшь в поиск "DeimoS". Если тебе просто по части ника нужно найти игрока - определённо sscanf, ибо глупо писать дополнительную функцию, когда уже есть функция с тем же функционалом

    Цитата Сообщение от $continue$ Посмотреть сообщение
    И да не лучше ли будет заменить проверку с коннектом на:
    PHP код:
    if(== GetPlayerName(iplayer_nameMAX_PLAYER_NAME)) continue; 
    У автора ведь есть система авторизации, посему лучше именно по ней и фильтровать. А IsPlayerConnected там для вида стоит (дабы авто понял где должна стоять его проверка)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  10. Пользователь сказал cпасибо:
    PawnoNoob (04.06.2017)
  11. #7
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Я как то писал пост с такой же функцией. Только не помню, где это было. Может и на PI. Но, суть в том, что ты начал там использовать sscanf. Зная, то что "u" - ищет часть ника, а не полный ник.
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Использовать в командах - да, лучше (я про спецификаторы "u" и "r").
    Но если тебе нужно найти конкретного игрока - нет, ибо он ищет по части ника и для него "DeimoSs" и "DeimoS" будут считаться одинаковыми, если ты вобьёшь в поиск "DeimoS". Если тебе просто по части ника нужно найти игрока - определённо sscanf, ибо глупо писать дополнительную функцию, когда уже есть функция с тем же функционалом
    Ты не до конца дочитал: "подключённого к серверу и авторизованного"
    Хотя не представляю себе, как игрок может быть не подключен к серверу и авторизован.
    Цитата Сообщение от DeimoS Посмотреть сообщение
    У автора ведь есть система авторизации, посему лучше именно по ней и фильтровать. А IsPlayerConnected там для вида стоит (дабы авто понял где должна стоять его проверка)
    Последний раз редактировалось $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

  12. Пользователь сказал cпасибо:
    PawnoNoob (04.06.2017)
  13. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Я как то писал пост с такой же функцией. Только не помню, где это было. Может и на PI. Но, суть в том, что ты начал там использовать sscanf. Зная, то что "u" - ищет часть ника, а не полный ник.
    Ну, видимо, я тогда заблуждался на этот счёт, не? Хотя я такого не помню, если честно. Но я, тип, никогда не говорил, что я знаю всё и знаю лишь истину.

    Цитата Сообщение от $continue$ Посмотреть сообщение
    Ты не до конца дочитал: "подключённого к серверу и авторизованного"
    Так а разве неподключённый игрок может быть авторизированным?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  14. Пользователь сказал cпасибо:
    PawnoNoob (04.06.2017)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •