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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13
  1. #1
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,034
    Репутация:
    702 ±

    ProxDetector - сообщение ближайшим игрокам, с цветом зависящим от расстояния

    Описание:
    Функция отправляет сообщение ближайшим игрокам вычисляя цвет, интенсивность которого завит от расстояния.

    Параметры:
    playerid - игрок, от которого идёт сообщение
    Float:max_range - максимальное расстояние, на котором будет отправлено сообщение
    color - базовый цвет
    string[] - сообщение
    Float:max_ratio = 1.6 (не обязательный) - коэффициент уменьшения интенсивности цвета

    Возвращаемое значение:
    Функция возвращает 0, если playerid не подключен, в остальных случаях возвращается 1.

    Код:
    PHP код:
    stock ProxDetector(playeridFloat:max_rangecolorstring[], Float:max_ratio 1.6)
    {
        new
            
    Float:pos_x,
            
    Float:pos_y,
            
    Float:pos_z,
            
    Float:range,
            
    Float:range_ratio,
            
    Float:range_with_ratio,
            
    clr_rclr_gclr_b,
            
    Float:color_rFloat:color_gFloat:color_b;

        if (!
    GetPlayerPos(playeridpos_xpos_ypos_z)) {
            return 
    0;
        }

        
    color_r float(color >> 24 0xFF);
        
    color_g float(color >> 16 0xFF);
        
    color_b float(color >> 0xFF);
        
    range_with_ratio max_range max_ratio;

    #if defined foreach
        
    foreach (new Player) {
    #else
        
    for (new GetPlayerPoolSize(); != -1i--) {
    #endif
            
    if (!IsPlayerStreamedIn(playeridi)) {
                continue;
            }

            
    range GetPlayerDistanceFromPoint(ipos_xpos_ypos_z);
            if (
    range max_range) {
                continue;
            }

            
    range_ratio = (range_with_ratio range) / range_with_ratio;
            
    clr_r floatround(range_ratio color_r);
            
    clr_g floatround(range_ratio color_g);
            
    clr_b floatround(range_ratio color_b);

            
    SendClientMessage(i, (color 0xFF) | (clr_b << 8) | (clr_g << 16) | (clr_r << 24), string);
        }

        
    SendClientMessage(playeridcolorstring);
        return 
    1;

    Примечания:
    • Функция поддерживает любые комбинации цветов, прозрачность переданного цвета остаётся не тронутой.

    Пример использования:
    PHP код:
    CMD:say(playeridparams[])
    {
        
    ProxDetector(playerid20.00xFFAA99FFparams);
        return 
    1;

    Автор: ziggi
    Последний раз редактировалось ziggi; 05.08.2016 в 16:52.

  2. 10 пользователя(ей) сказали cпасибо:
    $continue$ (03.08.2016)123 (04.08.2016)BadPawn (05.08.2016)Nash_Brigers (07.08.2016)Nexius_Tailer (03.08.2016)Nurick (06.08.2016)PawnoNoob (03.08.2016)Skull (03.08.2016)vovandolg (03.08.2016)[ForD] (12.08.2016)
  3. #2
    Аватар для Nexius_Tailer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    346
    Репутация:
    106 ±
    Изменение яркости цвета полезно, спасибо.
    Появилась тут мысль, как с её помощью реализовать 3d-тексты над пикапами с покупкой дома, как в сингле (когда при приближении к нему текст цены дома становился отчётливее)
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

  4. #3
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,034
    Репутация:
    702 ±
    Цитата Сообщение от Nexius_Tailer Посмотреть сообщение
    Изменение яркости цвета полезно, спасибо.
    Появилась тут мысль, как с её помощью реализовать 3d-тексты над пикапами с покупкой дома, как в сингле (когда при приближении к нему текст цены дома становился отчётливее)
    В сингле ещё размер менялся, а этого, увы, в сампе не сделать.

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

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    63
    Репутация:
    8 ±
    Разве GetPlayerPos вернет 0, если игрок не подключен? В вики написано, что функция ничего не возвращает.

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

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    346
    Репутация:
    106 ±
    Цитата Сообщение от 123 Посмотреть сообщение
    Разве GetPlayerPos вернет 0, если игрок не подключен? В вики написано, что функция ничего не возвращает.
    Если написано в русской вики - врёт. Её обновляют гораздо реже, так что советую сверяться с английскими копиями статей.
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

  7. #6
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,034
    Репутация:
    702 ±
    Цитата Сообщение от 123 Посмотреть сообщение
    Разве GetPlayerPos вернет 0, если игрок не подключен? В вики написано, что функция ничего не возвращает.
    Да, проверка игрока на подключение к серверу есть во всех функциях (скорее всего во всех, но я все не проверял).
    Последний раз редактировалось ziggi; 16.08.2016 в 15:52.

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

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    Блестящая работа!

    ziggi, если не сложно, напиши пожалуйста, что используется в коде, дабы разобрать код.

    Побитовые сдвиги вижу (или как правильно назвать :)))

  9. #8
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,034
    Репутация:
    702 ±
    Цитата Сообщение от BadPawn Посмотреть сообщение
    Побитовые сдвиги вижу (или как правильно назвать :)))
    Изучи работу побитовых операций, в интернете масса информации на эту тему.

  10. #9
    Аватар для Profyan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.12.2013
    Адрес
    Омск
    Сообщений
    197
    Репутация:
    22 ±
    Цитата Сообщение от BadPawn Посмотреть сообщение
    Блестящая работа!

    ziggi, если не сложно, напиши пожалуйста, что используется в коде, дабы разобрать код.

    Побитовые сдвиги вижу (или как правильно назвать :)))
    http://forum.sa-mp.com/showthread.php?t=177523 - тут расписана бинарная система и битовые операции



    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку
    Мартин Фаулер


    Skype
    profan99
    VK
    click




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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,438
    Репутация:
    261 ±
    Побитовые операции везде одинаковые (разве, что различие в синтаксисе и то не везде)
    Можешь посмотреть:

    Сам не давно посмотрел =)
    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пасибо:
    _lizard (05.08.2016)
 

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

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

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

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

Ваши права

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