void main()
{//Draw life bar in the screen, entity binded like RPG games
void self = getlocalvar("self");
if(openborvariant("in_level")){ //IN ANY LEVEL??
int maxLife = getentityproperty(self, "maxhealth");
int life = getentityproperty(self, "health");
int x = getentityproperty(self, "x");
int y = getentityproperty(self, "y");
int z = getentityproperty(self, "z");
float xPos = openborvariant("xpos");
float yPos = openborvariant("ypos");
float xSize = 30; //BAR WIDTH INCREASE FACTOR, MORE VALUE IS MORE SIZE
float ySize = 2; //BAR HEIGHT INCREASE FACTOR, MORE VALUE IS MORE SIZE
float xDif = 0; //BAR POSITION IN X AXIS, USE THIS TO MOVE ALL BARS TOGETHER
float yDif = 0; //BAR POSITION IN Y AXIS, USE THIS TO MOVE ALL BARS TOGETHER
if(life > 0){ //ENTITY IS ALIVE??
life = (life*xSize)/(maxLife); //CALCULATE REMAINING LIFE BAR SIZE
maxLife = (maxLife*xSize)/(maxLife); //CALCULATE MAX LIFE BAR SIZE
x = x-xPos-(maxLife/2)+xDif; //CALCULATE X POSITION TO BIND BAR IN THE ENTITY, OFFSET IS ALWAYS THE CENTER
y = z-yPos-y+yDif; //CALCULATE Y POSITION TO BIND BAR IN THE ENTITY
drawbox(x, y, life, ySize, z+3, rgbcolor(0xFF,0xFF,0x00), 0); //YELLOW BAR, LIFE REMAINING
drawbox(x, y, maxLife, ySize, z+1, rgbcolor(0xFF,0x00,0x00), 0); //RED BAR, LIFE LOST
drawbox(x, y-1, maxLife, ySize*2, z, rgbcolor(0xFF,0xFF,0xFF), 0); //WHITE BORDER (UP/DOWN)
drawbox(x-1, y, maxLife+2, ySize, z, rgbcolor(0xFF,0xFF,0xFF), 0); //WHITE BORDER (LEFT/RIGHT)
}
}
if(openborvariant("in_level")){ //IN ANY LEVEL??
int maxmp = getentityproperty(self, "maxmp");
int mp = getentityproperty(self, "mp");
int x = getentityproperty(self, "x");
int y = getentityproperty(self, "y");
int z = getentityproperty(self, "z");
float xPos = openborvariant("xpos");
float yPos = openborvariant("ypos");
float xSize = 30; //BAR WIDTH INCREASE FACTOR, MORE VALUE IS MORE SIZE
float ySize = 2; //BAR HEIGHT INCREASE FACTOR, MORE VALUE IS MORE SIZE
float xDif = 0; //BAR POSITION IN X AXIS, USE THIS TO MOVE ALL BARS TOGETHER
float yDif = 5; //BAR POSITION IN Y AXIS, USE THIS TO MOVE ALL BARS TOGETHER
if(mp > 0){ //ENTITY IS ALIVE??
mp = (mp*xSize)/(maxmp); //CALCULATE REMAINING mp BAR SIZE
maxmp = (maxmp*xSize)/(maxmp); //CALCULATE MAX mp BAR SIZE
x = x-xPos-(maxmp/2)+xDif; //CALCULATE X POSITION TO BIND BAR IN THE ENTITY, OFFSET IS ALWAYS THE CENTER
y = z-yPos-y+yDif; //CALCULATE Y POSITION TO BIND BAR IN THE ENTITY
drawbox(x, y, mp, ySize, z+3, rgbcolor(0x00,0xFF,0xFF), 0); //CYAN BAR, MP REMAINING
drawbox(x, y, maxmp, ySize, z+1, rgbcolor(0x00,0x00,0xFF), 0); //BLUE BAR, MP LOST
drawbox(x, y-1, maxmp, ySize*2, z, rgbcolor(0xFF,0xFF,0xFF), 0); //WHITE BORDER (UP/DOWN)
drawbox(x-1, y, maxmp+2, ySize, z, rgbcolor(0xFF,0xFF,0xFF), 0); //WHITE BORDER (LEFT/RIGHT)
}
}
}