PDA

Просмотр полной версии : [Мануал] Система ХитМаркера & HitMarker



Bren
30.01.2020, 05:08
https://i.imgur.com/cHDJDQC.png
Система визуального подтверждения попадания по игроку или по транспорту.



Возможности

Изменение цвета хитмаркера при попадании в разные части тела игрока, транспорта, и при полном убийстве игрока.
Отключение хитмаркера для всех видов оружия, включая спец оружие воздушного транспорта.
Установка определенного звука при попадании.
Настройка положение и размера хитмаркера.
Включение/Выключение индикации попадания по игроку и по транспорту.


Установка

Скачайте Hitmarker.inc
Поместите файл Hitmarker.inc в папку include.
Откройте ваш мод, и подключите #include <Hitmarker>


Автор: Bren828
GitHub: https://github.com/Bren828/HitMarker-SA-MP (https://github.com/Bren828/HitMarker-SA-MP)


Использование

Definition
Тип изменение цвета


#define HITMARKER_KILLSHOTS 0 //При полном убийстве игрока
#define HITMARKER_VEHICLE_DAMAGE 1 //При попадании по транспорту
#define HITMARKER_BODYPART_TORSO 3 //При попадании по торсу
#define HITMARKER_BODYPART_GROIN 4 //При попадании по паху
#define HITMARKER_BODYPART_LEFT_ARM 5 //При попадании по левой руке
#define HITMARKER_BODYPART_RIGHT_ARM 6 //При попадании по правой руке
#define HITMARKER_BODYPART_LEFT_LEG 7 //При попадании по левой ноге
#define HITMARKER_BODYPART_RIGHT_LEG 8 //При попадании по правой ноге
#define HITMARKER_BODYPART_HEAD 9 //При попадании в голову


Дополнительные определения для оружия


#define HITMARKER_WEAPON_FIST 0 //Урон получен кулаком
#define HITMARKER_DEATH_UNDER_VEHICLE 50 //Игрок умер под транспортом или от винтов вертолета
#define HITMARKER_ALL_EXPLOSION 51 //Игрок умер от взрыва
#define HITMARKER_AIR_VEHICLE_WEAPON_MINIGUN 52 //Игрок умер от спец оружие воздушного транспорта пулемет
#define HITMARKER_AIR_VEHICLE_WEAPON_ROCKETS 53 //Игрок умер от спец оружие воздушного транспорта ракета


Изменение положение хитмаркера


#define HITMARKER_STANDARD_CROSSHAIR 0 //Изменение положение стандартного прицела
* Используется для огнестрельного оружия (ID: 22 - 33, 37 - 38)


#define HITMARKER_CENTRE_CROSSHAIR 1 //Изменение положение прицела по центру
* Используется для холодного оружия включая транспорт



Functions



Включить Hitmarker
HitmarkerEnabled(playerid);


Выключить Hitmarker
HitmarkerDisable(playerid);


Узнать статус хитмаркера
bool:HitmarkerStatus(playerid);
Вернет: false если выключен
Вернет: true если включен


Изменить цвет хитмаркера
HitmarkerColor(playerid, type, color);


Узнать текущий цвет хитмаркера
GetHitmarkerColor(playerid, type);


Выключить хитмаркер для определенного оружия
HitmarkerDisableWeapon(playerid, weaponid, bool:disable);
* При отключении огневого оружия, отключается оружие (ID: 18, 37)
* При отключении взрывного оружия, отключается оружие (ID: 16, 35, 36, 39, 51) Не распространяется на воздушный транспорт.


Узнать статус хитмаркера у определенного оружия
GetHitmarkerDisabledWeapon(playerid, weaponid);


Включить звук попадания
HitmarkerSoundDamage(playerid, soundid);


Узнать текущий звук попадания
GetHitmarkerSoundDamage(playerid);


Изменить положение хитмаркера
HitmarkerPosition(playerid, crosshair_type, Float:x, Float:y, Float:size_x, Float:size_y);


Узнать текущие положение хитмаркера
GetHitmarkerPosition(playerid, crosshair_type, &Float:x, &Float:y, &Float:size_x, &Float:size_y);


Включить индикацию пули по игроку
HitmarkerEnablePlayerDamage(playerid, bool:enable);
* По стандарту включено


Узнать статус индикации пули по игроку
GetHitmarkerEnablePlayerDamage(playerid);


Включить индикацию пули по транспорту
HitmarkerEnableVehicleDamage(playerid, bool:enable);


Узнать статус индикации пули по транспорту
GetHitmarkerEnableVehicleDamage(playerid);




Пример использования



CMD:Hitmarker(playerid)
{
if(HitmarkerStatus(playerid) == false) // Узнаем состояние хитмаркера
{
// Включаем хитмаркер
HitmarkerEnabled(playerid);

// Устанавливаем нужные цвета попадания
HitmarkerColor(playerid, HITMARKER_BODYPART_TORSO, 0xFFFFFFFF);
HitmarkerColor(playerid, HITMARKER_BODYPART_GROIN, 0x7CFC00FF);
HitmarkerColor(playerid, HITMARKER_BODYPART_LEFT_ARM, 0xFFA500FF);
HitmarkerColor(playerid, HITMARKER_BODYPART_RIGHT_ARM, 0xFFD700FF);
HitmarkerColor(playerid, HITMARKER_BODYPART_LEFT_LEG, 0x00BFFFFF);
HitmarkerColor(playerid, HITMARKER_BODYPART_RIGHT_LEG, 0x00FFFFFF);
HitmarkerColor(playerid, HITMARKER_BODYPART_HEAD, 0xFF00FFFF);

HitmarkerColor(playerid, HITMARKER_KILLSHOTS, 0xFF0000FF);
HitmarkerColor(playerid, HITMARKER_VEHICLE_DAMAGE, 0xB03060FF);


// Включаем индикацию урона по транспорту
HitmarkerEnableVehicleDamage(playerid, true);

// Отключаем индикацию урона оружием (ID: 5) - Бейсбольная бита
HitmarkerDisableWeapon(playerid, WEAPON_BAT, true);


// Отключаем индикацию урона наносимого воздушным транспортом при помощи пулемета
HitmarkerDisableWeapon(playerid, HITMARKER_AIR_VEHICLE_WEAPON_MINIGUN, true);

GameTextForPlayer(playerid, "Hitmarker ~g~~h~On", 1200, 4);
}
else
{
// Выключаем хитмаркер
HitmarkerDisable(playerid);

GameTextForPlayer(playerid, "Hitmarker ~r~~h~Off", 1200, 4);
}
return 1;
}