SA:MP ASI tagOnPlayer | ChatBubble, ХП и Ник над игроком [AI, SAMP 0.3.7 any]

Орк

Известный
Автор темы
518
498
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R2
  3. 0.3.7-R3
  4. 0.3.7-R4
  5. 0.3.7-R5
  6. 0.3DL
·Источник идеи
·Исходник

tagOnPlayer
ec4425f7-baf5-4470-ac13-84a490e06d0b

tagOnPlayer — небольшой ASI-плагин: он дорисовывает над локальным игроком те же элементы (ник, ID, HP, броня), что игра уже умеет для чужих педов.

Что ещё умеет
По желанию — зеркало своего чата в бабл над головой (как будто ты сам себе написал в чат, и строка дублируется над персонажем). Отдельно можно настроить баблы по командам вроде /me, /do и т.п.: цвет, шаблон текста, отправлять ли строку на сервер или только показать над головой — всё в INI, секция [OverlayCommands].

Поддерживает: R1, R2, R3, R3-1, R4, R4-2, R5-1, DL-R1

Установка
  • tagOnPlayer.asi — рядом с gta_sa.exe или в modloader / scripts.
  • tagOnPlayer.ini создается при первом запуске. По умолчанию всё включено.

Активация
  • /tagon (можно изменить в tagOnPlayer.ini) — вкл/выкл

Секция [Settings] — коротко по полям
  • EnabledByDefault1 тег сразу включён при заходе, 0 — пока сам не включишь командой.
  • MirrorOwnChatBubble — зеркалировать ли свой обычный текст чата в бабл над головой. Если ключа в файле нет, по смыслу это включено (1).
  • ChatBubbleLifeMs — сколько миллисекунд держится такой бабл; допустимый диапазон 500600000, по умолчанию 6000.

Секция [OverlayCommands] — если хочешь красивые /me и /do над головой
До 16 правил. Общий счётчик — Count. На каждое правило: CmdN (строка команды), ColorN (цвет), ForwardN (отправлять ли на сервер стандартным путём).

  • Совпадение по первому слову после пробела важно: /ame не должно цепляться к /american — поэтому после команды нужен пробел или конец строки, как в логике плагина.
  • Forward=1 — сначала уходит обычный чат SA:MP, потом рисуется наш бабл (так не перебивается цвет там, где клиент сам красит /me). Forward=0 — только бабл, без отправки на сервер.
  • Если BubbleTemplate не задан, в бабл попадает хвост после команды как есть: /me помахал рукой → в бабле помахал рукой, цвет из ColorN.
  • ColorN: можно десятичным числом (как в скриптах SA:MP), или {RRGGBB}, или {AARRGGBB}.
  • Опционально: BubbleTemplateN с плейсхолдерами {0}, {1} (части текста), {c1}, {c2} (вставки цвета в строку), плюс BubbleSplitN, AccentColorN. Несколько {RRGGBB} в одной строке — насколько их съест клиент, зависит от версии SA:MP.

Код:
[OverlayCommands]
Count=2
Cmd1=/me
Color1={FFC2A2}
Forward1=1
Cmd2=/do
Color2={D6A2E8}
Forward2=1

Код:
[OverlayCommands]
Count=2
Cmd1=/me
Color1={FFC2A2}
Forward1=1
BubbleTemplate1={c1}* {0}
Cmd2=/do
Color2={ff99ff}
Forward2=0

Код:
[OverlayCommands]
Count=1
Cmd1=/todo
Color1={C8C8C8}
AccentColor1={FF99FF}
Forward1=1
BubbleSplit1=*
BubbleTemplate1={c1}{0}*{c2}{1}


Если верить нейронке (у меня нет возможности все варианты проверить), то:
Рендер виден не во всех случаях. Вот когда он не отрисуется (каждый return false в BuildLocalDrawContext):
  1. До подключения к серверу — netGame, playerTags, playerPool будут null
  2. До спавна — localPlayer или ped будет null
  3. Вид от первого лица — pedIsOnScreen вернёт false (педа нет на экране)
  4. Игрок мёртв — health <= 0
  5. Имя пустое — теоретически не должно быть на сервере, но проверяется
Когда рендер виден:
  • Игрок заспавнен, жив, камера в третьем лице (пед виден на экране)
Когда рендер пропадает хотя мог бы быть:
  • Камера от первого лица — пед не рендерится GTA, IsOnScreen возвращает false
  • Прицеливание с приближением (снайперка и т.п.) — аналогично, пед вне экрана
  • В транспорте — зависит от камеры; если пед виден (3-е лицо в машине) — рендерится, если камера внутри салона — нет
  • Spectating — localPlayer указывает на свой пед, который не заспавнен, так что скорее всего ped=null → не рендерится
Сразу хочу сказать, что Claude говно, Codex и Cursor лучше

 

Вложения

  • tagOnPlayer.asi
    134.5 KB · Просмотры: 6
Последнее редактирование:
  • Нравится
Реакции: 1NS и 0x18d036

Paverick

Новичок
3
2
The only downside of the mod is that you can’t disable it with a command. Is there any way to do that? It’s useful for taking screenshots (so your own nickname shows up), but having it on all the time isn’t that great.
 
  • Нравится
Реакции: Орк

Орк

Известный
Автор темы
518
498
The only downside of the mod is that you can’t disable it with a command. Is there any way to do that? It’s useful for taking screenshots (so your own nickname shows up), but having it on all the time isn’t that great.
Сделаю, но не сейчас
Именно команда? /tagonplayer
Или будет достаточно кнопки F10?

 
  • Влюблен
Реакции: Paverick

Paverick

Новичок
3
2
Сделаю, но не сейчас
Именно команда? /tagonplayer
Или будет достаточно кнопки F10?

The command /tagon would be interesting. I made a similar mod myself, but I did it in Lua because I don’t know how to program in ASI, so its appearance didn’t look like the default SA-MP style like yours does.

If you ever work on that, could you make the mod always start disabled? Or make it configurable.

GIF.gif
 
Последнее редактирование:
  • Нравится
Реакции: Орк

Орк

Известный
Автор темы
518
498
Обновление
  • Добавлены активация/деактивация через команду
  • Добавлен .ini с двумя настройками:
Command=/tagon - команда переключения (можно менять)
EnabledByDefault=1 - рендер включён по умолчанию (0 = стартует выключенным)
  • .ini создаётся автоматически при первом запуске с дефолтными значениями (я не смог реализовать, чтобы .ini создавался в modloader, поэтому, чтобы он автоматически создался, лучше поместить в папку scripts или рядом gta_sa.exe. Или просто используйте приложенный тут файл .ini в modloader)
  • Реализована поддержка всех современных версий SA:MP R1, R2, R3, R3-1, R4, R4-2, R5-1, DL-R1
 

Орк

Известный
Автор темы
518
498
Не могли бы вы также добавить отображение команды /ame? При необходимости я заплачу.
Не понял, что такое /ame? Интернет пишет, что это аналог /me на гамбите
Нужно отображение сообщений над головой? ChatBubble?
 
  • Нравится
Реакции: hjuhkghiyg

менталейшн

Известный
1,602
298

Орк

Известный
Автор темы
518
498
Обновление
  • Добавлена полукастомная система ChatBubble (MirrorOwnChatBubble=1). Над головой рисуется оригинальный ChatBubble с текстом, который отправляется в обычный чат (say)
  • Добавлена настраиваемая система отображения текста над головой при отправке команд (секция [OverlayCommands])

1778502181484.gif


Обновление
  • Фикс переноса строк для ChatBubble
 
Последнее редактирование:
  • Влюблен
Реакции: hjuhkghiyg