SF Plugin HitMarker | Иначе - визуальный индикатор попадания

ANZR

Известный
Автор темы
168
105
Версия SA-MP
  1. 0.3.7 (R1)

Кулити народ, на связи ANZR
Чет решил выпустить хоть что-то, чтоб не показаться умершим. хотя кому до меня дело
На повестке дня у нас плагин, что я сделал в целях обучения в сфере SF (не плохо вышло для первого раза кстати)
ААААААААААААААААААА, РОТ Я ТОПТАЛ ВАШ C++

И так, что это такое?
Эта штукенция, при попадании в противника, отображает на экране хитмаркер, обозначающий попадание.
Сам плагин имеет в себе множество настроек:
  • Возможность менять размер хитмаркера
  • Время отображения хитмаркера на экране
  • Разброс хитмаркера по экрану
  • Статус работы плагина
Да-да, соврал, что множество, однако тут еще не все
Плагин поддерживает вариант смены хитмаркера на свой
(Стандартное разрешение хитмаркера 900х900, другие размеры я не пробовал)
Выглядит в папке это примерно вот так (за кач-во не бейте, быстренько в фотошопе накляпал, что смог):
HFcbeYf.png

headHitMarker.png - формат маркера, при нанесении урона в голову
standartHitMarker.png - формат маркера, при нанесении урона в любую другую часть тела.


Внимание! При изменении на кастомный хитмаркер, название оставлять таким же, как на скрине выше

Давайте пройдемся по командам плагина, их значениях и стандартных параметров:
Команда​
Функция​
Стандартное значение​
Допустимые значения​
/enablemarker​
Включает хитмаркер​
-​
-​
/changesize​
Изменяет размер хитмаркера​
35​
1 > inf (Чем выше, тем меньше хитмаркер)​
/changerange​
Изменяет разброс хитмаркера по экрану​
10​
1 > inf (Чем выше, тем дальше хитмаркер может быть от прицела)​
/changedelay​
Изменяет время хитмаркера на экране​
100​
1 > inf (миллисекунды)​

Такс, по настройкам, командам прошлись.
Перейдем к установке
Все просто - распаковываете файл в папку SAMPFUNCS и все


После изменения параметров плагина, настройки сохраняются

Если вы не хотите читать всю писанину выше или хотите получить наглядный пример работы плагина:


scale_1200

HitMarker 1.1

Кусь. Снова на связи. Т.к мой плагин все таки набрал некую популярность, я решил замарочиться и подредактировать код, а вместе с этим и добавить новую функцию
Для начала, что нового?
Все команды перебрались в окно imgui(т.к все команды не запомнишь)
Добавил функцию окраса хитмаркера в красный в случае убийства, а не попадания в голову
И другие косметические приблуды

Вместо 4ех команд, осталась только одна:
/markerset

После ввода, открывается окно ImGui
(Большое спасибо Dark_Knight за примеры и описание моих ошибок работы с ImGui)
Выглядит это окно так:
mGtDZjc.png


Пройдемся по настройкам:​
Пункт​
Значение​
Status​
Статус плагина. Вкл/Выкл​
ifKilled​
Новая функция. Окрашивает хитмаркер в красный в случае убийства игрока​
Range​
Разброс маркера по экрану​
TimeDelay​
Время хитмаркера на экране​
MarkerSize​
Размер хитмаркера на экране​


Все настройки после перезагрузки игры/плагина все настройки сохраняются
Установка - Распаковать файл в папку SampFuncs
Если есть баги/проблемы - пишите сюда
Для связи лично со мной. ВК: @pu1seanon
Исходник первой версии плагина: *клац*
[/SPOILER]
 

Вложения

  • FinoHitMarker.rar
    365.7 KB · Просмотры: 655
  • FinoHitMarker 1.1.rar
    507.4 KB · Просмотры: 1,627
Последнее редактирование:

ANZR

Известный
Автор темы
168
105
Чётко, но лучше бы этот хитмаркер оставался на жертве, а не прилипал к экрану
Можно сделать, я так и хотел сначала, но прикол будет в том, что его можно будет юзать как ВХ)
Если есть возможность проверки на то, находится ли игрок за стеной - отпиши. Будет время, как-нибудь добавлю. Просто весь SF облазил, ничего подобного не нашел, ну или я овощ
 

ANZR

Известный
Автор темы
168
105
Я это мог легко сделать и у меня уже была заготовка, знакомому скинул, но из-за невозможности просчитать, находится ли игрок за стеной, я решил упустить этот факт. Как будет время - я попробую решить этот вопрос. По этому, если зайдет плагин, новую версию можете скоро увидеть
 
  • Нравится
Реакции: ReleaseN

sc6ut

неизвестный
Модератор
382
1,089
Если есть возможность проверки на то, находится ли игрок за стеной - отпиши
В классе CEntity есть метод IsOnScreen, который возвращает есть ли объект на экране. Так как класс CPed наследует от него, можешь использовать этот метод.
Ну а если его нет в мта апи, то вот:
C++:
// Converted from thiscall bool CEntity::GetIsOnScreen(void) 0x534540
bool CEntity::GetIsOnScreen()
{
    return ((bool (__thiscall *)(CEntity*))0x534540)(this);
}
 
  • Нравится
Реакции: ANZR

Vintik

Через тернии к звёздам
Проверенный
1,526
1,011
А можно красный хитмаркер – килл, а белый – ранение? Круто же будет
 
  • Нравится
Реакции: ANZR

ANZR

Известный
Автор темы
168
105
В классе CEntity есть метод IsOnScreen, который возвращает есть ли объект на экране. Так как класс CPed наследует от него, можешь использовать этот метод.
Ну а если его нет в мта апи, то вот:
C++:
// Converted from thiscall bool CEntity::GetIsOnScreen(void) 0x534540
bool CEntity::GetIsOnScreen()
{
    return ((bool (__thiscall *)(CEntity*))0x534540)(this);
}
Прикол в том, что я это знаю. И с этим уже работал, но как я помню, через него нельзя проверить, находится ли этот игрок за каким либо объектом или нет. Эта функа будет возвращать true до тех пор, пока ты не развернешься от игрока в другую сторону. Т.к если это не сделать, маркер будет виден даже тогда, когда PED находится например за домом, а это уже можно интерпретировать за вх, чего я конечно не хочу
 

ANZR

Известный
Автор темы
168
105
UPD. Залил исходник. Для новичков или шарющих людей, что хотят дать совет - залетайте

P.S
Модеры, я просто ссылку вставил. Сам файл не менял.
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
908
1,775
Отлично. Такая же идея была когда-то)
Поддерживаю пользователей выше. Насчет того, чтоб не прилипал к экрану "+", если получится, то можно будет еще самому пользователю выбрать режим "OnScreen" или "OnPlayer".
 
  • Нравится
Реакции: James Saula

Musaigen

abobusnik
Проверенный
1,607
1,365
Прикол в том, что я это знаю. И с этим уже работал, но как я помню, через него нельзя проверить, находится ли этот игрок за каким либо объектом или нет. Эта функа будет возвращать true до тех пор, пока ты не развернешься от игрока в другую сторону. Т.к если это не сделать, маркер будет виден даже тогда, когда PED находится например за домом, а это уже можно интерпретировать за вх, чего я конечно не хочу
CWorld::IsLineOfSightClear
 
  • Нравится
Реакции: sc6ut

ANZR

Известный
Автор темы
168
105
Отлично. Такая же идея была когда-то)
Поддерживаю пользователей выше. Насчет того, чтоб не прилипал к экрану "+", если получится, то можно будет еще самому пользователю выбрать режим "OnScreen" или "OnPlayer".
Да-да, я уже получил функцию, которая позволит сделать так, как я хочу. Выпущу скоро новую версию