WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   AddOn Help/Support (https://www.wowinterface.com/forums/forumdisplay.php?f=3)
-   -   Help with simple addon - enforcing cvars (https://www.wowinterface.com/forums/showthread.php?t=55964)

Kakjens 01-15-18 01:43 AM

Ammako, could you reword your example? At least for me, it sounded confusing.
Edit. OK, this should be more clear:
During ADDON_LOADED event cleanExit obtains the saved value (for example, true). In step 2 the value of cleanExit is changed to false. However, game crashes and the new value of cleanExit isn't saved.
Could detection of crash be attempted by using /played?

aallkkaa 01-15-18 06:45 PM

Quote:

Originally Posted by Ammako (Post 326490)
Saved Variables don't get written to until you reload/logout/exit the game, no matter how many changes you make.

Darn, you're right! I had completelly forgotten that!

X33STORM 02-17-18 09:01 AM

Something is amiss, some cvars are not being enforced it seems.
Maybe i fucked something up?

If anyone is able to fix it?
Ideally it should enforce only on login and reload.

X33STORM.lua

Code:

local function eventHandler(self,event,...)

-- Floating Combat Text
SetCVar("enableFloatingCombatText", 1)
SetCVar("floatingCombatTextFloatMode", 1)
SetCVar("floatingCombatTextAllSpellMechanics", 0)
SetCVar("floatingCombatTextAuras", 0)
SetCVar("floatingCombatTextCombatDamage", 1)
SetCVar("floatingCombatTextCombatHealing", 1)
SetCVar("floatingCombatTextCombatDamageAllAutos", 1)
SetCVar("floatingCombatTextCombatDamageDirectionalScale", 0.3)
SetCVar("floatingCombatTextCombatDamageDirectionalOffset", 13)
SetCVar("floatingCombatTextCombatHealingAbsorbSelf", 0)
SetCVar("floatingCombatTextCombatHealingAbsorbTarget", 1)
SetCVar("floatingCombatTextCombatLogPeriodicSpells", 1)
SetCVar("floatingCombatTextCombatState", 1)
SetCVar("floatingCombatTextComboPoints", 1)
SetCVar("floatingCombatTextDamageReduction", 0)
SetCVar("floatingCombatTextDodgeParryMiss", 1)
SetCVar("floatingCombatTextFriendlyHealers", 0)
SetCVar("floatingCombatTextHonorGains", 1)
SetCVar("floatingCombatTextLowManaHealth", 0)
SetCVar("floatingCombatTextEnergyGains", 0)
SetCVar("floatingCombatTextPeriodicEnergyGains", 0)
SetCVar("floatingCombatTextPetMeleeDamage", 1)
SetCVar("floatingCombatTextPetSpellDamage", 1)
SetCVar("floatingCombatTextReactives", 0)
SetCVar("floatingCombatTextRepChanges", 0)
SetCVar("floatingCombatTextSpellMechanics", 1)
SetCVar("floatingCombatTextSpellMechanicsOther", 1)

-- Nameplate Settings
SetCVar("ShowClassColorInFriendlyNameplate", 1)
SetCVar("nameplateMaxDistance", 65)
SetCVar("nameplateShowAll", 1)
SetCVar("nameplateShowSelf", 0)
SetCVar("nameplateShowOnlyNames", 0)
SetCVar("nameplateShowDebuffsOnFriendly", 1)
--SetCVar("nameplateShowFriendlyNPCs", 1)
SetCVar("nameplateShowEnemies", 1)
SetCVar("nameplateShowFriends", 1)
SetCVar("NameplateMotion", 1)
SetCVar("nameplateLargeTopInset", -1)
SetCVar("nameplateOtherTopInset", -1)
SetCVar("nameplateLargeBottomInset", -1)
SetCVar("nameplateOtherBottomInset", -1)
SetCVar("nameplateHorizontalScale", 1)
SetCVar("nameplateOverlapV", 0.45)
SetCVar("nameplateOverlapH", 0.8)

-- Misc
SetCVar("autoLootDefault", 1)
SetCVar("TargetNearestUseNew", 0)
SetCVar("showQuestTrackingTooltips", 1)

-- Camera
SetCVar("cameraDistanceMaxZoomFactor", 2.6)
SetCVar("test_cameraDynamicPitch", 1)
SetCVar("test_cameraTargetFocusEnemyEnable", 0)
SetCVar("test_cameraDynamicPitchBaseFovPad", 0.45)
SetCVar("test_cameraDynamicPitchBaseFovPadDownScale", 0.25)
SetCVar("test_cameraDynamicPitchBaseFovPadFlying", 0.65)
SetCVar("test_cameraHeadMovementDeadZone", 0.01)

-- Mouse
SetCVar("rawMouseEnable", 1)
SetCVar("rawMouseAccelerationEnable", 0)
SetCVar("rawMouseRate", 500)
SetCVar("rawMouseResolution", 600)

--SetCVar("", 1)

end

local frame = CreateFrame("Frame","CVarSet")
UIParent:UnregisterEvent("EXPERIMENTAL_CVAR_CONFIRMATION_NEEDED")
frame:RegisterEvent("PLAYER_ENTERING_WORLD")
frame:SetScript("OnEvent",eventHandler)


Ammako 02-17-18 09:04 AM

In a situation like this, you should be more specific about what's not working.

X33STORM 02-17-18 09:50 AM

Quote:

Originally Posted by Ammako (Post 326957)
In a situation like this, you should be more specific about what's not working.

In AIO i can see which cvars was set by what, and i've found cvars set by the override dependencies XCT+, AIO itself and blizzard options.

A recent non-cvar change i had to add, after adding camera cvars to the addon.was this:

UIParent:UnregisterEvent("EXPERIMENTAL_CVAR_CONFIRMATION_NEEDED")

Might be that, dunno.

--------

Does this line mean on character login and reload?
I was thinking i might need to add some PLAYER_LOGIN stuff too?

frame:RegisterEvent("PLAYER_ENTERING_WORLD")

Phanx 02-19-18 09:36 AM

Quote:

Originally Posted by X33STORM (Post 326958)
I was thinking i might need to add some PLAYER_LOGIN stuff too?

My personal UI setup addon sets CVars only on PLAYER_LOGIN, does not register or unregister events on any other frames, and does not name any dependencies, optional or otherwise. This has worked for years and years, including when I had AdvancedInterfaceOptions installed, though I never used the "enforce" option Semlar mentioned earlier in this thread.

X33STORM 02-19-18 09:58 AM

Quote:

Originally Posted by Phanx (Post 326972)
My personal UI setup addon sets CVars only on PLAYER_LOGIN, does not register or unregister events on any other frames, and does not name any dependencies, optional or otherwise. This has worked for years and years, including when I had AdvancedInterfaceOptions installed, though I never used the "enforce" option Semlar mentioned earlier in this thread.

As i use AIO and XCT+ to apply some loose settings, the dependencies as i understand it, overrides any settings set by my addon that they have.

The addon is named X33STORM, and alphabetically it should override any addons named from 1 > 9 and A > W. Could name it differently i guess, what is the last loaded symbol/number/letter ? !Z9 or something?

As to register/unregister, i don't even know what they mean.. Just got a template from someone online, and put my own stuff in it.

Could i see your addon you think?

Ammako 02-19-18 10:10 AM

I reiterate, you should be more specific about what's not working. Just "some things aren't working" doesn't really help anyone figure out what may be wrong.

You might as well try and add a delay using C_Timer.After on those vars. Ghetto solution, but if it works.

X33STORM 02-19-18 10:31 AM

Quote:

Originally Posted by Ammako (Post 326975)
I reiterate, you should be more specific about what's not working. Just "some things aren't working" doesn't really help anyone figure out what may be wrong.

You might as well try and add a delay using C_Timer.After on those vars. Ghetto solution, but if it works.

I'm sorry, i am not actually sure anymore.
I might just be it doesn't apply the cvars on ui reload, leaving me to think it wasn't working.

Just looking for the event name for ui reload i suppose then, which i can't seem to find.

frame:RegisterEvent("PLAYER_LOGIN")
Maybe?

I don't know lua or C** i'm afraid.. I really should take some time to learn what i need to know, to do what i want, just lazy i guess.

Phanx 02-19-18 10:46 AM

Let's start over. Your original post implies, but doesn't actually say, that the code you posted isn't working the way you expect. Is it working as expected, or not? If it is working, what is the question you actually want answered? If it's not working, how is it not working -- what are you expecting it to do, and what actually happens instead?

Ammako 02-19-18 11:07 AM

There is no event for reload, it just fires PLAYER_ENTERING_WORLD again (maybe some others, but that one is your best bet.)

That event also fires whenever you go through a loading screen, on entering/exiting instances, for instance. Pun intended :]

jeffy162 02-19-18 01:22 PM

You don't have to know C++ to write addons for WoW. Lua and XML is all you need to know.

Phanx 02-20-18 10:14 AM

Quote:

Originally Posted by jeffy162 (Post 326984)
You don't have to know C++ to write addons for WoW. Lua and XML is all you need to know.

You don't need to know anything about XML either unless you're writing secure templates, which you (general "you" that applies to anyone who will ever read this post) will almost certainly never do; in 12+ years of writing WoW addons I have done that once. Everything else that can be done in XML can also be done in Lua.

Phanx 02-20-18 10:29 AM

Anyway, back on topic, @X33STORM if you can't just set your CVars through Advanced Interface Options and your current code isn't working, here is the code I've been using to set my CVars for about a decade without any problems:

https://github.com/phanx-wow/PhanxUI...ster/CVars.lua

jeffy162 02-20-18 03:49 PM

@Phanx - I know, I know. My memory is totally shot, now, and I couldn't remember what XML was (basically) used for :o . Thank you for clearing that up.


All times are GMT -6. The time now is 08:23 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI