Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //GameWASD.ru © 2012
- //v1.0: happines
- //v1.1: frog163
- //Скрипт показывает урон в виде 3d текста над головой игрока
- //Видео: http://rutube.ru/video/2b73615e525b62d0114cd5d36be98e84/
- #include a_samp
- #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 Text3D:txt_damage_id[MAX_PLAYERS][5];
- new bool: txt_damage_use[MAX_PLAYERS][5];
- public OnPlayerConnect(playerid){
- 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;
- }
- return true;
- }
- public OnPlayerDisconnect(playerid, reason){
- for(new f; f<5; ++f)
- Delete3DTextLabel(txt_damage_id[playerid][f]);
- return true;
- }
- public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid){
- Scroll3DPlayerLabel(playerid, amount, GetFreeDamageTxtID(playerid));
- return true;
- }
- 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement