Download FlagHud

Arch

Legions Developer
For some of your scripts you recommend to extract the ZIP archive, for others it's ok to just place it in the live folder. Does the former still apply, or can all your scripts be left un-extracted by now? I ask because of tidyness / ease of removal.

Keep up the good work.
Dragging and dropping will do same thing as extracting. Whether you extract to the desktop copy into the folder or just drag it fright from the zip, it doesn't really matter.
 

Heisenberg

New Member
I'm referring to the difference between placing an ZIP file into the folder, or extracting its contents. Not the same.
 

Heisenberg

New Member
Ok, maybe RockeyRex can edit his first post. I saw the ZIP gets extracted when you run Legions, but due to the two different statements, wasn't sure whether all his scripts are "ready" that way. I don't find it to be self evident.
 

Arch

Legions Developer
Rockey, is there any way of adding a png image as a background on the latest version?
 

57thEnryu

Member
Code:
// FlagHud by RockeyRex
 
 
// TODO:
// Find a way to get flag status when joining the game.
 
 
 
// Cleans the values. For means or another
function FlagHud_Reset(%this)
{
    $FlagHud_Team1D = "...";
    $FlagHud_Team2D = "...";
    if(%this == 1)
    {
        HudOverlay.setHudElementText($HudOverlay::FlagHudText, "..." NL "...");
    }
    else if(%this == 2)
    {
        $FlagHud_Team1D = "Home";
        $FlagHud_Team2D = "Home";
    }
}
 
// Let's see what we do with our gathered info.
function FlagHud(%team, %player, %flagevent)
{
    if(stripColorCodes(%team) $= "Alpha")
    {
        if(%flagevent == 0)
        {
            $FlagHud_Team1D = "Dropped";
            $FlagHud_Team1T = getSimTime();
        }
        else if(%flagevent == 1)
        {
            $FlagHud_Team1D = getSubStr(stripColorCodes(%player), 0 , 10);
        }
        else if(%flagevent == 2)
        {
            $FlagHud_Team1D = "Home";
        }
    }
    else if(stripColorCodes(%team) $= "Beta")
    {
        if(%flagevent == 0)
        {
            $FlagHud_Team2D = "Dropped";
            $FlagHud_Team2T = getSimTime();
        }
        else if(%flagevent == 1)
        {
            $FlagHud_Team2D = getSubStr(stripColorCodes(%player), 0 , 10);
        }
        else if(%flagevent == 2)
        {
            $FlagHud_Team2D = "Home";
        }
    }
    FlagHud_Refresh();
}
 
// This function handles updating of the hud elements as well as the dropped timer.
// Todo: Align the fookin flag status.... =(
function FlagHud_Refresh()
{
    %tabs = "<tab:10, 200>";
    if($FlagHud_Team1D $= "Dropped")
    {
        %team1d = $FlagHud_Team1D SPC mFloor(30 - (getSimTime() - $FlagHud_Team1T) / 1000);
    }
    else
    {
        %team1d = $FlagHud_Team1D;
    }
    if($FlagHud_Team2D $= "Dropped")
    {
        %team2d = $FlagHud_Team2D SPC mFloor(30 - (getSimTime() - $FlagHud_Team2T) / 1000);
    }
    else
    {
        %team2d = $FlagHud_Team2D;
    }
    HudOverlay.setHudElementText($HudOverlay::FlagHudDText, %team1d NL %team2d);
    if($FlagHud_Active && !isEventPending($FlagHud_Schedule))
    {
        $FlagHud_Schedule = schedule(1000, 0, FlagHud_Refresh);
    }
}
 
addMessageCallback("MsgJoinWelcome", FlagHudCatch);
addMessageCallback("MsgRespawned", FlagHudCatch);
addMessageCallback("MsgPracticeEnd", FlagHudCatch);
addMessageCallback("MsgCtfLlamaGrab", FlagHudCatch);
addMessageCallback("MsgCtfOdGrab", FlagHudCatch);
addMessageCallback("MsgCtfFlagGrab", FlagHudCatch);
addMessageCallback("MsgCtfFlagCatch", FlagHudCatch);
addMessageCallback("MsgCtfFlagPickup", FlagHudCatch);
addMessageCallback("MsgCtfFlagThrow", FlagHudCatch);
addMessageCallback("MsgCtfFlagDrop", FlagHudCatch);
addMessageCallback("MsgCtfFlagCap", FlagHudCatch);
addMessageCallback("MsgCtfFlagReturn", FlagHudCatch);
 
