Jump to content

Recommended Posts

Posted (edited)

Hi! I would like to present you a script that makes nametag and hp/armor bar look like GTA:Online's ones.

qG0EYnA.png

RLxrVIk.gif

 

First, we create variables to configure the tags.

const maxDistance = 25*25;
const width = 0.03;
const height = 0.0065;
const border = 0.001;
const color = [255,255,255,255];

Now disable the default name tags.

mp.nametags.enabled = false;
Next, draw our name tags.
mp.events.add('render', (nametags) => {
    const graphics = mp.game.graphics;
    const screenRes = graphics.getScreenResolution(0, 0);
	
    nametags.forEach(nametag => {
        let [player, x, y, distance] = nametag;
		
        if(distance <= maxDistance) {	   
            let scale = (distance / maxDistance);
            if(scale < 0.6) scale = 0.6;
			
            var health = player.getHealth();
            health = health < 100 ? 0 : ((health - 100) / 100);
		   
            var armour = player.getArmour() / 100;
			
            y -= scale * (0.005 * (screenRes.y / 1080));
			
            graphics.drawText(player.name.replace('_', ' '), [x, y],	
            {	
              font: 4,	
              color: color,	
              scale: [0.4, 0.4],	
              outline: true	
            });
			
            if(mp.game.player.isFreeAimingAtEntity(player.handle)) {
                let y2 = y + 0.042;
				
                if(armour > 0) {
                    let x2 = x - width / 2 - border / 2;
					
                    graphics.drawRect(x2, y2, width + border * 2, 0.0085, 0, 0, 0, 200);
                    graphics.drawRect(x2, y2, width, height, 150, 150, 150, 255);
                    graphics.drawRect(x2 - width / 2 * (1 - health), y2, width * health, height, 255, 255, 255, 200);

                    x2 = x + width / 2 + border / 2;
				   
                    graphics.drawRect(x2, y2, width + border * 2, height + border * 2, 0, 0, 0, 200);
                    graphics.drawRect(x2, y2, width, height, 41, 66, 78, 255);
                    graphics.drawRect(x2 - width / 2 * (1 - armour), y2, width * armour, height, 48, 108, 135, 200);
                }
                else {
                    graphics.drawRect(x, y2, width + border * 2, height + border * 2, 0, 0, 0, 200);
                    graphics.drawRect(x, y2, width, height, 150, 150, 150, 255);
                    graphics.drawRect(x - width / 2 * (1 - health), y2, width * health, height, 255, 255, 255, 200);
                }
            }
        }
    })
})

This script should be put in the client_packages folder and connected to index.js.

Edited by hartority
Updated drawText
  • Like 8
  • 4 weeks later...
  • 6 months later...
Posted

Sorry for being a noob, how exactly do I do the last part,' This script should be put in the client_packages folder and connected to index.js. '

Your help will be much appreciated, thanks.

  • 9 months later...
Posted
On 5/22/2017 at 10:23 AM, Mcfloy said:

Would love to test this, unfortunately it's for 0.2 version...

Great job tho ! :D

Hey! I solved this:

 

  • Like 1
  • 7 months later...
  • 5 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...