Ir para conteúdo
  • 0

OTClient


AlphaLove

Pergunta

Galera, tenho um OTClient aqui à algum tempo, mas não consigo usa-lo, por quando mudo o ip dele, a parte onde coloca login e senha simplesmente some.

 

Se alguém puder me ajudar eu fico grato.

 

entergame.lua

 

 

EnterGame = { }

 

-- private variables

local loadBox

local enterGame

local motdButton

local enterGameButton

local protocolBox

 

-- private functions

local function onError(protocol, message, errorCode)

if loadBox then

loadBox:destroy()

loadBox = nil

end

 

if not errorCode then

EnterGame.clearAccountFields()

end

 

local errorBox = displayErrorBox(tr('Login Error'), message)

connect(errorBox, { onOk = EnterGame.show })

end

 

local function onMotd(protocol, motd)

G.motdNumber = tonumber(motd:sub(0, motd:find("\n")))

G.motdMessage = motd:sub(motd:find("\n") + 1, #motd)

motdButton:show()

end

 

local function onCharacterList(protocol, characters, account, otui)

if enterGame:getChildById('rememberPasswordBox'):isChecked() then

g_settings.set('account', g_crypt.encrypt(G.account))

g_settings.set('password', g_crypt.encrypt(G.password))

g_settings.set('autologin', enterGame:getChildById('autoLoginBox'):isChecked())

else

EnterGame.clearAccountFields()

end

 

loadBox:destroy()

loadBox = nil

 

CharacterList.create(characters, account, otui)

CharacterList.show()

 

local lastMotdNumber = g_settings.getNumber("motd")

if G.motdNumber and G.motdNumber ~= lastMotdNumber then

g_settings.set("motd", motdNumber)

local motdBox = displayInfoBox(tr('Message of the day'), G.motdMessage)

connect(motdBox, { onOk = CharacterList.show })

CharacterList.hide()

end

end

 

-- public functions

function EnterGame.init()

enterGame = g_ui.displayUI('entergame.otui')

enterGameButton = TopMenu.addLeftButton('enterGameButton', tr('Login') .. ' (Ctrl + G)', 'login.png', EnterGame.openWindow)

motdButton = TopMenu.addLeftButton('motdButton', tr('Message of the day'), 'motd.png', EnterGame.displayMotd)

motdButton:hide()

g_keyboard.bindKeyDown('Ctrl+G', EnterGame.openWindow)

 

if G.motdNumber then

motdButton:show()

end

 

local account = g_crypt.decrypt(g_settings.get('account'))

local password = g_crypt.decrypt(g_settings.get('password'))

local host = g_settings.get('host')

local port = g_settings.get('port')

local autologin = g_settings.getBoolean('autologin')

local clientVersion = g_settings.getInteger('client-version')

 

if port == nil or port == 0 then port = 7171 end

 

enterGame:getChildById('accountNameTextEdit'):setText(account)

enterGame:getChildById('accountPasswordTextEdit'):setText(password)

enterGame:getChildById('serverHostTextEdit'):setText(host)

enterGame:getChildById('serverPortTextEdit'):setText(port)

enterGame:getChildById('autoLoginBox'):setChecked(autologin)

enterGame:getChildById('rememberPasswordBox'):setChecked(#account > 0)

enterGame:getChildById('accountNameTextEdit'):focus()

 

protocolBox = enterGame:getChildById('protocolComboBox')

for _i, proto in pairs(g_game.getSupportedProtocols()) do

protocolBox:addOption(proto)

end

 

if clientVersion then

protocolBox:setCurrentOption(clientVersion)

end

 

enterGame:getChildById('serverHostTextEdit'):setVisible(false)

enterGame:getChildById('serverPortTextEdit'):setVisible(false)

enterGame:getChildById('protocolComboBox'):setVisible(false)

---

enterGame:getChildById('serverLabel'):setVisible(false)

enterGame:getChildById('protocolLabel'):setVisible(false)

enterGame:getChildById('portLabel'):setVisible(false)

 

enterGame:hide()

 

if g_app.isRunning() and not g_game.isOnline() then

enterGame:show()

end

end

 

function EnterGame.firstShow()

EnterGame.show()

 

local account = g_crypt.decrypt(g_settings.get('account'))

local password = g_crypt.decrypt(g_settings.get('password'))

local host = g_settings.get('host')

local autologin = g_settings.getBoolean('autologin')

if #host > 0 and #password > 0 and #account > 0 and autologin then

autoLogiEvent = addEvent(EnterGame.doLogin)

end

end

 

function EnterGame.terminate()

g_keyboard.unbindKeyDown('Ctrl+G')

enterGame:destroy()

enterGame = nil

enterGameButton:destroy()

enterGameButton = nil

motdButton:destroy()

motdButton = nil

protocolBox = nil

EnterGame = nil

end

 

function EnterGame.show()

enterGame:show()

enterGame:raise()

enterGame:focus()

end

 

function EnterGame.hide()

enterGame:hide()

end

 

function EnterGame.openWindow()

if g_game.isOnline() then

CharacterList.show()

elseif not CharacterList.isVisible() then

EnterGame.show()

end

end

 

function EnterGame.clearAccountFields()

enterGame:getChildById('accountNameTextEdit'):clearText()

enterGame:getChildById('accountPasswordTextEdit'):clearText()

enterGame:getChildById('accountNameTextEdit'):focus()

g_settings.remove('account')

g_settings.remove('password')

end

 

function EnterGame.doLogin()

autoLogiEvent = nil

G.account = enterGame:getChildById('accountNameTextEdit'):getText()

G.password = enterGame:getChildById('accountPasswordTextEdit'):getText()

G.host = enterGame:getChildById('serverHostTextEdit'):getText()

G.port = tonumber(enterGame:getChildById('serverPortTextEdit'):getText())

local clientVersion = tonumber(protocolBox:getText())

EnterGame.hide()

 

if g_game.isOnline() then

local errorBox = displayErrorBox(tr('Login Error'), tr('Cannot login while already in game.'))

connect(errorBox, { onOk = EnterGame.show })

return

end

 

g_settings.set('host', G.host)

g_settings.set('port', G.port)

 

local protocolLogin = ProtocolLogin.create()

protocolLogin.onError = onError

protocolLogin.onMotd = onMotd

protocolLogin.onCharacterList = onCharacterList

 

loadBox = displayCancelBox(tr('Please wait'), tr('Connecting to login server...'))

connect(loadBox, { onCancel = function(msgbox)

loadBox = nil

protocolLogin:cancelLogin()

EnterGame.show()

end })

 

g_game.chooseRsa(G.host)

g_game.setClientVersion(clientVersion)

 

if modules.game_tibiafiles.isLoaded() then

protocolLogin:login(G.host, G.port, G.account, G.password)

else

loadBox:destroy()

loadBox = nil

EnterGame.show()

end

end

 

function EnterGame.displayMotd()

displayInfoBox(tr('Message of the day'), G.motdMessage)

end

 

function EnterGame.setDefaultServer(host, port, protocol)

local hostTextEdit = enterGame:getChildById('serverHostTextEdit')

local portTextEdit = enterGame:getChildById('serverPortTextEdit')

local protocolLabel = enterGame:getChildById('protocolLabel')

local accountTextEdit = enterGame:getChildById('accountNameTextEdit')

local passwordTextEdit = enterGame:getChildById('accountPasswordTextEdit')

 

if hostTextEdit:getText() ~= host then

hostTextEdit:setText(host)

portTextEdit:setText(port)

protocolBox:setCurrentOption(protocol)

accountTextEdit:setText('')

passwordTextEdit:setText('')

 

if autoLogiEvent then

autoLogiEvent:cancel()

end

end

end

 

function EnterGame.setUniqueServer(host, port, protocol, windowWidth, windowHeight)

local hostTextEdit = enterGame:getChildById('serverHostTextEdit')

hostTextEdit:setText(host)

hostTextEdit:setVisible(false)

hostTextEdit:setHeight(0)

local portTextEdit = enterGame:getChildById('serverPortTextEdit')

portTextEdit:setText(port)

portTextEdit:setVisible(false)

portTextEdit:setHeight(0)

 

protocolBox:setCurrentOption(protocol)

protocolBox:setVisible(false)

protocolBox:setHeight(0)

 

local serverLabel = enterGame:getChildById('serverLabel')

serverLabel:setVisible(false)

serverLabel:setHeight(0)

local portLabel = enterGame:getChildById('portLabel')

portLabel:setVisible(false)

portLabel:setHeight(0)

local protocolLabel = enterGame:getChildById('protocolLabel')

protocolLabel:setVisible(false)

protocolLabel:setHeight(0)

 

local rememberPasswordBox = enterGame:getChildById('rememberPasswordBox')

rememberPasswordBox:setMarginTop(-5)

 

if not windowWidth then windowWidth = 236 end

enterGame:setWidth(windowWidth)

if not windowHeight then windowHeight = 200 end

enterGame:setHeight(windowHeight)

end

 

 

 

 

 

Achava que mudando essa parte:

function EnterGame.setUniqueServer(host, port, protocol, windowWidth, windowHeight)

 

para:

function EnterGame.setUniqueServer(MEUIP, 7171, 854, windowWidth, windowHeight)

já iria funcionar, mas não funciona :s

 

 

entergame.otui

 

 

Quote

 

EnterGameWindow < MainWindow

 

EnterGameWindow

id: enterGame

!text: tr('Enter Game')

size: 236 200

@onEnter: EnterGame.doLogin()

 

MenuLabel

!text: tr('Account name')

anchors.left: parent.left

anchors.top: parent.top

text-auto-resize: true

 

TextEdit

id: accountNameTextEdit

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-top: 2

 

MenuLabel

!text: tr('Password')

anchors.left: prev.left

anchors.top: prev.bottom

margin-top: 8

text-auto-resize: true

 

PasswordTextEdit

id: accountPasswordTextEdit

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-top: 2

 

CheckBox

id: rememberPasswordBox

!text: tr('Remember password')

!tooltip: tr('Remember account and password when starts otclient')

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-top: 10

@onCheckChange: self:getParent():getChildById('autoLoginBox'):setEnabled(self:isChecked())

 

CheckBox

id: autoLoginBox

enabled: false

!text: tr('Auto login')

!tooltip: tr('Open charlist automatically when starting otclient')

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-top: 2

 

Button

!text: tr('Ok')

width: 64

anchors.right: parent.right

anchors.bottom: parent.bottom

@onClick: EnterGame.doLogin()

 

MenuLabel

id: serverLabel

!text: tr('Server')

anchors.left: prev.left

anchors.top: prev.bottom

margin-top: 8

text-auto-resize: true

 

TextEdit

id: serverHostTextEdit

!tooltip: tr('Make sure that your client uses\nthe correct game protocol version')

anchors.left: parent.left

anchors.right: parent.right

anchors.top: serverLabel.bottom

margin-top: 2

 

MenuLabel

id: protocolLabel

!text: tr('Protocol')

anchors.left: parent.left

anchors.top: serverHostTextEdit.bottom

text-auto-resize: true

margin-right: 10

margin-top: 8

 

ComboBox

id: protocolComboBox

anchors.left: parent.left

anchors.right: parent.horizontalCenter

anchors.top: protocolLabel.bottom

margin-top: 2

margin-right: 3

width: 90

 

MenuLabel

id: portLabel

!text: tr('Port')

anchors.left: serverPortTextEdit.left

anchors.top: serverHostTextEdit.bottom

margin-top: 8

text-auto-resize: true

 

TextEdit

id: serverPortTextEdit

text: 7171

anchors.right: parent.right

anchors.left: parent.horizontalCenter

anchors.top: protocolComboBox.top

margin-left: 3

 

 

 

entergame.otmod

 

 

 

Module

name: client_entergame

description: Manages enter game and character list windows

author: edubart

website: www.otclient.info

 

dependencies:

- client_topmenu

 

@onLoad: |

dofile 'entergame'

dofile 'characterlist'

EnterGame.init()

CharacterList.init()

 

@onUnload: |

EnterGame.terminate()

CharacterList.terminate()

 

 

 

 

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

faça assim, deixe do jeito como vem no otclient...

nessa função function EnterGame.init(), no final dela, embaixo de:

 

if g_app.isRunning() and not g_game.isOnline() then

enterGame:show()

end

 

vc colocar bem assim:

  EnterGame.setUniqueServer('127.0.0.1', 7171, 854)

na respectiva ordem, ip - port - versão

Editado por Noninhouh
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...