1. [Backport request] Whoa ThickFrames

    Hey guys, maybe someone has already backported this addon to 3.3.5? I've tried simply changing the version in the toc file to 30300, but there are things not compatible with WoW 3.3.5, as expected, but I'm not sure how and what to fix exactly. The HP text is crooked, target frames are not "thick" etc.

    Link to the addon - https://www.curseforge.com/wow/addon...or-wow-classic

  2. I believe version v1.8f works fine in 3.3.5 12340 client

    So may want to play around with "whoaThickFrames_BCC_v1.8f"

  3. Have you tried it? It seems that 1.8f is about the same as 1.8g, I've tried both now, but they're both buggy on 3.3.5 version of WoW. There might be APIs, hooks and probably something else being used that is not compatible, but not sure how to fix that.

    For example this line - hooksecurefunc("PetFrame_Update", whoaPetFrame) - I could not Google this "PetFrame_Update", it doesn't work and not sure where the creator got it from.

  4. ahhh well you are right with the BCC v1.8g | BCC v1.8f versions
    sillyme thought "BCC v1.8f" was latest version but I see its "BCC v1.8g"

    I am sure though you are right about the API not working for certain UI features this is suppose to offer.
    if you can give a detailed list about what needs to be fixed in it I may be able to help, I never used original version so.

    I believe that hook should be calling the "whoaPetFrame" function within the "wPlayerFrame.lua"
    I suppose you could replace
    "hooksecurefunc("PetFrame_Update", whoaPetFrame)"
    "local hf = CreateFrame("Frame")
    hf:SetScript("OnUpdate", whoaPetFrame)"
    Edited: December 5, 2021

  5. If I understand correctly, this "PetFrame_Update" is calling an already existing thing in WoW code? It gets passed the custom function "whoaPetFrame", but I couldn't find any information about "PetFrame_Update" itself... Like when was that hook added, what was done before it existed etc.

    About what's wrong, I'm trying to fix the crooked stuff, one thing I did manage to "hack", but look:

    HP is not centered, I guess it still thinks it has to be inside the small frame which is still visible, but if I do "/run playerFrameDo()", it will set the custom frame, but only visually.

    Other things are like target frame is not what it's supposed to look like, pet frame is also supposed to look different I guess? At least there is some code for pet frame.

    P.S. Function "whoaPetFrame" is not being called, I'm guessing because of the hook. I tried inserting a print statement inside, but nothing was printed...

  6. I believe that hook should be calling the "whoaPetFrame" function within the "wPlayerFrame.lua"
    I suppose you could replace
    "hooksecurefunc("PetFrame_Update", whoaPetFrame)"
    "local hf = CreateFrame("Frame")
    hf:SetScript("OnUpdate", whoaPetFrame)"

    yeah may just have to play around with some of the hooksecurefunc calls till can get it working

    or can set them to run on events too like

    so then that frame function should run on changing map/instance exp

    :SetScript("OnShow", functionname) -- sets frame to run function on show
    :SetScript("OnUpdate", functionname) -- sets frame to run function on update

    And thanks for the image and detail I see now more about what needs to be done to fix it. Cant offer any promises but I can try and recreate and rescript it to be more accurate UI.
    Edited: December 5, 2021

  7. Unfortunately, this one didn't work:

    -- hooksecurefunc("PlayerFrame_ToPlayerArt", wPlayerFrame)
    local playerframes = CreateFrame("Frame")
    playerframes:SetScript("OnUpdate", wPlayerFrame)

    For playerframes - the function was executed (chat was full of my print spam, something went wrong), but now the frames looked like default frames. For pet frames - still nothing...

    I wanted to learn how to do this, but got stuck on this stuff, because I have no info about what to do. There's probably other cool addons that should be backported, but thought this would be a simpler one.

  8. well glad to see that replacing hooksecurefunc with manual frame scripts works somewhat

    I will try and work on this over the week and see if I cant get somewhere with it before anyone else, Ill be sure to share and post here once and if I do.

    I suppose would just need to replace the hooksecurefunc with frame :SetScript and :RegisterEvent
    that way the functions will actually run now just will have to know what frame functions should run on updates or certain events

    Then id imagine you would need to do some API lua updates within some of these functions to fix the UI of the addon itself.
    Edited: December 5, 2021

  9. Thanks, your help would be much appreciated. Perhaps I will be able to figure out the other stuff if you manage to fix this somehow.

    Regarding this SetScript and RegisterEvent:

    hooksecurefunc("PlayerFrame_ToPlayerArt", wPlayerFrame)

    -- below didn't work fully (print statement worked, nothing else did)
    -- local randomframe = CreateFrame("Frame", "randomframe");
    -- randomframe:SetScript("OnUpdate", wPlayerFrame);
    -- randomframe:RegisterUnitEvent("PLAYER_ENTERING_WOR LD");

    I tried it like that and inserted a print statement in the wPlayerFrame function - it was spamming it like crazy (unlike the hook, which only did it once), but the player frame is like the default one, so not sure, I think it works differently somehow.

    So far for HP centering vertically, commenting this out worked:

    self.healthbar.LeftText:SetPoint("LEFT",self.healt hbar,"LEFT",5,0);
    self.healthbar.RightText:SetPoint("RIGHT",self.hea lthbar,"RIGHT",-5,0);

    But I think it was supposed to show HP and percentages, which didn't work from the beginning (for now).
    Edited: December 5, 2021

  10. I see so the securehook functions do work ? maybe your print was not showing at first cause that certain function was being called too early for a print.

    and yeah the onupdate script will run that function every frame so would be alot the event player_entering_world would make so the function would run when player logs in or changes map instance.

    but if thats the case seems the securehook works maybe just not the inner API of the functions it calls for the UI.

    For HP % you can do

    local Health = UnitHealth("player")
    local MaxHealth = UnitHealthMax("player")
    local HPPercent = Health / MaxHealth
    local hpercent = format("%.1i%%", HPPercent*100)

    ill try and get some work done on it over next few days though ill be sure to update

  11. I managed to get it somewhat working - the healthbars are now thick, text is centered. The securehook seems to work for player and target frames, but not for pet frame I think:

    hooksecurefunc("PetFrame_Update", whoaPetFrame)

    At least that function is not being called, perhaps need something else there.

    This is what it looks like right now after fixing HP bar thickness, text, class colors:

    There still are a few things not working correctly, that I might try to fix.
    Edited: December 5, 2021

  12. nice nice glad to see you are getting somewhere with the editing of this, Seems with the rate you are going you will backport it yourself.

    so I guess we know the hooksecurefunc calls work for most if not all the frames besides the "whoaPetFrame" function,

    Maybe the PetFrame_Update is just something in this version of API that it can't hook into or uses a different name.

    so I guess for whoaPetFrame you will need to call this function with a different frame script or event rather than the securefunchook

    Find a way to add the % values into hp bars and adjust position of it you just about got it

    but yeah other than that seems you making good progress with the UI fixes

  13. This looks amazing! Please keep us updated should you ever release it :)

Posting Permissions

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