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

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

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

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

3D текст с уроном над головой

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

Ben_Lovejoy

Компетентный
Простейший мануал, показывает 3D текст с уроном над головой игрока которому нанесли урон.
Скриншоты (v1.0):
Видео v1.0


Ко всем define в начало мода (настройки):
PHP:
#define max_steps_damage_txt                            8//Кол-во "прыжков" HP
#define start_Z_damage_txt                              0.1//Стартовая Z координата
#define factor_Z_damage_txt                             0.05//Множитель координаты Z (увеличение Z с каждым "прыжком")
#define factor_A_damage_txt                             0x16//Alpha множетель
#define color__damage_txt                               0xFF450000//Цвет текста
Ко всем new в начало мода:
PHP:
new Text3D:txt_damage_id[MAX_PLAYERS][5];
new bool: txt_damage_use[MAX_PLAYERS][5];
Затем идём в паблик OnPlayerConnect и вставляем туда:
PHP:
for(new f; f<5; ++f){
    txt_damage_id[playerid][f] = Create3DTextLabel(" ", -1, 0.0, 0.0, 0.0, 20.0, -1, 1);
    txt_damage_use[playerid][f] = false;
}
А в OnPlayerDisconnect:
PHP:
for(new f; f<5; ++f)
    Delete3DTextLabel(txt_damage_id[playerid][f]);
return true;
Далее в OnPlayerTakeDamage (если нет такого паблика, создаём) вставим:
PHP:
Scroll3DPlayerLabel(playerid, amount, GetFreeDamageTxtID(playerid));
И в конец мода вставляем:
PHP:
GetFreeDamageTxtID(playerid){
    for(new f; f<5; ++f)
        if(!txt_damage_use[playerid][f]){
            txt_damage_use[playerid][f] = true;
            return f;
    }
    txt_damage_use[playerid][0] = true;
    return false;
}
Scroll3DPlayerLabel(playerid, Float:dmg_point, slot_id)return _Scroll3DPlayerLabel(playerid, dmg_point, max_steps_damage_txt, slot_id);
forward _Scroll3DPlayerLabel(playerid, Float:dmg_point, step_id, slot_id);
public _Scroll3DPlayerLabel(playerid, Float:dmg_point, step_id, slot_id){
    new str[16];
    Attach3DTextLabelToPlayer(txt_damage_id[playerid][slot_id], playerid, 0.0, 0.0, factor_Z_damage_txt*(max_steps_damage_txt-step_id)+start_Z_damage_txt);
    format(str, sizeof(str), "-%.0f HP", dmg_point);
    Update3DTextLabelText(txt_damage_id[playerid][slot_id], 0xFF450000 | 0xff-(max_steps_damage_txt-step_id)*factor_A_damage_txt, str);
    if(!step_id){
            Update3DTextLabelText(txt_damage_id[playerid][slot_id], -1, " ");
            txt_damage_use[playerid][slot_id] = false;
    }else SetTimerEx("_Scroll3DPlayerLabel", 100, false, "ifii", playerid, dmg_point, --step_id, slot_id);
    return true;
}
Автор:
1.0 happines
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу