TimothyLuke / GSE-Advanced-Macro-Compiler

GSE is an alternative advanced macro editor and engine for World of Warcraft.
https://discord.gg/gseunited
MIT License
215 stars 73 forks source link

[BUG] Gracefully handle variable errors #1610

Closed ArpaCat closed 2 months ago

ArpaCat commented 2 months ago

šŸ”µ Describe the bug:

There are two issues related to using If blocks with Variables to test my character's race:

  1. Save Pending Issue: When creating a sequence that includes If blocks using Variables, the sequence sometimes freezes and remains stuck on "Save pending," never actually saving the macro. This prevents any further edits or use of the sequence.

  2. Incorrect Value Return: The If block does not evaluate the character's race correctly when using a Variable according to the example in the GSE Wiki. Despite following the correct syntax and setup, the macro always returns the "false" value, resulting in "no" being displayed in the chat, even when the character is a Blood Elf, where it should return "yes."

šŸ”µ To reproduce: (Steps to reproduce the behavior)

  1. Open GSE by typing /gse in the chat.
  2. Click on the Variable tab.
  3. Create a New Variable.
  4. Copy and paste the following Lua function into the variable editor:
function() 
    if UnitRace ("Player") == "BloodElf" then
        return true
    else 
        return false
    end
end
  1. Save the variable.
  2. Copy the implementation link (e.g., =GSE.V.MyNewVar72()) using Ctrl + C.
  3. Close the Variable window.
  4. Open the Sequence tab.
  5. Create a new sequence and select the 1 tab under NEW_SEQUENCE.
  6. Add an If Block to the sequence.
  7. Paste =GSE.V.MyNewVar72() to replace the = true condition in the If Block.
  8. In the True Block, type the following macro text: "/s yes"
  9. In the False Block, type the following macro text: "/s no" Attempt to save the sequence. Issue: The sequence shows "Save pending" and does not actually save. It remains stuck in the "Save pending" state indefinitely without resolving to "saved" or any other status.
  10. Bind the sequence to a key, such as Numpad 1.

šŸ”µ The error:

There is No Error Massage

šŸ”µ Screenshots:

Screenshot 2024-08-21 200538

šŸ”µ Expected behavior:

I expected that after pressing the key bound to Numpad 1, the macro would evaluate my character's race (Blood Elf) and output "yes" in the chat since my character is indeed a Blood Elf. The function should correctly identify the race and return true, triggering the "yes" response. However, instead of the expected outcome, the macro incorrectly returns "false" and only outputs "no" in the chat.

šŸ”µ GSE.lua file:

Gethub do not support that file

šŸ”µ Desktop (please complete the following information):

šŸ”µ GSE Version:

šŸ”µ Additional context: addition to the steps mentioned above, I've noticed a few more issues:

  1. Initial Save Behavior: When creating a new sequence and saving it for the first time, the sequence might save correctly. However, the result still comes out as "no" instead of "yes".

  2. Variable Usage Without Equals Sign: If I omit the equals sign and simply use GSE.V.MyNewVar72() or write GSE.V.MyNewVar72() = true in the macro, it consistently triggers the "Save pending" issue, causing the sequence to freeze and never save.

  3. Using Variable in Macro Text: I also tried a different approach by writing the following in the macro text:

    =GSE.V.MyNewVar72()
    /s yes

    This resulted in an error message stating a "bad argument." Unfortunately, I did not copy the exact error message to avoid confusion, but it highlights another issue when attempting to combine variable checks with text output in the macro.

TimothyLuke commented 2 months ago

/say (/s) in a macro is restricted and can only be used in a Blizzard /macro. -- Edit yet somehow you got to work. I haven't been able to since TWW

Variable Usage Without Equals Sign: If I omit the equals sign and simply use GSE.V.MyNewVar72() or write GSE.V.MyNewVar72() = true in the macro, it consistently triggers the "Save pending" issue, causing the sequence to freeze and never save.

When this happens go to the Out of Combat Queue on the GSE mini-map icon and delete (just need to click on the entry) the attempt to save that is clogging the queue. It will be the first thing in the list. GSE is a Garbage in - Garbage Out mod. It thinks you know what you are doing at all times and never tests for things, it just tries to do what you tell it.

