Старый мод старые системы
Сколько тем я не смотрел, нет одного нормального варианта.
Так вот держите этот



Типы отображение
PHP код:
AimingCheck[playerid][3]

Выключено
Включено появляется при попадании
Включено появляется когда у игрока очень мало ХП 

Ну так приступим.


Ко всем new
PHP код:
new Text:Aiming[MAX_PLAYERS][2], AimingCheck[MAX_PLAYERS][6], AimingText[11] = {9214712611012647192}, AimingTextR[16] = {1261141261261041269214712611012647192}; 

В OnPlayerConnect добавляем сам TextDraw
PHP код:
    AimingCheck[playerid][0] = 0;
    
AimingCheck[playerid][1] = 0;
    
AimingCheck[playerid][2] = GetTickCount()+500;//Меньшее значение иногда вызывает залипание маркера. Большое значение вызывает задержку появление маркера
    
AimingCheck[playerid][3] = 1// 0 - Выкл | 1 - Вкл тип 1 | 2 Вкл тип 2
    
AimingCheck[playerid][4] = -1;//цвет (0xFFFF00FF)
    
AimingCheck[playerid][5] = 0;//проверка на спавн игрока (если у вас есть своя проверка замените на свою)
    
    
Aiming[playerid][0] = TextDrawCreate(332.5172.5AimingText);
    
TextDrawBackgroundColor(Aiming[playerid][0], 0);
    
TextDrawFont(Aiming[playerid][0], 0);
    
TextDrawLetterSize(Aiming[playerid][0], 0.330.7);
    
TextDrawColor(Aiming[playerid][0], AimingCheck[playerid][4]);
    
TextDrawSetOutline(Aiming[playerid][0], 0);
    
TextDrawSetProportional(Aiming[playerid][0], 1);
    
TextDrawSetShadow(Aiming[playerid][0], 1);
    
TextDrawSetSelectable(Aiming[playerid][0], 0);

    
Aiming[playerid][1] = TextDrawCreate(310.5214.0AimingText);
    
TextDrawBackgroundColor(Aiming[playerid][1], 0);
    
TextDrawFont(Aiming[playerid][1], 0);
    
TextDrawLetterSize(Aiming[playerid][1], 0.461.0);
    
TextDrawColor(Aiming[playerid][1], AimingCheck[playerid][4]);
    
TextDrawSetOutline(Aiming[playerid][1], 0);
    
TextDrawSetProportional(Aiming[playerid][1], 1);
    
TextDrawSetShadow(Aiming[playerid][1], 1);
    
TextDrawSetSelectable(Aiming[playerid][1], 0); 

В секундный таймер
PHP код:
if(AimingCheck[i][1] >= && AimingCheck[i][3] >= 1)
{
    
AimingCheck[i][1] --;
    if(
AimingCheck[i][1] == 0)
    {
        
AimingCheck[i][0] = 0;
        
AimingCheck[i][1] = 0;
        
TextDrawHideForPlayer(iAiming[i][0]);
        
TextDrawHideForPlayer(iAiming[i][1]);
        
TextDrawSetString(Aiming[i][0], AimingText);
        
TextDrawSetString(Aiming[i][1], AimingText);
    }


В самый вверх OnPlayerKeyStateChange
PHP код:
if(AimingCheck[playerid][3] >= && AimingCheck[playerid][0] == && (newkeys 128 || newkeys || oldkeys 132))
{
    
AimingCheck[playerid][0] = 0;
    
AimingCheck[playerid][1] = 0;
    
AimingCheck[playerid][2] = GetTickCount()+300;//Меньшее значение иногда вызывает залипание маркера. Большое значение вызывает задержку появление маркера
    
TextDrawHideForPlayer(playeridAiming[playerid][0]);
    
TextDrawHideForPlayer(playeridAiming[playerid][1]);
    
TextDrawSetString(Aiming[playerid][0], AimingText);
    
TextDrawSetString(Aiming[playerid][1], AimingText);


В OnPlayerTakeDamage
PHP код:
if(issuerid != INVALID_PLAYER_ID && AimingCheck[issuerid][3] >= && AimingCheck[playerid][5] == 1)
{
    new 
Float:Health;
    
GetPlayerHealth(playeridHealth);
    
AimingCheck[issuerid][1] = 3;
    if(
Health-amount 20.0)
    {
        
AimingCheck[issuerid][0] = 1;
        if(
AimingCheck[issuerid][3] == 1)
        {
            if(
weaponid == 34TextDrawSetString(Aiming[issuerid][1], AimingTextR);
            else 
TextDrawSetString(Aiming[issuerid][0], AimingTextR);
        }
        else
        {
            if(
weaponid == 51 || weaponid == 34)
            {
                if(
weaponid == 51AimingCheck[issuerid][0] = 0;
                
TextDrawSetString(Aiming[issuerid][1], AimingTextR);
                
TextDrawShowForPlayer(issueridAiming[issuerid][1]);
            }
            else
            {
                
TextDrawSetString(Aiming[issuerid][0], AimingTextR);
                
TextDrawShowForPlayer(issueridAiming[issuerid][0]);
            }
        }
    }
    if(
AimingCheck[issuerid][3] == && (weaponid 22 || weaponid 34))
    {
        if(
weaponid == 51)
        {
            
AimingCheck[issuerid][0] = 0;
            
TextDrawShowForPlayer(issueridAiming[issuerid][1]);
        }
        else
        {
            
AimingCheck[issuerid][0] = 1;
            
TextDrawShowForPlayer(issueridAiming[issuerid][0]);
        }
    }


В OnPlayerWeaponShot
PHP код:
if(AimingCheck[playerid][3] >= && AimingCheck[playerid][2] < GetTickCount())
{
    new 
carmode GetPlayerCameraMode(playerid);
    if((
carmode == || carmode == 53 || carmode == 55) && hittype == BULLET_HIT_TYPE_PLAYER && AimingCheck[playerid][0] == && AimingCheck[playerid][3] == && hitid != 65535 && AimingCheck[hitid][5] == 1)
    {
        
AimingCheck[playerid][0] = 1;
        
AimingCheck[playerid][1] = 2;
        if(
weaponid == 34TextDrawShowForPlayer(playeridAiming[playerid][1]);
        else 
TextDrawShowForPlayer(playeridAiming[playerid][0]);
    }
    else if(
AimingCheck[playerid][0] != && hittype != BULLET_HIT_TYPE_PLAYER)
    {
        
AimingCheck[playerid][0] = 0;
        
AimingCheck[playerid][1] = 0;
        
TextDrawHideForPlayer(playeridAiming[playerid][0]);
        
TextDrawHideForPlayer(playeridAiming[playerid][1]);
        
TextDrawSetString(Aiming[playerid][0], AimingText);
        
TextDrawSetString(Aiming[playerid][1], AimingText);
    }


В OnPlayerSpawn
PHP код:
AimingCheck[playerid][5] = 1

И в OnPlayerDeath
PHP код:
AimingCheck[playerid][5] = 0

Готово!


DOWNLOAD


Автор: Bren
При копировании на другие ресурсы указывайте автора