Lua Tutorial not working. Am i doing something wrong?

0

Hello,

I'm doing the tutorial one by one but now I'm stuck for several hour on one of the component tutorials with lua scripting. I've done all according to the tutorial documentation but it does not work. This is the code in the tutorial:

local trigger_test =

{

properties =

{

}

}

function trigger_test:OnActivate()

self.TriggerBusHandler = TriggerAreaNotificationBusHandler:Connect(self, self.entityId);

end

function trigger_test:OnTriggerAreaEntered(enteringEntityId)

Debug.Log("[TRIGGER] Entity ".. tostring(enteringEntityId) .." ENTERED");

end

function trigger_test:OnTriggerAreaExited(exitingEntityId)

Debug.Log("[TRIGGER] Entity ".. tostring(exitingEntityId) .." EXITED");

end

function trigger_test:OnDeactivate()

self.triggerBusHandler:Disconnect();

end

return trigger_test

However when I try to launch it, it comes up with the error: "[Error] Lua error (2 - scripts/testscripts/trigger_test.luac:9: attempt to index global 'TriggerAreaNotificationBusHandler' (a nil value)) during call to OnActivate". I know what it means but since I dont know much about scripting i dont know how to fix this. Can anyone help?

已提問 7 年前檢視次數 536 次
31 個答案
0
已接受的答案

Hey @REDACTEDUSER

REMOVEDUPLOAD

Let us know if this fixes it :)

Cheers!

已回答 7 年前
profile picture
專家
已審閱 1 個月前
0

@REDACTEDUSER

"It looks like the problem could be the Lua basics structure. It's missing a comma after the closing bracket of Properties. Also looks like the "P" in Properties sub-table isn't capitalized. These are crucial for lua to function."

Can you try that?

已回答 7 年前
0

Ok I finely found a solution. It turns out you need to have the script in the location where lua is and as well in the project folder. Eg.:

c:\Amazon\Lumberyard\1.7.0.1\dev\Bin64vc120\

and

c:\Amazon\Lumberyard\1.7.0.1\dev\Cache\SamplesProject\pc\samplesproject\scripts\

don't know how to make it so that you only need one location though, but now its outputting this:

[TRIGGER] Entity [17156986295506254569] ENTERED

[TRIGGER] Entity [17156986295506254569] EXITED

Lua error (2) during call trigger_test:OnDeactivate: [string "c:/amazon/lumberyard/1.7.0.1/dev/samplespro..."]:21: attempt to index field 'triggerBusHandler' (a nil value)

[Error] Lua error (2) during call trigger_test:OnDeactivate: [string "c:/amazon/lumberyard/1.7.0.1/dev/samplespro..."]:21: attempt to index field 'triggerBusHandler' (a nil value)

so there is one more error i need to find a solution for. Any ideas?

已回答 7 年前
0

Have you tried to use just the .lua file? The .luac file is just a precompiled version and I don't think renaming it will work.

http://docs.aws.amazon.com/lumberyard/latest/developerguide/lua-scripting-ces.html

已回答 7 年前
0

Thank you for the fast response. I hope so i see more scripting stuff in the next tutorial and they all seem to have some error. I already browsed the net to try and find a solution but nothing has worked so far.

已回答 7 年前
0

Is it possible that I'm missing some kind of a plugin?

已回答 7 年前
0

One thing that I forgot to mention is that Lua makes files with .lua but lumberyard wants files with .luac. I have just been renaming them so dont know if that could also cause the issue.

已回答 7 年前
0

Well i checked and all should be installed OK. I even restarted the whole lumberyard engine and opened a clean map and redone the whole process but still the same result:

Error] Lua error (2 - scripts/triggertest.luac:9: attempt to call field 'connect' (a nil value)) during call to OnActivate

and

[Error] Lua error (2) during call to OnDeactivate: scripts/triggertest.luac:21: attempt to index field 'triggerBusHandler' (a nil value)

