Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Login
- --Interface
- --v.0.3
- --| Public:
- --| construct
- --| deconstruct
- --| showLogin
- --| hideLogin
- --| showDisconnect
- --| showForgottenPW
- --|
- --| Private:
- --| tryLogin
- --| blinkConnection
- --| showUserFound
- --| myHabboSmile
- --| stopWaving
- --| eventProcLogin
- --| eventProcForgottenPW
- --| eventProcDisconnect
- property pConnectionID
- property pTempPassword
- -- Public methods: -- -- -- -- -- -- -- -- -- -- --//
- -- Constructor.
- on construct(me)
- pConnectionID = getVariable("connection.info.id")
- pTempPassword = []
- return(TRUE)
- end
- -- Deconstructor.
- on deconstruct(me)
- if(windowExists(#login_a)) then removeWindow(#login_a)
- if(windowExists(#login_b)) then removeWindow(#login_b)
- return(TRUE)
- end
- -- Opens login dialog windows...
- on showLogin(me)
- -- Clear user's name and password...
- getObject(#session).set(#username, EMPTY)
- getObject(#session).set(#password, EMPTY)
- pTempPassword = []
- -- Create login windows...
- if(createWindow(#login_a, "habbo_simple.window", 444, 100)) then
- tWndObj = getWindow(#login_a)
- tWndObj.merge("login_a.window")
- tWndObj.registerClient(me.getID())
- tWndObj.registerProcedure(#eventProcLogin, me.getID(), #mouseUp)
- end if
- if(createWindow(#login_b, "habbo_simple.window", 444, 230)) then
- tWndObj = getWindow(#login_b)
- tWndObj.merge("login_b.window")
- tWndObj.registerClient(me.getID())
- tWndObj.registerProcedure(#eventProcLogin, me.getID(), #mouseUp)
- tWndObj.registerProcedure(#eventProcLogin, me.getID(), #keyDown)
- tWndObj.getElement("login_username").setFocus(TRUE)
- -- For china font fix! --jjj
- if(variableExists("username_input.font.size")) then
- tElem = tWndObj.getElement("login_username")
- if(tElem = FALSE) then return(FALSE)
- if(tElem.pMember = VOID) then return(FALSE)
- if(tElem.pMember.type <> #field) then return(FALSE)
- tElem.pMember.fontSize = getIntVariable("username_input.font.size")
- tElem = tWndObj.getElement("login_password")
- if(tElem = FALSE) then return(FALSE)
- if(tElem.pMember = VOID) then return(FALSE)
- if(tElem.pMember.type <> #field) then return(FALSE)
- tElem.pMember.fontSize = getIntVariable("username_input.font.size")
- end if
- end if
- return(TRUE)
- end
- -- Simply closes login windows after succesfull login...
- on hideLogin(me)
- if(windowExists(#login_a)) then removeWindow(#login_a)
- if(windowExists(#login_b)) then removeWindow(#login_b)
- return(TRUE)
- end
- -- Open generic dialog when connection \
- is accidentally disconnected...
- on showDisconnect(me)
- createWindow(#error, "error.window", 0, 0, #modal)
- tWndObj = getWindow(#error)
- tWndObj.getElement("error_title").setText(getText("Alert_ConnectionFailure"))
- tWndObj.getElement("error_text").setText(getText("Alert_ConnectionDisconnected"))
- tWndObj.registerClient(me.getID())
- tWndObj.registerProcedure(#eventProcDisconnect, me.getID(), #mouseUp)
- the keyboardFocusSprite = 0
- end
- -- Private methods: -- -- -- -- -- -- -- -- -- -- --//
- -- Starts connection/login process.
- on tryLogin(me)
- -- '#login_b' window MUST exist...
- if(not windowExists(#login_b)) then
- return(error(me, "Window not found:" && #login_b, #eventProcLogin))
- end if
- tWndObj = getWindow(#login_b)
- -- Save username & password...
- tUserName = tWndObj.getElement("login_username").getText()
- tPassword = EMPTY
- repeat with tChar in pTempPassword
- put tChar after tPassword
- end repeat
- if(tUserName = EMPTY) then return(FALSE)
- if(tPassword = EMPTY) then return(FALSE)
- getObject(#session).set(#username, tUserName)
- getObject(#session).set(#password, tPassword)
- -- Hide 'OK' button...Replace with 'connecting' text...
- tWndObj.getElement("login_ok").hide()
- tWndObj.getElement("login_connecting").setProperty(#blend, 100)
- tElem = tWndObj.getElement("login_forgotten")
- tElem.setProperty(#blend, 99)
- tElem.setProperty(#cursor, 0)
- tElem = getWindow(#login_a).getElement("login_createUser")
- tElem.setProperty(#blend, 99)
- tElem.setProperty(#cursor, 0)
- me.blinkConnection()
- -- Tell login thread to create connection...
- me.getComponent().setaProp(#pOkToLogin, TRUE)
- return(me.getComponent().connect())
- end
- -- Blinks 'connecting' text while \
- making connection to server...
- on blinkConnection(me)
- if(not windowExists(#login_b)) then return(FALSE)
- if(timeoutExists(#login_blinker)) then return(FALSE)
- tElem = getWindow(#login_b).getElement("login_connecting")
- if(not tElem) then return(FALSE)
- if(getWindow(#login_b).getElement("login_ok").getProperty(#visible) = TRUE) then return(FALSE)
- tElem.setProperty(#visible, not tElem.getProperty(#visible))
- return(createTimeout(#login_blinker, 500, #blinkConnection, me.getID(), VOID, 1))
- end
- -- Opens 'user found' window...
- on showUserFound(me)
- if(windowExists(#login_b)) then
- getWindow(#login_b).unmerge()
- else
- createWindow(#login_b, "habbo_simple.window",444, 230)
- end if
- tWndObj = getWindow(#login_b)
- tWndObj.merge("login_c.window")
- -- Apply welcome text...
- tTxt = tWndObj.getElement("login_c_welcome").getText()
- tTxt = tTxt && getObject(#session).get("user_name")
- tWndObj.getElement("login_c_welcome").setText(tTxt)
- -- Render user's character...
- if objectExists("Figure_Preview") then
- tBuffer = getObject("Figure_Preview").createTemplateHuman("h", 3, "wave")
- tWndObj.getElement("login_preview").setProperty(#buffer, tBuffer)
- me.delay(800, #myHabboSmile)
- else
- me.hideLogin()
- end if
- return(TRUE)
- end
- -- Makes a happy Habbo...
- on myHabboSmile(me)
- if objectExists("Figure_Preview") then
- getObject("Figure_Preview").createTemplateHuman("h", 3, "gest", "temp sml")
- end if
- me.delay(1200, #stopWaving)
- end
- -- Prepare to step on...
- on stopWaving(me)
- if objectExists("Figure_Preview") then
- getObject("Figure_Preview").createTemplateHuman("h", 3, "reset")
- getObject("Figure_Preview").createTemplateHuman("h", 3, "gest", "temp sml")
- getObject("Figure_Preview").createTemplateHuman("h", 3, "remove")
- end if
- me.delay(400, #hideLogin)
- end
- -- Handles mouse and key events \
- occured to login windows. Hides \
- password in password field.
- on eventProcLogin(me, tEvent, tSprID, tParam)
- case(tEvent) of
- #mouseUp:
- case(tSprID) of
- "login_ok":
- return(me.tryLogin())
- "login_createUser":
- if(getWindow(#login_a).getElement(tSprID).getProperty(#blend) = 100) then
- -- Enter the registration...
- if(windowExists(#login_a)) then removeWindow(#login_a)
- if(windowExists(#login_b)) then removeWindow(#login_b)
- executeMessage(#show_registration)
- return(TRUE)
- end if
- "login_forgotten":
- if(getWindow(#login_b).getElement(tSprID).getProperty(#blend) = 100) then
- openNetPage(getText("login_forgottenPassword_url"))
- end if
- end case
- #keyDown:
- if(the keyCode = 36) then -- Return...
- me.tryLogin()
- return(TRUE)
- end if
- case(tSprID) of
- "login_password":
- case(the keyCode) of
- 48: return(FALSE) -- TAB...
- 49: return(TRUE) -- Space...
- 51: if(pTempPassword.count > 0) then pTempPassword.deleteAt(pTempPassword.count) -- Backspace...
- 117: pTempPassword = [] -- Delete...
- otherwise:
- tAscii = charToNum(the key)
- if(tAscii > 31) and (tAscii < 128) then
- if(pTempPassword.count < getIntVariable("pass.length.max", 36)) then
- pTempPassword.append(the key)
- end if
- end if
- end case
- tStr = EMPTY
- repeat with tChar in pTempPassword
- put "*" after tStr
- end repeat
- getWindow(#login_b).getElement(tSprID).setText(tStr)
- the selStart = pTempPassword.count
- the selEnd = pTempPassword.count
- return(TRUE)
- end case
- end case
- return(FALSE)
- end
- -- Event proc for modal disconnection dialog.
- on eventProcDisconnect(me, tEvent, tElemID, tParam)
- if(tEvent = #mouseUp) then
- if(tElemID = "error_close") then
- removeWindow(#error)
- resetClient()
- end if
- end if
- end
- -- End of file. -- -- -- -- -- -- -- -- -- -- -- --//
- --Login Interface Class
- --Antti Kaseva
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement