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

GTA VI

Информация:

GTA V

Информация:

Информация:

Информация:

Информация:

Информация:

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

Информация:

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

GTA: Chinatown Wars

Информация:

GTA IV

Информация:

Информация:

Информация:

Информация:

GTA: Vice City Stories

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

GTA: Liberty City Stories

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

GTA: Trilogy

Файлы: ...


GTA: San-Andreas



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

GTA: Vice City



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

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

GTA ]I[



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

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

GTA 2

  • 1
  • 2

GTA: Advance

Информация:

GTA

  • 1
  • 2




[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Tutorial] ID игрока после ника в чате
OKStyle Дата: Понедельник, 08/06/2015, 01: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 (67.1 Kb) · 5346012.png (16.0 Kb) · 1819616.png (28.3 Kb) · 6855402.png (17.3 Kb) · 7485125.png (20.1 Kb)




 
  • Страница 1 из 1
  • 1
Поиск:

GTA MP

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

GTA Modding

Статьи:
GTA III

GTA: Criminal Russia


GTA: Underground


GTA Network


GTA WIKI


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

Календарь новостей
«  Март 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,так же скачать моды, скрипты, программы, новости и много другое
Pawno-Info: всё о GTA, статьи, wiki, скрипты и многое другое

Вход на сайт

Поиск

Мини-чат

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

Меню сайта

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


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