Вопросы

Sams0n0v
Новичок

Приветствую! Есть ```SetPlayerChatBubble```, оно выводит какой либо текст над головой ИГРОКА, и этот текст абсолютно динамичен, он следует всем движениям игрока, включая анимации. Так вот вопрос, а как сделать так, но с NPC (Актером), чтобы не обычный каменный статичный 3д текст, а чтобы было наподобии текста над головой при отправке сообщения в чат. Надеюсь, меня поняли, с нетерпением жду ответа, этот форум, моя последняя надежда) Спасибо! 

Поделиться сообщением


Ссылка на сообщение

1 ответ на этот вопрос

  • 0
heazych
Освоившийся

Приветствую. Возможно я не точно преподнесу вам свою идею, но надеюсь что это будет полезно для размышления.

Итак, пояснение:
1. В начало нашего мода добавляем: 

#include <a_actors>

Затем создаём нашего актёра:

Actors[0] = CreateActor(modelid, Float: x, Float: y, Float: z, Float: Rotation);
Actors[1] = CreateActor(modelid, Float: x, Float: y, Float: z, Float: Rotation);
И так далее...

2. Затем добавляем в мод следующий stock: 

stock SetActorChatBubble(actorid, text[], color, Float:drawdistance, expiretime) //expiretime в секундах
{
    new Float:aPos[3];
    GetActorPos(actorid, aPos[0],aPos[1],aPos[2]);
    SetActorPos(actorid, aPos[0],aPos[1],aPos[2]); //при желании можно удалить
    Delete3DTextLabel(ActorInfo[actorid][ActorsText]), KillTimer(ActorInfo[actorid][aTimer]);
    ActorInfo[actorid][ActorsText] = Create3DTextLabel(text, color, aPos[0],aPos[1],aPos[2]+1.1, drawdistance, 0);
    ActorInfo[actorid][aTimer] = SetTimerEx("ClearActorChatBubble", expiretime * 1000false"d", actorid);
}

3. Не забываем про паблики:

forward ClearActorChatBubble(actorid);
public ClearActorChatBubble(actorid) Delete3DTextLabel(ActorInfo[actorid][ActorsText]), KillTimer(ActorInfo[actorid][aTimer]);

4. Добавляем это к переменным: 

enum actor_info
{
    Text3D:ActorsText,
    aTimer
}
new
    Actors[2] , ActorInfo[MAX_ACTORS][actor_info] // Actors - ваши актеры (ЗАМЕНЯЕМ НА СВОЁ НАЗВАНИЕ)
;

5. Теперь вы можете пользоваться функцией в своих целях:

SetActorChatBubble(actorid, text[], color, Float:drawdistance, expiretime)

Пояснение:
actorid - Айди актера
text[] - Текст
color - Цвет
Float: drawdistance - Дистанция, на котором будет виден текст
expiretime - Время, через которое текст пропадёт

Вроде ничего не забыл. Буду рад адекватной критике! :D

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • DEST
      От DEST
      Ко всем командам: 
       
      Автор: @DEST
    • ANIME_TOP12YLTRA
      От ANIME_TOP12YLTRA
      Помогите пожалуйста у меня еррор при компиляции
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : error 001: expected token: ";", but found "["
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : error 029: invalid expression, assumed zero
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : warning 221: label name "E_HANDLING_PARAMS" shadows tag name
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : error 001: expected token: ";", but found "]"
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : fatal error 107: too many error messages on one line
      Compilation aborted.
      Pawn compiler 3.2.3664              Copyright (c) 1997-2016, ITB CompuPhase

      4 Errors.
       
      код - g_VehHandlingInfo[veh][E_HANDLING_PARAMS:j] = 0.0;