已回答 7 年前
0

Yop i tried to use the .lua file but lumberyard just has one option of files to choose and its .luac. I'm trying to reinstall the whole engine see if it helps

已回答 7 年前
0

Ok so i reinstalled lumberyard 1.8 but same problem and still lumberyard wants only files with .luac and does not let me to select others. So i installed lumberyard 1.7 and there it is ok and accepts .lua. the lest problem im now facing is:

Can't load the script with invalid asset (not loaded or null)!

the current script i have there is:

triggertest =

{

}

function triggertest:OnActivate()

self.triggerBusHandler = triggerAreaNotificationBusHandler.connect(self, self.entityId)

end

function triggertest:OnTriggerAreaEntered(enteredEntityId)

Debug.Log("[Trigger]Entity ".. tostring(enteredEntityId) .." Entered")

end

function triggertest:OnTriggerAreaEnxited(exitedEntityId)

Debug.Log("[Trigger]Entity ".. tostring(enxitedEntityId) .." Enexited")

end

function triggertest:OnDeactivate()

self.triggerBusHandler:Disconnect()

end

so what am i doing wrong now? :D

已回答 7 年前
0

Well i reinstalled lumberyard and now im having the same issues and nothing helps at the moment

已回答 7 年前
0

Sorry to hear you are having issues with the tutorial. I'm filing a ticket to have someone take a look and help. Just a heads up that with GDC this week, support may be a little slower than normal. Hopefully someone here in the community can answer in the meantime.

已回答 7 年前
0

That is very odd. I haven't seen any other people reporting issues. I'll add that to the ticket.

已回答 7 年前
0

It is possible. You might want to run Setup Assistant and made sure all the SDKs and plugins have the green check.

已回答 7 年前
0

Tryed that alraedy but i can try again.

已回答 7 年前
0

No joy still same errors:

Access to undeclared global variable 'triggerAreaNotificationBusHandler'!---------- START STACK TRACE ---------- =C: ?:/amazon/lumberyard/1.7.0.1/dev/samplesproject/scripts/components/triggertest.lua(9): ? ---------- END STACK TRACE ----------

[Error] Access to undeclared global variable 'triggerAreaNotificationBusHandler'!---------- START STACK TRACE ---------- =C: ?:/amazon/lumberyard/1.7.0.1/dev/samplesproject/scripts/components/triggertest.lua(9): ? ---------- END STACK TRACE ----------

Lua error (2 - [string "c:/amazon/lumberyard/1.7.0.1/dev/samplespro..."]:9: attempt to index global 'triggerAreaNotificationBusHandler' (a nil value)) during call triggertest:OnActivate

[Error] Lua error (2 - [string "c:/amazon/lumberyard/1.7.0.1/dev/samplespro..."]:9: attempt to index global 'triggerAreaNotificationBusHandler' (a nil value)) during call triggertest:OnActivate

Lua error (2) during call triggertest:OnDeactivate: [string "c:/amazon/lumberyard/1.7.0.1/dev/samplespro..."]:21: attempt to index field 'triggerBusHandler' (a nil value)

[Error] Lua error (2) during call triggertest:OnDeactivate: [string "c:/amazon/lumberyard/1.7.0.1/dev/samplespro..."]:21: attempt to index field 'triggerBusHandler' (a nil value)

已回答 7 年前
0

One more thing though. When i save a script for the first time it comes with the warning: "Performance is down. File will be saved. You must reconcile with performance later!"

已回答 7 年前
0

Hello,

I'm having similar troubles with the same tutorial. I have very little knowledge of coding and scripting so I don't even know where to look at.

The error I get is "The script asset 0xddd88d20 doesn't contain a table with name trigger_test"

I also sometimes get the "Perforce is down!..." -error message.

Any suggestions?

已回答 7 年前
0

"The script asset 0xddd88d20 doesn't contain a table with name trigger_test"

