I've got a GUI what i need help with, this script has currently been posted on forums, and i've edited it abit to make the custom health system i have installed match, but doesn't seem to work.
1. The image is only half filled.
2. When i attack it takes away the health, parts of the image, but when the image is all gone the player is still alive.
Screenshots:
1.
http://img848.imageshack.us/f/imagehalffull.png/
2.
http://img27.imageshack.us/f/playerstillalive.png/
Script:
PHP Code:
//#CLIENTSIDE
function onCreated() {
this.HUDimage = "dusty_guibartest1.png"; // Define the image of the bar;
showstats(1024); // Hide all but the player
this.HUDx = 50; // Center 'X' position of the HUD
this.HUDy = 50; // Center 'Y' position of the HUD
this.radius = 24; // Distance the bar extends out to from center
this.thickness = 15; // Thickness of bar in pixels
this.margin = 2; // Thickness of outline in pixels
this.startangle = pi/2; // Starting angle of bar
this.direction = 1; // Direction the bar goes. -1 = left, 1 = right
this.maxlife = 100; // Define the max amount of life possible
onTimeout();
}
function onTimeout() {
// RECORD CUSTOMIZATIONS INTO TEMPORARY VARIABLES
// THIS IS SIMPLY FOR THE EASE OF SHORTER VARIABLE NAMES
temp.sa = this.startangle;
temp.ox = this.HUDx;
temp.oy = this.HUDy;
temp.r = this.radius;
temp.t = this.thickness;
temp.m = this.margin;
// DISPLAY THE HEART IMAGE
// THIS CAN BE CHANGED TO SOMETHING LIKE THE PLAYER'S HEAD
with (findimg(1000)) {
image = "state.png";
x = ox - 20;
y = oy - 22;
partw = 40;
parth = 44;
layer = 6;
}
// ALTER THE 'FILL'. THIS IS A VARIABLE THAT COUNTS UP
// OR DOWN TO THE PLAYER'S HEARTS, SO WE CAN USE IT AS
// AN ALTERNATIVE, THUS ANIMATING THE BAR FILLING
if (this.fill != clientr.stats.hp_cur) this.fill += (this.fill < clientr.stats.hp_cur) ? 3.05 : - .5;
else this.fill = clientr.stats.hp_cur;
// IF NEW IMAGE COUNT IS LESS THAN THE OLD, HIDE EXCESSIVE IMAGES
if (this.oldi > clientr.stats.hp_max*2) hideimgs(200,300+this.oldi);
for (temp.i=0;i<clientr.stats.hp_max*2;i++) {
temp.seg = pi/this.maxlife;
temp.a = (sa + (i*seg)*this.direction);
temp.padding = {(i == 0)*pi/40,(((i+1)/2) == clientr.stats.hp_cur)*pi/40};
with (findimg(200+i)) {
polygon = {
ox - cos(a - padding[0])*(r+t) ,oy - sin(a - padding[0])*(r+t) ,
ox - cos(a + seg + padding[1])*(r+t),oy - sin(a + seg + padding[1])*(r+t),
ox - cos(a + seg + padding[1])*r ,oy - sin(a + seg + padding[1])*r ,
ox - cos(a - padding[0])*r ,oy - sin(a - padding[0])*r ,
};
red = blue = green = 0;
alpha = 1;
layer = 4;
}
if (i < this.fill*2) {
with (findimg(300+i)) {
polygon = {
ox - cos(a)*(r+t-m) ,oy - sin(a)*(r+t-m) ,
ox - cos(a + seg)*(r+t-m),oy - sin(a + seg)*(r+t-m),
ox - cos(a + seg)*(r+m) ,oy - sin(a + seg)*(r+m) ,
ox - cos(a)*(r+m) ,oy - sin(a)*(r+m) ,
};
image = thiso.HUDimage;
layer = 5;
}
} else hideimg(300+i);
}
this.oldi = i; // RECORD THIS IMAGE COUNT AS OLD
// IF BAR IS FILLED, SET A LONGER TIMEOUT FOR EFFICIENCY, OTHERWISE
// SET IT AS LOW AS POSSIBLE FOR SMOOTHER FILL ANIMATION
setTimer(this.fill == clientr.stats.hp_cur ? 0.05 : 0.05);
}