Закрыть Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

Тема: Создание красивого чата

Показано с 1 по 10 из 12

  1. #1
    Пользователь

    Аватар для Andrey_Kiryuhin

    Статус: Оффлайн
    Регистрация:11.11.2010
    Адрес:г.Пенза
    Сообщений:515
    Репутация:153 [+/-] 

    Сообщение Создание красивого чата

    Урок по созданию красивого чата !
    Итак. В этой теме я вам расскажу, как сделать красивый общий чат. В основном это касается ДМ серверов. Самый простой способ, не мучаясь, сделать чат - это просто убрать public OnPlayerText, но тогда в чате не будет ID'а и администрации будет крайне неудобно смотерть TAB'ом ID матершинника или спамера.

    Для того, чтобы сделать в чате ID, не обходимо использовать стандартную функцию SendClientMessageToAll.
    PHP код:
    public OnPlayerText(playeridtext[])
    {
        new 
    sendername[32];
        
    GetPlayerName(playeridsendername32);
        
    format(string128"%s(%d): %s"sendernameplayeridtext);
        
    SendСlientMessageToAll(GetPlayercolor(playerid), string);
        return 
    0;

    Но в этом случае все сообщение будет одного цвета (цвета игрока), а это не есть хорошо, если у игрока стоит темный цвет.

    Нам нужна функция, которая отправит ник игрока его цветом, а остальной текст белым. К сожалению, в самп 0.3б нет функции способной отправить одно сообщение разными цветами. Нам приходится использовать SendPlayerMessageToAll:
    PHP код:
    public OnPlayerText(playeridtext[])
    {
        
    format(string128"(%d): %s"playeridtext);
        
    SendPlayerMessageToAll(playeridstring);
        return 
    0;

    Что же выходит? Ник идет цветом игрока, а ид и текст - белым. Но форма текста получается следующая:
    Splav: (5): Привет
    Как видим два двоеточия. Да и ид лучше было бы, чтобы был цветом игрока. как же поступить? Думаю ответ очевиден - прилепить ID к нику на время отправки сообщения.
    PHP код:
    public OnPlayerText(playeridtext[])
    {
         new 
    string[256], sendername[32];
        
    GetPlayerName(playeridsendername32);
        
    format(stringsizeof(string), "%s(%d)"sendernameplayerid); // Прикрепляем ид к нику
        
    SetPlayerName(playeridstring); // Меняем ник
        
    format(string128"%s"caps); // Делаем сообщение
        
    SendPlayerMessageToAll(playeridstring); // Отправляем сообщение
        
    SetPlayerName(playeridsendername); // Возвращаем исходный ник
        
    return 0;

    Вот и все. Теперь в чат выйдет красивое сообщение:
    Автор: Splav
  2. 1 пользователь сказал cпасибо Andrey_Kiryuhin за это полезное сообщение:

    Alex_Bacardi (29.11.2011)

  3. #2
    Пользователь

    Аватар для Blad_Gad

    Статус: Оффлайн
    Регистрация:24.01.2011
    Адрес:Нижний Тагил
    Сообщений:768
    Репутация:373 [+/-] 
    Спасибо, но чего то не хватает еще для красоты
  4. #3
    Пользователь

    Аватар для Gambit26

    Статус: Оффлайн
    Регистрация:13.06.2011
    Сообщений:54
    Репутация:0 [+/-] 
    error 017: undefined symbol "caps"
  5. #4
    Пользователь

    Аватар для Tyrgan

    Статус: Оффлайн
    Регистрация:07.11.2011
    Сообщений:8
    Репутация:2 [+/-] 
    Скрин в студию)

    ---------- Добавлено сообщение в 19:21 ---------- Предыдущее в 18:46 ----------

    Скрин в студию)
  6. #5
    Пользователь

    Аватар для серёга969

    Статус: Оффлайн
    Регистрация:27.07.2011
    Сообщений:8
    Репутация:0 [+/-] 
    ко всем дефайнам довавь это
    #define UpperToLower(%1) for ( new ToLowerChar; ToLowerChar < strlen( %1 ); ToLowerChar ++ ) if ( %1[ ToLowerChar ]> 64 && %1[ ToLowerChar ] < 91 ) %1[ ToLowerChar ] += 32

    ---------- Добавлено сообщение в 04:08 ---------- Предыдущее в 04:06 ----------

    error 017: undefined symbol "caps"
    ко всем дефайнам добавь это
    #define UpperToLower(%1) for ( new ToLowerChar; ToLowerChar < strlen( %1 ); ToLowerChar ++ ) if ( %1[ ToLowerChar ]> 64 && %1[ ToLowerChar ] < 91 ) %1[ ToLowerChar ] += 32
  7. #6
    Заблокирован

    Аватар для Jack_Slaiter

    Статус: Оффлайн
    Регистрация:17.06.2011
    Сообщений:257
    Репутация:27 [+/-] 
    Прикольно
  8. #7
    Пользователь

    Аватар для серёга969

    Статус: Оффлайн
    Регистрация:27.07.2011
    Сообщений:8
    Репутация:0 [+/-] 
    нехватает цвета чата вот тогда было бы кулл
  9. #8
    Пользователь

    Аватар для Alex_Bacardi

    Статус: Оффлайн
    Регистрация:20.11.2011
    Адрес:Russia, Tver..
    Сообщений:90
    Репутация:6 [+/-] 
    Неплохо, но себе ставить не буду
    И всё таки +
  10. #9
    Пользователь

    Аватар для razor2211

    Статус: Оффлайн
    Регистрация:09.10.2011
    Адрес:Pawno-Info.Ru
    Сообщений:200
    Репутация:15 [+/-] 
    норм, + ставлю
  11. #10
    Пользователь

    Аватар для Advokat48

    Статус: Оффлайн
    Регистрация:21.10.2011
    Адрес:Елец
    Сообщений:360
    Репутация:290 [+/-] 
    Скрин бы увидеть, а то ставить неохото
    [FAQ]Создание меню
    [Урок]Оптимизация кода
    [PHP]Шаблон PRP Games[/right]
    допустим самп-рп.ру написан на каком? на РЛС. ты хочешь сказать говно?
  12. 1 пользователь сказал cпасибо Advokat48 за это полезное сообщение:

    Arn (30.11.2011)

Страница 1 из 2 12 Последняя
  • К странице:

Ваши права

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