mirror of
https://github.com/edubart/otclient.git
synced 2025-10-14 03:24:55 +02:00
protocol via script
This commit is contained in:
@@ -43,6 +43,7 @@ window#enterGameWindow
|
||||
anchors.bottom: parent.bottom
|
||||
margin.bottom: 10
|
||||
margin.right: 66
|
||||
onClick: enterGame_onOkClicked()
|
||||
|
||||
button#cancelButton
|
||||
text: Cancel
|
||||
|
@@ -12,6 +12,43 @@ function onApplicationClose()
|
||||
App.exit()
|
||||
end
|
||||
|
||||
function enterGame_onOkClicked()
|
||||
local enterGameWindow = UI.getRootContainer():child("enterGameWindow")
|
||||
enterGameWindow.visible = false
|
||||
|
||||
local loadMessageBox = messageBox("Please wait", "Connecting..")
|
||||
loadMessageBox.onDestroy = function()
|
||||
--TODO: cancel protocol
|
||||
enterGameWindow.visible = true
|
||||
protocolLogin = nil
|
||||
end
|
||||
|
||||
protocolLogin = ProtocolLogin.new()
|
||||
protocolLogin.onError = function(error)
|
||||
loadMessageBox.onDestroy = nil
|
||||
loadMessageBox:destroy()
|
||||
local msgBox = messageBox("Login Error", error)
|
||||
msgBox.onDestroy = function()
|
||||
enterGameWindow.visible = true
|
||||
end
|
||||
protocolLogin = nil
|
||||
end
|
||||
protocolLogin.onMotd = function(motd)
|
||||
loadMessageBox.onDestroy = nil
|
||||
loadMessageBox:destroy()
|
||||
local msgBox = messageBox("Message of the day", motd)
|
||||
msgBox.onDestroy = function()
|
||||
enterGameWindow.visible = true
|
||||
end
|
||||
protocolLogin = nil
|
||||
end
|
||||
|
||||
local account = enterGameWindow:child("accountNameTextEdit").text
|
||||
local password = enterGameWindow:child("passwordTextEdit").text
|
||||
|
||||
protocolLogin:login(account, password)
|
||||
end
|
||||
|
||||
-- here is where everything starts
|
||||
if not initialStateLoaded then
|
||||
onEnterMenuState()
|
||||
|
@@ -1,11 +1,34 @@
|
||||
function autoDestroyParent()
|
||||
self.parent:destroy()
|
||||
MessageBox = {}
|
||||
MessageBox.__index = MessageBox
|
||||
|
||||
function MessageBox.create(title, text)
|
||||
local msgBox = {}
|
||||
setmetatable(msgBox, MessageBox)
|
||||
|
||||
local window = UI.load("messagebox.yml")
|
||||
window.locked = true
|
||||
window.title = title
|
||||
window:child("textLabel").text = text
|
||||
window:child("okButton").onClick = function()
|
||||
self.parent:destroy()
|
||||
end
|
||||
window.onDestroy = function()
|
||||
if msgBox.onDestroy then
|
||||
msgBox.onDestroy()
|
||||
end
|
||||
end
|
||||
|
||||
msgBox.window = window
|
||||
return msgBox
|
||||
end
|
||||
|
||||
function MessageBox:destroy()
|
||||
if self.window then
|
||||
self.window:destroy()
|
||||
self.window = nil
|
||||
end
|
||||
end
|
||||
|
||||
function messageBox(title, text)
|
||||
local msgBox = UI.load("messagebox.yml")
|
||||
msgBox.locked = true
|
||||
msgBox.title = title
|
||||
msgBox:child("textLabel").text = text
|
||||
msgBox:child("okButton").onClick = autoDestroyParent
|
||||
return MessageBox.create(title, text)
|
||||
end
|
||||
|
Reference in New Issue
Block a user