function FlagHudCatch(%msg, %a0, %a1, %a2, %a3)
{
    %msg = detag(%msg);
    %a1 = detag(%a1);
    %a2 = detag(%a2);
    %a1 = replaceTeamStrings(%a1);
    %a2 = replaceTeamStrings(%a2);
 
    switch$(%msg)
    {
        case "MsgJoinWelcome":
            commandToServer('ShowScoreHud');
 
        case "MsgRespawned":
            commandToServer('ShowScoreHud');
 
        case "MsgCtfLlamaGrab":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfOdGrab":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfFlagGrab":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfFlagCatch":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfFlagPickup":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfFlagThrow":
            FlagHud(%a1, %a2, 0);
 
        case "MsgCtfFlagDrop":
            FlagHud(%a1, %a2, 0);
 
        case "MsgCtfFlagCap":
            commandToServer('ShowScoreHud');
            FlagHud(%a1, %a2, 2);
     
        case "MsgCtfFlagReturn":
            FlagHud(%a1, %a2, 2);
 
        case "MsgPracticeEnd":
            schedule(100, 0, FlagHud_Reset, 2);
    }
}
 
 
package FlagHudPack
{
    // This is what we use to fetch our scores and team names.
    function handleSetScoreHudHeader(%a0, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9 , %a10)
    {
        parent::handleSetScoreHudHeader(%a0, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9 , %a10);
        %a4 = replaceTeamStrings("\\t0" @ %a4 @ "");
        %a8 = replaceTeamStrings("\\t1" @ %a8 @ "");
        %team1 = %a6 SPC %a4;
        %team2 = %a10 SPC %a8;
        HudOverlay.setHudElementText($HudOverlay::FlagHudText, %team1 NL %team2);
    }
 
    // Let's create our hud elements.
    function HudOverlay::AddHudElements(%this)
    {
        parent::AddHudElements(%this);
 
        // FlagHud Container
          %index = %this.addHudElement();
          %this.setHudElementPosition(%index, 10, 10);
          %this.setHudElementBaseTextureSize(%index, 170, 40);
        %this.setHudElementParent(%index, $HudElement::BaseContainer);
        %this.setHudElementPositionAnchor(%index, "Left", "Top");
          %this.setHudElementRenderWhenFollowing(%index, true);
        %this.setHudElementRenderWhenDead(%index, true);
          $HudElement::FlagHudC = %index;
     
        %index = %this.AddHudElement();
        %this.setHudElementTexture(%index, "client/gui/images/hud/FlagHud");
        %this.setHudElementPosition(%index, 85, 20);
        %this.setHudElementPositionAnchor(%index, "HCenter", "VCenter");
        %this.setHudElementParent(%index, $HudElement::FlagHudC);
        %this.setHudElementRenderWhenDead(%index, true);
        $HudOverlay::FlagHud = %index;
     
        %index = %this.AddHudElement();
        %this.setHudElementPosition(%index, 5, 20);
        %this.setHudElementParent(%index, $HudElement::FlagHudC);
        %this.setHudElementPositionAnchor(%index, "Left", "VCenter");
        %this.setHudElementRenderWhenDead(%index, true);
        $HudOverlay::FlagHudText = %index;
     
        %index = %this.AddHudElement();
        %this.setHudElementPosition(%index, 62, 20);
        %this.setHudElementParent(%index, $HudElement::FlagHudC);
        %this.setHudElementPositionAnchor(%index, "Left", "VCenter");
        %this.setHudElementRenderWhenDead(%index, true);
        $HudOverlay::FlagHudDText = %index;
    }
 
    // When the basic HUD gets activated, we wish to reset our values and make the hud active.
    function HudOverlay::OnWake(%this)
    {
        parent::OnWake(%this);
        FlagHud_Reset(1);
        $FlagHud_Active = 1;
        FlagHud_Refresh();
    }
 
    // And when the basic hud gets inactive, we will also go to sleep.
    function HudOverlay::OnSleep(%this)
    {
        parent::OnSleep(%this);
    }
};
activatepackage(FlagHudPack);

Location to put the attached image "client/gui/images/hud". It works for me nicely.
 

Attachments

  • FlagHud.png
    FlagHud.png
    2.9 KB · Views: 3

Arch

Legions Developer
Code:
// FlagHud by RockeyRex
 
 
// TODO:
// Find a way to get flag status when joining the game.
 
 
 
// Cleans the values. For means or another
function FlagHud_Reset(%this)
{
    $FlagHud_Team1D = "...";
    $FlagHud_Team2D = "...";
    if(%this == 1)
    {
        HudOverlay.setHudElementText($HudOverlay::FlagHudText, "..." NL "...");
    }
    else if(%this == 2)
    {
        $FlagHud_Team1D = "Home";
        $FlagHud_Team2D = "Home";
    }
}
 
// Let's see what we do with our gathered info.
function FlagHud(%team, %player, %flagevent)
{
    if(stripColorCodes(%team) $= "Alpha")
    {
        if(%flagevent == 0)
        {
            $FlagHud_Team1D = "Dropped";
            $FlagHud_Team1T = getSimTime();
        }
        else if(%flagevent == 1)
        {
            $FlagHud_Team1D = getSubStr(stripColorCodes(%player), 0 , 10);
        }
        else if(%flagevent == 2)
        {
            $FlagHud_Team1D = "Home";
        }
    }
    else if(stripColorCodes(%team) $= "Beta")
    {
        if(%flagevent == 0)
        {
            $FlagHud_Team2D = "Dropped";
            $FlagHud_Team2T = getSimTime();
        }
        else if(%flagevent == 1)
        {
            $FlagHud_Team2D = getSubStr(stripColorCodes(%player), 0 , 10);
        }
        else if(%flagevent == 2)
        {
            $FlagHud_Team2D = "Home";
        }
    }
    FlagHud_Refresh();
}
 
// This function handles updating of the hud elements as well as the dropped timer.
// Todo: Align the fookin flag status.... =(
function FlagHud_Refresh()
{
    %tabs = "<tab:10, 200>";
    if($FlagHud_Team1D $= "Dropped")
    {
        %team1d = $FlagHud_Team1D SPC mFloor(30 - (getSimTime() - $FlagHud_Team1T) / 1000);
    }
    else
    {
        %team1d = $FlagHud_Team1D;
    }
    if($FlagHud_Team2D $= "Dropped")
    {
        %team2d = $FlagHud_Team2D SPC mFloor(30 - (getSimTime() - $FlagHud_Team2T) / 1000);
    }
    else
    {
        %team2d = $FlagHud_Team2D;
    }
    HudOverlay.setHudElementText($HudOverlay::FlagHudDText, %team1d NL %team2d);
    if($FlagHud_Active && !isEventPending($FlagHud_Schedule))
    {
        $FlagHud_Schedule = schedule(1000, 0, FlagHud_Refresh);
    }
}
 
addMessageCallback("MsgJoinWelcome", FlagHudCatch);
addMessageCallback("MsgRespawned", FlagHudCatch);
addMessageCallback("MsgPracticeEnd", FlagHudCatch);
addMessageCallback("MsgCtfLlamaGrab", FlagHudCatch);
addMessageCallback("MsgCtfOdGrab", FlagHudCatch);
addMessageCallback("MsgCtfFlagGrab", FlagHudCatch);
addMessageCallback("MsgCtfFlagCatch", FlagHudCatch);
addMessageCallback("MsgCtfFlagPickup", FlagHudCatch);
addMessageCallback("MsgCtfFlagThrow", FlagHudCatch);
addMessageCallback("MsgCtfFlagDrop", FlagHudCatch);
addMessageCallback("MsgCtfFlagCap", FlagHudCatch);
addMessageCallback("MsgCtfFlagReturn", FlagHudCatch);
 
