Filexdoj

crackingPad

Mar 28th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.94 KB | None | 0 0
  1. local crackingPadElements = nil
  2. local randomNumber
  3. local keys = {
  4.     num_0 = 0,
  5.     num_1 = 1,
  6.     num_2 = 2,
  7.     num_3 = 3,
  8.     num_4 = 4,
  9.     num_5 = 5,
  10.     num_6 = 6,
  11.     num_7 = 7,
  12.     num_8 = 8,
  13.     num_9 = 9
  14. }
  15.  
  16. function startCracking()
  17.     showCursor(true)
  18.     makeCrackingTab()
  19.     randomNumber = math.random(0, 100)
  20.     addEventHandler("onClientGUIClick", getRootElement(), onButtonClick)
  21.     addEventHandler("onClientKey", getRootElement(), onKeyClick)
  22.     iprint(randomNumber)
  23. end
  24. addCommandHandler("start", startCracking)
  25.  
  26. function makeCrackingTab()
  27.     crackingPadElements = {}
  28.     local screenW, screenH = guiGetScreenSize()
  29.     crackingPadElements.window = GuiWindow((screenW - 248) / 2, (screenH - 360) / 2, 248, 360, "Cracking Pad", false)
  30.     crackingPadElements.window:setSizable(false)
  31.     crackingPadElements.window:setMovable(false)
  32.     crackingPadElements.edit = GuiEdit(10, 25, 226, 34, "", false, crackingPadElements.window)
  33.     crackingPadElements.edit:setReadOnly(true)
  34.     crackingPadElements.button0 = GuiButton(86, 278, 73, 67, "0", false, crackingPadElements.window)
  35.     crackingPadElements.button1 = GuiButton(10, 63, 73, 67, "1", false, crackingPadElements.window)
  36.     crackingPadElements.button2 = GuiButton(86, 63, 73, 67, "2", false, crackingPadElements.window)
  37.     crackingPadElements.button3 = GuiButton(163, 63, 73, 67, "3", false, crackingPadElements.window)
  38.     crackingPadElements.button4 = GuiButton(11, 134, 73, 67, "4", false, crackingPadElements.window)
  39.     crackingPadElements.button5 = GuiButton(86, 134, 73, 67, "5", false, crackingPadElements.window)
  40.     crackingPadElements.button6 = GuiButton(163, 134, 73, 67, "6", false, crackingPadElements.window)
  41.     crackingPadElements.button7 = GuiButton(11, 206, 73, 67, "7", false, crackingPadElements.window)
  42.     crackingPadElements.button8 = GuiButton(86, 206, 73, 67, "8", false, crackingPadElements.window)
  43.     crackingPadElements.button9 = GuiButton(163, 206, 73, 67, "9", false, crackingPadElements.window)
  44.     crackingPadElements.buttonEnter = GuiButton(163, 278, 73, 67, "ENTER", false, crackingPadElements.window)
  45.     crackingPadElements.buttonDelete = GuiButton(11, 278, 73, 67, "#", false, crackingPadElements.window)
  46. end
  47.  
  48. function onButtonClick()
  49.     for _index, button in pairs(crackingPadElements) do
  50.         if crackingPadElements == nil then
  51.             return
  52.         end
  53.         if source ~= crackingPadElements.window then
  54.             if button == source then
  55.                 if crackingPadElements.edit:getText() == "HIGHER" or crackingPadElements.edit:getText() == "LOWER" then
  56.                     crackingPadElements.edit:setText("")
  57.                 end
  58.                 if _index == "buttonEnter" then
  59.                     onEnterButtonOrKeyClick()
  60.                 elseif _index == "buttonDelete" then
  61.                     onDeleteButtonOrKeyClick()
  62.                 else
  63.                     local value = _index:gsub("button", "")
  64.                     local editValue = crackingPadElements.edit:getText()
  65.                     crackingPadElements.edit:setText(editValue .. value)
  66.                 end
  67.             end
  68.         else
  69.             return
  70.         end
  71.     end
  72. end
  73.  
  74. function onKeyClick(key, pOr)
  75.     if crackingPadElements == nil then
  76.         return
  77.     end
  78.     if pOr == false then
  79.         if crackingPadElements.edit:getText() == "HIGHER" or crackingPadElements.edit:getText() == "LOWER" then
  80.             crackingPadElements.edit:setText("")
  81.         end
  82.         for _index, keyValue in pairs(keys) do
  83.             if _index:find(key) ~= nil then
  84.                 local editValue = crackingPadElements.edit:getText()
  85.                 crackingPadElements.edit:setText(editValue .. keyValue)
  86.             elseif key == "num_enter" or key == "enter" then
  87.                 onEnterButtonOrKeyClick()
  88.             elseif key == "backspace" then
  89.                 onDeleteButtonOrKeyClick()
  90.             end
  91.         end
  92.     end
  93. end
  94.  
  95. function onDeleteButtonOrKeyClick()
  96.     if crackingPadElements == nil then
  97.         return
  98.     end
  99.     local editValue = crackingPadElements.edit:getText()
  100.     local editValueLenght = editValue:len()
  101.     editValue = editValue:sub(0, editValueLenght - 1)
  102.     crackingPadElements.edit:setText(editValue)
  103. end
  104.  
  105. function onEnterButtonOrKeyClick()
  106.     if crackingPadElements == nil then
  107.         return
  108.     end
  109.     value = crackingPadElements.edit:getText()
  110.     value = tonumber(value)
  111.     if value == nil then
  112.         return
  113.     end
  114.     if value > randomNumber then
  115.         crackingPadElements.edit:setText("LOWER")
  116.     elseif value < randomNumber then
  117.         crackingPadElements.edit:setText("HIGHER")
  118.     elseif value == randomNumber then
  119.         removeEventHandler("onClientGUIClick", getRootElement(), onButtonClick)
  120.         removeEventHandler("onClientKey", getRootElement(), onKeyClick)
  121.         showCursor(false)
  122.         crackingPadElements.window:destroy()
  123.         crackingPadElements = nil
  124.     end
  125. end
Add Comment
Please, Sign In to add comment