What exactly did you ask ChatGPT?
Did it generate the code you posted?
The player has to look for the right combination in a room and then press accordingly the left button or the righ button (the hint are marqued as "L" or "R") and the button are placed left and right to the main hint.Zo Kath Ra wrote: ↑Thu Apr 06, 2023 4:59 pmHow does the puzzle work?bongobeat wrote: ↑Thu Apr 06, 2023 10:33 am it is in a single script file, without anything else, and linked to 2 buttons named mkbforge1 and mkbforge2
I'm asking because some players seems to have trouble with that, if the right combination is not found at first.
Maybe I have done something wrong here. This is just copy paste and modify from another script that someone made for me.
And how does the script work?
(if you can't answer this question, then that's the problem)
And what "trouble" are the players having?
It helps to be precise when reporting bugs...
You're probably right about the cause of the problem, and the solution.Banaora wrote: ↑Thu Apr 06, 2023 9:25 pm Maybe it is enough to enable sound feedback in the function combinationReset().
The way it is now you can enter "111222121211121" and it will not be accepted even though the string contains the correct solution because it will reset after the 3rd 1. And the player could wonder why that is when he doesn't get any kind of feedback.
Code: Select all
combination = "11222121211121"
count = 0 -- number of correctly guessed digits
function buttonCombination(callerButtonComponent)
if count == #combination then
hudPrint("The puzzle has already been solved!")
elseif string.sub(callerButtonComponent.go.id, -1) == string.sub(combination, count + 1, count + 1) then
-- last character in the pressed button's id == next digit in the combination
count = count + 1
if count == #combination then
hudPrint("You have solved the puzzle!")
end
else
hudPrint("Wrong button! The puzzle has been reset.")
count = 0
end
end
Code: Select all
combination = "11222121211121"
keypresses = ""
function buttonCombination(callerButtonComponent)
keypresses = keypresses .. string.sub(callerButtonComponent.go.id, -1)
if #keypresses > #combination then
keypresses = string.sub(keypresses, 2)
end
if keypresses == combination then
hudPrint("You have solved the puzzle!")
-- deactivate the buttons
end
end
Will try that, thanks!Zo Kath Ra wrote: ↑Thu Apr 06, 2023 11:03 pmYou're probably right about the cause of the problem, and the solution.Banaora wrote: ↑Thu Apr 06, 2023 9:25 pm Maybe it is enough to enable sound feedback in the function combinationReset().
The way it is now you can enter "111222121211121" and it will not be accepted even though the string contains the correct solution because it will reset after the 3rd 1. And the player could wonder why that is when he doesn't get any kind of feedback.
But I think the original code is more complicated than it needs to be, so here's a simpler version.And here's a version that doesn't reset the puzzle, which is even simpler.Code: Select all
combination = "11222121211121" count = 0 -- number of correctly guessed digits function buttonCombination(callerButtonComponent) if count == #combination then hudPrint("The puzzle has already been solved!") elseif string.sub(callerButtonComponent.go.id, -1) == string.sub(combination, count + 1, count + 1) then -- last character in the pressed button's id == next digit in the combination count = count + 1 if count == #combination then hudPrint("You have solved the puzzle!") end else hudPrint("Wrong button! The puzzle has been reset.") count = 0 end end
Code: Select all
combination = "11222121211121" keypresses = "" function buttonCombination(callerButtonComponent) keypresses = keypresses .. string.sub(callerButtonComponent.go.id, -1) if #keypresses > #combination then keypresses = string.sub(keypresses, 2) end if keypresses == combination then hudPrint("You have solved the puzzle!") -- deactivate the buttons end end
Code: Select all
loadLayer("tiles", {
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,1,1,1,1,1,2,2,2,2,1,1,1,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,
2,2,2,2,2,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,
2,2,2,1,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,
2,2,2,1,1,1,2,2,1,1,1,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,1,1,2,2,1,1,1,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,1,1,1,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
})
Thank you for that. I might use that at some point, but I guess I'll stick with the default LMB and RMB method.Isaac wrote: ↑Fri Jun 07, 2024 2:19 am The dungeon editor doesn't support moving the solid bounds of the dungeon walls in a group, but the map levels themselves are just simple text blocks, found in the Dungeon.lua file; found in your mod's scripts folder. It is possible to edit the tile elevations in a text editor. Each number represents the height of one tile.
Code: Select all
loadLayer("tiles", { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,1,1,1,1,1,2,2,2,2,1,1,1,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2, 2,2,2,2,2,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, 2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2, 2,2,2,1,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2, 2,2,2,1,1,1,2,2,1,1,1,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,1,1,2,2,1,1,1,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,1,1,1,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, })
SpoilerShow