HP Bar over Targets heads source edit

*Originally posted by Checkpointng*
Ok, so was board today at work, decided to donate more code

This basically creates an HP Bar over the targets head rather than the current bland way with the interact window, note lots of neat things can be done, however i figured id keep it simple and allow \*you\* folks to expand on it.

**In Actors.bb inside the ActorInstance Type add the following field HPBarEN <<< i've added it next to the NametagEN field like so:**

```
   Field EN, CollisionEN, HatEN, ChestEN, WeaponEN, ShieldEN, ShadowEN, NametagEN, HPBarEN, GubbinEN[5] ;; <<< Added HPBarEN

```

**In Actors3D.bb find a function called CreateActorNametag() inside add the follow code BEFORE *Delete(MMV)* at the bottom**

```
 A\HPBarEN = CreateMesh()

   Local S = CreateSurface(A\HPBarEN)

   v1 = AddVertex(S, 0.0, -1.0, 0.0, 0.0, 1.0)

   v2 = AddVertex(S, 1.0, -1.0, 0.0, 1.0, 1.0)

   v3 = AddVertex(S, 1.0,  0.0, 0.0, 1.0, 0.0)

   v4 = AddVertex(S, 0.0,  0.0, 0.0, 0.0, 0.0)

   AddTriangle S, v3, v2, v1

   AddTriangle S, v4, v3, v1

   PositionMesh(A\HPBarEN, MeshWidth#(A\HPBarEN) / -2.0, 1.0, 0.0)

   EntityParent(A\HPBarEN, A\NametagEN)

   PositionEntity(A\HPBarEN, 0, 0, 0)

   TranslateEntity(A\HPBarEN, 0.0, -0.3, 0.0, True)

   TranslateEntity(A\NametagEN, 0.0, 0.3, 0.0, True)

   EntityAutoFade(A\HPBarEN, 40.0, 45.0)

   EntityColor(A\HPBarEN, 240, 0, 0)

   EntityFX(A\HPBarEN, 1 + 8)

   TranslateEntity(A\NametagEN, 0, 0.5, 0, True)

```

**and finally in Client.bb find the function UpdateActorInstances() and inside replace this section:**

```
         ; Show/hide nametags in HideNametags mode 2 (selected only)

         If HideNametags = 2 And AI\NametagEN <> 0

            If Handle(AI) = PlayerTarget

               ShowEntity(AI\NametagEN)

            Else

               HideEntity(AI\NametagEN)

            EndIf

         EndIf

```

**With this one:**

```
         ; Show/hide nametags in HideNametags mode 2 (selected only)

         If HideNametags = 2 And AI\NametagEN <> 0

            If Handle(AI) = PlayerTarget

               ShowEntity(AI\NametagEN)

               MyT.ActorInstance = Object.ActorInstance(PlayerTarget)

               If MyT <> Null

                  Local HP# = (Float#(MyT\Attributes\Value[HealthStat]) / Float#(MyT\Attributes\Maximum[HealthStat])) * 2.0

                  ScaleEntity(MyT\HPBarEN, HP#, 0.3, 1)

               EndIf

            Else

               HideEntity(AI\NametagEN)

            EndIf

         EndIf

```

***\*\*Optional\*\** if you would like to NOT display the interact window for targets with HP Bar then do the following:**

**Inside Interface3D.bb find the function CreateCharInteractionWindow() and add the following line at the top:**

```
If AI\HPBarEN > 0 Then Return

```

**and also find the function UpdateCharInteractionWindow() and add the same as above right below Local AI.ActorInstance = CharInteract, like this;**

```
   Local AI.ActorInstance = CharInteract

   If AI\HPBarEN > 0 Then Return

```

And that should do it, next time you get on your targets will have a red bar over their heads displaying their HP, below is a quick YouTube vid to show what it looks like: Please excuse my crappy art as i dont do art and yes the actionbar is an old one that siredblood gave me, thanks again sired.

http://www.youtube.com/watch?v=c84q7tzNleE

Have fun!
-C