Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

3D Полоска Жизней Машины....

Статус
В этой теме нельзя размещать новые ответы.

rolex

Новичок
Доброго Времени Суток.
Сейчас я вам покажу как сделать 3D полоску жизней машины

Начнем:

ко всем new добавим

PHP:
new PlayerText3D:CarLabel[MAX_PLAYERS];
new bool:LabelActive[MAX_PLAYERS];

new Float:OldHealth[MAX_PLAYERS];
new Float:OldDamage[MAX_PLAYERS];
new Float:CDamage[MAX_PLAYERS];

new timercar[MAX_PLAYERS];

Далее в public OnPlayerConnect кидаем

PHP:
LabelActive[playerid] = false;

Теперь в public OnPlayerStateChange кидаем

PHP:
    if(newstate == PLAYER_STATE_DRIVER)
    {
        CarLabel[playerid] = CreatePlayer3DTextLabel(playerid," ",-1,0,0,0.9,10.0,INVALID_PLAYER_ID,GetPlayerVehicleID(playerid),1);
        UpdateBar(playerid);
    }
    else
    {
        DeletePlayer3DTextLabel(playerid,CarLabel[playerid]);
    }

Потом в public OnPlayerUpdate суем

PHP:
UpdateHP(playerid);

и накоец в самый конец мода кидаем вот это


PHP:
stock UpdateHP(playerid)
{
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
    new Float:HP,veh;
     veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, HP);
    if(HP != OldHealth[playerid])
    {
        OldDamage[playerid]=OldHealth[playerid]-HP;
        OldHealth[playerid] = HP;
        if(OldDamage[playerid] > 0)
        {
        
            new texts[128];
            if(LabelActive[playerid])
            {
                CDamage[playerid]+=OldDamage[playerid];
                format(texts,sizeof(texts),"{ffd800}-%.0f\n%s",CDamage[playerid],UpdateString(HP));
                KillTimer(timercar[playerid]);
                timercar[playerid] = SetTimerEx("DeleteText", 2000, 0, "i", playerid);
            }
            else
            {
                LabelActive[playerid] = true;
                format(texts,sizeof(texts),"{ffd800}-%.0f\n%s",OldDamage[playerid],UpdateString(HP));
                timercar[playerid] = SetTimerEx("DeleteText", 2000, 0, "i", playerid);
            }
            UpdatePlayer3DTextLabelText(playerid, CarLabel[playerid], -1, texts);
        }
    }
    return 1;
}

stock UpdateBar(playerid)
{
    new Float:HP,veh;
     veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, HP);
    UpdateString(HP);
    UpdatePlayer3DTextLabelText(playerid, CarLabel[playerid], -1, UpdateString(HP));
    return 1;
}

stock UpdateString(Float:HP)
{
    new str[30];
    if(HP == 1000)          format(str,sizeof(str),"{00ff00}••••••••••");
    else if(HP >= 900)      format(str,sizeof(str),"{66ff00}•••••••••{ffffff}•");
    else if(HP >= 800)         format(str,sizeof(str),"{7fff00}••••••••{ffffff}••");
    else if(HP >= 700)        format(str,sizeof(str),"{ccff00}•••••••{ffffff}•••");
    else if(HP >= 600)        format(str,sizeof(str),"{f7f21a}••••••{ffffff}••••");
    else if(HP >= 500)        format(str,sizeof(str),"{f4c430}•••••{ffffff}•••••");
    else if(HP >= 400)        format(str,sizeof(str),"{e49b0f}••••{ffffff}••••••");
    else if(HP >= 300)        format(str,sizeof(str),"{e4650e}•••{ffffff}•••••••");
    else if(HP >= 250)        format(str,sizeof(str),"{ff2400}••{ffffff}••••••••");
    else                     format(str,sizeof(str),"{ff2400}Boom!");
    return str;
}


forward DeleteText(playerid);
public DeleteText(playerid)
{
    KillTimer(timercar[playerid]);
    LabelActive[playerid] = false;
    UpdateBar(playerid);
    CDamage[playerid]=0;
    return 1;
}


Если вы все сделали правильно то у вас должна вот такая полоска жизней над машиной:



Автор: Studio FS
Кому погот ставте +
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу