Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- The Giant Hud Base, Rebuilt from the ground up by the D3V Team
- require("ui.uieditor.widgets.HUD.ZM_Perks.ZMPerksContainerFactory")
- require("ui.uieditor.widgets.HUD.ZM_RoundWidget.ZmRndContainer")
- require("ui.uieditor.widgets.HUD.ZM_AmmoWidgetFactory.ZmAmmoContainerFactory")
- require("ui.uieditor.widgets.HUD.ZM_Score.ZMScr")
- require("ui.uieditor.widgets.DynamicContainerWidget")
- require("ui.uieditor.widgets.Notifications.Notification")
- require("ui.uieditor.widgets.HUD.ZM_NotifFactory.ZmNotifBGB_ContainerFactory")
- require("ui.uieditor.widgets.HUD.ZM_CursorHint.ZMCursorHint")
- require("ui.uieditor.widgets.HUD.CenterConsole.CenterConsole")
- require("ui.uieditor.widgets.HUD.DeadSpectate.DeadSpectate")
- require("ui.uieditor.widgets.MPHudWidgets.ScorePopup.MPScr")
- require("ui.uieditor.widgets.HUD.ZM_PrematchCountdown.ZM_PrematchCountdown")
- require("ui.uieditor.widgets.Scoreboard.CP.ScoreboardWidgetCP")
- require("ui.uieditor.widgets.HUD.ZM_TimeBar.ZM_BeastmodeTimeBarWidget")
- require("ui.uieditor.widgets.ZMInventory.RocketShieldBluePrint.RocketShieldBlueprintWidget")
- require("ui.uieditor.widgets.Chat.inGame.IngameChatClientContainer")
- require("ui.uieditor.widgets.BubbleGumBuffs.BubbleGumPackInGame")
- -- require("ui.help.t7_ghost_widgets")
- require("menu")
- -- require("ui.help.notifParts")
- CoD.Zombie.CommonHudRequire()
- local function PreLoadCallback(HudRef, InstanceRef)
- CoD.Zombie.CommonPreLoadHud(HudRef, InstanceRef)
- end
- local function PostLoadCallback(HudRef, InstanceRef)
- CoD.Zombie.CommonPostLoadHud(HudRef, InstanceRef)
- end
- CoD.GauntledHealth = InheritFrom(LUI.UIElement)
- function CoD.GauntledHealth.new(HudRef, InstanceRef)
- local Elem = LUI.UIElement.new()
- Elem:setClass(CoD.GauntledHealth)
- Elem.id = "GauntledHealth"
- Elem.soundSet = "default"
- local SkullLifeBase = LUI.UIImage.new(Elem, InstanceRef)
- SkullLifeBase:setLeftRight(false, false, -88, 88)
- SkullLifeBase:setTopBottom(true, false, 230, 252)
- SkullLifeBase:setImage(RegisterImage("gauntlet_skull_life_base"))
- SkullLifeBase:setAlpha(0)
- Elem:addElement(SkullLifeBase)
- Elem.SkullLifeBase = SkullLifeBase
- local SkullLifeSlot1 = LUI.UIImage.new(Elem, InstanceRef)
- SkullLifeSlot1:setLeftRight(false, false, -73, -21)
- SkullLifeSlot1:setTopBottom(true, false, 196, 246)
- SkullLifeSlot1:setImage(RegisterImage("gauntlet_skull_life_slot"))
- SkullLifeSlot1:setAlpha(0)
- Elem:addElement(SkullLifeSlot1)
- Elem.SkullLifeSlot1 = SkullLifeSlot1
- local SkullLifeSlot2 = LUI.UIImage.new(Elem, InstanceRef)
- SkullLifeSlot2:setLeftRight(false, false, -26, 26)
- SkullLifeSlot2:setTopBottom(true, false, 196, 246)
- SkullLifeSlot2:setImage(RegisterImage("gauntlet_skull_life_slot"))
- SkullLifeSlot2:setAlpha(0)
- Elem:addElement(SkullLifeSlot2)
- Elem.SkullLifeSlot2 = SkullLifeSlot2
- local SkullLifeSlot3 = LUI.UIImage.new(Elem, InstanceRef)
- SkullLifeSlot3:setLeftRight(false, false, 21, 73)
- SkullLifeSlot3:setTopBottom(true, false, 196, 246)
- SkullLifeSlot3:setImage(RegisterImage("gauntlet_skull_life_slot"))
- SkullLifeSlot3:setAlpha(0)
- Elem:addElement(SkullLifeSlot3)
- Elem.SkullLifeSlot3 = SkullLifeSlot3
- Elem.Life = {}
- local SkullLife1 = LUI.UIImage.new(Elem, InstanceRef)
- SkullLife1:setLeftRight(false, false, -73, -21)
- SkullLife1:setTopBottom(true, false, 196, 246)
- SkullLife1:setImage(RegisterImage("gauntlet_skull_life"))
- SkullLife1:setAlpha(0)
- Elem:addElement(SkullLife1)
- Elem.Life[1] = SkullLife1
- local SkullLife2 = LUI.UIImage.new(Elem, InstanceRef)
- SkullLife2:setLeftRight(false, false, -26, 26)
- SkullLife2:setTopBottom(true, false, 196, 246)
- SkullLife2:setImage(RegisterImage("gauntlet_skull_life"))
- SkullLife2:setAlpha(0)
- Elem:addElement(SkullLife2)
- Elem.Life[2] = SkullLife2
- local SkullLife3 = LUI.UIImage.new(Elem, InstanceRef)
- SkullLife3:setLeftRight(false, false, 21, 73)
- SkullLife3:setTopBottom(true, false, 196, 246)
- SkullLife3:setImage(RegisterImage("gauntlet_skull_life"))
- SkullLife3:setAlpha(0)
- Elem:addElement(SkullLife3)
- Elem.Life[3] = SkullLife3
- local val = 0
- local function SetGauntletDescs(ModelRef)
- -- local val = Engine.GetModelValue(ModelRef)
- local function ResetFail( a )
- -- RoundStateEnd:setAlpha(1)
- SkullLifeBase:setAlpha(0)
- SkullLifeSlot1:setAlpha(0)
- SkullLifeSlot2:setAlpha(0)
- SkullLifeSlot3:setAlpha(0)
- RoundStateEnd:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- if Engine.GetModelValue(ModelRef) == 1 then
- SkullLife1:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLife1:setAlpha(0)
- SkullLife2:setAlpha(0)
- SkullLife3:setAlpha(0)
- elseif Engine.GetModelValue(ModelRef) == 2 then
- SkullLife1:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLife2:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLife1:setAlpha(0)
- SkullLife2:setAlpha(0)
- SkullLife3:setAlpha(0)
- elseif Engine.GetModelValue(ModelRef) == 3 then
- SkullLife1:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLife2:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLife3:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLife1:setAlpha(0)
- SkullLife2:setAlpha(0)
- SkullLife3:setAlpha(0)
- else
- SkullLife1:setAlpha(0)
- SkullLife2:setAlpha(0)
- SkullLife3:setAlpha(0)
- end
- RoundStateEnd:setAlpha(0)
- end
- if Engine.GetModelValue(ModelRef) ~= 0 then
- -- RoundStateEnd:setText(Engine.GetModelValue(ModelRef))
- RoundStateEnd:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLifeSlot1:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLifeSlot2:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLifeSlot3:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- SkullLifeBase:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- RoundStateEnd:setAlpha(1)
- SkullLifeBase:setAlpha(1)
- SkullLifeSlot1:setAlpha(1)
- SkullLifeSlot2:setAlpha(1)
- SkullLifeSlot3:setAlpha(1)
- for i = 1,Engine.GetModelValue(ModelRef),1 do
- Elem.Life[i]:setAlpha(1)
- end
- -- if Engine.GetModelValue(ModelRef) < 3 then
- Elem:addElement(LUI.UITimer.newElementTimer(5000.000000, true, ResetFail))
- -- end
- end
- end
- local function setForbiddenAim(ModelRef)
- ShootForbidden:setAlpha(Engine.GetModelValue(ModelRef))
- end
- Elem:subscribeToModel( Engine.GetModel(Engine.GetModelForController(InstanceRef),"GauntletFail"), SetGauntletDescs)
- return Elem
- end
- CoD.GauntletWid = InheritFrom(LUI.UIElement)
- function CoD.GauntletWid.new(HudRef,InstanceRef)
- local Elem = LUI.UIElement.new()
- Elem:setClass(CoD.GauntletWid)
- Elem.id = "GauntletWid"
- Elem.soundSet = "default"
- local GauntletTitleLeft = LUI.UIText.new(Elem,InstanceRef)
- GauntletTitleLeft:setLeftRight(true, true, 27, 0)
- GauntletTitleLeft:setTopBottom(true, false, 113, 133)
- GauntletTitleLeft:setAlignment(Enum.LUIAlignment.LUI_ALIGNMENT_LEFT)
- GauntletTitleLeft:setAlignment(Enum.LUIAlignment.LUI_ALIGNMENT_BOTTOM)
- GauntletTitleLeft:setTTF("fonts/black_ops_4.ttf")
- GauntletTitleLeft:setText("SHIELDED\n GOOD LUCK ! ")
- GauntletTitleLeft:setRGB( 0.9215686, 0.6392156, 0.0392156)
- Elem:addElement(GauntletTitleLeft)
- local function SetGauntletTitles(ModelRef)
- local titler = Engine.GetModelValue(ModelRef)
- GauntletTitleLeft:setText( Engine.Localize( titler ) )
- end
- GauntletTitleLeft:subscribeToModel( Engine.GetModel(Engine.GetModelForController(InstanceRef),"GauntletTitle"), SetGauntletTitles)
- local GauntletTitleDescLeftBar = LUI.UIImage.new(Elem, InstanceRef)
- GauntletTitleDescLeftBar:setTopBottom(true, false, 136, 138)
- GauntletTitleDescLeftBar:setLeftRight(true, false, 27, 174)
- GauntletTitleDescLeftBar:setRGB(0.92156863, 0.63921569, 0.03921569)
- Elem:addElement(GauntletTitleDescLeftBar)
- local returnval1 = LUI.UIText.new()
- returnval1:setLeftRight(true, false, 27.000000, 174.000000)
- returnval1:setTopBottom(true, false, 142.000000, 159.5000000)
- returnval1:setRGB(1, 1, 1)
- returnval1:setText("Possess the Shield at the End of the Round")
- returnval1:setTTF("fonts/default.ttf")
- returnval1:setAlignment(Enum.LUIAlignment.LUI_ALIGNMENT_LEFT)
- returnval1:setAlignment(Enum.LUIAlignment.LUI_ALIGNMENT_TOP)
- local function __FUNC_86C_(arg0, arg1)
- SetStateFromText(Elem, arg0, "DefaultState", "Hidden")
- end
- LUI.OverrideFunction_CallOriginalFirst(returnval1, "setText", __FUNC_86C_)
- Elem:addElement(returnval1)
- Elem.description = returnval1
- local function SetGauntletDescs(ModelRef)
- local descs = Engine.GetModelValue(ModelRef)
- returnval1:setText( Engine.Localize( descs ) )
- end
- returnval1:subscribeToModel( Engine.GetModel(Engine.GetModelForController(InstanceRef),"GauntletDesc"), SetGauntletDescs)
- local RoundStateEnd = LUI.UIText.new()
- RoundStateEnd:setLeftRight(true, true, 0, 0)
- RoundStateEnd:setTopBottom(true, false, 90, 145)
- RoundStateEnd:setAlignment(Enum.LUIAlignment.LUI_ALIGNMENT_CENTER)
- RoundStateEnd:setTTF("fonts/black_ops_4.ttf")
- RoundStateEnd:setRGB(0.77647058823,0.0235294117, 0.0705882352)
- RoundStateEnd:setText("Manche Perdue")
- Elem:addElement(RoundStateEnd)
- local ShootForbidden = LUI.UIImage.new(Elem, InstanceRef)
- ShootForbidden:setLeftRight(false, false, -44, 44)
- ShootForbidden:setTopBottom(false, false, -44, 44)
- ShootForbidden:setImage(RegisterImage("gauntlet_forbidden_aim"))
- ShootForbidden:setAlpha(0)
- Elem:addElement(ShootForbidden)
- local HealthIndic = CoD.GauntledHealth.new(Elem, InstanceRef)
- HealthIndic:setLeftRight(false, true, -186, -10)
- HealthIndic:setTopBottom(true, false, 60, 82)
- HealthIndic:setAlpha(0)
- Elem:addElement(HealthIndic)
- local EndGame = CoD.GauntledHealth.new(Elem, InstanceRef)
- EndGame:setLeftRight(false, true, -186, -10)
- EndGame:setTopBottom(true, false, 60, 82)
- EndGame:setAlpha(0)
- Elem:addElement(EndGame)
- local function SetGauntletDescs(ModelRef)
- -- local val = Engine.GetModelValue(ModelRef)
- --[[local function ResetFail( a )
- HealthIndic:setAlpha(1)
- -- RoundStateEnd:setAlpha(1)
- EndGame.SkullLifeBase:setAlpha(0)
- EndGame.SkullLifeSlot1:setAlpha(0)
- EndGame.SkullLifeSlot2:setAlpha(0)
- EndGame.SkullLifeSlot3:setAlpha(0)
- RoundStateEnd:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- EndGame.SkullLife1:setAlpha(0)
- EndGame.SkullLife2:setAlpha(0)
- EndGame.SkullLife3:setAlpha(0)
- RoundStateEnd:setAlpha(0)
- end
- if Engine.GetModelValue(ModelRef) ~= 0 then
- -- RoundStateEnd:setText(Engine.GetModelValue(ModelRef))
- HealthIndic:setAlpha(0)
- RoundStateEnd:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- EndGame.SkullLifeSlot1:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- EndGame.SkullLifeSlot2:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- EndGame.SkullLifeSlot3:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- EndGame.SkullLifeBase:beginAnimation("keyframe", 350, false, false, CoD.TweenType.Linear)
- RoundStateEnd:setAlpha(1)
- EndGame.SkullLifeBase:setAlpha(1)
- EndGame.SkullLifeSlot1:setAlpha(1)
- EndGame.SkullLifeSlot2:setAlpha(1)
- EndGame.SkullLifeSlot3:setAlpha(1)
- for i = 1,Engine.GetModelValue(ModelRef),1 do
- EndGame.Life[i]:setAlpha(1)
- end
- -- if Engine.GetModelValue(ModelRef) < 3 then
- Elem:addElement(LUI.UITimer.newElementTimer(5000.000000, true, ResetFail))
- -- end
- end]]
- local function ResetFail( a )
- EndGame:setAlpha(0)
- HealthIndic:setAlpha(1)
- end
- EndGame:setAlpha(1)
- Elem:addElement(LUI.UITimer.newElementTimer(5000.000000, true, ResetFail))
- end
- local function setForbiddenAim(ModelRef)
- ShootForbidden:setAlpha(Engine.GetModelValue(ModelRef))
- end
- Elem:subscribeToModel( Engine.GetModel(Engine.GetModelForController(InstanceRef),"GauntletFail"), SetGauntletDescs)
- Elem:subscribeToModel( Engine.GetModel(Engine.GetModelForController(InstanceRef), "GauntletShootForbbiden"), setForbiddenAim)
- return Elem
- end
- CoD.ReList = InheritFrom(LUI.UIElement)
- function CoD.ReList.new(HudRef, InstanceRef,widgetType,StartAtLeft,StartAtTop,Rows,Collumns,spacement,width, height)
- local Elem = LUI.UIElement.new()
- Elem:setClass(CoD.ReList)
- Elem.id = "ReList"
- Elem.soundSet = "default"
- Elem.List = {}
- Elem.FullList = {}
- Elem.ListMaxX = Rows
- Elem.ListMaxY = Collumns
- local CurrentElem = 0
- for x=1,Rows,1 do
- Elem.List[x] = {}
- for y=1,Collumns,1 do
- CurrentElem = CurrentElem+1
- --Creating the Elem.List[row][collumn] Array
- Elem.List[x][y] = {}
- --Creating an Parent for the widget for Elem.List[row][collumn]
- Elem.List[x][y] = LUI.UIElement.new(Elem, Instance)
- Elem.List[x][y].Number = CurrentElem
- Elem.List[x][y].GetXY = {X = x, Y = y}
- Elem.List[x][y].Base = Elem
- --Creating the Children with the specified widget
- Elem.List[x][y].Child = widgetType["new"](Elem.List[x][y],Instance)
- Elem.List[x][y]:addElement(Elem.List[x][y].Child)
- --Check if the 1st start at left or right, and other will be created in opposite direction
- local function GetSideVal(val , side)
- if val == true then
- if side == "left" or side == "top" then
- return true
- else
- return false
- end
- else
- if side == "left" or side == "top" then
- return false
- else
- return true
- end
- end
- -- return value
- end
- local LeftAnchor = GetSideVal(StartAtLeft, "left")
- local RightAnchor = GetSideVal(StartAtLeft, "right")
- local TopAnchor = GetSideVal(StartAtTop, "top")
- local BotAnchor = GetSideVal(StartAtTop, "bottom")
- if StartAtLeft == true then
- Elem.List[x][y]:setLeftRight(LeftAnchor, RightAnchor, spacement*(y-1)+(width*(y-1)), spacement*(y-1)+(width*(y-1)) + width)
- else
- Elem.List[x][y]:setLeftRight(LeftAnchor, RightAnchor, spacement*(1-y)+(width*(1-y)), spacement*(1-y)+(width*(1-y)) + width)
- end
- if StartAtTop == true then
- Elem.List[x][y]:setTopBottom(TopAnchor, BotAnchor, spacement*(x-1)+(height*(x-1)), spacement*(x-1)+(height*(x-1)) + height)
- else
- Elem.List[x][y]:setTopBottom(TopAnchor, BotAnchor, spacement*(1-x)+(height*(1-x)), spacement*(1-x)+(height*(1-x)) + height)
- end
- Elem:addElement(Elem.List[x][y])
- Elem.FullList[CurrentElem] = Elem.List[x][y]
- end
- end
- return Elem
- end
- function LUI.createMenu.T7Hud_zm_factory(InstanceRef)
- local HudRef = CoD.Menu.NewForUIEditor("T7Hud_zm_factory")
- if PreLoadCallback then
- PreLoadCallback(HudRef, InstanceRef)
- end
- HudRef.soundSet = "HUD"
- HudRef:setOwner(InstanceRef)
- HudRef:setLeftRight(true, true, 0, 0)
- HudRef:setTopBottom(true, true, 0, 0)
- HudRef:playSound("menu_open", InstanceRef)
- HudRef.buttonModel = Engine.CreateModel(Engine.GetModelForController(InstanceRef), "T7Hud_zm_factory.buttonPrompts")
- HudRef.anyChildUsesUpdateState = true
- --[[local Notif = CoD.GhostNotifs.new(HudRef,InstanceRef,"Origins Shield",{"zmInventory.piece_riotshield_door","zmInventory.piece_riotshield_clamp","zmInventory.piece_riotshield_dolly"})
- Notif:setLeftRight(true, false, 574, 963)
- Notif:setTopBottom(true, false, 3, 54)
- Notif:setScale(0.5)
- HudRef:addElement(Notif)
- local Powerups = CoD.PowerupsRemake.new(HudRef,InstanceRef,"vertical", 2,"left", "bottom")
- Powerups:setLeftRight(true, true, 70, 0)
- Powerups:setTopBottom(true, true, 0, -90)
- -- Powerups:setYRot( 35 )
- -- Powerups:setXRot( 30 )
- HudRef:addElement(Powerups)]]
- local AmmoWidget = CoD.ZmAmmoContainerFactory.new(HudRef, InstanceRef)
- AmmoWidget:setLeftRight(false, true, -427.000000, 3.000000)
- AmmoWidget:setTopBottom(false, true, -232.000000, 0.000000)
- HudRef:addElement(AmmoWidget)
- HudRef.Ammo = AmmoWidget
- --[[local GhostVignette = LUI.UIImage.new(HudRef,InstanceRef)
- GhostVignette:setLeftRight(true,true,0,0)
- GhostVignette:setTopBottom(true,true,0,0)
- GhostVignette:setImage(RegisterImage("uie_t7_ghosts_hud_vignette"))
- HudRef:addElement(GhostVignette)
- --
- local GhostAmmoWidget = CoD.GhostAmmoWidget.new(HudRef,InstanceRef)
- GhostAmmoWidget:setLeftRight(false, true, -267, 0)
- GhostAmmoWidget:setTopBottom(false, true, -90, 0)
- -- GhostAmmoWidget:setYRot( -25 )
- -- GhostAmmoWidget:setXRot( 20 )
- HudRef:addElement(GhostAmmoWidget)
- HudRef.Ammo = GhostAmmoWidget]]
- -- local ChallengesToDo = LUI.UIImage.new(HudRef,InstanceRef)
- -- ChallengesToDo:setLeftRight(true, false, 10, 180)
- -- ChallengesToDo:setTopBottom(true, false, 10, 180)
- -- ChallengesToDo:setImage(RegisterImage("ghost_challenges"))
- --
- -- HudRef:addElement(ChallengesToDo)
- --
- -- local ChallengesToDoList = CoD.ReList.new(HudRef, InstanceRef, CoD.GhostChallengesTODO, true, true, 3, 1, 10, 250, 50)
- -- ChallengesToDoList:setLeftRight(true, false, 10, 370)
- -- ChallengesToDoList:setTopBottom(true, true, 190, 0)
- -- HudRef:addElement(ChallengesToDoList)
- local GauntletWidget = CoD.GauntletWid.new(HudRef,InstanceRef)
- GauntletWidget:setLeftRight(true,true,0,0)
- GauntletWidget:setTopBottom(true, true, 0, 0)
- HudRef:addElement(GauntletWidget)
- local PerksWidget = CoD.ZMPerksContainerFactory.new(HudRef, InstanceRef)
- PerksWidget:setLeftRight(true, false, 0.000000, 250.000000)
- PerksWidget:setTopBottom(false, true, -280.000000, -66.000000)
- PerksWidget:setScale(0.75)
- PerksWidget.PerkList:setHorizontalCount(2)
- PerksWidget.PerkList:setVerticalCount(10)
- HudRef:addElement(PerksWidget)
- HudRef.ZMPerksContainerFactory = PerksWidget
- --[[local GhostScores = CoD.GhostScoreContainer.new(HudRef, InstanceRef)
- GhostScores:setTopBottom(false,true,-90,0)
- GhostScores:setLeftRight(true,false,0,250)
- HudRef:addElement(GhostScores)
- local GhostIGScoreBoard = CoD.GhostScoreBoardInGame.new(HudRef, InstanceRef)
- GhostIGScoreBoard:setLeftRight(false,true,-350, 0)
- GhostIGScoreBoard:setTopBottom(true, false, 0, 200)
- -- GhostIGScoreBoard:setYRot(-12)
- HudRef:addElement(GhostIGScoreBoard)]]
- local ScoreWidget = CoD.ZMScr.new(HudRef, InstanceRef)
- ScoreWidget:setLeftRight(true, false, 30.000000, 164.000000)
- ScoreWidget:setTopBottom(false, true, -256.000000, -128.000000)
- ScoreWidget:setYRot(30.000000)
- -- ScoreWidget:setAlpha(0)
- local function HudStartScore(Unk1, Unk2, Unk3)
- if IsModelValueTrue(InstanceRef, "hudItems.playerSpawned") and
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_VISIBLE) and
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_WEAPON_HUD_VISIBLE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_HARDCORE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_GAME_ENDED) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_DEMO_CAMERA_MODE_MOVIECAM) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_DEMO_ALL_GAME_HUD_HIDDEN) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IN_KILLCAM) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_FLASH_BANGED) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_UI_ACTIVE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_SCOPED) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IN_VEHICLE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IN_GUIDED_MISSILE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SCOREBOARD_OPEN) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IN_REMOTE_KILLSTREAK_STATIC) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_EMP_ACTIVE) then
- return true
- else
- return false
- end
- end
- ScoreWidget:mergeStateConditions({{stateName = "HudStart", condition = HudStartScore}})
- local function PlayerSpawnCallback(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "hudItems.playerSpawned"})
- end
- local function MergeBitVisible(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_HUD_VISIBLE})
- end
- local function MergeBitWeapon(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_WEAPON_HUD_VISIBLE})
- end
- local function MergeBitHardcore(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_HUD_HARDCORE})
- end
- local function MergeBitEndGame(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_GAME_ENDED})
- end
- local function MergeBitDemoMovie(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_DEMO_CAMERA_MODE_MOVIECAM})
- end
- local function MergeBitDemoHidden(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_DEMO_ALL_GAME_HUD_HIDDEN})
- end
- local function MergeBitInKillcam(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_KILLCAM})
- end
- local function MergeBitFlash(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IS_FLASH_BANGED})
- end
- local function MergeBitActive(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_UI_ACTIVE})
- end
- local function MergeBitScoped(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IS_SCOPED})
- end
- local function MergeBitVehicle(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_VEHICLE})
- end
- local function MergeBitMissile(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_GUIDED_MISSILE})
- end
- local function MergeBitBoardOpen(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_SCOREBOARD_OPEN})
- end
- local function MergeBitStaticKill(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_REMOTE_KILLSTREAK_STATIC})
- end
- local function MergeBitEmpActive(ModelRef)
- HudRef:updateElementState(ScoreWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_EMP_ACTIVE})
- end
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "hudItems.playerSpawned"), PlayerSpawnCallback)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_HUD_VISIBLE), MergeBitVisible)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_WEAPON_HUD_VISIBLE), MergeBitWeapon)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_HUD_HARDCORE), MergeBitHardcore)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_GAME_ENDED), MergeBitEndGame)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_DEMO_CAMERA_MODE_MOVIECAM), MergeBitDemoMovie)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_DEMO_ALL_GAME_HUD_HIDDEN), MergeBitDemoHidden)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_KILLCAM), MergeBitInKillcam)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IS_FLASH_BANGED), MergeBitFlash)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_UI_ACTIVE), MergeBitActive)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IS_SCOPED), MergeBitScoped)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_VEHICLE), MergeBitVehicle)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_GUIDED_MISSILE), MergeBitMissile)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_SCOREBOARD_OPEN), MergeBitBoardOpen)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_REMOTE_KILLSTREAK_STATIC), MergeBitStaticKill)
- ScoreWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_EMP_ACTIVE), MergeBitEmpActive)
- HudRef:addElement(ScoreWidget)
- HudRef.Score = ScoreWidget
- local DynaWidget = CoD.DynamicContainerWidget.new(HudRef, InstanceRef)
- DynaWidget:setLeftRight(false, false, -640.000000, 640.000000)
- DynaWidget:setTopBottom(false, false, -360.000000, 360.000000)
- HudRef:addElement(DynaWidget)
- HudRef.fullscreenContainer = DynaWidget
- local NotificationWidget = CoD.Notification.new(HudRef, InstanceRef)
- NotificationWidget:setLeftRight(true, true, 0.000000, 0.000000)
- NotificationWidget:setTopBottom(true, true, 0.000000, 0.000000)
- HudRef:addElement(NotificationWidget)
- HudRef.Notifications = NotificationWidget
- local GumWidget = CoD.ZmNotifBGB_ContainerFactory.new(HudRef, InstanceRef)
- GumWidget:setLeftRight(false, false, -156.000000, 156.000000)
- GumWidget:setTopBottom(true, false, -6.000000, 247.000000)
- GumWidget:setScale(0.750000)
- local function GumCallback(ModelRef)
- if IsParamModelEqualToString(ModelRef, "zombie_bgb_token_notification") then
- AddZombieBGBTokenNotification(HudRef, GumWidget, InstanceRef, ModelRef) -- Add a popup for a 'free hit'
- elseif IsParamModelEqualToString(ModelRef, "zombie_bgb_notification") then
- AddZombieBGBNotification(HudRef, GumWidget, ModelRef) -- Add a popup for the gum you got
- elseif IsParamModelEqualToString(ModelRef, "zombie_notification") then
- AddZombieNotification(HudRef, GumWidget, ModelRef) -- Add a popup for a powerup
- end
- end
- GumWidget:subscribeToGlobalModel(InstanceRef, "PerController", "scriptNotify", GumCallback)
- HudRef:addElement(GumWidget)
- HudRef.ZmNotifBGBContainerFactory = GumWidget
- local HintWidget = CoD.ZMCursorHint.new(HudRef, InstanceRef)
- HintWidget:setLeftRight(false, false, -250.000000, 250.000000)
- HintWidget:setTopBottom(true, false, 522.000000, 616.000000)
- local function ActiveState1x1(Unk1, Unk2, Unk3)
- if IsCursorHintActive(InstanceRef) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_HARDCORE) and
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_VISIBLE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IN_GUIDED_MISSILE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_DEMO_PLAYING) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_FLASH_BANGED) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SELECTING_LOCATIONAL_KILLSTREAK) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SPECTATING_CLIENT) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_UI_ACTIVE) then
- return (Engine.GetModelValue(Engine.GetModel(DataSources.HUDItems.getModel(InstanceRef), "cursorHintIconRatio")) == 1.0)
- else
- return false
- end
- end
- local function ActiveState2x1(Unk1, Unk2, Unk3)
- if IsCursorHintActive(InstanceRef) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_HARDCORE) and
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_VISIBLE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IN_GUIDED_MISSILE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_DEMO_PLAYING) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_FLASH_BANGED) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SELECTING_LOCATIONAL_KILLSTREAK) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SPECTATING_CLIENT) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_UI_ACTIVE) then
- return (Engine.GetModelValue(Engine.GetModel(DataSources.HUDItems.getModel(InstanceRef), "cursorHintIconRatio")) == 2.0)
- else
- return false
- end
- end
- local function ActiveState4x1(Unk1, Unk2, Unk3)
- if IsCursorHintActive(InstanceRef) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_HARDCORE) and
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_VISIBLE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IN_GUIDED_MISSILE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_DEMO_PLAYING) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_FLASH_BANGED) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SELECTING_LOCATIONAL_KILLSTREAK) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SPECTATING_CLIENT) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_UI_ACTIVE) then
- return (Engine.GetModelValue(Engine.GetModel(DataSources.HUDItems.getModel(InstanceRef), "cursorHintIconRatio")) == 4.0)
- else
- return false
- end
- end
- local function ActiveStateNoImg(Unk1, Unk2, Unk3)
- if IsCursorHintActive(InstanceRef) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_HARDCORE) and
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_HUD_VISIBLE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IN_GUIDED_MISSILE) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_DEMO_PLAYING) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_IS_FLASH_BANGED) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SELECTING_LOCATIONAL_KILLSTREAK) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SPECTATING_CLIENT) and not
- Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_UI_ACTIVE) then
- return IsModelValueEqualTo(InstanceRef, "hudItems.cursorHintIconRatio", 0.0)
- else
- return false
- end
- end
- HintWidget:mergeStateConditions({
- {stateName = "Active_1x1", condition = ActiveState1x1},
- {stateName = "Active_2x1", condition = ActiveState2x1},
- {stateName = "Active_4x1", condition = ActiveState4x1},
- {stateName = "Active_NoImage", condition = ActiveStateNoImg}
- })
- local CursorController = Engine.GetModel(Engine.GetModelForController(InstanceRef), "hudItems.showCursorHint")
- local function ShowCallback(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "hudItems.showCursorHint"})
- end
- HintWidget:subscribeToModel(CursorController, ShowCallback)
- local function CursorBitHardcore(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_HUD_HARDCORE})
- end
- local function CursorBitVisible(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_HUD_VISIBLE})
- end
- local function CursorBitMissile(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_GUIDED_MISSILE})
- end
- local function CursorBitDemo(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IS_DEMO_PLAYING})
- end
- local function CursorBitFlash(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IS_FLASH_BANGED})
- end
- local function CursorBitMap(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_SELECTING_LOCATIONAL_KILLSTREAK})
- end
- local function CursorBitSpectating(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_SPECTATING_CLIENT})
- end
- local function CursorBitActive(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_UI_ACTIVE})
- end
- local function CursorRatioChange(ModelRef)
- HudRef:updateElementState(HintWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "hudItems.cursorHintIconRatio"})
- end
- -- This widget reacts to these controller changes
- HintWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_HUD_HARDCORE), CursorBitHardcore)
- HintWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_HUD_VISIBLE), CursorBitVisible)
- HintWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IN_GUIDED_MISSILE), CursorBitMissile)
- HintWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IS_DEMO_PLAYING), CursorBitDemo)
- HintWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_IS_FLASH_BANGED), CursorBitFlash)
- HintWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_SELECTING_LOCATIONAL_KILLSTREAK), CursorBitMap)
- HintWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_SPECTATING_CLIENT), CursorBitSpectating)
- HintWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_UI_ACTIVE), CursorBitActive)
- HintWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "hudItems.cursorHintIconRatio"), CursorRatioChange)
- HudRef:addElement(HintWidget)
- HudRef.CursorHint = HintWidget
- local CenterCon = CoD.CenterConsole.new(HudRef, InstanceRef)
- CenterCon:setLeftRight(false, false, -370.000000, 370.000000)
- CenterCon:setTopBottom(true, false, 68.500000, 166.500000)
- HudRef:addElement(CenterCon)
- HudRef.ConsoleCenter = CenterCon
- local DeadOverlay = CoD.DeadSpectate.new(HudRef, InstanceRef)
- DeadOverlay:setLeftRight(false, false, -150.000000, 150.000000)
- DeadOverlay:setTopBottom(false, true, -180.000000, -120.000000)
- HudRef:addElement(DeadOverlay)
- HudRef.DeadSpectate = DeadOverlay
- local ScoreBd = CoD.MPScr.new(HudRef, InstanceRef)
- ScoreBd:setLeftRight(false, false, -50.000000, 50.000000)
- ScoreBd:setTopBottom(true, false, 233.500000, 258.500000)
- local function MpCallback(ModelRef)
- if IsParamModelEqualToString(ModelRef, "score_event") then
- PlayClipOnElement(HudRef, {elementName = "MPScore", clipName = "NormalScore"}, InstanceRef)
- SetMPScoreText(HudRef, ScoreBd, InstanceRef, ModelRef)
- end
- end
- HudRef:subscribeToGlobalModel(InstanceRef, "PerController", "scriptNotify", MpCallback)
- HudRef:addElement(ScoreBd)
- HudRef.MPScore = ScoreBd
- local PreMatch = CoD.ZM_PrematchCountdown.new(HudRef, InstanceRef)
- PreMatch:setLeftRight(false, false, -640.000000, 640.000000)
- PreMatch:setTopBottom(false, false, -360.000000, 360.000000)
- HudRef:addElement(PreMatch)
- HudRef.ZMPrematchCountdown0 = PreMatch
- local ScoreCP = CoD.ScoreboardWidgetCP.new(HudRef, InstanceRef)
- ScoreCP:setLeftRight(false, false, -503.000000, 503.000000)
- ScoreCP:setTopBottom(true, false, 247.000000, 773.000000)
- -- ScoreCP:setAlpha(0)
- HudRef:addElement(ScoreCP)
- HudRef.ScoreboardWidget = ScoreCP
- local BeastTimer = CoD.ZM_BeastmodeTimeBarWidget.new(HudRef, InstanceRef)
- HudRef:setLeftRight(false, false, -242.500000, 321.500000)
- HudRef:setTopBottom(false, true, -174.000000, -18.000000)
- HudRef:addElement(BeastTimer)
- HudRef.ZMBeastBar = BeastTimer
- local ShieldWidget = CoD.RocketShieldBlueprintWidget.new(HudRef, InstanceRef)
- ShieldWidget:setLeftRight(true, false, -36.500000, 277.500000)
- ShieldWidget:setTopBottom(true, false, 104.000000, 233.000000)
- ShieldWidget:setScale(0.800000)
- local function ShieldCallback(Unk1, Unk2, Unk3)
- if Engine.IsVisibilityBitSet(InstanceRef, Enum.UIVisibilityBit.BIT_SCOREBOARD_OPEN) then end
- return AlwaysFalse() -- Because the shield isn't available...
- end
- ShieldWidget:mergeStateConditions({{stateName = "Scoreboard", condition = ShieldCallback}})
- local function ShieldParts(ModelRef)
- HudRef:updateElementState(ShieldWidget, {name = "model_validation",
- menu = HudRef, menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "zmInventory.widget_shield_parts"})
- end
- local function ShieldBitOpen(ModelRef)
- HudRef:updateElementState(ShieldWidget, {name = "model_validation",
- menu = HudRef, modelValue = Engine.GetModelValue(ModelRef),
- modelName = "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_SCOREBOARD_OPEN})
- end
- ShieldWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "zmInventory.widget_shield_parts"), ShieldParts)
- ShieldWidget:subscribeToModel(Engine.GetModel(Engine.GetModelForController(InstanceRef), "UIVisibilityBit." .. Enum.UIVisibilityBit.BIT_SCOREBOARD_OPEN), ShieldBitOpen)
- HudRef:addElement(ShieldWidget)
- HudRef.RocketShieldBlueprintWidget = ShieldWidget
- local ChatContainer = CoD.IngameChatClientContainer.new(HudRef, InstanceRef)
- ChatContainer:setLeftRight(true, false, 0.000000, 360.000000)
- ChatContainer:setTopBottom(true, false, -2.500000, 717.500000)
- HudRef:addElement(ChatContainer)
- HudRef.IngameChatClientContainer = ChatContainer
- local ChatContainer2 = CoD.IngameChatClientContainer.new(HudRef, InstanceRef)
- ChatContainer2:setLeftRight(true, false, 0.000000, 360.000000)
- ChatContainer2:setTopBottom(true, false, -2.500000, 717.500000)
- HudRef:addElement(ChatContainer2)
- HudRef.IngameChatClientContainer0 = ChatContainer2
- local GumPack = CoD.BubbleGumPackInGame.new(HudRef, InstanceRef)
- GumPack:setLeftRight(false, false, -184.000000, 184.000000)
- GumPack:setTopBottom(true, false, 36.000000, 185.000000)
- HudRef:addElement(GumPack)
- HudRef.BubbleGumPackInGame = GumPack
- ScoreWidget.navigation = {up = ScoreCP, right = ScoreCP}
- ScoreCP.navigation = {left = ScoreWidget, down = ScoreWidget}
- CoD.Menu.AddNavigationHandler(HudRef, HudRef, InstanceRef)
- local function MenuLoadedCallback(HudObj, EventObj)
- SizeToSafeArea(HudObj, InstanceRef)
- return HudObj:dispatchEventToChildren(EventObj)
- end
- HudRef:registerEventHandler("menu_loaded", MenuLoadedCallback)
- -- Not sure why these are explicitly set, but they are
- ScoreWidget.id = "Score"
- ScoreCP.id = "ScoreboardWidget"
- HudRef:processEvent({name = "menu_loaded", controller = InstanceRef})
- HudRef:processEvent({name = "update_state", menu = HudRef})
- if not HudRef:restoreState() then
- HudRef.ScoreboardWidget:processEvent({name = "gain_focus", controller = InstanceRef})
- end
- -- D3V Team logo (Only difference from stock!)
- local DevText = CoD.TextWithBg.new(HudRef, InstanceRef)
- DevText:setLeftRight(true, false, 20, 255)
- DevText:setTopBottom(true, false, 20, 50)
- DevText.Text:setText("D3V Team: L3ak Mod Demo v1.0.0")
- DevText.Bg:setRGB(0.098, 0.098, 0.098) -- RGBA are all specified in float range (0-1) (Byte / 255)
- DevText.Bg:setAlpha(0.8)
- DevText:setAlpha(0)
- local stringDev = ""
- -- DevText.Text = DevText
- DevText.Text:setText("Ghost HUD thx > Robit" )
- local function UpdateDevTextLabel(elem)
- local function __FUNC_2AD00_(arg1)
- UpdateDevTextLabel(DevText)
- end
- -- elem.Text:setText(stringDev)
- while true do
- if Dvar.keyboard_touch:get() ~= "nil" then
- if Dvar.keyboard_touch:get() ~= "{space}" then
- stringDev = stringDev .. tostring(Dvar.keyboard_touch:get())
- elseif Dvar.keyboard_touch:get() == "{del}" then
- local newstring = ""
- for i=1,#stringDev-2,1 do
- newstring = newstring .. stringDev[i]
- end
- stringDev = newstring
- else
- stringDev = stringDev .. " "
- end
- elem.Text:setText(stringDev)
- Engine.SetDvar("keyboard_touch", "nil")
- end
- HudRef:addElement(LUI.UITimer.newElementTimer(250.000000, true, __FUNC_2AD00_))
- break
- end
- end
- -- UpdateDevTextLabel(DevText)
- HudRef:addElement(DevText)
- HudRef.DevWins = DevText
- -- Engine.ExecNow(InstanceRef, "clearKeyStates")
- -- Engine.BindCommand(InstanceRef, "+melee", "W")
- local function HudCloseCallback(SenderObj)
- SenderObj.ZMPerksContainerFactory:close()
- SenderObj.Rounds:close()
- SenderObj.Ammo:close()
- SenderObj.Score:close()
- SenderObj.fullscreenContainer:close()
- SenderObj.Notifications:close()
- SenderObj.ZmNotifBGBContainerFactory:close()
- SenderObj.CursorHint:close()
- SenderObj.ConsoleCenter:close()
- SenderObj.DeadSpectate:close()
- SenderObj.MPScore:close()
- SenderObj.ZMPrematchCountdown0:close()
- SenderObj.ScoreboardWidget:close()
- SenderObj.ZMBeastBar:close()
- SenderObj.RocketShieldBlueprintWidget:close()
- SenderObj.IngameChatClientContainer:close()
- SenderObj.IngameChatClientContainer0:close()
- SenderObj.BubbleGumPackInGame:close()
- SenderObj.DevWins:close()
- Engine.GetModel(Engine.GetModelForController(InstanceRef), "T7Hud_zm_factory.buttonPrompts")
- Engine.UnsubscribeAndFreeModel()
- end
- LUI.OverrideFunction_CallOriginalSecond(HudRef, "close", HudCloseCallback)
- if PostLoadCallback then
- PostLoadCallback(HudRef, InstanceRef)
- end
- return HudRef
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement