1. #1

    Changing Role Indicators in SUF

    I am looking to change the role icons within the Shadowed Unit Frames addon. I have managed to ascertain that the addon uses the games dungeon finder icons as its default unit frame role indicators but I want to be able to use my own textures as these icons are quite low res and I want to jazz it up a bit as the theme isnt really in keeping with a UI I am making. Does anyone know how I go about doing this, or if I can?

  2. #2
    Replacement yes, assuming that the game recognises their replacement like it does other UI graphic replacements.
    Increasing their resolution, no as that is hard-coded into the game.
    You would need to modify SUF to get more options, pulling your own higher resolution versions.
    Quote Originally Posted by DeadmanWalking View Post
    Your forgot to include the part where we blame casuals for everything because blizzard is catering to casuals when casuals got jack squat for new content the entire expansion, like new dungeons and scenarios.
    Quote Originally Posted by Reinaerd View Post
    T'is good to see there are still people valiantly putting the "Ass" in assumption.

  3. #3
    I realise it can be done, but its just how....?! Im no coder.

  4. #4
    The game client uses a virtual path, one which correlates to a file present in the CASC data files.
    If that path exits for real on your hard drive, then in the case of UI graphics and sounds that alternative is used instead.
    Looking at sound replacement packs or graphic replacements such as MiirGui will show you examples.

    Note that for graphic replacements it must be in BLP format, for which there are various converters available, most likely to a more convenient format first for editing, then back again.

    If I can find the image containing the icons, then I will maybe upload it somewhere after conversion to png or tga for you to work on.

    If I can find some user-friendly way of going about the conversion I might put together a post detailing that.
    Quote Originally Posted by DeadmanWalking View Post
    Your forgot to include the part where we blame casuals for everything because blizzard is catering to casuals when casuals got jack squat for new content the entire expansion, like new dungeons and scenarios.
    Quote Originally Posted by Reinaerd View Post
    T'is good to see there are still people valiantly putting the "Ass" in assumption.

  5. #5
    I'm not a fan of replacing textures this way.
    This way the texture is always replaced.
    Maybe this texture is used at another place and your replacement looks shit at this place. Or you want to use a different style for other chars.

    I'll take a look at it later.

  6. #6
    Which comes back to my earlier point, modifying SUF to pull another texture.
    Or can you in any way intercept that request and change it based on which addon is trying to pull it ?
    Quote Originally Posted by DeadmanWalking View Post
    Your forgot to include the part where we blame casuals for everything because blizzard is catering to casuals when casuals got jack squat for new content the entire expansion, like new dungeons and scenarios.
    Quote Originally Posted by Reinaerd View Post
    T'is good to see there are still people valiantly putting the "Ass" in assumption.

  7. #7
    Open ShadowedUnitFrames\modules\indicators.lua

    Go to line 88
    Code:
    function Indicators:UpdateLFDRole(frame, event)
    	if( not frame.indicators.lfdRole or not frame.indicators.lfdRole.enabled ) then return end
    	
    	local role
    	if( frame.unitType ~= "arena" ) then
    		role = UnitGroupRolesAssigned(frame.unitOwner)
    	else
    		local specID = GetArenaOpponentSpec(frame.unitID)
    		role = specID and select(6, GetSpecializationInfoByID(specID))
    	end
    
    	if( role == "TANK" ) then
    		frame.indicators.lfdRole:SetTexCoord(0, 19/64, 22/64, 41/64)
    		frame.indicators.lfdRole:Show()
    	elseif( role == "HEALER" ) then
    		frame.indicators.lfdRole:SetTexCoord(20/64, 39/64, 1/64, 20/64)
    		frame.indicators.lfdRole:Show()
    	elseif( role == "DAMAGER" ) then
    		frame.indicators.lfdRole:SetTexCoord(20/64, 39/64, 22/64, 41/64)
    		frame.indicators.lfdRole:Show()
    	else
    		frame.indicators.lfdRole:Hide()
    	end	
    end
    frame.indicators.lfdRole is a texture.
    You cold do something like this:
    Code:
    if( role == "TANK" ) then
    		frame.indicators.lfdRole:SetTexture("PATH_TO_YOUR_TEXTURE")
    		frame.indicators.lfdRole:Show()
    	elseif( role == "HEALER" ) then
    		frame.indicators.lfdRole:SetTexture("PATH_TO_YOUR_TEXTURE")
    		frame.indicators.lfdRole:Show()
    	elseif( role == "DAMAGER" ) then
    		frame.indicators.lfdRole:SetTexture("PATH_TO_YOUR_TEXTURE")
    		frame.indicators.lfdRole:Show()
    	else
    		frame.indicators.lfdRole:Hide()
    	end
    Last edited by Urtgard; 2016-05-13 at 11:47 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •