Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá pessoal do TK ! Tudo bem? Bom gostaria de saber se alguém poderia me ajudar a Resolver o BUG de Duplicate Window do meu OTClient ? Aqui tem a Print de como é que está , e qual é o bug
Desde já Agradeço
NMhjDLs.png

Link para o post
Compartilhar em outros sites
  • Respostas 6
  • Created
  • Última resposta

Top Posters In This Topic

@Up

to com o msm erro

Gente, não dou suporte via mp, caso queira ajuda crie um tópico no fórum!!!
youtube.png  10869_64x64.png
Ajudei? Clicar em gostar não vai te matar

Link para o post
Compartilhar em outros sites

Posta o entergame.otui de vocês que eu arrumo. :)

Editado por Overllord (veja o histórico de edições)
Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.
Link para o post
Compartilhar em outros sites
EnterGameWindow < MainWindow
  !text: tr('Enter Game')
  size: 236 298

EnterGameButton < Button
  width: 64

ServerListButton < UIButton
  size: 17 17
  image-source: /images/topbuttons/minimap
  image-color: #ffffffff

  $hover !disabled:
    image-color: #ffffff99

  $pressed:
    image-color: #ffffff44

  $disabled:
    image-color: #ffffff55

EnterGameWindow
  id: enterGame
  &authenticatorEnabled: false
  &authenticatorHeight: 44
  &stayLoggedBoxEnabled: false
  &stayLoggedBoxHeight: 24
  @onEnter: EnterGame.doLogin()

  MenuLabel
    !text: tr('Account name')
    anchors.left: parent.left
    anchors.top: parent.top
    text-auto-resize: true

  PasswordTextEdit
    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

  MenuLabel
    id: authenticatorTokenLabel
    !text: tr('Authenticator Token')
    anchors.left: prev.left
    anchors.top: prev.bottom
    text-auto-resize: true
    margin-top: -12
    visible: false

    $on:
      visible: true
      margin-top: 8

  TextEdit
    id: authenticatorTokenTextEdit
    anchors.left: parent.left
    anchors.right: parent.right
    anchors.top: prev.bottom
    margin-top: -22
    visible: false
    max-length: 8

    $on:
      visible: true
      margin-top: 2

  CheckBox
    id: stayLoggedBox
    !text: tr('Stay logged during session')
    anchors.left: parent.left
    anchors.right: parent.right
    anchors.top: prev.bottom
    margin-top: 6
    margin-top: -16
    visible: false

    $on:
      visible: true
      margin-top: 8

  HorizontalSeparator
    anchors.left: parent.left
    anchors.right: parent.right
    anchors.top: prev.bottom
    margin-top: 8

  MenuLabel
    id: serverLabel
    !text: tr('Server')
    anchors.left: prev.left
    anchors.top: prev.bottom
    margin-top: 8
    text-auto-resize: true

  ServerListButton
    id: serverListButton
    !tooltip: tr('Server list')
    anchors.right: parent.right
    anchors.top: serverLabel.bottom
    margin-top: 3
    @onClick: ServerList.show()

  TextEdit
    id: serverHostTextEdit
    !tooltip: tr('Make sure that your client uses\nthe correct game client version')
    anchors.left: parent.left
    anchors.right: serverListButton.left
    anchors.top: serverLabel.bottom
    margin-top: 2
    margin-right: 4

  MenuLabel
    id: clientLabel
    !text: tr('Client Version')
    anchors.left: parent.left
    anchors.top: serverHostTextEdit.bottom
    text-auto-resize: true
    margin-right: 10
    margin-top: 8

  ComboBox
    id: clientComboBox
    anchors.left: parent.left
    anchors.right: parent.horizontalCenter
    anchors.top: clientLabel.bottom
    margin-top: 2
    margin-right: 3
    width: 90
    menu-scroll: true
    menu-height: 125
    menu-scroll-step: 25

  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: clientComboBox.top
    margin-left: 3

  CheckBox
    id: rememberPasswordBox
    !text: tr('Remember password')
    !tooltip: tr('Remember account and password when starts client')
    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 client')
    anchors.left: parent.left
    anchors.right: parent.right
    anchors.top: prev.bottom
    margin-top: 2

  HorizontalSeparator
    anchors.left: parent.left
    anchors.right: parent.right
    anchors.top: prev.bottom
    margin-top: 6

  EnterGameButton
    !text: tr('Ok')
    anchors.right: parent.right
    anchors.top: prev.bottom
    margin-top: 4
    @onClick: EnterGame.doLogin()

  Label
    id: serverInfoLabel
    font: verdana-11px-rounded
    anchors.top: prev.top
    anchors.left: parent.left
    margin-top: 5
    color: green
    text-auto-resize: true

Esse é o entergame.otui

O debaixo é o .lua, só que, tem como deixar, só pra por a senha e o login? e a opção de salvaaar e logar automaticamente?

EnterGame = { }

-- private variables
local loadBox
local enterGame
local motdWindow
local motdButton
local enterGameButton
local clientBox
local protocolLogin
local motdEnabled = true

-- 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)
  if motdEnabled then
    motdButton:show()
  end
end

local function onSessionKey(protocol, sessionKey)
  G.sessionKey = sessionKey
end

local function onCharacterList(protocol, characters, account, otui)
  -- Try add server to the server list
  ServerList.add(G.host, G.port, g_game.getClientVersion())

  -- Save 'Stay logged in' setting
  g_settings.set('staylogged', enterGame:getChildById('stayLoggedBox'):isChecked())

  if enterGame:getChildById('rememberPasswordBox'):isChecked() then
    local account = g_crypt.encrypt(G.account)
    local password = g_crypt.encrypt(G.password)

    g_settings.set('account', account)
    g_settings.set('password', password)

    ServerList.setServerAccount(G.host, account)
    ServerList.setServerPassword(G.host, password)

    g_settings.set('autologin', enterGame:getChildById('autoLoginBox'):isChecked())
  else
    -- reset server list account/password
    ServerList.setServerAccount(G.host, '')
    ServerList.setServerPassword(G.host, '')

    EnterGame.clearAccountFields()
  end

  loadBox:destroy()
  loadBox = nil

  for _, characterInfo in pairs(characters) do
    if characterInfo.previewState and characterInfo.previewState ~= PreviewState.Default then
      characterInfo.worldName = characterInfo.worldName .. ', Preview'
    end
  end

  CharacterList.create(characters, account, otui)
  CharacterList.show()

  if motdEnabled then
    local lastMotdNumber = g_settings.getNumber("motd")
    if G.motdNumber and G.motdNumber ~= lastMotdNumber then
      g_settings.set("motd", G.motdNumber)
      motdWindow = displayInfoBox(tr('Message of the day'), G.motdMessage)
      connect(motdWindow, { onOk = function() CharacterList.show() motdWindow = nil end })
      CharacterList.hide()
    end
  end
end

local function onUpdateNeeded(protocol, signature)
  loadBox:destroy()
  loadBox = nil

  if EnterGame.updateFunc then
    local continueFunc = EnterGame.show
    local cancelFunc = EnterGame.show
    EnterGame.updateFunc(signature, continueFunc, cancelFunc)
  else
    local errorBox = displayErrorBox(tr('Update needed'), tr('Your client needs updating, try redownloading it.'))
    connect(errorBox, { onOk = EnterGame.show })
  end
end

-- public functions
function EnterGame.init()
  enterGame = g_ui.displayUI('entergame')
  enterGameButton = modules.client_topmenu.addLeftButton('enterGameButton', tr('Login') .. ' (Ctrl + G)', '/images/topbuttons/login', EnterGame.openWindow)
  motdButton = modules.client_topmenu.addLeftButton('motdButton', tr('Message of the day'), '/images/topbuttons/motd', EnterGame.displayMotd)
  motdButton:hide()
  g_keyboard.bindKeyDown('Ctrl+G', EnterGame.openWindow)

  if motdEnabled and G.motdNumber then
    motdButton:show()
  end

  local account = g_settings.get('account')
  local password = g_settings.get('password')
  local host = g_settings.get('host')
  local port = g_settings.get('port')
  local stayLogged = g_settings.getBoolean('staylogged')
  local autologin = g_settings.getBoolean('autologin')
  local clientVersion = g_settings.getInteger('client-version')
  if clientVersion == 0 then clientVersion = 854 end

  server = "127.0.0.1"
  EnterGame.setUniqueServer('127.0.0.1', 7171, 854, 270, 210)

  EnterGame.setAccountName(account)
  EnterGame.setPassword(password)

  enterGame:getChildById('serverHostTextEdit'):setText(host)
  enterGame:getChildById('serverPortTextEdit'):setText(port)
  enterGame:getChildById('autoLoginBox'):setChecked(autologin)
  enterGame:getChildById('stayLoggedBox'):setChecked(stayLogged)

  clientBox = enterGame:getChildById('clientComboBox')
  for _, proto in pairs(g_game.getSupportedClients()) do
    clientBox:addOption(proto)
  end
  clientBox:setCurrentOption(clientVersion)

  EnterGame.toggleAuthenticatorToken(clientVersion, true)
  EnterGame.toggleStayLoggedBox(clientVersion, true)
  connect(clientBox, { onOptionChange = EnterGame.onClientVersionChange })

  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
    addEvent(function()
      if not g_settings.getBoolean('autologin') then return end
      EnterGame.doLogin()
    end)
  end
end

function EnterGame.terminate()
  g_keyboard.unbindKeyDown('Ctrl+G')
  disconnect(clientBox, { onOptionChange = EnterGame.onClientVersionChange })
  enterGame:destroy()
  enterGame = nil
  enterGameButton:destroy()
  enterGameButton = nil
  clientBox = nil
  if motdWindow then
    motdWindow:destroy()
    motdWindow = nil
  end
  if motdButton then
    motdButton:destroy()
    motdButton = nil
  end
  if loadBox then
    loadBox:destroy()
    loadBox = nil
  end
  if protocolLogin then
    protocolLogin:cancelLogin()
    protocolLogin = nil
  end
  EnterGame = nil
end

function EnterGame.show()
  if loadBox then return end
  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 g_game.isLogging() and not CharacterList.isVisible() then
    EnterGame.show()
  end
end

function EnterGame.setAccountName(account)
  local account = g_crypt.decrypt(account)
  enterGame:getChildById('accountNameTextEdit'):setText(account)
  enterGame:getChildById('accountNameTextEdit'):setCursorPos(-1)
  enterGame:getChildById('rememberPasswordBox'):setChecked(#account > 0)
end

function EnterGame.setPassword(password)
  local password = g_crypt.decrypt(password)
  enterGame:getChildById('accountPasswordTextEdit'):setText(password)
end

function EnterGame.clearAccountFields()
  enterGame:getChildById('accountNameTextEdit'):clearText()
  enterGame:getChildById('accountPasswordTextEdit'):clearText()
  enterGame:getChildById('authenticatorTokenTextEdit'):clearText()
  enterGame:getChildById('accountNameTextEdit'):focus()
  g_settings.remove('account')
  g_settings.remove('password')
end

function EnterGame.toggleAuthenticatorToken(clientVersion, init)
  local enabled = (clientVersion >= 854)
  if enabled == enterGame.authenticatorEnabled then
    return
  end

  enterGame:getChildById('authenticatorTokenLabel'):setOn(enabled)
  enterGame:getChildById('authenticatorTokenTextEdit'):setOn(enabled)

  local newHeight = enterGame:getHeight()
  local newY = enterGame:getY()
  if enabled then
    newY = newY - enterGame.authenticatorHeight
    newHeight = newHeight + enterGame.authenticatorHeight
  else
    newY = newY + enterGame.authenticatorHeight
    newHeight = newHeight - enterGame.authenticatorHeight
  end

  if not init then
    enterGame:breakAnchors()
    enterGame:setY(newY)
    enterGame:bindRectToParent()
  end
  enterGame:setHeight(newHeight)

  enterGame.authenticatorEnabled = enabled
end

function EnterGame.toggleStayLoggedBox(clientVersion, init)
  local enabled = (clientVersion >= 854)
  if enabled == enterGame.stayLoggedBoxEnabled then
    return
  end

  enterGame:getChildById('stayLoggedBox'):setOn(enabled)

  local newHeight = enterGame:getHeight()
  local newY = enterGame:getY()
  if enabled then
    newY = newY - enterGame.stayLoggedBoxHeight
    newHeight = newHeight + enterGame.stayLoggedBoxHeight
  else
    newY = newY + enterGame.stayLoggedBoxHeight
    newHeight = newHeight - enterGame.stayLoggedBoxHeight
  end

  if not init then
    enterGame:breakAnchors()
    enterGame:setY(newY)
    enterGame:bindRectToParent()
  end
  enterGame:setHeight(newHeight)

  enterGame.stayLoggedBoxEnabled = enabled
end

function EnterGame.onClientVersionChange(comboBox, text, data)
  local clientVersion = tonumber(text)
  EnterGame.toggleAuthenticatorToken(clientVersion)
  EnterGame.toggleStayLoggedBox(clientVersion)
end

function EnterGame.doLogin()
  G.account = enterGame:getChildById('accountNameTextEdit'):getText()
  G.password = enterGame:getChildById('accountPasswordTextEdit'):getText()
  G.authenticatorToken = enterGame:getChildById('authenticatorTokenTextEdit'):getText()
  G.stayLogged = enterGame:getChildById('stayLoggedBox'):isChecked()
  G.host = enterGame:getChildById('serverHostTextEdit'):getText()
  G.port = tonumber(enterGame:getChildById('serverPortTextEdit'):getText())
  local clientVersion = tonumber(clientBox: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)
  g_settings.set('client-version', clientVersion)

  protocolLogin = ProtocolLogin.create()
  protocolLogin.onLoginError = onError
  protocolLogin.onMotd = onMotd
  protocolLogin.onSessionKey = onSessionKey
  protocolLogin.onCharacterList = onCharacterList
  protocolLogin.onUpdateNeeded = onUpdateNeeded

  loadBox = displayCancelBox(tr('Please wait'), tr('Connecting to login server...'))
  connect(loadBox, { onCancel = function(msgbox)
                                  loadBox = nil
                                  protocolLogin:cancelLogin()
                                  EnterGame.show()
                                end })

  g_game.setClientVersion(clientVersion)
  g_game.setProtocolVersion(g_game.getClientProtocolVersion(clientVersion))
  g_game.chooseRsa(G.host)

  if modules.game_things.isLoaded() then
    protocolLogin:login(G.host, G.port, G.account, G.password, G.authenticatorToken, G.stayLogged)
  else
    loadBox:destroy()
    loadBox = nil
    EnterGame.show()
  end
end

function EnterGame.displayMotd()
  if not motdWindow then
    motdWindow = displayInfoBox(tr('Message of the day'), G.motdMessage)
    motdWindow.onOk = function() motdWindow = nil end
  end
end

function EnterGame.setDefaultServer(host, port, protocol)
  local hostTextEdit = enterGame:getChildById('serverHostTextEdit')
  local portTextEdit = enterGame:getChildById('serverPortTextEdit')
  local clientLabel = enterGame:getChildById('clientLabel')
  local accountTextEdit = enterGame:getChildById('accountNameTextEdit')
  local passwordTextEdit = enterGame:getChildById('accountPasswordTextEdit')
  local authenticatorTokenTextEdit = enterGame:getChildById('authenticatorTokenTextEdit')

  if hostTextEdit:getText() ~= host then
    hostTextEdit:setText(host)
    portTextEdit:setText(port)
    clientBox:setCurrentOption(protocol)
    accountTextEdit:setText('')
    passwordTextEdit:setText('')
    authenticatorTokenTextEdit:setText('')
  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)

  local authenticatorTokenTextEdit = enterGame:getChildById('authenticatorTokenTextEdit')
  authenticatorTokenTextEdit:setText('')
  authenticatorTokenTextEdit:setOn(false)
  local authenticatorTokenLabel = enterGame:getChildById('authenticatorTokenLabel')
  authenticatorTokenLabel:setOn(false)

  local stayLoggedBox = enterGame:getChildById('stayLoggedBox')
  stayLoggedBox:setChecked(false)
  stayLoggedBox:setOn(false)

  clientBox:setCurrentOption(protocol)
  clientBox:setVisible(false)
  clientBox: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 clientLabel = enterGame:getChildById('clientLabel')
  clientLabel:setVisible(false)
  clientLabel:setHeight(0)

  local serverListButton = enterGame:getChildById('serverListButton')
  serverListButton:setVisible(false)
  serverListButton:setHeight(0)
  serverListButton:setWidth(0)

  local rememberPasswordBox = enterGame:getChildById('rememberPasswordBox')
  rememberPasswordBox:setMarginTop(-8)

  if not windowWidth then windowWidth = 236 end
  enterGame:setWidth(windowWidth)
  if not windowHeight then windowHeight = 210 end
  enterGame:setHeight(windowHeight)
end

function EnterGame.setServerInfo(message)
  local label = enterGame:getChildById('serverInfoLabel')
  label:setText(message)
end

function EnterGame.disableMotd()
  motdEnabled = false
  motdButton:hide()
end

Thx, uso OTC 0.6.6

@Overllord

 

Editado por Gaant (veja o histórico de edições)

Gente, não dou suporte via mp, caso queira ajuda crie um tópico no fórum!!!
youtube.png  10869_64x64.png
Ajudei? Clicar em gostar não vai te matar

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Gengo
      Fala galera do TibiaKing venho disponibilizar para a comunidade um script bem bacana para seu poketibia, o famoso Slot Machine, no qual ele te recompensa com pedras de evolução, sem mas delongas vamos para a instalação.
       
      1º Baixe os arquivos no link:
          -    http://www.mediafire.com/file/9df09dpbftz328y/slot_machine.rar 
                   - Scan do link 1 ( https://www.virustotal.com/pt/file/ac47987beb6aa6437259226f09927099d4f7670c780315f8707e57e16767ad9f/analysis/1514485261/ )
          -    http://www.mediafire.com/file/x7xtq6otxfo70vf/machine.rar 
                   - Scan do link 2 ( https://www.virustotal.com/pt/file/98d44e8815811eb8f4dc722c98faae690dae6bca0b79f67df1e3b5c5b9faaecb/analysis/1514485429/ )
       
      Feito o 1º passo, coloque a pasta slot_machine na pasta do seu otClient modules/ e a pasta machine em data/images/game/ colocando os arquivos nos devido lugar certo já deve funcionar, mas agora vamos prosseguir em fazer com que ele dê o premio.
       
      Na  pasta do servidor em data/creaturescripts/scritps  crie um arquivo chamado SlotMachine.lua e coloque o seguinte script:
      local OPCODE_SLOT_MACHINE = 12 local removeDollar = 2000*100 -- = equivale a 20 Hundred Dollar function onExtendedOpcode(cid, opcode, buffer) if opcode == OPCODE_SLOT_MACHINE then if ( buffer ~= 1 ) then doPlayerAddItem(cid, buffer, 1) end doPlayerRemoveMoney(cid, removeDollar) end return true end Depois na mesma pasta abre o arquivo login.lua coloque o seguinte comando:
      registerCreatureEvent(cid,"SlotMachine") E por fim na mesma pasta do seu servidor onde você estava abre o arquivo data/creaturescripts/creaturescripts.xml coloque a seguinte tag:
      <event type="extendedopcode" name="SlotMachine" event="script" value="SlotMachine.lua"/>  
      Imagem de como está em in game:

       
      Bom espero que tenham entendido, não sou muito bom com explicações ou escrever um tutorial, mas espero que gostem.  :D
    • Por Gengo
      [OTClient] Sistema de Dialogo Otpokemon
       
      Venho através desse tópico contribuir para a comunidade, um simples modulo de dialogo no estilo do Otpokemon,
      não é um sistema de dialogo avançado é algo simples que deixa seu servidor intuitivo.
       
      1) Faça o download do modulo no qual se encontra no final do tópico e abrindo a pasta do seu client,, extraia e coloque o modulo na pasta modules.
       
      2) O módulo utiliza uma função chamada switch que não é comum ter no otclient, porem podemos colocar sem muito esforço, na pasta do otclient abra o arquivo util.lua que se encontra em modules/corelib/ e no final do arquivo coloque o seguinte código:
       
      Feito o passo 1 e 2, vamos para a parte do servidor.
       
      1) Crie um arquivo na pasta data/lib/ podendo ter o nome de npcdialog_lib.lua e coloque o seguinte código:
       
      2) O arquivo que acabamos de criar utiliza uma função chamada table.serialize que não é comum ter nos servidores, para que funcione sem erros vamos adicionar, abra o arquivo 012-table.lua que fica na pasta do seu servidor em data/lib/ ou você pode criar o arquivo e adicionar o seguinte código:
       
       
      Feito todo esse procedimento, estarei disponibilizando um npc para que vocês possam ter uma noção de como utilizar esse sistema de dialogo.
       
      1) Crie um arquivo na pasta do servidor em data/npc/ chamado Gengo.xml e adicione o seguinte código:
       
      2) Crie um arquivo na pasta do servidor em data/npc/lib/ com o nome gengo.lua e adicione o seguinte código:
       
       
      O npc é algo simples, porem serve para que você possa ter uma noção de como utilizar as funções do npc.
       
      Demostrativo dentro do game:

       
      Arquivos para download e o scan:
    • Por marcoshps11
      * Áudio de saudação *
       
      Neste tutorial, irei ensinar alguns passos inicias para utilizar o OTClientV8
       
      1º Passo: Como fixar ip e colocar a spr no local correto
       
      - Faço o download no link: https://github.com/OTCv8/otclientv8
      - Extraia o arquivo
      - Dentro da pasta principal, vá até o arquivo init.lua
       
      Neste trecho, precisará remover os comentários --[[ e ]]:
      Servers = { --[[ OTClientV8 = "http://otclient.ovh/api/login.php", OTClientV8c = "otclient.ovh:7171", OTClientV8Test = "http://otclient.ovh/api/login2.php", LocalTestServ = "127.0.0.1:7171:1098:110:30:93" ]] }  
      Ficando assim:
      Servers = { Meuserver = "127.0.0.1:7171:1098" } ficando na seguinte configuração NOME = "IP:PORTA:VERSÃO"
       
       
      Para fixar e não aparecer a lista de servers, basta alterar:
      ALLOW_CUSTOM_SERVERS = true -- if true it shows option ANOTHER on server list  
      Para:
      ALLOW_CUSTOM_SERVERS = false -- if true it shows option ANOTHER on server list  
       
      Caso queira trocar o nome do aplicativo é só mudar
      g_app.setName("OTCv8") trocando o "OTCv8" para o nome desejado, lembrando que isto irá alterar apenas o nome da janela do aplicativo
       
       
      Incluir a SPR/Dat:

      Para incluir, basta ir na pasta data, criar uma nova pasta e renomear com o nome "things" e depois criar uma outra pasta dentro dela com o nome da versão que desejar utilizar, exemplos:
      * 800
      * 860
      * 910
      * 1100
      dentro desta pasta, incluir as respectivas spr/dat da versão correspondente 

      Um vídeo objetivo do conteúdo citado acima:
       
       
       

       
      2º Passo: Remover campo "Token" da tela inicial
       
      Apesar de ser algo simples, vejo muitos perguntarem como remover este campo, vamos lá:

      - Vá até a pasta modules -> client_entergame
      - Abra o arquivo entergame.lua
      - Na linha 380 remova ou comente o trecho:
      enterGame:getChildById('accountTokenTextEdit'):clearText()  
      - Na linha 412 remova ou comente o trecho:
      G.authenticatorToken = enterGame:getChildById('accountTokenTextEdit'):getText()  
      - salve o arquivo
      - na mesma pasta, abra o arquivo entergame.otui
      - da linha 32 a 44 remova ou comente o seguinte trecho:
      MenuLabel !text: tr('Token') anchors.left: prev.left anchors.top: prev.bottom text-auto-resize: true margin-top: 8 TextEdit id: accountTokenTextEdit anchors.left: parent.left anchors.right: parent.right anchors.top: prev.bottom margin-top: 2  
      Um vídeo objetivo do conteúdo citado acima:
       
       

      3º Passo: como encriptar os arquivos
       
      - Recomendo inicialmente criar uma cópia da pasta que ira encriptar, pois não é reversivo
      - Copie o endereço da pasta onde estão os arquivos
      - Abra o cmd e navegue até esta pasta utilizando o comando cd (link do endereço da pasta)
      - utilize o comando otclient_dx.exe --encrypt
      - Aguarde o sistema sinalizar que os arquivos foram encriptados 
       
      PS: a pasta do modulo bot ( modules -> game_bot ) não pode ser encriptado, remova ela antes deste processo.
       
      Um vídeo objetivo do conteúdo citado acima:
       
       

      4º Passo: Utilizando o auto update
       
      IMPORTANTE:
      Este processo precisa ser feito exatamente como demonstrado, qualquer link errado o sistema não irá funcionar.
       
      - Dentro da pasta API, abra o arquivo updater_advanced.php
       
      em $files_dir = "/var/www/otclient/files"; é a pasta onde conterá os arquivos do otclient para download, lembrando que o caminho precisa estar especificada desde a pasta inicial
      em $files_url = "http://otclient.ovh/files"; é o link que você pode utilizar o navegador para acessar a pasta "files" a mesma pasta do processo anterior.
      em $checksum_update_interval = 60; é o tempo em segundos, que o update levará para checkar se há alguma atualização ( não é necesário alterar )
       
      - Na sua vps, dentro da pasta do SITE, cria uma pasta chamada API e outra pasta dentro dela chamada FILES
      - Envie o arquivo updater_advanced.php para a pasta API
      - De permissão 777 para pasta e subpasta API
       
      * voltando aos arquivos do otclient * 
       
      - Abra o arquivo init.lua
       
      aconselho alterar o "APP_NAME = "otclientv8", pois é o nome da pasta que ficará salva nos arquivos temporários, isso evitará conflitos com versões já existe no pc
      altere o campo updater, colocando o endereço apontado para o arquivo updater_advanced.php enviado para o seu site nos passos anteriores.
       
      - Após as edições anteriores, salve o arquivo 
      - Compacte os arquivos data, layout, modules e init.lua, renomeando para data.zip ( obrigatoriamente precisa ser zip )
      - Exclua os arquivos zipados e os demais desnecessários para os jogadores.
       
      Atenção: o auto update só funcionará se os arquivos estiverem zipado conforme descrito.
       
      - Envie todos os arquivos para a pasta files em sua vps ( recomendo zipar para enviar, poupara processamento e tempo de envio )
      - Após enviar, extraia os arquivos NA VPS, os arquivos no pc devem continuar zipado
      - Atenção nesta parte, as pastas e arquivo data / layout / modules / init.lua necessáriamente precisam estar na mesma pasta do executáveis, conforme time 4:20 no vídeo que deixarei disponível no final.
       
      lembrando: o update só aceitará arquivos editados após o tempo estipulado em checksum_update_interval , se fizer edições antes deste tempo, o sistema não irá considerar
       
       
      Um vídeo objetivo do conteúdo citado acima:
       
       
       
    • Por Under
      Após anos sem contribuir com um servidor fico feliz em lançar essa versão com muitas correções!

      Está versão é a versão OPEN_BETA.

      Que pode ser testada aqui. (Online até dia 25/05/2023)

      Foram corrigos muitos bugs e existem diversas melhorias em muitos dos sistemas existentes.

      Vocês podem encontrar as Libs que devem estar com uns 30% desses novos sistemas que foram adicionados e podem testar ou usar os códigos.

      O servidor esta online a 120+ dias, foi construído com XP 1 e bateu 66 Players Online.

      O ideal é usar este servidor em low rate.

      Atualizações

      Verifique a pagina do facebook para saber todas as atualizações!
      Se você curtiu acompanhe a pagina para acompanha o lançamento do jogo oficial!
       
      Importante
       

      A cada onda do nosso sistema de incursões, você terá a chance de encontrar um Pokémon Shiny raro e, após a terceira onda, um chefe shiny ainda mais raro aparecerá, oferecendo recompensas valiosas para os treinadores ousados o suficiente para enfrentá-lo.
      Utilize seus tokens de incursão para reiniciar o sistema e tentar novamente.

      Para saber sobre todas as novidades Por favor considere olhar nossa pagina,

      https://www.facebook.com/pokexadventure/photos
       
      Imagens
       
       
      Downloads

      Para configurar basta substituir a pasta data que você pode encontrar fazendo download da source, cole a pasta data baixa do Pokexadventure e divirta-se!

      Sources

      pokexadventure_open_beta_datapack.rar

      DLLS + Executaveis (Windows)

      OTC
       
      (mediafire.com)
       
      Website
       
      https://github.com/otsoft/myaac

      Ferramentas : 
      auto_restarter_windows.bat

      RME 3.5 ou superior.

      Object builder 10.98 Support ou superior.

      Item editor 10.98 Support ou superior.

      Tutoriais para Compilações
       

      Créditos : @Underewar @pota
    • Por OT Archive
      OTClient Redemption (mehah) para navegadores
      Em nome da OTServList Brasil e do OT Archive, adaptei o OTClient Redemption para rodar em navegadores web.
       
       
      Source: https://github.com/mehah/otclient/pull/894 Guia de compilação e uso: https://github.com/OTArchive/otclient/wiki/Guia-‐-OTClient-Redemption-Web Demo sem assets: https://demo.otarchive.com Versão modular: https://webclient.otarchive.com Vídeo demonstrando o client se conectando a um servidor:  


       
       
      Em caso de dúvidas sobre o client web ou sobre servidores com suporte a websockets, por favor poste aqui.
       
      Disponibilizou um client web para seu servidor? Me avise para que eu inclua seu OT na categoria Web na OTServList Brasil, com um botão "Jogar Agora".
  • Estatísticas dos Fóruns

    96844
    Tópicos
    519612
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo