[Tutorial] ID игрока после ника в чате - Форум




Главная О проекте Статьи Файлы Фотоальбомы Форум
Добавить сайт в «Избранное» | Вход в профиль

GTA V

Информация: iFruit

Информация: Изображения:

GTA: Chinatown Wars

Информация:

GTA IV

Информация:

Информация:

Информация:

Информация:

GTA: Vice City Stories

Информация: Изображения:

GTA: Liberty City Stories

Файлы: Информация: Изображения:

GTA: San-Andreas

Информация: Статьи: Изображения:

GTA: Vice City

Информация: Изображения: Файлы:

Информация: Изображения:

GTA ]I[

Информация: Файлы:

Информация: Изображения:

GTA 2

  • 1
  • 2

GTA: Advance

Информация:

GTA




  • 1
  • 2

Меню сайта

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    Страница 1 из 11
    Форум » PAWN » WIKI » Уроки » [Tutorial] ID игрока после ника в чате
    [Tutorial] ID игрока после ника в чате
    OKStyle Дата: Понедельник, 08/06/2015, 00:05 | Сообщение # 1
    Analgésico



    Регистрация: 17/01/2009
    Клан:
    [ACF]
    Страна:
    Статус:


    Многих интересует вопрос, как же сделать так, чтобы в чате после ника игрока писался его ID, ведь это удобнее для взаимодействия, чем заглядывать постоянно в TAB. В данной теме я расскажу о всех возможных способах.

    Начнём с того, что нам необходимо профиксить функцию GetPlayerColor. Как это сделать написано в теме, посвящённой этой функции. После "починки" перейдём непосредственно к урокам.

    Способ 1

    В этом способе мы так отформатируем строку вывода, что сообщение будет в цвет игрока. Достоинством первого способа является экономия места в логах, а недостатком - сообщение цветом ника игрока. Впервые (на моей памяти) такое было реализовано Boss'ом на серверах GTA.ru.



    Код
    public OnPlayerText(playerid,text[])
    {
        new PlayerName[MAX_PLAYER_NAME], string[128];
        GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
        format(string,sizeof(string),"%s(%d): %s",PlayerName,playerid,text);
        SendClientMessageToAll(GetPlayerColor(playerid),string);
        return 0;
    }


    Способ 2

    Здесь мы будем выносить ID игрока в сообщение. Плюсы - экономия места в логах, белое сообщение, цветной ник. Минусы - ID не возле ника. Способ разработан Crone'ом в его моде nWo League.



    Код
    public OnPlayerText(playerid,text[])
    {
        new PlayerName[MAX_PLAYER_NAME], string[128];
        GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
        format(string,sizeof(string),"(%d): %s",playerid,text);
        SendPlayerMessageToAll(playerid,string);
        return 0;
    }


    Способ 3

    Данный способ был самый продвинутый до выхода SA-MP 0.3c. Положительный аспект - белое сообщение, ID рядом с ником, цветной ник, а отрицательный - забивание логов сообщениями вида:

    Цитата
    [09:11:58] [nick] [ACF]OKStyle nick changed to [ACF]OKStyle(0)
    [09:11:58] [nick] [ACF]OKStyle(0) nick changed to [ACF]OKStyle




    Код
    public OnPlayerText(playerid,text[])
    {
        new PlayerName[MAX_PLAYER_NAME], string[30];
        GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
        format(string,sizeof(string),"%s(%d)",PlayerName,playerid); // форматируем ник, вставляя после него ID
        SetPlayerName(playerid,string); // выставляем имя с ID
        SendPlayerMessageToAll(playerid,text); // выводим сообщение
        SetPlayerName(playerid,PlayerName); // возвращаем имя без ID
        return 0;
    }


    Способ 4

    Этот способ работает только для версий SA-MP 0.3c и младше. Способ придумал я, помогал в реализации Y_Less. Достоинства: цветной ник, ID рядом с ником, белое сообщение, экономия места в логах. Недостатков пока не существует.



    Код
    public OnPlayerText(playerid,text[])
    {
        new PlayerName[MAX_PLAYER_NAME];
        GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); // получаем имя игрока
        format(text, 1024, "{%06x}%s(%d): {FFFFFF}%s", GetPlayerColor(playerid) >>> 8, PlayerName, playerid, text); // форматируем строку вывода в чат
        SendClientMessageToAll(0x00000000, text); // т.к. мы явно задали цвет текста, цвет в этой команде не имеет значения
    // остальной код паблика
        return 0; // чтобы сообщение не дублировалось
    }


    Способ 5

    Данный способ представляет собой переделанный первый способ, но теперь мы раскрашиваем строку сообщения. Плюсы - цветной ник, ID рядом с ником, белое сообщение, экономия места в логе. Минусы - не имеются. Способ подсказал Ym[0]n.



    Код
    public OnPlayerText(playerid, text[])
    {
        new PlayerName[MAX_PLAYER_NAME];
        GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
        format(text, 1024, "%s(%d): {FFFFFF}%s", PlayerName, playerid, text);
        SendClientMessageToAll(GetPlayerColor(playerid), text);
        return 0;     
    }
    Прикрепления: 5381060.png(67Kb) · 5346012.png(16Kb) · 1819616.png(28Kb) · 6855402.png(17Kb) · 7485125.png(20Kb)




     
    Форум » PAWN » WIKI » Уроки » [Tutorial] ID игрока после ника в чате
    Страница 1 из 11
    Поиск:

    GTA MP

    Мультиплееры

    GTA Modding

    Статьи:
    GTA III

    Блок пользователя

    GTA: Criminal Russia


    Календарь новостей
    «  Март 2015  »
    ПнВтСрЧтПтСбВс
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031

    Поиск

    Наша кнопка



    Партнёры

    Multi Theft Auto Community Russia

    Alliance of Cheater's Fighters
    Elite Force Opossition
    Brotherhood of Plumbum
    E1ect
    San-Andreas Bugousers
    Seville Crew
    Русский•Exclusive•Сервер
    Mixes
    http://rus-gta.do.am/
    Здесь вы можете все узнать про pawno,так же скачать моды,скрипты,программы,новости и много другое

    Вход на сайт

    Корзина
    Ваша корзина пуста

    Поиск

    Мини-чат

    Наш опрос
    Считаете ли вы IV-MP лучше SA-MP?
    Всего ответов: 476

    Статистика


    Copyright © Лаборатория O.K.Style 2001-2016 | GTA-Exclusive 2007-2016 | GTA News 2007-2016 | Хостинг от uCoz