Without your GSE.lua file - i cant help you. You need to either copy the contents into a comment within three backticks ``` at the beginning and end or rename it to GSE.lua.txt then attach it.

TimothyLuke commented 2 months ago

Also you can test your id via the Compile Template button. This will show the block that results from your if.

ArpaCat commented 2 months ago

This is the copay of my GSE.lua File GSEOptions = { ["HideLoginMessage"] = false, ["STANDARDFUNCS"] = "|cff55ddcc", ["showGSEUsers"] = false, ["msClickRate"] = 180, ["COMMENT"] = "|cff55cc55", ["filterList"] = { ["Spec"] = true, ["Class"] = false, ["Global"] = false, ["All"] = false, }, ["EQUALS"] = "|cffccddee", ["NUMBER"] = "|cffffaa00", ["sendDebugOutputToChatWindow"] = false, ["KEYWORD"] = "|cff88bbdd", ["saveAllMacrosLocal"] = true, ["debug"] = false, ["keybindingHeight"] = 500, ["CONCAT"] = "|cffcc7777", ["CommandColour"] = "|cFF00FF00", ["showCurrentSpells"] = false, ["UNKNOWN"] = "|cffff6666", ["ActiveSequenceVersions"] = { }, ["macroWidth"] = 700, ["macroHeight"] = 500, ["Updates"] = { ["3200"] = true, }, ["menuHeight"] = 500, ["sendDebugOutputToDebugOutput"] = false, ["CreateGlobalButtons"] = false, ["autoCreateMacroStubsGlobal"] = false, ["UseWLMExportFormat"] = false, ["STRING"] = "|cff888888", ["autoCreateMacroStubsClass"] = true, ["DefaultImportAction"] = "MERGE", ["overflowPersonalMacros"] = false, ["TitleColour"] = "|cFFFF0000", ["PromptSample"] = true, ["initialised"] = true, ["INDENT"] = "|cffccaa88", ["DebugModules"] = { ["Translator"] = false, ["Startup"] = false, ["API"] = false, ["Viewer"] = false, ["Transmission"] = false, ["Editor"] = false, ["GUI"] = false, ["Storage"] = false, ["Versions"] = false, }, ["resetOOC"] = true, ["MacroResetModifiers"] = { ["Alt"] = false, ["LeftControl"] = false, ["LeftButton"] = false, ["LeftAlt"] = false, ["RightButton"] = false, ["RightAlt"] = false, ["Button4"] = false, ["Button5"] = false, ["MiddleButton"] = false, ["RightControl"] = false, ["Control"] = false, ["Shift"] = false, ["LeftShift"] = false, ["AnyMod"] = false, ["RightShift"] = false, }, ["showGSEoocqueue"] = true, ["EmphasisColour"] = "|cFFFFFF00", ["UseVerboseExportFormat"] = false, ["WOWSHORTCUTS"] = "|cffddaaff", ["RealtimeParse"] = false, ["deleteOrphansOnLogout"] = false, ["OOCQueueDelay"] = 7, ["shownew"] = true, ["AuthorColour"] = "|cFF00D1FF", ["editorWidth"] = 1843.703735351563, ["showMiniMap"] = { ["hide"] = true, }, ["editorHeight"] = 829.073486328125, ["DefaultDisabledMacroIcon"] = "Interface\Icons\INV_MISC_BOOK_08", ["DebugPrintModConditionsOnKeyPress"] = false, ["NormalColour"] = "|cFFFFFFFF", ["keybindingWidth"] = 700, ["menuWidth"] = 700, ["setDefaultIconQuestionMark"] = true, ["DisabledSequences"] = { }, ["frameLocations"] = { }, } GSESequences = { { }, { }, { }, { ["test"] = "d4JhcaWyvCyQ2LqyBcc3tGQzIe1IusmBv18fPUPi5xiPVjGCAj2PuTxy3sA)cQ(PGsdtj(nLgOaQ3kqzWcPgobheP6ucsDmL6CcvwOi8CkwSk1Yf1drcpf1YKsRtGyIIOPs0Kry6KUOkXvfGEgsKRRkDxbrBvvSzeTDbfFui5RcGpRK67cKgPGKXjumAHQMMkPtIuUSIRju68e62sXOus61crJnKOVbRJrrVfsWP8t2AGe9nKGPF0ITAGe9nKOVHe9nKGB8t2co9HKKGWDssQgxmDo8OfhdyPOWaM(rl2kyvuya34NSfku0BHe9nKGB8t2co9HKKGWDssQgxmDo8ORwWsrHbm9JwSvWQOWaUXpzluOGF8CXV)d4GhfFjINGTskX(e0hpVJBLqUAOblffgW0iHcfmT69B5RpEU43)XajykSn3UIeqHcfCagps6Vz3ajuWu2nAafiCDia3U0EDjMDiwUEnqXUbNAupPRoKGd18f(LAKGJxvbtqOsLOyo2mreRxtDTzERfDial9)uvdKqbNSy87)qGeGP)QXBZGFMgtXwdmT)Vq4vWrXxEMSPyROtP2LyaNYRV(NwvNCyMQwSvKaCYH0F)k6BWDVzaRJrbZcZHws0BJnoWYWsb679YYsl4lvsB(muyBeC1Vl)IkIeqHcfa", }, { }, { }, { }, { }, { }, { }, { }, { ["Loop"] = "dqKigaqELy(sTFszeRQWEwQIMLsvYUuQc)svmmIIJPkTmOQNbLAAuf6AuX2Ok4BQkX4ivNtvfTovf0OxQQAGQkWbHsEWQc5Huf1evvvxuvPAJuL0hvveJuvH6KQQ0kPQAMuL6MuLyNkLFQQinuvL0svvLNQYuPsxvPQYwvvkFvPQ4Te0DjWErnyO4WilMs9yrtwYLHSzWNjQgnvLttOxtuA2qLBtj7MKFtXWjYXvQsTCfpxjnDHRRuz7QkQfsvKlVuvA(LD5Tx(82yK4n8SlFEHYXSYU82l7YhwziAuRSlV9YU82l7YBVSlFwuog(6eGQicGobOkIaOtaQIiaEcAKJIEqkK1sp9OHrOY4Jglbclevc083javreapRbnbfbLY2JM)obOkIa4jP1OhnmDcGUUTDvDcGJtMoocvM0hPuiCIk5c6rdtNaORBBxfEh9FIxME6Hp3fjeFyLHOrXxSiH4ZIYXWbVHND5ZIYXWxNaufra0javreaDcqvebWtqJCu0dsHSw6PhnmcvgF0yjqyHOsGM)obOkIa4znOjOiOu2E083javreapjTg9OHPta01TTRQtaCCY0XrOYK(iLcHtujxqpAy6eaDDB7QWJnE9FIDp9WN7IeIpSYq0O4lwKq8zr5y4GV)qsik4Tx(CxKq85TXiX3fijVUtLHOrX3xhrZiglCWB4zx(SOCm81javreaDcqvebqNaufra8e0ihf9GuiRLE6rdJqLXhnwcewiQeO5VtaQIiaEwdAckckLThn)DcqvebWtsRrpAy6eaDDB7Q6eahNmDCeQmPpsPq4evY3lnmPXYMcb9OHPta01TTRAF)XhT))yp7Ph(CxKq8HvgIgfFXIeIplkhdh85UiH4ZBJrIV)qsik4Tx(Uaj51DQmenk((d9z0SI(6iAgXyHdEdp7YBVSlFwuog(6eGQicGobOkIaOtaQIiaEcAKJIEqkK1sp9OHrOY4Jglbclevc083javreapRbnbfbLY2JM)obOkIa4jP1OhnmDcGUUTDvDcGJtMoocvM0hPuiCIk5c6rdtNaORBBxf2E0J6EaFp9WN7IeIpSYq0O4lwKq8zr5y4Gp3fjeFEBms89hscrbVHNVlqsEDNkdrJIVdT37qQqKWXbVHn7YNfLJHVobOkIaOtaQIia6eGQicGNGg5OOhKczT0tpAyeQm(OXsGWcrLan)DcqvebWZAqtqrqPS9O5VtaQIiaEsAn6rdtNaORBBxvNa44KPJJqLj9rkfcNOsUGE0W0ja6622v9Q78Ih7E6Hp3fjeFyLHOrXxSiH4ZIYXWbh89RYENiU4B0is24qRSlFE2yztb7jo4Gd(8MwJ9tQOav8Hxg8Eug9xp86bhSFD4BFqKSyTBOv2Ld(8ckO)PGyx((yeojCIkz5ZxesRF4ZtjUMMP2d5YFKVI2PeduXhw7cFMHV)rwgLCAkrs9b)IdNyrk((K77FdnRIgfVHnEz05ZlKAhH7xvGMpJuHOrXEIVnYcXN3gJeFFxbMjrE2yjrbzlItmwypX3jHYF)N3C(Yx4Z9t9mV9(kJmYGNV)raTdxWBVCWbhmd", ["REgenerate"] = "dueXcaqEvvZxk7xvYcwOQrSqLvTqYUui1VqHHbLogQSms6zOQmnsORHQyBQuyCaohkYKxPI1PsPg9kPAGQK0bjfpyvWdvPQjskDrvP2OkH(OkrgPkjojuyLQe1mvf5MOO2jk9tvQ0sjbpLyQQ4QQeSvvr9vfIo3cL2R4ERKYGrv1HPAXk6XqMmsxwPnd6ZKOrdf50s1ZHQxJQ0Sjv3wb7wIFlPHd0XvPKLJ4YRu00PC6fcBhkQRRQ8IfkwOQqhUCclxefERCllXTnSQ5eHzhrQ45ewUCIObz9AbpNWYLty5YjYGJi1ineesPUdHmWnNyUzoI3g51LBiiKsDhczGCCRrEXFdbHaaZjL2qqiaWCsPJy8J66pCT7m2XCZX9qJ0iro)GBeniRxlr02X9P(sZmI9dUrgCePglSQ5ezWrKAKgccPu3Hqgih3AKx83qqiaWCsPneecamNuQkpamPITrAKiNFWnIgK1RLi2p4gzWrKASWYxorgCePgPHGqk1DiKbYXTg5f)neecamNuAdbHaaZjLYNIkcWdtnsJe58dUr0GSETeX(b3idoIuJfrHfCDlSQro)GBKNQvWiITGx8RGSETer2B9TfR76XIfbJY8RRBp7KUp1x8CIflwKrUoVA(ioEoXI8KJBxaK62sJOIvvrSaQCCmPEdSQryEnxRBEorUYQdQ3l8gbtMbIFBgmODCuLqhTsLmuIVFLUT0iA(mmvjr0Ud1IsNq7E5QyOR3PEjYLK3pVe8ETew(u54IWSx(CDmk2sW8wSETKhJW6dBefERCllXTnI2f6F6wy5IiGlcdTHLhaUiN7EFy54WIfRAK3fyLG27RdGU5ZUE3(ZJXIflb", ["Single_Target"] = "duungaqELy(k2pfgrij7PeLMLsvQDPuf9lanmsKJbulJeEgvftJQGRrjBJevFdKsJJuohjkwNsvLrhsWabj0bjipyPk5HufAIeqxeKQ2ivL8rQkLrQuv6KeGvsv1mjqUjvr2Ps5NGe1qbPyPeOEQktLuDvqISvqQ8vLQI3si3LqTxu)vPkmyqCyKftPESOjl5YQAZqFgGrtv60G61euZgi3MI2nr)MkdNKoovLQLl1LxQQA6cxxPY2bj1ZvslKQOMbZ68gy(oyjaq)EOtnGp4nfSoFEIY2TY68gywNpHYa2jxzDEdmRZBGzDEdmRZNjLTJVjrSkIqCseRIieNeXQicrGb1a(y6x(MltpTbersNxQnflQEQeB4FseRIiebUguhueuk80g(NeXQicrGjTgtBazse10STRAseTSY0YsK0LEjP8bblbiEAditIOMMTDvkS0ugfkn908PVO(8jugWojFXI6ZNjLTJdEtbRZNjLTJVjrSkIqCseRIieNeXQicrGb1a(y6x(MltpTbersNxQnflQEQeB4FseRIiebUguhueuk80g(NeXQicrGjTgtBazse10STRAseTSY0YsK0LEjP8bblbiEAditIOMMTDvk8rHMY4Z0tZN(I6ZNqza7K8flQpFMu2oo4tWV6tbVbMp9f1Npb5CQ8DXR6RDYmGDs(GMg21WXch8McwNptkBhFtIyveH4KiwfriojIvreIadQb8X0V8nxMEAdiIKoVuBkwu9uj2W)KiwfricCnOoOiOu4Pn8pjIvreIatAnM2aYKiQPzBx1KiAzLPLLiPl9ss5dcwcyVnGKotBkepTbKjrutZ2UQ9hQ2lOauPStpnF6lQpFcLbStYxSO(8zsz74Gp9f1Npb5CQ8j4x9PG3aZ3fVQV2jZa2j5tWpu)96dnnSRHJfo4nfSoVbM15ZKY2X3KiwfriojIvreItIyveHiWGAaFm9lFZLPN2aIiPZl1MIfvpvIn8pjIvreIaxdQdkckfEAd)tIyveHiWKwJPnGmjIAA22vnjIwwzAzjs6sVKu(GGLaepTbKjrutZ2UkF8Gh0uUIPNMp9f1NpHYa2j5lwuF(mPSDCWN(I6ZNGCov(e8R(uWBk47Ix1x7Kza7K8DVVV7LbmbIdEZhwNptkBhFtIyveH4KiwfriojIvreIadQb8X0V8nxMEAdiIKoVuBkwu9uj2W)KiwfricCnOoOiOu4Pn8pjIvreIatAnM2aYKiQPzBx1KiAzLPLLiPl9ss5dcwcq80gqMernnB7QaRzbwHptpnF6lQpFcLbStYxSO(8zsz74Gd(eG0EhmOa6OgMSb9RSoFE0zAtb7zo4Gd(2NNewODnTY6CWNGO1akPwu8fFkusHhusdSYbRClnlW85PpibsbX68TVpivqWsH5ZBeQR7hqGf8A66ApbaaiG1FNeo(IpH2fEDnFc8nDsauxWKekkaqGGlsYNVDqp099kStYB(Oqjn(8ej3rGeGm(gQFza7KSN5BJmF(oyjaqVbeDQb8bFc8rAhOG3aZ3P(PaeiVzbTqlF6qzpYBGbRKskPGpOxIUoFp6mvPGSHbbhlSN5Gdoyg", ["HAVOC"] = "dK0UnaaluIDHcu9lPyyOsDmujldL0ZqHAAOuLRrvzBOG8nuQyCufNJQQSoukObIsjoij1cfjpevWerf6IuvvBeLk9rukQrsvfojkqwjj5LOukZKQk1nrfzNuL(jvv0qrHuDuuiLLIsbEkHPQkDvukKTIcQVIsrglkK0zrHyTOI6TKYDjv7vYGvvhgSyvXJPmzHlJyZqFwugTionjwnkq51OaMnQ62s1Uv8BIgok64OuslxPNlLMosxxKA7OuQgpkv15fvRNQkz(QSFQ8WuiXQsPqDXv9wE5Qe(HAg2p5q5L16TeCcSv2wVLxUQ3sWWWQap8K26TOLqTrvKtB9wE5QElVCvVLOd2klXzigbaiEgIraaINHyeaGydf2mc9wYq653ER7RnYey76AbbcDNQZqmcaqSXGw6TUV2iTeygcVYKXIj7pav39tXNEDQodXiaaXgdAP36(NHOhppprCgI(8zMpFAJ0sGzi8ktM(TU)zi6XZZteS6ZJ)yL7BVTeV5mjLqTrvKtjO5mjLOd2klA5L16TeDWwzjodXiaaXZqmcaq8meJaaeBOWMrO3sgsp)2BDFTrMaBxxliqO7uDgIraaIng0sV191gPLaZq4vMmwmz)bO6UFk(0Rt1zigbai2yql9w3xBKwcmdHxzY0D)u8qqCFocJrkXBotsjuBuf5ucAotsj6GTYIwEzC9wIoyRSeNHyeaG4zigbaiEgIraaInuyZi0BjdPNF7TUV2itGTRRfei0DQodXiaaXgdAP36(AJ0sGzi8ktglMS)auD3pfF61P6meJaaeBmOLER7RnslbMHWRmz6UV)ZjUFkc0lXBotsjuBuf5ucAotsj6GTYIwEzV6TeDWwzjodXiaaXZqmcaq8meJaaeBOWMrO3sgsp)2BDFTrMaBxxliqO7uDgIraaIng0sV191gPLaZq4vMmwmz)bO6UFk(0Rt1zigbai2yql9w3xBKwcmdHxzYyXK9hGQ7(SlH39tb7czKsqZzskrhSvwI3CMKsO2OkYPOLxF1Bj6GTYsCgIraaINHyeaG4zigbai2qHnJqVLmKE(T36(AJmb2UUwqGq3P6meJaaeBmOLER7RnslbMHWRmzSyY(dq1D)u8PxNQZqmcaqSXGw6TU)zi6XZZteNHOpFM5ZN2iTeygcVYKXIj7pav)w3)me9455jcgZoC7pgY3T3wI3CMKsO2OkYPe0CMKs0bBLfT8Yq1Bj6GTYsCgIraaINHyeaG4zigbai2qHnJqVLmKE(T36(AJmb2UUwqGq3P6meJaaeBmOLER7RnslbMHWRmzSyY(dq1D)u8PxNQZqmcaqSXGw6TU)zi6XZZteNHOpFM5ZN2iTeygcVYKXcBHjpKtw9BD)Zq0JNNNiyLB2ZN)yOBVTeV5mjLqTrvKtjO5mjLOd2klA5LDQ3s0bBLL4meJaaepdXiaaXZqmcaqSHcBgHElzi98BV191gzcSDDTGaHUt1zigbai2yql9w3xBKwcmdHxzYyXK9hGQ7(P4tVovNHyeaGyJbT0BDFTrAjWmeELjt39tXdbX95imgPe0CMKs0bBLL4nNjPeQnQICkA51t9wIoyRSeNHyeaG4zigbaiEgIraaInuyZi0BjdPNF7TUV2itGTRRfei0DQodXiaaXgdAP36(AJ0sGzi8ktglMS)auD3pfF61P6meJaaeBmOLER7RnslbMHWRmz6UphsazR7lORcdqkbnNjPeDWwzjEZzskHAJQiNIwE9x9wIoyRSeNHyeaG4zigbaiEgIraaInuyZi0BjdPNF7TUV2itGTRRfei0DQodXiaaXgdAP36(AJ0sGzi8ktglMS)auD3pfF61P6meJaaeBmOLER7FgIE888eXzi6ZNz(8PnslbMHWRmz636(NHOhppprWkJz1J)y8T3wcAotsj6GTYs8MZKuc1gvrofT8Yf31Bj6GTYsCgIraaINHyeaG4zigbai2qHnJqVLmKE(T36(AJmb2UUwqGq3P6meJaaeBmOLER7RnslbMHWRmzSyY(dq1D)u8PxNQZqmcaqSXGw6TUV2iTeygcVYKP7(CibKTUVGUkmaPe0CMKs0bBLL4nNjPeQnQICkA5LlUQ3s0bBLL4meJaaepdXiaaXZqmcaqSHcBgHElzi98BV191gzcSDDTGaHUt1zigbai2yql9w3xBKwcmdHxzYyXK9hGQ7(P4tVovNHyeaGyJbT0BDFTrAjWmeELjt399FoX9trGEjO5mjLOd2klXBotsjuBuf5u0YlxSwVLOd2klXzigbaiEgIraaINHyeaGydf2mc9wYq653ER7RnYey76AbbcDNQZqmcaqSXGw6TUV2iTeygcVYKXIj7pav39tXNEDQodXiaaXgdAP36(NHOhppprCgI(8zMpFAJ0sGzi8ktM(TU)zi6XZZteSYyw94pgF7TLGMZKuIoyRSeV5mjLqTrvKtrlVCX46TeDWwzjodXiaaXZqmcaq8meJaaeBOWMrO3sgsp)2BDFTrMaBxxliqO7uDgIraaIng0sV191gPLaZq4vMmwmz)bO6UFk(0Rt1zigbai2yql9w3xBKwcmdHxzY0DFoKaYw3xqxfgGucAotsj6GTYs8MZKuc1gvrofT8Yf7vVLOd2klXzigbaiEgIraaINHyeaGydf2mc9wYq653ER7RnYey76AbbcDNQZqmcaqSXGw6TUV2iTeygcVYKXIj7pav39tXNEDQodXiaaXgdAP36(AJ0sGzi8ktMU7NIhcI7ZrymsjO5mjLOd2klXBotsjuBuf5u0sWgqysaA5L1s8MZKuc)wkzwcbLWKDtpgvroLqqyRPjdvb4lArlbdAEsRWtzyyvGhEsB9w0Iw0sWMiadOo9cT1BrlHFdTu2iMbqjrjyLBwzpU9WfdXThw5IXmuj4eHcCeOq9wc)GWZKxzyGsKqPmBzdBAcLwtUbdEwwtwlj9OqjrjEbEYqBlbh8pdOM9zRegn2g3P85LnZn7Usg10(nBlHr3p4CNZD2Nt(vgN7CMtDvCYVuRwTA1Qv35tyFoXGX5oNF6CM1onfhzegPTv9tND9lgHrytCZnJ05CN9Z8wc1PPjYTe(NNW2zuyJh2chtpCsgBjyZc)ZWKTvroLxgZk3EkbNGjnWZGgkzz7KHQiNkvj4ibH080YlxLWl0jLWpuZW(jhkHGjXyqCS86JDyNs86NCO8YfxCZn3Swc)pOCnchKDMafEu4vO5vQIw0Iwf", }, { }, [0] = { }, } GSESpellCache = { ["enUS"] = { }, ["zhCN"] = { ["ēœ¼ę£±"] = 198013, ["ēƒˆē„°å’’ē¬¦"] = 204596, ["é‚Ŗčƒ½ä¹‹åˆƒ"] = 232893, ["ꁶ魔čæ½å‡»"] = 370965, ["åˆƒčˆž"] = 188499, ["ę¶é­”ä¹‹å’¬"] = 344859, ["ē “č£‚"] = 344859, ["复仇回éæ"] = 198793, ["ęŠ•ęŽ·åˆ©åˆƒ"] = 185123, ["ēŒ®ē„­å…‰ēŽÆ"] = 258920, ["ę··ä¹±ę‰“å‡»"] = 344862, }, } GSEVariables = { ["MyNewVar72"] = "dCY5aaatIQMnOUnjzVQA3qTFzuKOHPu)MunuIIbJgorQtrchtbNJiAHevwkry5kzrKYtv0JPWZPOPsiMmitxLlsjDvsQlt11jyZqAAeQgnrYHH4EuItRqxJO05juwjWYOuJJq6F4f5NOcyJ7NOcyJBuhRurmqmgJJOr14XtcedpQutgyeX8LMIOflrn5G11HScJQfpPCCGymgJXyC5NWchVLGhigJrh20JbIXymgJXLFclCefb20deJXOJHc4yOabc8t5rmp1sdHCo0pT32IVf1EyqY9El7pn0vPYXN5pde4V)b", } GSEMacros = { }

TimothyLuke commented 2 months ago

Problem was how you spelt Blood Elf.

local englishRace, normalisedRace, RaceID = UnitRace("Player)

now when you go if UnitRace ("Player") == "BloodElf" then it compares "BloodElf" to the first entry englishRace which has a space so returns false. "Blood Elf" is not the same as "BloodElf" so your function returns false.

if you changed your function either of the following it would work for all languages not just english.

function() 
    local _, _, RaceID = UnitRace("Player) 
    return RaceID == 10 
end

or

function() 
    local _, normalisedRace, _ = UnitRace("Player) 
    if normalisedRace == "BloodElf" then
        return true
    else 
        return false
    end
end

image

*The /dump command is a quick way to look at the result of a WoW function or a GSE Variable(

ArpaCat commented 2 months ago

Thank you