View difference between Paste ID: kkL4qm6Z and u5ejrQNt
SHOW: | | - or go back to the newest paste.
1-
// Name: 		HidBar
1+
2-
// Author:      Hiddos
2+
3-
// Date: 		21st March 2011
3+
4-
// Version:     1.1
4+
	print("\n--------------------------------------");
5-
// Don't re-release without permission.
5+
	print(" HidBar 1.2 loaded to the server");
6
	print("--------------------------------------\n");
7
	return 1;
8-
#define HITCOLOR 0xFF0000FF
8+
9-
#define MAX_HEALTH_LENGTH 2
9+
10
public OnFilterScriptExit()
11-
new Float:old_hp[MAX_PLAYERS];
11+
12-
new Float:old_ap[MAX_PLAYERS];
12+
	for(new i = 0; i != MAX_PLAYERS; i++)
13
	{
14-
public OnPlayerUpdate(playerid)
14+
		if(IsPlayerConnected(i))
15
		{
16-
	new Float:new_hp, Float:new_ap;
16+
		    new Text3D:hitbar = Text3D:(GetPVarInt(i, "hidbar_HitBar") - 1);
17-
	GetPlayerArmour(playerid, new_ap);
17+
		    if(_:hitbar != -1)
18-
	GetPlayerHealth(playerid, new_hp);
18+
			{
19-
	if(new_hp >= old_hp[playerid] && new_ap >= old_ap[playerid])
19+
				Delete3DTextLabel(hitbar);
20
				DeletePVar(i, "hidbar_HitBar");
21-
		old_hp[playerid] = new_hp;
21+
			}
22-
		old_ap[playerid] = new_ap;
22+
		}
23-
		return 1;
23+
24
}
25-
	new Text3D:hitbar;
25+
26
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
27-
	new diff = floatround( (old_hp[playerid] - new_hp) + (old_ap[playerid] - new_ap) );
27+
28-
	new string[MAX_HEALTH_LENGTH + 1];
28+
	new str[4];
29
	new Float:Pos[3];
30-
	format(string, sizeof string, "%i", diff);
30+
31-
	hitbar = Create3DTextLabel(string, HITCOLOR, Pos[0], Pos[1], Pos[2] + 0.6, 30.0, 0);
31+
	format(str, 4, "%.1f", amount);
32-
	SetTimerEx("UpdateHitBar", 66, 0, "iifffii", _:hitbar, diff, Pos[0], Pos[1], Pos[2] + 0.8, 16, HITCOLOR);
32+
	new Text3D:hitbar = Create3DTextLabel(str, 0xFF0000FF, Pos[0], Pos[1], Pos[2] + 0.6, 30.0, 0);
33-
	old_hp[playerid] = new_hp;
33+
	SetTimerEx("UpdateHitBar", 66, 0, "iffffii", playerid, amount, Pos[0], Pos[1], Pos[2] + 0.8, 16, 0xFF0000FF);
34-
	old_ap[playerid] = new_ap;
34+
	SetPVarInt(playerid, "hidbar_HitBar", _:hitbar + 1);
35
	return 1;
36
}
37
38
forward UpdateHitBar(playerid, Float:hp, Float:x, Float:y, Float:z, update_no, color);
39
public UpdateHitBar(playerid, Float:hp, Float:x, Float:y, Float:z, update_no, color)
40-
	for(new i; i < MAX_PLAYERS; i++)
40+
41
	new Text3D:hitbar = Text3D:(GetPVarInt(playerid, "hidbar_HitBar") - 1);
42-
		GetPlayerHealth(i, old_hp[i]);
42+
    Delete3DTextLabel(hitbar);
43-
		GetPlayerArmour(i, old_ap[i]);
43+
    update_no--;
44
    if(!update_no)
45
	{
46
	    DeletePVar(playerid, "hidbar_HitBar");
47
		return;
48-
public OnPlayerConnect(playerid)
48+
49
50-
	old_hp[playerid] = 100.0;
50+
    new string[4];
51-
	old_ap[playerid] = 0.0;
51+
    z += 0.05;
52
    color -= 12;
53
    format(string, sizeof string, "%.1f", hp);
54
    hitbar = Create3DTextLabel(string, color, x, y, z, 30.0, 0);
55-
forward UpdateHitBar(Text3D:hitbar, hp, Float:x, Float:y, Float:z, update_no, color);
55+
    SetTimerEx("UpdateHitBar", 66, 0, "iffffii", playerid, hp, x, y, z, update_no, color);
56-
public UpdateHitBar(Text3D:hitbar, hp, Float:x, Float:y, Float:z, update_no, color)
56+
   	SetPVarInt(playerid, "hidbar_HitBar", _:hitbar + 1);
57
}