function FlagHudCatch(%msg, %a0, %a1, %a2, %a3)
{
    %msg = detag(%msg);
    %a1 = detag(%a1);
    %a2 = detag(%a2);
    %a1 = replaceTeamStrings(%a1);
    %a2 = replaceTeamStrings(%a2);
 
    switch$(%msg)
    {
        case "MsgJoinWelcome":
            commandToServer('ShowScoreHud');
 
        case "MsgRespawned":
            commandToServer('ShowScoreHud');
 
        case "MsgCtfLlamaGrab":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfOdGrab":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfFlagGrab":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfFlagCatch":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfFlagPickup":
            FlagHud(%a1, %a2, 1);
 
        case "MsgCtfFlagThrow":
            FlagHud(%a1, %a2, 0);
 
        case "MsgCtfFlagDrop":
            FlagHud(%a1, %a2, 0);
 
        case "MsgCtfFlagCap":
            commandToServer('ShowScoreHud');
            FlagHud(%a1, %a2, 2);
 
        case "MsgCtfFlagReturn":
            FlagHud(%a1, %a2, 2);
 
        case "MsgPracticeEnd":
            schedule(100, 0, FlagHud_Reset, 2);
    }
}
 
 
package FlagHudPack
{
    // This is what we use to fetch our scores and team names.
    function handleSetScoreHudHeader(%a0, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9 , %a10)
    {
        parent::handleSetScoreHudHeader(%a0, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9 , %a10);
        %a4 = replaceTeamStrings("\\t0" @ %a4 @ "");
        %a8 = replaceTeamStrings("\\t1" @ %a8 @ "");
        %team1 = %a6 SPC %a4;
        %team2 = %a10 SPC %a8;
        HudOverlay.setHudElementText($HudOverlay::FlagHudText, %team1 NL %team2);
    }
 
    // Let's create our hud elements.
    function HudOverlay::AddHudElements(%this)
    {
        parent::AddHudElements(%this);
 
        // FlagHud Container
          %index = %this.addHudElement();
          %this.setHudElementPosition(%index, 10, 10);
          %this.setHudElementBaseTextureSize(%index, 170, 40);
        %this.setHudElementParent(%index, $HudElement::BaseContainer);
        %this.setHudElementPositionAnchor(%index, "Left", "Top");
          %this.setHudElementRenderWhenFollowing(%index, true);
        %this.setHudElementRenderWhenDead(%index, true);
          $HudElement::FlagHudC = %index;
 
        %index = %this.AddHudElement();
        %this.setHudElementTexture(%index, "client/gui/images/hud/FlagHud");
        %this.setHudElementPosition(%index, 85, 20);
        %this.setHudElementPositionAnchor(%index, "HCenter", "VCenter");
        %this.setHudElementParent(%index, $HudElement::FlagHudC);
        %this.setHudElementRenderWhenDead(%index, true);
        $HudOverlay::FlagHud = %index;
 
        %index = %this.AddHudElement();
        %this.setHudElementPosition(%index, 5, 20);
        %this.setHudElementParent(%index, $HudElement::FlagHudC);
        %this.setHudElementPositionAnchor(%index, "Left", "VCenter");
        %this.setHudElementRenderWhenDead(%index, true);
        $HudOverlay::FlagHudText = %index;
 
        %index = %this.AddHudElement();
        %this.setHudElementPosition(%index, 62, 20);
        %this.setHudElementParent(%index, $HudElement::FlagHudC);
        %this.setHudElementPositionAnchor(%index, "Left", "VCenter");
        %this.setHudElementRenderWhenDead(%index, true);
        $HudOverlay::FlagHudDText = %index;
    }
 
    // When the basic HUD gets activated, we wish to reset our values and make the hud active.
    function HudOverlay::OnWake(%this)
    {
        parent::OnWake(%this);
        FlagHud_Reset(1);
        $FlagHud_Active = 1;
        FlagHud_Refresh();
    }
 
    // And when the basic hud gets inactive, we will also go to sleep.
    function HudOverlay::OnSleep(%this)
    {
        parent::OnSleep(%this);
    }
};
activatepackage(FlagHudPack);

Location to put the attached image "client/gui/images/hud". It works for me nicely.
Old version. Latest version uses strings instead of all this...
Code:
        // FlagHud Container
          %index = %this.addHudElement();
          %this.setHudElementPosition(%index, 10, 10);
          %this.setHudElementBaseTextureSize(%index, 170, 40);
        %this.setHudElementParent(%index, $HudElement::BaseContainer);
        %this.setHudElementPositionAnchor(%index, "Left", "Top");
          %this.setHudElementRenderWhenFollowing(%index, true);
        %this.setHudElementRenderWhenDead(%index, true);
          $HudElement::FlagHudC = %index;
 
        %index = %this.AddHudElement();
        %this.setHudElementTexture(%index, "client/gui/images/hud/FlagHud");
        %this.setHudElementPosition(%index, 85, 20);
        %this.setHudElementPositionAnchor(%index, "HCenter", "VCenter");
        %this.setHudElementParent(%index, $HudElement::FlagHudC);
        %this.setHudElementRenderWhenDead(%index, true);
        $HudOverlay::FlagHud = %index;
 
        %index = %this.AddHudElement();
        %this.setHudElementPosition(%index, 5, 20);
        %this.setHudElementParent(%index, $HudElement::FlagHudC);
        %this.setHudElementPositionAnchor(%index, "Left", "VCenter");
        %this.setHudElementRenderWhenDead(%index, true);
        $HudOverlay::FlagHudText = %index;
 
        %index = %this.AddHudElement();
        %this.setHudElementPosition(%index, 62, 20);
        %this.setHudElementParent(%index, $HudElement::FlagHudC);
        %this.setHudElementPositionAnchor(%index, "Left", "VCenter");
        %this.setHudElementRenderWhenDead(%index, true);
        $HudOverlay::FlagHudDText = %index;
 

Arch

Legions Developer
Top