Flaker Posted February 24, 2012 Share Posted February 24, 2012 Доброго времени суток всем. Как сделать проверку числа написанного в guiCreateEdit с числом которое задается через math.random (1,100)? Все мои попытки ни к чему, не привели. Основная идея: Открытие ворот по коду, который нужно угадать из 100 чисел. Вот мой код: 1)Код на показ окна с вводом пароля, а также при открытие окна, задается переменная pass (Client) function createExeWed_Windows() GUIEditor_Window[1] = guiCreateWindow(0.292,0.3359,0.4199,0.1588,"ExeWed v0.97 | Protective system",true) password = guiCreateEdit(0.314,0.3607,0.5093,0.2869,"",true,GUIEditor_Window[1]) GUIEditor_Label[1] = guiCreateLabel(0.1047,0.459,0.4488,0.2957,"Password:",true,GUIEditor_Window[1]) guiLabelSetColor(GUIEditor_Label[1],0, 255, 100) guiSetFont(GUIEditor_Label[1],"default-bold-small") btnExit = guiCreateButton(0.8581,0.7213,0.0977,0.1639,"Exit",true,GUIEditor_Window[1]) guiSetFont(GUIEditor_Button[1],"default-bold-small") btnOK = guiCreateButton(0.8558,0.377,0.1047,0.2541,"OK",true,GUIEditor_Window[1]) guiSetFont(GUIEditor_Button[2],"default-bold-small") GUIEditor_Label[2] = guiCreateLabel(0.4581,0.7377,0.3605,0.1475,"Access Denied",true,GUIEditor_Window[1]) guiLabelSetColor(GUIEditor_Label[2],255,0,0) guiSetFont(GUIEditor_Label[2],"default-bold-small") showCursor(true) guiSetInputEnabled(true) pass = math.random(1,100) end 2) При нажатии на кнопку OK, сравнение числа в Edit поле, с заданым числом pass, если совпадает то написать в чате Access Accepted, если не совпадает, то ничего не делать. function use_ExeWed() password = guiGetText(password) if source == btnExit then DestroyExeWedGUI() end if (source == btnOK) then outputChatBox("Введи: ".. tostring(pass) .."",thePlayer,255,120,0) if (password == pass) then outputChatBox("Access Accepted") end end end addEventHandler("onClientGUIClick",getRootElement(),use_ExeWed) Link to comment
Kenix Posted February 24, 2012 Share Posted February 24, 2012 У тебя не получится сравнить строку с числом. Поэтому тебе нужно возвращаемое значение функции ( guiGetText ) преобразовать в число , чтобы проверить. Пример a = 5;b = '5' if a == b then print 'a == b' else print 'a ~= b' --> a ~= b end Link to comment
Flaker Posted February 25, 2012 Author Share Posted February 25, 2012 Уфф... ну никак неполучается( Я еще не совсем пример понимаю. Вот, что я смог сделать, подскажите пожалуста как исправить: function use_ExeWed() if source == btnExit then DestroyExeWedGUI() end if (source == btnOK) then local code = guiGetText(password) outputChatBox("Введи: ".. tostring(pass) .."",thePlayer,255,120,0) if code == pass then print 'code == pass' if 'code == pass' then outputChatBox("Access Accepted") end else print 'code ~= pass' outputChatBox("Access Denied") end end end addEventHandler("onClientGUIClick",getRootElement(),use_ExeWed) Link to comment
TEDERIs Posted February 25, 2012 Share Posted February 25, 2012 Конвертируем строку в число с помощью функции tonumber. Например: function use_ExeWed () if source == btnExit then DestroyExeWedGUI() end if (source == btnOK) then local code = guiGetText(password) outputChatBox("Введи: ".. pass, 255, 120, 0, true) if tonumber ( code ) == pass then outputChatBox("Access Accepted") else outputChatBox("Access Denied") end end end addEventHandler("onClientGUIClick",getRootElement(),use_ExeWed) Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now