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

Тема: Ники

  1. #1
    Аватар для Winner228
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.04.2020
    Сообщений
    2
    Репутация:
    0 ±

    Ники

    Как сделать ники без чёрточок? типо Carl Johnson, но чтобы в самп клиенте было с черточкой но на сервере без

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    1. stock SetRealNick(playerid)
    2. {
    3. new
    4. __p_name[MAX_PLAYER_NAME+1];
    5. GetPlayerName(playerid, __p_name, sizeof(__p_name));
    6. for(new i = 0; i < sizeof(__p_name)-1; i++) if(__p_name[i] == '_') __p_name[i] = ' ';
    7. SetPlayerName(playerid, __p_name);
    8. return true;
    9. }


    После авторизации:

    1. SetRealNick(playerid);
    Последний раз редактировалось SteveStage; 05.04.2020 в 15:51.

  3. #3
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Не совсем правильный алгоритм. Нужно проверять, что перед и после _ - идут буквы. Nickname_Nickname_ - вполне валдиный ник.
    Цитата Сообщение от Steve_Stage Посмотреть сообщение
    1. stock SetRealNick(playerid)
    2. {
    3. new
    4. __p_name[MAX_PLAYER_NAME+1];
    5. GetPlayerName(playerid, __p_name, sizeof(__p_name));
    6. for(new i = 0; i < sizeof(__p_name)-1; i++) if(__p_name[i] == '_') __p_name[i] = ' ';
    7. SetPlayerName(playerid, __p_name);
    8. return true;
    9. }


    После авторизации:

    1. SetRealNick(playerid);
    Последний раз редактировалось tnc; 05.04.2020 в 17:13.

  4. #4
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от tnc Посмотреть сообщение
    Не совсем правильный алгоритм. Нужно проверять, что перед и после _ - идут буквы. Nickname_Nickname_ - вполне валдиный ник.
    1. stock SetRealNick(playerid)
    2. {
    3. new
    4. __p_name[MAX_PLAYER_NAME+1];
    5. GetPlayerName(playerid, __p_name, sizeof(__p_name));
    6. for(new i = 0; i < sizeof(__p_name)-1; i++)
    7. {
    8. if(__p_name[i] == '_' && (i+1) <= (sizeof(__p_name)-1) && (i-1) != -1)
    9. {
    10. switch(__p_name[i-1])
    11. {
    12. case 'a'..'z', 'A'..'Z':
    13. {
    14. switch(__p_name[i+1])
    15. {
    16. case 'a'..'z', 'A'..'Z':
    17. {
    18. __p_name[i] = ' ';
    19. }
    20. }
    21. }
    22. }
    23. }
    24. }
    25. SetPlayerName(playerid, __p_name);
    26. return true;
    27. }
    Последний раз редактировалось SteveStage; 05.04.2020 в 17:33.

  5. #5
    Аватар для execution
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    1. stock SetRPName(string[])
    2. {
    3. new
    4. i = -1;
    5. while ((i = strfind(string, "_")) != -1)
    6. {
    7. string[i] = ' ';
    8. }
    9. }


    Использовать:

    1. public OnPlayerConnect(playerid)
    2. {
    3. GetPlayerName(playerid, /*массив с именем*/, MAX_PLAYER_NAME);
    4. SetRPName(/*массив с именем*/);
    5.  
    6. return 1;
    7. }
    Последний раз редактировалось execution; 09.04.2020 в 19:10.

  6. #6
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от execution Посмотреть сообщение
    1. stock SetRPName(const string[])
    2. {
    3. new
    4. i = -1;
    5. while ((i = strfind(string, "_")) != -1)
    6. {
    7. string[i] = ' ';
    8. }
    9. }


    Использовать:

    1. public OnPlayerConnect(playerid)
    2. {
    3. GetPlayerName(playerid, /*массив с именем*/, MAX_PLAYER_NAME);
    4. SetRPName(/*массив с именем*/);
    5.  
    6. return 1;
    7. }
    Хм, что-то напоминает.

    Цитата Сообщение от Steve_Stage Посмотреть сообщение
    1. stock SetRealNick(playerid)
    2. {
    3. new
    4. __p_name[MAX_PLAYER_NAME+1];
    5. GetPlayerName(playerid, __p_name, sizeof(__p_name));
    6. for(new i = 0; i < sizeof(__p_name)-1; i++) if(__p_name[i] == '_') __p_name[i] = ' ';
    7. SetPlayerName(playerid, __p_name);
    8. return true;
    9. }


    После авторизации:

    1. SetRealNick(playerid);
    Цитата Сообщение от tnc Посмотреть сообщение
    Не совсем правильный алгоритм. Нужно проверять, что перед и после _ - идут буквы. Nickname_Nickname_ - вполне валдиный ник.

  7. #7
    Аватар для execution
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Цитата Сообщение от Steve_Stage Посмотреть сообщение
    Хм, что-то напоминает.
    Ничего не напоминает.

    Автор просил убрать нижнее подчёркивание в нике именно на сервере, а не в самом клиенте.

  8. #8
    Аватар для Unreal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.09.2014
    Сообщений
    133
    Репутация:
    4 ±
    Цитата Сообщение от tnc Посмотреть сообщение
    Не совсем правильный алгоритм. Нужно проверять, что перед и после _ - идут буквы. Nickname_Nickname_ - вполне валдиный ник.
    Зачем? Данный код просто удаляет _ если он есть. А за валидность ника отвечает уже другая функция
    Pro-pawn.ru

 

 

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

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

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

Ваши права

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