User Tools

Site Tools


developer_center:developer_editor:script:password

Solve Password Script

Finished Product

Create features

Create a block when clicked will show the UI

Design UI

Script

local treasure_block_id = nil ---- Replace your block id here
local uiid = nil ---- Replace your UI ID here
local number_1_ = nil ----  Replace 1st number here (password 1)
local number_2_ = nil ----  Replace 2nd number here (password 2)
local number_3_ = nil ----  Replace 3rd number here (password 3)
local button_1 = nil ---- Replace the ID of first button here 
local button_2 = nil ---- Replace the ID of second button here
local button_3 = nil ---- Replace the ID of third button here
local number0 = "10266"
local number1 = "10267"
local number2 = "10268"
local number3 = "10269"
local number4 = "10270"
local number5 = "10271"
local number6 = "10272"
local number7 = "10273"
local number8 = "10274"
local number9 = "10275"
-------------Don't edit anything below-------------
function click_to_treasure_block(e) 
    if e.blockid == treasure_block_id then
        Player:openUIView(e.eventobjid, uiid)
    end
end
 
ScriptSupportEvent:registerEvent("Player.ClickBlock", click_to_treasure_block)
 
local click_time_of_button_1 = 0
 
function number_1(e) 
    if e.uielement == button_1 then 
        click_time_of_button_1 = click_time_of_button_1 + 1 
        if click_time_of_button_1 == 10 then
            click_time_of_button_1 = 0 
        end 
    end
    if click_time_of_button_1 == 0 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number0)
    elseif click_time_of_button_1 == 1 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number1)
    elseif click_time_of_button_1 == 2 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number2)
    elseif click_time_of_button_1 == 3 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number3)
    elseif click_time_of_button_1 == 4 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number4)
    elseif click_time_of_button_1 == 5 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number5)
    elseif click_time_of_button_1 == 6 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number6)
    elseif click_time_of_button_1 == 7 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number7)
    elseif click_time_of_button_1 == 8 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number8)
    elseif click_time_of_button_1 == 9 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number9)
    end
    if number_1_ == click_time_of_button_1 and number_2_ == click_time_of_button_2 and number_3_ == click_time_of_button_3 then 
        Player:notifyGameInfo2Self(e.eventobjid, "you solved the password correctly")
    end
end
 
 
ScriptSupportEvent:registerEvent("UI.Button.Click", number_1)
 
local click_time_of_button_2 = 0
 
function number_2(e) 
    if e.uielement == button_2 then 
        click_time_of_button_2 = click_time_of_button_2 + 1 
        if click_time_of_button_2 == 10 then
            click_time_of_button_2 = 0 
        end 
    end
    if click_time_of_button_2 == 0 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number0)
    elseif click_time_of_button_2 == 1 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number1)
    elseif click_time_of_button_2 == 2 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number2)
    elseif click_time_of_button_2 == 3 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number3)
    elseif click_time_of_button_2 == 4 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number4)
    elseif click_time_of_button_2 == 5 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number5)
    elseif click_time_of_button_2 == 6 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number6)
    elseif click_time_of_button_2 == 7 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number7)
    elseif click_time_of_button_2 == 8 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number8)
    elseif click_time_of_button_2 == 9 then 
        Customui:setTexture(e.eventobjid, uiid, button_2, number9)
    end
    if number_1_ == click_time_of_button_1 and number_2_ == click_time_of_button_2 and number_3_ == click_time_of_button_3 then 
        Player:notifyGameInfo2Self(e.eventobjid, "you solved the password correctly")
    end
end
 
 
ScriptSupportEvent:registerEvent("UI.Button.Click", number_2)
 
local click_time_of_button_3 = 0
 
