Re: [Script] Weapons hud
Posted: Mon Feb 23, 2015 9:01 pm
the spinning logo is a pba animation, and iirc the invy uses FearGui::ShapeView but there's some wackyness when it comes to where it positions in containersperrinoia wrote: PSS: Does anyone know how to create a hud with a rotating shapefile, like how the inventory station has a spinning item, or the main menu when you first launch tribes has the spinning Tribes logo at the bottom?
Code: Select all
// ScriptGL WeaponHUD by GreyHound / Hunden
// based on Andrews original design in hudbot
// slightly modified to draw a box around the mounted weapon by some other dude
$WeaponHud::Texture["Undefined"] = "WeaponHUD.Undefined.tga";
$WeaponHud::Texture["turret"] = "WeaponHUD.turret.tga";
$WeaponHud::Texture["shieldpack"] = "WeaponHUD.shieldpack.tga";
$WeaponHud::Texture["sensorjammerpack"] = "WeaponHUD.sensorjammerpack.tga";
$WeaponHud::Texture["sensorjammer"] = "WeaponHUD.sensorjammer.tga";
$WeaponHud::Texture["repairpack"] = "WeaponHUD.repairpack.tga";
$WeaponHud::Texture["pulse"] = "WeaponHUD.pulse.tga";
$WeaponHud::Texture["motion"] = "WeaponHUD.motion.tga";
$WeaponHud::Texture["ammopack"] = "WeaponHUD.ammopack.tga";
$WeaponHud::Texture["energypack"] = "WeaponHUD.energypack.tga";
$WeaponHud::Texture["sniper"] = "WeaponHUD.sniper.tga";
$WeaponHud::Texture["plasma"] = "WeaponHUD.plasma.tga";
$WeaponHud::Texture["mortar"] = "WeaponHUD.mortar.tga";
$WeaponHud::Texture["grenade"] = "WeaponHUD.grenade.tga";
$WeaponHud::Texture["blaster"] = "WeaponHUD.blaster.tga";
$WeaponHud::Texture["chaingun"] = "WeaponHUD.chaingun.tga";
$WeaponHud::Texture["elf"] = "WeaponHUD.elf.tga";
$WeaponHud::Texture["disc"] = "WeaponHUD.disc.png";
$WeaponHud::Texture["TargetLaser"] = "WeaponHUD.TargetLaser.tga";
$WeaponHud::Texture["camera"] = "WeaponHUD.camera.tga";
$WeaponHud::Texture["inventory"] = "WeaponHUD.inventory.tga";
$WeaponHud::Texture["deployable"] = "WeaponHUD.deployable.tga";
$WeaponHud::Texture["ammostation"] = "WeaponHUD.ammostation.tga";
function vhud::WeaponHud::onRender()
{
if(!Control::getVisible("ScriptGL::vWeaponHud") || $Scriptgl::CurrentGui != "playGui" || $pref::vWeaponHUD::hide == "true")
return;
%pos = Control::getPosition("ScriptGL::vWeaponHud");
%x = getWord(%pos, 0);
%y = getWord(%pos, 1);
glSetFont( "arial", 9, 0, 9 );
%slot = -1;
WeaponHud::Draw(%x + %slot++ * 80, %y + 40, $WeaponHud::Texture["disc"], GetItemCount("Disc"), "Disc Launcher");
WeaponHud::Draw(%x + %slot++ * 80, %y + 40, $WeaponHud::Texture["grenade"], GetItemCount("Grenade Ammo"), "Grenade Launcher");
WeaponHud::Draw(%x + %slot++ * 80, %y + 40, $WeaponHud::Texture["chaingun"], GetItemCount("Bullet"), "Chaingun");
WeaponHud::Draw(%x + %slot++ * 80, %y + 40, $WeaponHud::Texture["sniper"], "~", "Laser Rifle");
WeaponHud::Draw(%x + %slot++ * 80, %y + 40, $WeaponHud::Texture["mortar"], GetItemCount("Mortar Ammo"), "Mortar");
WeaponHud::Draw(%x + %slot++ * 80, %y + 40, $WeaponHud::Texture["blaster"], "~", "Blaster");
WeaponHud::Draw(%x + %slot++ * 80, %y + 40, $WeaponHud::Texture["elf"], "~", "ELF Gun");
WeaponHud::Draw(%x + %slot++ * 80, %y + 40, $WeaponHud::Texture["plasma"], GetItemCount("Plasma Bolt"), "Plasma Gun");
WeaponHud::Draw(10 + %slot++ * 80, %y + 40, $WeaponHud::Texture["TargetLaser"], "~", "Targeting Laser");
%slot = -1;
// WeaponHud::Draw(10 + %slot++ * 80, %y + 1 * 40, $WeaponHud::Texture["Undefined"], 0);
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["turret"], "", "Turret");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["shieldpack"], "", "Shield Pack");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["sensorjammerpack"], "", "Sensor Jammer Pack");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["sensorjammer"], "", "Sensor Jammer");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["repairpack"], "", "Repair Pack");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["pulse"], "", "Pulse Sensor");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["motion"], "", "Motion Sensor");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["ammopack"], "", "Ammo Pack");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["energypack"], "", "Energy Pack");
%slot = -1;
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["camera"], "", "Camera");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["inventory"], "", "Inventory Station");
WeaponHud::Draw(%x + %slot++ * 80, %y, $WeaponHud::Texture["ammostation"], "", "Ammo Station");
}
function WeaponHud::Draw(%x, %y, %tex, %count, %Name)
{
if(getItemCount(%Name) < 1) // Moved here to simplify script. -perrinoia
return;
glEnable($GL_TEXTURE_2D);
glBindTexture($GL_TEXTURE_2D, %tex);
glColor3f(1.0, 1.0, 1.0, 1.0);
glBegin($GL_QUADS);
glTexCoord2f(0.0, 1.0);
glVertex2f(%x, %y);
glTexCoord2f(1.0, 1.0);
glVertex2f(%x+60, %y);
glTexCoord2f(1.0, 0.0);
glVertex2f(%x+60, %y+30);
glTexCoord2f(0.0, 0.0);
glVertex2f(%x, %y+30);
glEnd();
glDrawString(%x + 50, %y + 20, %count);
glColor4ub(255, 255, 255, 255);
if(GetItemdesc(GetMountedItem(0)) == %Name)
glDrawTexture("wephud_border.png", $GLEX_SCALED, %x, %y, 1, 1 );
}
function vhud::WeaponHud::create()
{
if ( $vhud::WeaponHud::Loaded )
return;
$vhud::WeaponHud::Loaded = true;
vhud::create("ScriptGL::vWeaponHud", "0% 0%", "0% 0%", vhud::WeaponHud::onRender );
HUD::New("ScriptGL::vWeaponHud", 200, 200, 330, 75, onMouseRMB, onMouseRMB);
}
vhud::WeaponHud::create();