means that the script dosnt have a variable (all complex lua variables are tables really) named: "trigger_test" make sure the top line is "trigger_test" all capitalized correctly and that it matches the same name on the file.

已回答 7 年前
0

I got that same issue today, I found out that creating a new lua file and not putting "local" on the top table (so "trigger_test") works for me.

已回答 7 年前
0

@REDACTEDUSER the first error you are getting is because the main table, eg.:

trigger_test =

{

}

must also be the name of the lua script, eg.: trigger_test.lua

If you are using the 1.7 version of the engine you can not have local trigger_test in the script just trigger_test

已回答 7 年前
0

I need help with this too. I cannot attach a script because I can't get anything other than .lua scripts but the Lua Script component won't let me attach anything but a .luac file.

已回答 7 年前
0

@REDACTEDUSER

any news?

已回答 7 年前
0

Ok I just reinstalled my whole Win 10 system, installed lumberyard 1.8 and still same issue:

Warning] Access to undeclared global variable 'TriggerAreaNotificationBusHandler'---------- START STACK TRACE ---------- =C: ?scripts/trigger_test.luac(9): ? ---------- END STACK TRACE ----------

Lua error (2 - scripts/trigger_test.luac:9: attempt to index global 'TriggerAreaNotificationBusHandler' (a nil value)) during call to OnActivate

[Error] Lua error (2 - scripts/trigger_test.luac:9: attempt to index global 'TriggerAreaNotificationBusHandler' (a nil value)) during call to OnActivate

general.exit_game_mode

Returned:

general.clear_selection

Returned: 1

general.exit_game_mode

Returned:

Lua error (2) during call to OnDeactivate: scripts/trigger_test.luac:21: attempt to index field 'triggerBusHandler' (a nil value)

[Error] Lua error (2) during call to OnDeactivate: scripts/trigger_test.luac:21: attempt to index field 'triggerBusHandler' (a nil value)

Enable Accelerators

At this point there is one last thing that comes to mind that i could do but i don't think that it will help. Im thinking of downloading the latest Lua script and overwriting the one in the engine but i think this bug comes from the Engine itself not the script. Anyone else has some idea what i could do here?

已回答 7 年前
0

actually tried that already as i suspected it at one point but let me try again. Though is it ok when i rewrite the file from .lua to .luac? cause when i want to open a script from the engine in the entity inspector it only allowes me to choose .luac

已回答 7 年前
0

IT WOOOOOOORKEEEEEEDDDDD!!!!! finally after a week i can go on! :D :D

已回答 7 年前
0

Sure will thanks again. I think that reinstalling the Win 10 helped too as i had U4 engine installed before and as i mentioned i tried it without the "Handler" before with no luck. But at least its working now so thanks you ever so much!

已回答 7 年前
0

Excellent!! Again, sorry for this issue — we'll update the Lua tutorial as fast as humanly possible :)

There is a strange event happening with the extension names. We save the files as .lua but the editor actually stores it as .luac. This is basically the compiled format of the .lua file. This compile process occurs in Asset Processor when it detects the new / updated version of said .lua file. There shouldn't be an issue with saving the extension out as .lua if you're using an external lua editor. But if you do come across any bugs like that, please let us know!

Cheers!

已回答 7 年前
0

Ignore: Looks like you got it working. Awesome!

已回答 7 年前
0

Hi now i have a problem in the tutorial with Tags :D. its giving me the error:

[Warning] Lua execute error (2) on EBus (TickBus): trying to bind to a non-table value : scripts/tutorial_tag.luac:24: attempt to get length of local 'DynamicTaggedEntities' (a userdata value)---------- START STACK TRACE ---------- ---------- END STACK TRACE ----------

the 2 boxes scale correctly on the Z axis as they should however they do not scale on the Y axis

已回答 7 年前
0

Are you still getting this error? It might be better to start a new thread. @REDACTEDUSER

已回答 7 年前

此貼文已關閉:已停用新增新答案、評論和投票功能。