function number_3(e) 
    if e.uielement == button_3 then 
        click_time_of_button_3 = click_time_of_button_3 + 1 
        if click_time_of_button_3 == 10 then
            click_time_of_button_3 = 0 
        end 
    end
    if click_time_of_button_3 == 0 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number0)
    elseif click_time_of_button_3 == 1 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number1)
    elseif click_time_of_button_3 == 2 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number2)
    elseif click_time_of_button_3 == 3 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number3)
    elseif click_time_of_button_3 == 4 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number4)
    elseif click_time_of_button_3 == 5 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number5)
    elseif click_time_of_button_3 == 6 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number6)
    elseif click_time_of_button_3 == 7 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number7)
    elseif click_time_of_button_3 == 8 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number8)
    elseif click_time_of_button_3 == 9 then 
        Customui:setTexture(e.eventobjid, uiid, button_3, number9)
    end
 
    if number_1_ == click_time_of_button_1 and number_2_ == click_time_of_button_2 and number_3_ == click_time_of_button_3 then 
        Player:notifyGameInfo2Self(e.eventobjid, "you solved the password correctly")
    end
end
 
ScriptSupportEvent:registerEvent("UI.Button.Click", number_3)

Explanation

Variable Declarations

local treasure_block_id = nil
local uiid = nil
local number_1_ = nil
local number_2_ = nil
local number_3_ = nil
local button_1 = nil
local button_2 = nil
local button_3 = nil
  • These variables are placeholders for IDs of blocks, UI elements, and buttons in the game.
  • treasure_block_id: The ID of the block that triggers the UI.
  • uiid: ID of the UI that will be opened when interacting with the block.
  • number_1_, number_2_, number_3_: The three numbers that make up the correct password. number_1_ is the first number of the password; number_2_ is the second number of the password; and number_3_ is the third number of the password.
  • button_1, button_2, button_3: IDs of the buttons in the UI that the player will click to enter the password.

Number Texture IDs

local number0 = "10266"
local number1 = "10267"
local number2 = "10268"
local number3 = "10269"
local number4 = "10270"
local number5 = "10271"
local number6 = "10272"
local number7 = "10273"
local number8 = "10274"
local number9 = "10275"

These variables represent texture IDs for the digits 0-9. They are used to update the UI buttons to display the corresponding numbers.

Click Event on the Treasure Block

function click_to_treasure_block(e) 
    if e.blockid == treasure_block_id then
        Player:openUIView(e.eventobjid, uiid)
    end
end
 
ScriptSupportEvent:registerEvent("Player.ClickBlock", click_to_treasure_block)

When the player clicks on the block with ID treasure_block_id, the UI with ID uiid is opened. ScriptSupportEvent:registerEvent registers the click_to_treasure_block function to handle the block click event.

Button 1 Handling

local click_time_of_button_1 = 0
 
function number_1(e) 
    if e.uielement == button_1 then 
        click_time_of_button_1 = click_time_of_button_1 + 1 
        if click_time_of_button_1 == 10 then
            click_time_of_button_1 = 0 
        end 
    end
    -- Update button texture based on the number
    if click_time_of_button_1 == 0 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number0)
    elseif click_time_of_button_1 == 1 then 
        Customui:setTexture(e.eventobjid, uiid, button_1, number1)
    ----- etc. (similar code for numbers 2 to 9)
    end
 
    if number_1_ == click_time_of_button_1 and number_2_ == click_time_of_button_2 and number_3_ == click_time_of_button_3 then 
        Player:notifyGameInfo2Self(e.eventobjid, "you solved the password correctly")
    end
end
 
ScriptSupportEvent:registerEvent("UI.Button.Click", number_1)
  • click_time_of_button_1 keeps track of how many times button_1 is clicked.
  • Each time button_1 is clicked, its associated number is incremented. After 9, it wraps back to 0.
  • Customui:setTexture updates the button's texture to display the corresponding number.
  • The code checks if all three buttons (button_1, button_2, and button_3) match the correct password. If they do, a success message is displayed.

Button 2 and 3 is the same

Password Check

    if number_1_ == click_time_of_button_1 and number_2_ == click_time_of_button_2 and number_3_ == click_time_of_button_3 then 
        Player:notifyGameInfo2Self(e.eventobjid, "you solved the password correctly")
    end
  • For each button, the code compares the current number with the correct number in the password (number_1_, number_2_, number_3_).
  • If all three numbers match, the player is notified that the password is correct.

If you have any questions about Developer Tools, feel free to join our official discord server Mini World Global DEV discord

developer_center/developer_editor/script/password.txt · Last modified: 2024/08/13 04:22 by don