Grasscutter icon indicating copy to clipboard operation
Grasscutter copied to clipboard

Windrise element totems reward without completion

Open JustRad123 opened this issue 1 year ago • 2 comments

Did you look for other closed issues that have the same problem? ye it wasnt posted anywhere

Describe the bug the element totems/pillars behind windrise tree give you reward without activating cryo totem/pillar

Which branch did you use? development 1.7.1-no git found (latest for 15.09.2023)

Screenshots image talking abt this but cant show the chest and un-activated cryo pillar/totem

Additional context the order i did it in is : electro -> pyro(got chest) -> cryo(did nothin)

JustRad123 avatar Sep 15 '23 19:09 JustRad123

@scooterboo please look into this, i dont even have the totems spawning

KingRainbow44 avatar Sep 16 '23 23:09 KingRainbow44

I did all three monuments in that order and got nothing. No chest for me. (this group is group 133001146 BTW)

I got:

06:24:02 ERROR:SceneScriptManager [LUA] call trigger failed in group 133001146 with condition_EVENT_GADGET_STATE_CHANGE_146005,ScriptArgs(param1=201, param2=146002, param3=0, source_eid=0, target_eid=0, group_id=133001146, source=null, type=7) org.luaj.vm2.LuaError: script:88 attempt to index ? (a nil value) stack traceback: script:88: in function script:87 [Java]: in ? at org.luaj.vm2.LuaValue.error(Unknown Source) at org.luaj.vm2.LuaValue.indexerror(Unknown Source) at org.luaj.vm2.LuaValue.gettable(Unknown Source) at org.luaj.vm2.LuaValue.get(Unknown Source) at org.luaj.vm2.LuaClosure.execute(Unknown Source) at org.luaj.vm2.LuaClosure.call(Unknown Source) at emu.grasscutter.scripts.SceneScriptManager.safetyCall(SceneScriptManager.java:958) at emu.grasscutter.scripts.SceneScriptManager.callScriptFunc(SceneScriptManager.java:951) at emu.grasscutter.scripts.SceneScriptManager.evaluateTriggerCondition(SceneScriptManager.java:892) at emu.grasscutter.scripts.SceneScriptManager.handleEventForTrigger(SceneScriptManager.java:866) at emu.grasscutter.scripts.SceneScriptManager.realCallEvent(SceneScriptManager.java:847) at emu.grasscutter.scripts.SceneScriptManager.lambda$callEvent$27(SceneScriptManager.java:818) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:833)

line 88 of that group's script file is: if ScriptLib.GetGroupVariableValue(context, "start") == #suites[1].gadgets then

I'm guessing it does not like that #suites[1].gadgets part. Maybe not the #, but because we currently don't store suites in an array that can be accessed like suites[1]

This will be fixed if the third error in https://github.com/Grasscutters/Grasscutter/issues/2217 is fixed.

Besides that line, the logic checks out and should work if fixed.

scooterboo avatar Sep 17 '23 13:09 scooterboo