Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 10 из 10
  1. #1
    Аватар для Snoop_Dog
    Пользователь

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

    UpdateActor3DTextLabelText

    Здравствуйте! Решил попробовать написать функция.
    Суть функции:
    | Показывает текст над актёром
    | Есть анимация разговора
    Параметры:
    | actorid - ID актёра.
    | Text3D:id - ID 3D текста.
    | const text[] - Текст.
    | interval - Время через которое пропадёт текст(указывать в миллисекундах).
    Важно:
    | Нужно обязательно создать переменную для actorid.
     Пример
    PHP код:
    new actorsay;
    actorsay CreateActor(...,...) 

    | Нужно обязательно создать переменную для Text3D:id
     Пример
    PHP код:
    new Text3D:sayactor;
    sayactor CreateDynamic3DTextLabel(...,...) 

    | 3D текст на плагине streamer, кто не использует то заменить на стандарт!

    Собственно сама функция:
    В конец мода
    PHP код:
    stock UpdateActor3DTextLabelText(actoridText3D:id, const text[], interval)
    {
        
    ApplyActorAnimation(actorid"PED""IDLE_CHAT"4.101100);
        
    UpdateDynamic3DTextLabelText(idCOLOR_WHITEtext);
        
    SetTimerEx("ClearActorText"intervalfalse"ii"actoridid);
        
    //printf("Задействован актёр: %d!", actorid);
    }
    function 
    ClearActorText(actoridText3D:id)
    {
        
    ClearActorAnimations(actorid);
        
    UpdateDynamic3DTextLabelText(idCOLOR_WHITE"");

     Пример функции
    UpdateActor3DTextLabelText(actorsay, sayactor, "Привет! Меня зовут Джон.", 2000);


    Ну как то так.
    Автор: я, Snoop_Dog
    У меня все работает,ошибок не должно быть
    Последний раз редактировалось Snoop_Dog; 20.07.2015 в 09:37.

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    void?
    Ну коль void, какого черта возвращает значение?
    Это так, для общего развития:

    P.S: Зачем Вы убрали возвращение значение? Наверняка будет варнинг, что не какого значения не возвращается.
    Просто я ору, с такого название директивы. void - С++ объявление функций, для которого не нужно возвращать не какого конкретного значения.
    Последний раз редактировалось $continue$; 19.07.2015 в 20:06.

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Если уж, Вам лень прописывать каждый раз
    PHP код:
    foward name(...);
    public 
    name(...) 
    Можно у Lua позаимствовать объявление функции, что то типо такого:
    PHP код:
    #define function%0(%1) \
           
    forward%0(%1); \
           public%
    0(%1
    Но, я не очень люблю такие директивы.
    Последний раз редактировалось $continue$; 19.07.2015 в 20:49.

  4. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    void?
    Ну коль void, какого черта возвращает значение?
    Так это ж ещё один макрос с govno-info, наравне с publics.
    Кому вообще нужна логика? Это же g-i.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. Пользователь сказал cпасибо:
    $continue$ (19.07.2015)
  6. #5
    Аватар для Snoop_Dog
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2014
    Сообщений
    65
    Репутация:
    0 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Так это ж ещё один макрос с govno-info, наравне с publics.
    Кому вообще нужна логика? Это же g-i.
    Что он так сильно плох?
      Открыть/закрыть
    #define void%0(%1) forward%0(%1); public%0(%1)

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Snoop_Dog Посмотреть сообщение
    Что он так сильно плох?
      Открыть/закрыть
    #define void%0(%1) forward%0(%1); public%0(%1)
    Название - не отображает суть макроса.

  8. #7
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Snoop_Dog Посмотреть сообщение
    Что он так сильно плох?
      Открыть/закрыть
    #define void%0(%1) forward%0(%1); public%0(%1)
    https://ru.m.wikipedia.org/wiki/Void
    В качестве имени типа значения, возвращаемого функцией: указывает на то, что функция не возвращает значения, а вызов такой функции является void-выражением.
    По сути вы просто берёте ключевое слово из C/C++ и объявляете его в Pawn с совершенно другим назначением, переиначивая его смысл. Это даже хуже, чем просто отсутствие смысла, как в макросе "publics". Но для govno-info и так сойдёт =)
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  9. Пользователь сказал cпасибо:
    $continue$ (19.07.2015)
  10. #8
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Но для govno-info и так сойдёт =)

    Автор: Я вам предложил как можно сделать. Это хотя бы будет отображать суть макроса.

  11. #9
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Я обычно Callback 'ом именую. А что. Звучит :D

    PHP код:
    #define Callback:%1(%2)    \
            
    forward %1(%2);    public %1(%2

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Darge Посмотреть сообщение
    Я обычно Callback 'ом именую. А что. Звучит :D

    PHP код:
    #define Callback:%1(%2)    \
            
    forward %1(%2);    public %1(%2
    Fail.
    Вкратце: callback - авто вызываемая функция.

 

 

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

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

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

Ваши права

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