Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''Derivado', 'Criptografia' ou 'OTClient''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • A Cidade OTBR
    • OTServ Brasil
    • Atendimento
    • Taverna
  • Projetos Open Source
    • Canary
    • OTServBR-Global
    • Mehah OTClient
    • MyAAC
  • OpenTibia
    • Notícias e Discussões
    • Suporte - Dúvidas, Bugs, Erros
    • Downloads
    • Tutoriais
    • Show-Off
  • Outros
    • Design

Encontrado 147 registros

  1. Compilando o OTClient no Mac OS X

    Fala galera! Tem uns bons anos que eu não aparecia por aqui, outro dia eu perguntei como compilar o OTC no OS X, não obtive resposta. Descobri hoje que é possível compilar usando o XQuartz para lidar com a parte gráfica e vou mostrar pra vocês como fazer. A compilação deve ser feita dentro do OS X, no meu caso estou usando o Mountain Lion, 10.8.4 mas acredito que vá funcionar em qualquer OS usando arquitetura intel acima do 10.6 (por conta do Xcode e do QuartZ). Vou assumir que você tenha intimidade com o Terminal e com o Homebrew, qualquer dúvida é só perguntar e assim que puder eu coloco aqui dentro mesmo a explicação. Vamos então a lista de pré-requisitos antes de começarmos, vocês vão ver que é muito simples! Será necessário: Mac OSX 10.6 ou superior; XCode; Command Line Tools for Xcode (dentro do Xcode: Xcode>Preferences>Downloads); XQuartz; Homebrew (instalado via terminal); É importante que você instale todos os itens desta lista, nesta ordem. Feito isso precisamos instalar as bibliotecas necessárias para a compilação, usaremos o homebrew que facilita em muito nossa vida, lembrando que é só aplicar os seguintes comandos no terminal: brew install git brew install cmake brew install lua brew install boost brew install glew brew install physfs brew install libogg brew install libvorbis Confira se todos os pacotes foram instalados! Erros são mostrados em vermelho facilitando sua localização. Buscando o Código fonte no gitHUB e compilando Os seguintes comandos (também inseridos no terminal) irão buscar o código fonte e compilar dentro da própria pasta do código o binário, lembrando que ele irá criar a pasta otclient dentro do /user. git clone git[b]:[/b][i]//github.com/edubart/otclient.git[/i] cd otclient mkdir build cd build cmake .. make [b]-[/b]j4 E acreditem ou não, terminou! Qualquer dúvida se sintam a vontade pra perguntar! Fonte: https://github.com/edubart/otclient/wiki/Compiling-on-Mac-OS-X
  2. OTClient MODS e Modules, o que são e como criar

    O que são? Modules são scripts que fazem alterações no cliente, se você compilou seu otclient com proteção contra bot, essas modificações se restringirão quase completamente a GUI, o que difere os MODs dos Modules é que os Modules são os scripts essenciais do otclient e os MODs são adições criadas por usuários, portanto se você quer modificar algo que já existe, procure na pasta modules, se você quer criar algo novo, crie na pasta MODs. Como eu crio um novo MOD? Primeiro crie uma pasta dentro da pasta mods, por exemplo, meu_mod, o modulo se consiste não apenas de scripts Lua mas também de 2 arquivos: meu_mod.otmod e meu_mod.otui, sendo que o arquivo .otmod é essencial para qualquer modulo enquanto o .otui serve apenas para mods que contenham uma GUI dentro do otclient. Observe este exemplo de arquivo .otmod: Module name: otclient_meumod description: Olha mãe, um mod author: Eventide website: http://otserv.com.br autoload: true autoload-priority: 1000 sandbox: true @onLoad: | dofile 'meu_mod' meu_mod.init() @onUnload: | meu_mod.terminate() Note que há um certo numero de espaços entre certas partes do código, este numero de espaços é essencial e não deve ser mudado, o script é extremamente sensível, recomendo que você copie e cole sempre ao invés de digitar tudo, o mesmo vale para o arquivo .otui, agora vou explicar parte por parte, exceto as que são óbvias: autoload: true autoload-priority: 1000 sandbox: true Padrão, não mude. @onLoad: | dofile 'meu_mod' meu_mod.init() @onUnload: | meu_mod.terminate() Muito bem, se você está olhando este tutorial provavelmente sabe o que o dofile faz, certo? Não? dofile executa um determinado script, portando esse 'meu_mod' deve ser o nome do script principal do seu modulo, que deve ser, mas pode não ser, o nome do seu modulo, claro que o script tem que ter a extensão .lua, mas não é necessário especificar isso no dofile. meu_mod.init() e meu_mod.terminate() são duas funções padrão, que ficarão dentro de uma tabela, a tabela do seu modulo, voltarei nisso depois de explicar sobre o arquivo otui. Agora um exemplo de arquivo .otui: MainWindow !text: tr('Meu MOD') size: 160 450 @onEnter: meu_mod.destroy() @onEscape: meu_mod.destroy() Label id: meuModLabel !text: tr('Oi, eu sou um mod') width: 130 height: 200 anchors.top: prev.top anchors.left: prev.left margin-top: 5 margin-left: 120 Button id: meuModButton !text: tr('Bem-vindo') width: 100 height: 15 anchors.right: parent.right anchors.bottom: parent.bottom margin-right: -6 margin-bottom: -5 @onClick: meu_mod.welcome() Percebe a semelhança com um código CSS? Pois é, essa é uma linguagem baseada no CSS desenvolvida especialmente para o otclient, o nome dessa linguagem é OTML, agora explicando parte por parte. MainWindow é a janela que será usada para a interface, neste caso, MainWindow é o padrão para a janela do cliente. !text é o nome da janela, sempre use a função tr() para colocar a string. size é o tamanho da janela, a sintaxe é: largura, altura. @onEnter é a função que é chamada quando se aperta a tecla enter. @onEscape é a função que é chamada quando se aperta a tecla esc. Label é usado na maioria das vezes para mostrar um texto. id deve ser um nome único e sem espaços que represente este texto. !text é o texto que será mostrado na label, novamente a string deve ser colocada dentro da função tr(). width é a largura da label. margin-right que funciona igual o CSS, quanto maior o valor, mais ele se posicionará contra a direita, quanto menor, a favor. margin-bottom é igual ao margin-right, mas em vez de contra/favor a direita ele funciona para baixo. @onClick deve ser configurado com a função que é chamada quando se clica no butão. O script .lua Agora chegamos a parte final deste tutorial, como fazer o seu script, a parte principal do mod. Primeiro crie o arquivo, que aqui será chamado de meu_mod.lua, observe como ficou o arquivo a partir do que já foi feito até agora: meu_mod = {} modWindow = nil function meu_mod.init() connect(g_game, {onGameStart = meu_mod.run}) end function meu_mod.terminate() disconnect(g_game, {onGameStart = meu_mod.run}) end function meu_mod.run() modWindow = g_ui.displayUI('meu_mod.otui') end function meu_mod.welcome() g_game.talk("Este é o meu modulo!") end function meu_mod.destroy() modWindow:hide() end Como eu acredito que já deixei bem claro o que faz maioria das funções, darei enfase a função init e terminate, a função init serve para alinhar os eventos do cliente com o seu script, e a terminate desfaz, isso é feito a partir das funções connect e disconnect, cuja sintaxe é: connect(g_game, {eventoPadrão= meuEvento}) disconnect(g_game, {eventoPadrão= meuEvento}) Esse tutorial foi feito com o otclient 6.2.1
  3. Vi vários servidores que usam o OTC e na hora de baixar o client vem a pasta inteira, queria saber se não tem como fazer um instalador e na hora de usar o client aparecer só o executável do client, tem jeito?
  4. OTClient Atualizar o OTC

    Estou com a versão 6.2 do OTC, como faço pra atualizar pro 6.3 sem perder todas as modificações que eu ja fiz?
  5. OTClient Diferenças OTClient 6.2 e 6.3

    Quais são as diferenças do OTC 6.3 pro 6.2 além do 6.3 suportar mais versões?
  6. OTClient OTClient - O que é?

    O que é o OTClient? O OTClient é uma alternativa open-source para o cliente do Tibia oficial. Sabemos que OTServ em si não é algo ilegal, mas o uso e modificação do cliente oficial do Tibia é algo fora da lei. Para isso, tal cliente foi desenvolvido. O OTC foi criado de forma modular, ou seja, cada parte e função do sistema é dividida em módulos diferentes, permitindo que tudo seja modificado sem muita dificuldade. Podemos também fugir da interface padrão do Tibia, desenvolvendo um cliente completamente personalizado para seu servidor. O cliente é desenvolvido em C++2011, um padrão de C++ que é influenciado e "scriptado" em LUA. Ele é um cliente muito flexível em quesito de usabilidade e desenvolvimento. Há um esquema de scripting em LUA para toda a interface, complementada por alguns arquivos de configuração com uma sintaxe similar a CSS para o design. Além de ser aberto à modificações facilmente, ele já vem por padrão com funcionalidades que não possuíamos antes como sistema de som, motores de particulas, sistemas de addons (para o client), texturas animadas, interface personalizável, multi-linguagem, transparência, um terminal lua no cliente e muitas outras coisas.
  7. OTClient Centralizar uma window.

    Preciso centralizar uma janela na horizontal, tenho uma enorme dificuldade com esse modo de layout do cliente, alguém tem alguma ideia? obrigado.
  8. Ola estou com um serio probleminha chato no meu OTCliente. Estalei um mod de spellbar, mais não reconhece somente as spells da vocação do jogador, mais sim todas spells de todas vocações. Imagem abaixo: [ATTACH]5474[/ATTACH] A mod que peguei foi esta aqui, [Draky's Codes] - Tibia Spell Bar SpellBar.LUA [spoiler=Clica Aqui] local spelllist = { ['Death Strike'] = {id = 87, words = 'exori mort', exhaustion = 2000, premium = true, type = 'Instant', icon = 'deathstrike', mana = 20, level = 16, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Flame Strike'] = {id = 89, words = 'exori flam', exhaustion = 2000, premium = true, type = 'Instant', icon = 'flamestrike', mana = 20, level = 14, soul = 0, group = {[1] = 2000}, vocations = {1, 2, 5, 6}}, ['Strong Flame Strike'] = {id = 150, words = 'exori gran flam', exhaustion = 8000, premium = true, type = 'Instant', icon = 'strongflamestrike', mana = 60, level = 70, soul = 0, group = {[1] = 2000, [4] = 8000}, vocations = {1, 5}}, ['Ultimate Flame Strike'] = {id = 154, words = 'exori max flam', exhaustion = 30000, premium = true, type = 'Instant', icon = 'ultimateflamestrike', mana = 100, level = 90, soul = 0, group = {[1] = 4000}, vocations = {1, 5}}, ['Energy Strike'] = {id = 88, words = 'exori vis', exhaustion = 2000, premium = true, type = 'Instant', icon = 'energystrike', mana = 20, level = 12, soul = 0, group = {[1] = 2000}, vocations = {1, 2, 5, 6}}, ['Strong Energy Strike'] = {id = 151, words = 'exori gran vis', exhaustion = 8000, premium = true, type = 'Instant', icon = 'strongenergystrike', mana = 60, level = 80, soul = 0, group = {[1] = 2000, [4] = 8000}, vocations = {1, 5}}, ['Ultimate Energy Strike'] = {id = 155, words = 'exori max vis', exhaustion = 30000, premium = true, type = 'Instant', icon = 'ultimateenergystrike', mana = 100, level = 100,soul = 0, group = {[1] = 4000}, vocations = {1, 5}}, ['Whirlwind Throw'] = {id = 107, words = 'exori hur', exhaustion = 6000, premium = true, type = 'Instant', icon = 'whirlwindthrow', mana = 40, level = 28, soul = 0, group = {[1] = 2000}, vocations = {4, 8}}, ['Fire Wave'] = {id = 19, words = 'exevo flam hur', exhaustion = 4000, premium = false, type = 'Instant', icon = 'firewave', mana = 25, level = 18, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Ethereal Spear'] = {id = 111, words = 'exori con', exhaustion = 2000, premium = true, type = 'Instant', icon = 'etherealspear', mana = 25, level = 23, soul = 0, group = {[1] = 2000}, vocations = {3, 7}}, ['Strong Ethereal Spear'] = {id = 57, words = 'exori gran con', exhaustion = 8000, premium = true, type = 'Instant', icon = 'strongetherealspear', mana = 55, level = 90, soul = 0, group = {[1] = 2000}, vocations = {3, 7}}, ['Energy Beam'] = {id = 22, words = 'exevo vis lux', exhaustion = 4000, premium = false, type = 'Instant', icon = 'energybeam', mana = 40, level = 23, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Great Energy Beam'] = {id = 23, words = 'exevo gran vis lux', exhaustion = 6000, premium = false, type = 'Instant', icon = 'greatenergybeam', mana = 110, level = 29, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Groundshaker'] = {id = 106, words = 'exori mas', exhaustion = 8000, premium = true, type = 'Instant', icon = 'groundshaker', mana = 160, level = 33, soul = 0, group = {[1] = 2000}, vocations = {4, 8}}, ['Berserk'] = {id = 80, words = 'exori', exhaustion = 4000, premium = true, type = 'Instant', icon = 'berserk', mana = 115, level = 35, soul = 0, group = {[1] = 2000}, vocations = {4, 8}}, ['Annihilation'] = {id = 62, words = 'exori gran ico', exhaustion = 30000, premium = true, type = 'Instant', icon = 'annihilation', mana = 300, level = 110,soul = 0, group = {[1] = 4000}, vocations = {4, 8}}, ['Brutal Strike'] = {id = 61, words = 'exori ico', exhaustion = 6000, premium = true, type = 'Instant', icon = 'brutalstrike', mana = 30, level = 16, soul = 0, group = {[1] = 2000}, vocations = {4, 8}}, ['Front Sweep'] = {id = 59, words = 'exori min', exhaustion = 6000, premium = true, type = 'Instant', icon = 'frontsweep', mana = 200, level = 70, soul = 0, group = {[1] = 2000}, vocations = {4, 8}}, ['Inflict Wound'] = {id = 141, words = 'utori kor', exhaustion = 30000, premium = true, type = 'Instant', icon = 'inflictwound', mana = 30, level = 40, soul = 0, group = {[1] = 2000}, vocations = {4, 8}}, ['Ignite'] = {id = 138, words = 'utori flam', exhaustion = 30000, premium = true, type = 'Instant', icon = 'ignite', mana = 30, level = 26, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Lightning'] = {id = 149, words = 'exori amp vis', exhaustion = 8000, premium = true, type = 'Instant', icon = 'lightning', mana = 60, level = 55, soul = 0, group = {[1] = 2000, [4] = 8000}, vocations = {1, 5}}, ['Curse'] = {id = 139, words = 'utori mort', exhaustion = 50000, premium = true, type = 'Instant', icon = 'curse', mana = 30, level = 75, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Electrify'] = {id = 140, words = 'utori vis', exhaustion = 30000, premium = true, type = 'Instant', icon = 'electrify', mana = 30, level = 34, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Energy Wave'] = {id = 13, words = 'exevo vis hur', exhaustion = 8000, premium = false, type = 'Instant', icon = 'energywave', mana = 170, level = 38, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Rage of the Skies'] = {id = 119, words = 'exevo gran mas vis', exhaustion = 40000, premium = true, type = 'Instant', icon = 'rageoftheskies', mana = 600, level = 55, soul = 0, group = {[1] = 4000}, vocations = {1, 5}}, ['Fierce Berserk'] = {id = 105, words = 'exori gran', exhaustion = 6000, premium = true, type = 'Instant', icon = 'fierceberserk', mana = 340, level = 90, soul = 0, group = {[1] = 2000}, vocations = {4, 8}}, ['Hells Core'] = {id = 24, words = 'exevo gran mas flam', exhaustion = 40000, premium = true, type = 'Instant', icon = 'hellscore', mana = 1100, level = 60, soul = 0, group = {[1] = 4000}, vocations = {1, 5}}, ['Holy Flash'] = {id = 143, words = 'utori san', exhaustion = 40000, premium = true, type = 'Instant', icon = 'holyflash', mana = 30, level = 70, soul = 0, group = {[1] = 2000}, vocations = {3, 7}}, ['Divine Missile'] = {id = 122, words = 'exori san', exhaustion = 2000, premium = true, type = 'Instant', icon = 'divinemissile', mana = 20, level = 40, soul = 0, group = {[1] = 2000}, vocations = {3, 7}}, ['Divine Caldera'] = {id = 124, words = 'exevo mas san', exhaustion = 4000, premium = true, type = 'Instant', icon = 'divinecaldera', mana = 160, level = 50, soul = 0, group = {[1] = 2000}, vocations = {3, 7}}, ['Physical Strike'] = {id = 148, words = 'exori moe ico', exhaustion = 2000, premium = true, type = 'Instant', icon = 'physicalstrike', mana = 20, level = 16, soul = 0, group = {[1] = 2000}, vocations = {2, 6}}, ['Eternal Winter'] = {id = 118, words = 'exevo gran mas frigo', exhaustion = 40000, premium = true, type = 'Instant', icon = 'eternalwinter', mana = 1050, level = 60, soul = 0, group = {[1] = 4000}, vocations = {2, 6}}, ['Ice Strike'] = {id = 112, words = 'exori frigo', exhaustion = 2000, premium = true, type = 'Instant', icon = 'icestrike', mana = 20, level = 15, soul = 0, group = {[1] = 2000}, vocations = {1, 5, 2, 6}}, ['Strong Ice Strike'] = {id = 152, words = 'exori gran frigo', exhaustion = 8000, premium = true, type = 'Instant', icon = 'strongicestrike', mana = 60, level = 80, soul = 0, group = {[1] = 2000, [4] = 8000}, vocations = {2, 6}}, ['Ultimate Ice Strike'] = {id = 156, words = 'exori max frigo', exhaustion = 30000, premium = true, type = 'Instant', icon = 'ultimateicestrike', mana = 100, level = 100,soul = 0, group = {[1] = 4000}, vocations = {2, 6}}, ['Ice Wave'] = {id = 121, words = 'exevo frigo hur', exhaustion = 4000, premium = false, type = 'Instant', icon = 'icewave', mana = 25, level = 18, soul = 0, group = {[1] = 2000}, vocations = {2, 6}}, ['Strong Ice Wave'] = {id = 43, words = 'exevo gran frigo hur', exhaustion = 8000, premium = true, type = 'Instant', icon = 'strongicewave', mana = 170, level = 40, soul = 0, group = {[1] = 2000}, vocations = {2, 6}}, ['Envenom'] = {id = 142, words = 'utori pox', exhaustion = 40000, premium = true, type = 'Instant', icon = 'envenom', mana = 30, level = 50, soul = 0, group = {[1] = 2000}, vocations = {2, 6}}, ['Terra Strike'] = {id = 113, words = 'exori tera', exhaustion = 2000, premium = true, type = 'Instant', icon = 'terrastrike', mana = 20, level = 13, soul = 0, group = {[1] = 2000}, vocations = {1, 5, 2, 6}}, ['Strong Terra Strike'] = {id = 153, words = 'exori gran tera', exhaustion = 8000, premium = true, type = 'Instant', icon = 'strongterrastrike', mana = 60, level = 70, soul = 0, group = {[1] = 2000, [4] = 8000}, vocations = {2, 6}}, ['Ultimate Terra Strike'] = {id = 157, words = 'exori max tera', exhaustion = 30000, premium = true, type = 'Instant', icon = 'ultimateterrastrike', mana = 100, level = 90, soul = 0, group = {[1] = 4000}, vocations = {2, 6}}, ['Terra Wave'] = {id = 120, words = 'exevo tera hur', exhaustion = 4000, premium = false, type = 'Instant', icon = 'terrawave', mana = 210, level = 38, soul = 0, group = {[1] = 2000}, vocations = {2, 6}}, ['Wrath of Nature'] = {id = 56, words = 'exevo gran mas tera', exhaustion = 40000, premium = true, type = 'Instant', icon = 'wrathofnature', mana = 700, level = 55, soul = 0, group = {[1] = 4000}, vocations = {2, 6}}, ['Light Healing'] = {id = 1, words = 'exura', exhaustion = 1000, premium = false, type = 'Instant', icon = 'lighthealing', mana = 20, level = 9, soul = 0, group = {[2] = 1000}, vocations = {1, 2, 3, 5, 6, 7}}, ['Wound Cleansing'] = {id = 123, words = 'exura ico', exhaustion = 1000, premium = false, type = 'Instant', icon = 'woundcleansing', mana = 40, level = 10, soul = 0, group = {[2] = 1000}, vocations = {4, 8}}, ['Intense Wound Cleansing'] = {id = 158, words = 'exura gran ico', exhaustion = 600000,premium = true, type = 'Instant', icon = 'intensewoundcleansing', mana = 200, level = 80, soul = 0, group = {[2] = 1000}, vocations = {4, 8}}, ['Cure Bleeding'] = {id = 144, words = 'exana kor', exhaustion = 6000, premium = true, type = 'Instant', icon = 'curebleeding', mana = 30, level = 30, soul = 0, group = {[2] = 1000}, vocations = {4, 8}}, ['Cure Electrification'] = {id = 146, words = 'exana vis', exhaustion = 6000, premium = true, type = 'Instant', icon = 'curseelectrification', mana = 30, level = 22, soul = 0, group = {[2] = 1000}, vocations = {2, 6}}, ['Cure Poison'] = {id = 29, words = 'exana pox', exhaustion = 6000, premium = false, type = 'Instant', icon = 'curepoison', mana = 30, level = 10, soul = 0, group = {[2] = 1000}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}}, ['Cure Burning'] = {id = 145, words = 'exana flam', exhaustion = 6000, premium = true, type = 'Instant', icon = 'cureburning', mana = 30, level = 30, soul = 0, group = {[2] = 1000}, vocations = {2, 6}}, ['Cure Curse'] = {id = 147, words = 'exana mort', exhaustion = 6000, premium = true, type = 'Instant', icon = 'curecurse', mana = 40, level = 80, soul = 0, group = {[2] = 1000}, vocations = {3, 7}}, ['Recovery'] = {id = 159, words = 'utura', exhaustion = 60000, premium = true, type = 'Instant', icon = 'recovery', mana = 75, level = 50, soul = 0, group = {[2] = 1000}, vocations = {4, 8, 3, 7}}, ['Intense Recovery'] = {id = 160, words = 'utura gran', exhaustion = 60000, premium = true, type = 'Instant', icon = 'intenserecovery', mana = 165, level = 100,soul = 0, group = {[2] = 1000}, vocations = {4, 8, 3, 7}}, ['Salvation'] = {id = 36, words = 'exura gran san', exhaustion = 1000, premium = true, type = 'Instant', icon = 'salvation', mana = 210, level = 60, soul = 0, group = {[2] = 1000}, vocations = {3, 7}}, ['Intense Healing'] = {id = 2, words = 'exura gran', exhaustion = 1000, premium = false, type = 'Instant', icon = 'intensehealing', mana = 70, level = 20, soul = 0, group = {[2] = 1000}, vocations = {1, 2, 3, 5, 6, 7}}, ['Heal Friend'] = {id = 84, words = 'exura sio', exhaustion = 1000, premium = true, type = 'Instant', icon = 'healfriend', mana = 140, level = 18, soul = 0, group = {[2] = 1000}, vocations = {2, 6}}, ['Ultimate Healing'] = {id = 3, words = 'exura vita', exhaustion = 1000, premium = false, type = 'Instant', icon = 'ultimatehealing', mana = 160, level = 30, soul = 0, group = {[2] = 1000}, vocations = {1, 2, 5, 6}}, ['Mass Healing'] = {id = 82, words = 'exura gran mas res', exhaustion = 2000, premium = true, type = 'Instant', icon = 'masshealing', mana = 150, level = 36, soul = 0, group = {[2] = 1000}, vocations = {2, 6}}, ['Divine Healing'] = {id = 125, words = 'exura san', exhaustion = 1000, premium = false, type = 'Instant', icon = 'divinehealing', mana = 160, level = 35, soul = 0, group = {[2] = 1000}, vocations = {3, 7}}, ['Light'] = {id = 10, words = 'utevo lux', exhaustion = 2000, premium = false, type = 'Instant', icon = 'light', mana = 20, level = 8, soul = 0, group = {[3] = 2000}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}}, ['Magic Rope'] = {id = 76, words = 'exani tera', exhaustion = 2000, premium = true, type = 'Instant', icon = 'magicrope', mana = 20, level = 9, soul = 0, group = {[3] = 2000}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}}, ['Levitate'] = {id = 81, words = 'exani hur', exhaustion = 2000, premium = true, type = 'Instant', icon = 'levitate', mana = 50, level = 12, soul = 0, group = {[3] = 2000}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}}, ['Great Light'] = {id = 11, words = 'utevo gran lux', exhaustion = 2000, premium = false, type = 'Instant', icon = 'greatlight', mana = 60, level = 13, soul = 0, group = {[3] = 2000}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}}, ['Magic Shield'] = {id = 44, words = 'utamo vita', exhaustion = 2000, premium = false, type = 'Instant', icon = 'magicshield', mana = 50, level = 14, soul = 0, group = {[3] = 2000}, vocations = {1, 2, 5, 6}}, ['Haste'] = {id = 6, words = 'utani hur', exhaustion = 2000, premium = true, type = 'Instant', icon = 'haste', mana = 60, level = 14, soul = 0, group = {[3] = 2000}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}}, ['Charge'] = {id = 131, words = 'utani tempo hur', exhaustion = 2000, premium = true, type = 'Instant', icon = 'charge', mana = 100, level = 25, soul = 0, group = {[3] = 2000}, vocations = {4, 8}}, ['Swift Foot'] = {id = 134, words = 'utamo tempo san', exhaustion = 2000, premium = true, type = 'Instant', icon = 'swiftfoot', mana = 400, level = 55, soul = 0, group = {[1] = 10000, [3] = 2000}, vocations = {3, 7}}, ['Challenge'] = {id = 93, words = 'exeta res', exhaustion = 2000, premium = true, type = 'Instant', icon = 'challenge', mana = 30, level = 20, soul = 0, group = {[3] = 2000}, vocations = {8}}, ['Strong Haste'] = {id = 39, words = 'utani gran hur', exhaustion = 2000, premium = true, type = 'Instant', icon = 'stronghaste', mana = 100, level = 20, soul = 0, group = {[3] = 2000}, vocations = {1, 2, 5, 6}}, ['Ultimate Light'] = {id = 75, words = 'utevo vis lux', exhaustion = 2000, premium = true, type = 'Instant', icon = 'ultimatelight', mana = 140, level = 26, soul = 0, group = {[3] = 2000}, vocations = {1, 2, 5, 6}}, ['Cancel Invisibility'] = {id = 90, words = 'exana ina', exhaustion = 2000, premium = true, type = 'Instant', icon = 'cancelinvisibility', mana = 200, level = 26, soul = 0, group = {[3] = 2000}, vocations = {3, 7}}, ['Invisibility'] = {id = 45, words = 'utana vid', exhaustion = 2000, premium = false, type = 'Instant', icon = 'invisible', mana = 440, level = 35, soul = 0, group = {[3] = 2000}, vocations = {1, 2, 5, 6}}, ['Sharpshooter'] = {id = 135, words = 'utito tempo san', exhaustion = 2000, premium = true, type = 'Instant', icon = 'sharpshooter', mana = 450, level = 60, soul = 0, group = {[2] = 10000, [3] = 10000}, vocations = {3, 7}}, ['Protector'] = {id = 132, words = 'utamo tempo', exhaustion = 2000, premium = true, type = 'Instant', icon = 'protector', mana = 200, level = 55, soul = 0, group = {[1] = 10000, [3] = 2000}, vocations = {4, 8}}, ['Blood Rage'] = {id = 133, words = 'utito tempo', exhaustion = 2000, premium = true, type = 'Instant', icon = 'bloodrage', mana = 290, level = 60, soul = 0, group = {[3] = 2000}, vocations = {4, 8}}, ['Train Party'] = {id = 126, words = 'utito mas sio', exhaustion = 2000, premium = true, type = 'Instant', icon = 'trainparty', mana = 'Var.', level = 32, soul = 0, group = {[3] = 2000}, vocations = {8}}, ['Protect Party'] = {id = 127, words = 'utamo mas sio', exhaustion = 2000, premium = true, type = 'Instant', icon = 'protectparty', mana = 'Var.', level = 32, soul = 0, group = {[3] = 2000}, vocations = {7}}, ['Heal Party'] = {id = 128, words = 'utura mas sio', exhaustion = 2000, premium = true, type = 'Instant', icon = 'healparty', mana = 'Var.', level = 32, soul = 0, group = {[3] = 2000}, vocations = {6}}, ['Enchant Party'] = {id = 129, words = 'utori mas sio', exhaustion = 2000, premium = true, type = 'Instant', icon = 'enchantparty', mana = 'Var.', level = 32, soul = 0, group = {[3] = 2000}, vocations = {5}}, } local spells = {} local lado = 'vertical' local sbw -- window widget local sbb -- button ./\ widget local spellBarWindow -- UIWindow local exhsaustionTotal = 1100 local hideLevel = false -- os que nao tem level, vai mostrar? true = nao, false = sim function init() sbb = modules.client_topmenu.addRightGameToggleButton('sbb', 'Spell Bar' , 'SpellBar.png', toggle) sbw = g_ui.displayUI('SpellBar') sbw:move(10,50) g_mouse.bindPress(sbw, function() createMenu() end, MouseRightButton) sbw:hide() connect(g_game, 'onTalk', mensagemEnviada) connect(g_game, { onGameEnd = function() sbw:hide() sbb:setOn(false) end }) connect(LocalPlayer, { onLevelChange = onLevelChange }) for inst,values in pairs(spelllist) do if values.type == 'Instant' then -- depois vou fazer mais tipos.. if g_game.getProtocolVersion() >= 950 then -- Vocation is only send in newer clients if table.find(values.vocations, g_game.getLocalPlayer():getVocation()) then local inside = {instantName = inst, words = values.words, lvl = values.level, mana = values.mana, prem = values.premium, groups = values.group,icon = values.icon, vocations = values.vocations,exhaustion = values.exhaustion} table.insert(spells,inside) end else local inside = {instantName = inst, words = values.words, lvl = values.level, mana = values.mana, prem = values.premium, groups = values.group,icon = values.icon, vocations = values.vocations,exhaustion = values.exhaustion} table.insert(spells,inside) end end end table.sort(spells, function(a, return (a.lvl < b.lvl) end) end function onLevelChange(localPlayer, value, percent) getSpells(spells) end function mensagemEnviada(name, level, mode, text, channelId, pos) if not g_game.isOnline() then return end if g_game.getLocalPlayer():getName() ~= name then return end for i = 1,#spells do if spells[i].words:lower() == text:lower() then startDownDelay(i) break end end end function terminate() sbw:destroy() sbb:destroy() disconnect(g_game, { onGameEnd = function() sbw:hide() sbb:setOn(false) end }) disconnect(g_game, 'onTalk', mensagemEnviada) disconnect(LocalPlayer, { onLevelChange = onLevelChange }) end function toggle() if sbb:isOn() then sbw:hide() sbb:setOn(false) else sbw:show() getSpells(spells) sbb:setOn(true) level = g_game.getLocalPlayer():getLevel() end end function createMenu() local menu = g_ui.createWidget('PopupMenu') if lado == 'horizontal' then menu:addOption('Set Vertical', function() lado = 'vertical' getSpells(spells) end) else menu:addOption('Set Horizontal',function() lado = 'horizontal' getSpells(spells) end) end if hideLevel == false then menu:addOption('No Level Hide',function() hideLevel = true getSpells(spells) end) else menu:addOption('No Level Show',function() hideLevel = false getSpells(spells) end) end menu:display() end function destruirSpells() for i = 1,100 do if sbw:recursiveGetChildById('spell'..i) == nil then break end sbw:recursiveGetChildById('spell'..i):destroy() sbw:recursiveGetChildById('progress'..i):destroy() end end function getSpells(tabela) destruirSpells() spellBarWindow = sbw:recursiveGetChildById('mainWindow') local player = g_game.getLocalPlayer() local valor = #tabela local width = 38 local height = 38 if not player then return end for i = 1,#tabela do if (tabela[i].lvl > player:getLevel()) and hideLevel == true then valor = i - 1 break end if i == #tabela then valor = i end icon = g_ui.createWidget('SpellButton',spellBarWindow) progress = g_ui.createWidget('SpellProgressSpell',spellBarWindow) --icon: icon:setId('spell'..i) local spicon = Spells.getClientId(tabela[i].instantName) icon:setImageSource('/images/game/spells/defaultspells') icon:setImageClip((((spicon -1)%12)*32) .. ' ' .. ((math.ceil(spicon/12)-1)*32) .. ' 32 32') icon:setVisible(true) icon.words = tabela[i].words icon.instantName = tabela[i].instantName icon.lvl = tabela[i].lvl icon.mana = tabela[i].mana icon.exhaustion = tabela[i].exhaustion icon.exhaustionNeeded = 0 icon:setTooltip(tabela[i].words) if lado == 'horizontal' then icon:setMarginTop(3) height = 38 width = (i) * 32 + 2*(i) icon:setMarginLeft((i) * 32 + 2*(i) - 32) else icon:setMarginLeft(3) icon:setMarginTop((i) * 32 + 2*(i) - 32) width = 38 height = (i) * 32 + 2*(i) end --progress: progress:setId('progress'..i) progress:setVisible(true) progress:setPercent(100) progress:setMarginLeft(icon:getMarginLeft()) progress:setMarginTop(icon:getMarginTop()) if player:getLevel() < icon.lvl then progress:setText('L'..icon.lvl) progress:setColor('red') progress:setPercent(0) end if progress:getPercent() == 100 then progress:setText('OK') elseif icon.lvl < player:getLevel() then progress:setText(progress:getPercent()) end progress:setPhantom(true) icon.onClick = function() useSpell(i) end end sbw:setHeight(height) sbw:setWidth(width) spellBarWindow:setSize(sbw:getSize()) end function useSpell(i) local spell = sbw:recursiveGetChildById('spell'..i) if not spell then return end local progress = sbw:recursiveGetChildById('progress'..i) local player = g_game.getLocalPlayer() if not player then return end if progress:getPercent() < 100 then return modules.game_textmessage.displayFailureMessage('Wait your delay!') end g_game.talk(spell.words) end function startDownDelay(i) -- aqui vai ficar on onTalk, pra descer só realmente quando a spell sair local spell = sbw:recursiveGetChildById('spell'..i) if not spell then return end local progress = sbw:recursiveGetChildById('progress'..i) progress:setPercent(0) progress:setText('0%') progress:setColor('red') spell.exhaustionNeeded = 0 scheduleEvent(function() spellTimeleft(i) end,100) end function spellTimeleft(i) local spell = sbw:recursiveGetChildById('spell'..i) if not spell then return end local progress = sbw:recursiveGetChildById('progress'..i) spell.exhaustionNeeded = spell.exhaustionNeeded + 100 if spell.exhaustionNeeded < spell.exhaustion then progress:setPercent(math.ceil(((spell.exhaustionNeeded) * 100)/spell.exhaustion)) progress:setText(progress:getPercent()) progress:setColor('red') else progress:setPercent(100) progress:setText('OK') progress:setColor('green') spell.exhaustionNeeded = 0 return true end scheduleEvent(function() spellTimeleft(i) end,100) end SpellBar.OTUI [spoiler=Clica Aqui] SpellButton < UIButton width: 32 height: 32 focusable: false image-color: white image-size: 32 32 anchors.left: parent.left anchors.top: parent.top $!hover: image-border: 3 $hover: image-border: 2 image-color: #ffffff99 $pressed: image-color: #999999 $disabled: image-color: #ffffff66 SpellProgressSpell < UIProgressRect background: #585858AA percent: 100 focusable: false font: verdana-11px-rounded color: green anchors.left: parent.left anchors.top: parent.top size: 32 32 UIWindow focusable: false Panel id: mainWindow size: 70 70 focusable: false opacity: 0.95 image-source: /images/ui/window anchors.fill: parent Gostaria de saber como faço para reconhecer apenas as spells de acordo com a vocação do jogador, podem me ajudar?
  9. OTClient Regras de Codificação do OTC

    Regras de Codificação do OTC Antes de implementar qualquer coisa, impregne em sua mente as oito seguintes regras. Todas elas tem algum motivo por trás e farão com que você seja muito mais bem-visto na comunidade de modding de OTC. 1. Evite pointers a todo custo! Use apenas quando for estritamente necessário, no caso de strings de C (char*). Evite até para buffers de inteiros. 2. Se você precisa de um buffer, use std::vector. 3. Nunca use ponteiros para objetos. Se você acha que é necessário, provavelmente é possível utilizar std::shared_ptr ou passar o objeto por referência. 4. Nunca use a palavra-chave delete. Quando digo nunca, é realmente NUNCA. Se você acha que precisa usar, é porque não leu as regras acima. 5. Passe objetos pequenos como Position, Rect e std::string por referência. 6. Inclua apenas a declaração de outros objetos nos arquivos de header, nunca definições. Você consegue achar o padrão declarations.h no código-fonte. 7. Se você acha que alguma coisa pode dar errada em seu código, use asserts ou lance uma exceção para verificação. 8. C++0x possui uma grande variedade de utilidades novas. Você pode e é encorajado a usá-las! Identação 1. Quatro espaços são usados para identação 2. Espaços, não tabs! Declarando variáveis 1. Variáveis / funções começam com letra minúscula e cada palavra consecutiva começa com letra maiúscula. 2. Evite nomes curtos e abreviações sempre que possível. Use nomes legíveis. int a; // Errado int whorisize; // Errado int hsize; // Errado int windowHSize; // Errado int windowHorizontalSize; // Certo 3. Variáveis com um só caracter como nome são aceitáveis apenas para contadores, quando o propósito da variável é óbvio. 4. Classes sempre começam com letra maiúscula. 5. Atributos, ou variáveis de classe, sempre começam com "m_" seguido de letra minúscula. class ClasseTeste { int mVariavel; // Errado int m_Variable; // Errado int m_variable; // Certo }; 6. Atributos de uma struct não seguem esta regra. Evite utilizar structs, apenas quando estritamente necessário. 7. Variáveis globais começam com "g_". 8. Use os tipos de int já implementados. uint32_t var; // Errado uint32 var; // Certo unsigned long var; // Errado ulong var; // Certo Uso de Singletons // no topo do game.cpp Game g_game; // no fim do game.h class Game { ... }; extern Game g_game; Loops e iterações 1. Use a palavra-chave auto em qualquer iteração. std::map<int, std::string>::iterator it = myMap.begin(); // Errado auto it = myMap.begin(); // Certo for(std::map<int, std::string>::iterator it = myMap.Begin(); it != myMap.end(); it++) // Errado for (auto it = myMap.begin(); it != myMap.end(); ++it) // Certo for (auto pair : myMap) // Certo 2. Use o for each do C++0x quando possível. for(auto it = files.begin(); it != files.end(); ++it) { } // Errado for (const std::string& file : files) { } // Certo Arquivos fonte 1. Se você precisa de algum header STL use global.h, evite o excesso de includes. 2. Todos os arquivos fonte devem ter o aviso de copyright e licensa no topo. 3. Inclua apenas headers necessários 4. Sempre que possível, declare a classe inteira ao invés do header. // Errado #include "foo.h" class Dummy { Foo *m_foo; }; // Certo class Foo; class Dummy { Foo *m_foo; }; Classes 1. Quando utilizar a palavra-chave new. coloque parênteses apenas quando necessário. new ClasseTeste(); // Errado new ClasseTeste; // Certo 2. Evite construtores vazios nos arquivos fonte. 3. Declare construtores apenas quando necessário 4. Métodos get devem sempre conter a palavra-chave const Documentação 1. Comente tudo o que você achar relevante 2. Documente funções nos headers utilizando /// para habilitar a saída usando doxygen. Algoritmos 1. Use classes de alto nível como Rect, Point e std::string sempre que possível. 2. Faça algorítmos legíveis e organizados 3. Sempre comente! Ponteiros e memória 1. Evite utilizar, como já dito antes, a palavra-chave delete. Também evite gerenciar memória por conta própria. Use sempre ponteiros inteligentes. 2. Prefira passar variáveis de objeto complexas por referência e usando a palavra-chave const Créditos pelo texto: edubart Créditos pela tradução: Linker
  10. OTClient Lista de Funções OTC

    Então galera, eu não vi algo parecido aqui na parte de OTC, então vim mostrar pra vocês, a lista de funções fica na pasta onde está o OTC - src/framework/luafunctions.cpp Vou disponibilizar os da minha lista de funções, que acho que é a padrão pois não editei: [spoiler] // conversion globals g_lua.bindGlobalFunction("torect", [](const std::string& v) { return stdext::from_string<Rect>(v); }); g_lua.bindGlobalFunction("topoint", [](const std::string& v) { return stdext::from_string<Point>(v); }); g_lua.bindGlobalFunction("tocolor", [](const std::string& v) { return stdext::from_string<Color>(v); }); g_lua.bindGlobalFunction("tosize", [](const std::string& v) { return stdext::from_string<Size>(v); }); g_lua.bindGlobalFunction("recttostring", [](const Rect& v) { return stdext::to_string(v); }); g_lua.bindGlobalFunction("pointtostring", [](const Point& v) { return stdext::to_string(v); }); g_lua.bindGlobalFunction("colortostring", [](const Color& v) { return stdext::to_string(v); }); g_lua.bindGlobalFunction("sizetostring", [](const Size& v) { return stdext::to_string(v); }); g_lua.bindGlobalFunction("iptostring", [](int v) { return stdext::ip_to_string(v); }); g_lua.bindGlobalFunction("stringtoip", [](const std::string& v) { return stdext::string_to_ip(v); }); g_lua.bindGlobalFunction("listSubnetAddresses", [](uint32 a, uint8 { return stdext::listSubnetAddresses(a, ; }); g_lua.bindGlobalFunction("ucwords", [](std::string s) { return stdext::ucwords(s); }); // Platform g_lua.registerSingletonClass("g_platform"); g_lua.bindSingletonFunction("g_platform", "spawnProcess", &Platform::spawnProcess, &g_platform); g_lua.bindSingletonFunction("g_platform", "getProcessId", &Platform::getProcessId, &g_platform); g_lua.bindSingletonFunction("g_platform", "isProcessRunning", &Platform::isProcessRunning, &g_platform); g_lua.bindSingletonFunction("g_platform", "copyFile", &Platform::copyFile, &g_platform); g_lua.bindSingletonFunction("g_platform", "fileExists", &Platform::fileExists, &g_platform); g_lua.bindSingletonFunction("g_platform", "removeFile", &Platform::removeFile, &g_platform); g_lua.bindSingletonFunction("g_platform", "killProcess", &Platform::killProcess, &g_platform); g_lua.bindSingletonFunction("g_platform", "getTempPath", &Platform::getTempPath, &g_platform); g_lua.bindSingletonFunction("g_platform", "openUrl", &Platform::openUrl, &g_platform); g_lua.bindSingletonFunction("g_platform", "getCPUName", &Platform::getCPUName, &g_platform); g_lua.bindSingletonFunction("g_platform", "getTotalSystemMemory", &Platform::getTotalSystemMemory, &g_platform); g_lua.bindSingletonFunction("g_platform", "getOSName", &Platform::getOSName, &g_platform); g_lua.bindSingletonFunction("g_platform", "getFileModificationTime", &Platform::getFileModificationTime, &g_platform); // Application g_lua.registerSingletonClass("g_app"); g_lua.bindSingletonFunction("g_app", "setName", &Application::setName, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "setCompactName", &Application::setCompactName, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "setVersion", &Application::setVersion, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "isRunning", &Application::isRunning, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "isStopping", &Application::isStopping, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getName", &Application::getName, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getCompactName", &Application::getCompactName, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getVersion", &Application::getVersion, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getBuildCompiler", &Application::getBuildCompiler, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getBuildDate", &Application::getBuildDate, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getBuildRevision", &Application::getBuildRevision, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getBuildCommit", &Application::getBuildCommit, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getBuildType", &Application::getBuildType, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getBuildArch", &Application::getBuildArch, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getOs", &Application::getOs, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "getStartupOptions", &Application::getStartupOptions, static_cast<Application*>(&g_app)); g_lua.bindSingletonFunction("g_app", "exit", &Application::exit, static_cast<Application*>(&g_app)); // Crypt g_lua.registerSingletonClass("g_crypt"); g_lua.bindSingletonFunction("g_crypt", "genUUID", &Crypt::genUUID, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "setMachineUUID", &Crypt::setMachineUUID, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "getMachineUUID", &Crypt::getMachineUUID, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "encrypt", &Crypt::encrypt, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "decrypt", &Crypt::decrypt, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "sha1Encode", &Crypt::sha1Encode, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "md5Encode", &Crypt::md5Encode, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "rsaGenerateKey", &Crypt::rsaGenerateKey, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "rsaSetPublicKey", &Crypt::rsaSetPublicKey, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "rsaSetPrivateKey", &Crypt::rsaSetPrivateKey, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "rsaCheckKey", &Crypt::rsaCheckKey, &g_crypt); g_lua.bindSingletonFunction("g_crypt", "rsaGetSize", &Crypt::rsaGetSize, &g_crypt); // Clock g_lua.registerSingletonClass("g_clock"); g_lua.bindSingletonFunction("g_clock", "micros", &Clock::micros, &g_clock); g_lua.bindSingletonFunction("g_clock", "millis", &Clock::millis, &g_clock); g_lua.bindSingletonFunction("g_clock", "seconds", &Clock::seconds, &g_clock); // ConfigManager g_lua.registerSingletonClass("g_configs"); g_lua.bindSingletonFunction("g_configs", "load", &ConfigManager::load, &g_configs); g_lua.bindSingletonFunction("g_configs", "save", &ConfigManager::save, &g_configs); g_lua.bindSingletonFunction("g_configs", "set", &ConfigManager::set, &g_configs); g_lua.bindSingletonFunction("g_configs", "setList", &ConfigManager::setList, &g_configs); g_lua.bindSingletonFunction("g_configs", "get", &ConfigManager::get, &g_configs); g_lua.bindSingletonFunction("g_configs", "getList", &ConfigManager::getList, &g_configs); g_lua.bindSingletonFunction("g_configs", "exists", &ConfigManager::exists, &g_configs); g_lua.bindSingletonFunction("g_configs", "remove", &ConfigManager::remove, &g_configs); g_lua.bindSingletonFunction("g_configs", "setNode", &ConfigManager::setNode, &g_configs); g_lua.bindSingletonFunction("g_configs", "mergeNode", &ConfigManager::mergeNode, &g_configs); g_lua.bindSingletonFunction("g_configs", "getNode", &ConfigManager::getNode, &g_configs); // Logger g_lua.registerSingletonClass("g_logger"); g_lua.bindSingletonFunction("g_logger", "log", &Logger::log, &g_logger); g_lua.bindSingletonFunction("g_logger", "fireOldMessages", &Logger::fireOldMessages, &g_logger); g_lua.bindSingletonFunction("g_logger", "setLogFile", &Logger::setLogFile, &g_logger); g_lua.bindSingletonFunction("g_logger", "setOnLog", &Logger::setOnLog, &g_logger); g_lua.bindSingletonFunction("g_logger", "debug", &Logger::debug, &g_logger); g_lua.bindSingletonFunction("g_logger", "info", &Logger::info, &g_logger); g_lua.bindSingletonFunction("g_logger", "warning", &Logger::warning, &g_logger); g_lua.bindSingletonFunction("g_logger", "error", &Logger::error, &g_logger); g_lua.bindSingletonFunction("g_logger", "fatal", &Logger::fatal, &g_logger); // ModuleManager g_lua.registerSingletonClass("g_modules"); g_lua.bindSingletonFunction("g_modules", "discoverModules", &ModuleManager::discoverModules, &g_modules); g_lua.bindSingletonFunction("g_modules", "autoLoadModules", &ModuleManager::autoLoadModules, &g_modules); g_lua.bindSingletonFunction("g_modules", "discoverModule", &ModuleManager::discoverModule, &g_modules); g_lua.bindSingletonFunction("g_modules", "ensureModuleLoaded", &ModuleManager::ensureModuleLoaded, &g_modules); g_lua.bindSingletonFunction("g_modules", "unloadModules", &ModuleManager::unloadModules, &g_modules); g_lua.bindSingletonFunction("g_modules", "reloadModules", &ModuleManager::reloadModules, &g_modules); g_lua.bindSingletonFunction("g_modules", "getModule", &ModuleManager::getModule, &g_modules); g_lua.bindSingletonFunction("g_modules", "getModules", &ModuleManager::getModules, &g_modules); // EventDispatcher g_lua.registerSingletonClass("g_dispatcher"); g_lua.bindSingletonFunction("g_dispatcher", "addEvent", &EventDispatcher::addEvent, &g_dispatcher); g_lua.bindSingletonFunction("g_dispatcher", "scheduleEvent", &EventDispatcher::scheduleEvent, &g_dispatcher); g_lua.bindSingletonFunction("g_dispatcher", "cycleEvent", &EventDispatcher::cycleEvent, &g_dispatcher); // ResourceManager g_lua.registerSingletonClass("g_resources"); g_lua.bindSingletonFunction("g_resources", "addSearchPath", &ResourceManager::addSearchPath, &g_resources); g_lua.bindSingletonFunction("g_resources", "setupUserWriteDir", &ResourceManager::setupUserWriteDir, &g_resources); g_lua.bindSingletonFunction("g_resources", "setWriteDir", &ResourceManager::setWriteDir, &g_resources); g_lua.bindSingletonFunction("g_resources", "searchAndAddPackages", &ResourceManager::searchAndAddPackages, &g_resources); g_lua.bindSingletonFunction("g_resources", "removeSearchPath", &ResourceManager::removeSearchPath, &g_resources); g_lua.bindSingletonFunction("g_resources", "fileExists", &ResourceManager::fileExists, &g_resources); g_lua.bindSingletonFunction("g_resources", "directoryExists", &ResourceManager::directoryExists, &g_resources); g_lua.bindSingletonFunction("g_resources", "getRealDir", &ResourceManager::getRealDir, &g_resources); g_lua.bindSingletonFunction("g_resources", "getWorkDir", &ResourceManager::getWorkDir, &g_resources); g_lua.bindSingletonFunction("g_resources", "getSearchPaths", &ResourceManager::getSearchPaths, &g_resources); g_lua.bindSingletonFunction("g_resources", "listDirectoryFiles", &ResourceManager::listDirectoryFiles, &g_resources); g_lua.bindSingletonFunction("g_resources", "readFileContents", &ResourceManager::readFileContents, &g_resources); g_lua.bindSingletonFunction("g_resources", "guessFilePath", &ResourceManager::guessFilePath, &g_resources); g_lua.bindSingletonFunction("g_resources", "isFileType", &ResourceManager::isFileType, &g_resources); g_lua.bindSingletonFunction("g_resources", "getFileTime", &ResourceManager::getFileTime, &g_resources); // Module g_lua.registerClass<Module>(); g_lua.bindClassMemberFunction<Module>("load", &Module::load); g_lua.bindClassMemberFunction<Module>("unload", &Module::unload); g_lua.bindClassMemberFunction<Module>("reload", &Module::reload); g_lua.bindClassMemberFunction<Module>("canReload", &Module::canReload); g_lua.bindClassMemberFunction<Module>("canUnload", &Module::canUnload); g_lua.bindClassMemberFunction<Module>("isLoaded", &Module::isLoaded); g_lua.bindClassMemberFunction<Module>("isReloadble", &Module::isReloadable); g_lua.bindClassMemberFunction<Module>("isSandboxed", &Module::isSandboxed); g_lua.bindClassMemberFunction<Module>("getDescription", &Module::getDescription); g_lua.bindClassMemberFunction<Module>("getName", &Module::getName); g_lua.bindClassMemberFunction<Module>("getAuthor", &Module::getAuthor); g_lua.bindClassMemberFunction<Module>("getWebsite", &Module::getWebsite); g_lua.bindClassMemberFunction<Module>("getVersion", &Module::getVersion); g_lua.bindClassMemberFunction<Module>("getSandbox", &Module::getSandbox); g_lua.bindClassMemberFunction<Module>("isAutoLoad", &Module::isAutoLoad); g_lua.bindClassMemberFunction<Module>("getAutoLoadPriority", &Module::getAutoLoadPriority); // Event g_lua.registerClass<Event>(); g_lua.bindClassMemberFunction<Event>("cancel", &Event::cancel); g_lua.bindClassMemberFunction<Event>("execute", &Event::execute); g_lua.bindClassMemberFunction<Event>("isCanceled", &Event::isCanceled); g_lua.bindClassMemberFunction<Event>("isExecuted", &Event::isExecuted); // ScheduledEvent g_lua.registerClass<ScheduledEvent, Event>(); g_lua.bindClassMemberFunction<ScheduledEvent>("nextCycle", &ScheduledEvent::nextCycle); g_lua.bindClassMemberFunction<ScheduledEvent>("ticks", &ScheduledEvent::ticks); g_lua.bindClassMemberFunction<ScheduledEvent>("remainingTicks", &ScheduledEvent::remainingTicks); g_lua.bindClassMemberFunction<ScheduledEvent>("delay", &ScheduledEvent::delay); g_lua.bindClassMemberFunction<ScheduledEvent>("cyclesExecuted", &ScheduledEvent::cyclesExecuted); g_lua.bindClassMemberFunction<ScheduledEvent>("maxCycles", &ScheduledEvent::maxCycles); #ifdef FW_GRAPHICS // GraphicalApplication g_lua.bindSingletonFunction("g_app", "setForegroundPaneMaxFps", &GraphicalApplication::setForegroundPaneMaxFps, &g_app); g_lua.bindSingletonFunction("g_app", "setBackgroundPaneMaxFps", &GraphicalApplication::setBackgroundPaneMaxFps, &g_app); g_lua.bindSingletonFunction("g_app", "isOnInputEvent", &GraphicalApplication::isOnInputEvent, &g_app); g_lua.bindSingletonFunction("g_app", "getForegroundPaneFps", &GraphicalApplication::getForegroundPaneFps, &g_app); g_lua.bindSingletonFunction("g_app", "getBackgroundPaneFps", &GraphicalApplication::getBackgroundPaneFps, &g_app); g_lua.bindSingletonFunction("g_app", "getForegroundPaneMaxFps", &GraphicalApplication::getForegroundPaneMaxFps, &g_app); g_lua.bindSingletonFunction("g_app", "getBackgroundPaneMaxFps", &GraphicalApplication::getBackgroundPaneMaxFps, &g_app); // PlatformWindow g_lua.registerSingletonClass("g_window"); g_lua.bindSingletonFunction("g_window", "move", &PlatformWindow::move, &g_window); g_lua.bindSingletonFunction("g_window", "resize", &PlatformWindow::resize, &g_window); g_lua.bindSingletonFunction("g_window", "show", &PlatformWindow::show, &g_window); g_lua.bindSingletonFunction("g_window", "hide", &PlatformWindow::hide, &g_window); g_lua.bindSingletonFunction("g_window", "poll", &PlatformWindow::poll, &g_window); g_lua.bindSingletonFunction("g_window", "maximize", &PlatformWindow::maximize, &g_window); g_lua.bindSingletonFunction("g_window", "restoreMouseCursor", &PlatformWindow::restoreMouseCursor, &g_window); g_lua.bindSingletonFunction("g_window", "showMouse", &PlatformWindow::showMouse, &g_window); g_lua.bindSingletonFunction("g_window", "hideMouse", &PlatformWindow::hideMouse, &g_window); g_lua.bindSingletonFunction("g_window", "setTitle", &PlatformWindow::setTitle, &g_window); g_lua.bindSingletonFunction("g_window", "setMouseCursor", &PlatformWindow::setMouseCursor, &g_window); g_lua.bindSingletonFunction("g_window", "setMinimumSize", &PlatformWindow::setMinimumSize, &g_window); g_lua.bindSingletonFunction("g_window", "setFullscreen", &PlatformWindow::setFullscreen, &g_window); g_lua.bindSingletonFunction("g_window", "setVerticalSync", &PlatformWindow::setVerticalSync, &g_window); g_lua.bindSingletonFunction("g_window", "setIcon", &PlatformWindow::setIcon, &g_window); g_lua.bindSingletonFunction("g_window", "setClipboardText", &PlatformWindow::setClipboardText, &g_window); g_lua.bindSingletonFunction("g_window", "getDisplaySize", &PlatformWindow::getDisplaySize, &g_window); g_lua.bindSingletonFunction("g_window", "getClipboardText", &PlatformWindow::getClipboardText, &g_window); g_lua.bindSingletonFunction("g_window", "getPlatformType", &PlatformWindow::getPlatformType, &g_window); g_lua.bindSingletonFunction("g_window", "getDisplayWidth", &PlatformWindow::getDisplayWidth, &g_window); g_lua.bindSingletonFunction("g_window", "getDisplayHeight", &PlatformWindow::getDisplayHeight, &g_window); g_lua.bindSingletonFunction("g_window", "getUnmaximizedSize", &PlatformWindow::getUnmaximizedSize, &g_window); g_lua.bindSingletonFunction("g_window", "getSize", &PlatformWindow::getSize, &g_window); g_lua.bindSingletonFunction("g_window", "getWidth", &PlatformWindow::getWidth, &g_window); g_lua.bindSingletonFunction("g_window", "getHeight", &PlatformWindow::getHeight, &g_window); g_lua.bindSingletonFunction("g_window", "getUnmaximizedPos", &PlatformWindow::getUnmaximizedPos, &g_window); g_lua.bindSingletonFunction("g_window", "getPosition", &PlatformWindow::getPosition, &g_window); g_lua.bindSingletonFunction("g_window", "getX", &PlatformWindow::getX, &g_window); g_lua.bindSingletonFunction("g_window", "getY", &PlatformWindow::getY, &g_window); g_lua.bindSingletonFunction("g_window", "getMousePosition", &PlatformWindow::getMousePosition, &g_window); g_lua.bindSingletonFunction("g_window", "getKeyboardModifiers", &PlatformWindow::getKeyboardModifiers, &g_window); g_lua.bindSingletonFunction("g_window", "isKeyPressed", &PlatformWindow::isKeyPressed, &g_window); g_lua.bindSingletonFunction("g_window", "isMouseButtonPressed", &PlatformWindow::isMouseButtonPressed, &g_window); g_lua.bindSingletonFunction("g_window", "isVisible", &PlatformWindow::isVisible, &g_window); g_lua.bindSingletonFunction("g_window", "isFullscreen", &PlatformWindow::isFullscreen, &g_window); g_lua.bindSingletonFunction("g_window", "isMaximized", &PlatformWindow::isMaximized, &g_window); g_lua.bindSingletonFunction("g_window", "hasFocus", &PlatformWindow::hasFocus, &g_window); // Input g_lua.registerSingletonClass("g_mouse"); g_lua.bindSingletonFunction("g_mouse", "loadCursors", &Mouse::loadCursors, &g_mouse); g_lua.bindSingletonFunction("g_mouse", "addCursor", &Mouse::addCursor, &g_mouse); g_lua.bindSingletonFunction("g_mouse", "pushCursor", &Mouse::pushCursor, &g_mouse); g_lua.bindSingletonFunction("g_mouse", "popCursor", &Mouse::popCursor, &g_mouse); g_lua.bindSingletonFunction("g_mouse", "isCursorChanged", &Mouse::isCursorChanged, &g_mouse); g_lua.bindSingletonFunction("g_mouse", "isPressed", &Mouse::isPressed, &g_mouse); // Graphics g_lua.registerSingletonClass("g_graphics"); g_lua.bindSingletonFunction("g_graphics", "isPainterEngineAvailable", &Graphics::isPainterEngineAvailable, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "selectPainterEngine", &Graphics::selectPainterEngine, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "canCacheBackbuffer", &Graphics::canCacheBackbuffer, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "canUseShaders", &Graphics::canUseShaders, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "shouldUseShaders", &Graphics::shouldUseShaders, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "setShouldUseShaders", &Graphics::setShouldUseShaders, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "getPainterEngine", &Graphics::getPainterEngine, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "getViewportSize", &Graphics::getViewportSize, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "getVendor", &Graphics::getVendor, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "getRenderer", &Graphics::getRenderer, &g_graphics); g_lua.bindSingletonFunction("g_graphics", "getVersion", &Graphics::getVersion, &g_graphics); // Textures g_lua.registerSingletonClass("g_textures"); g_lua.bindSingletonFunction("g_textures", "preload", &TextureManager::preload, &g_textures); g_lua.bindSingletonFunction("g_textures", "clearCache", &TextureManager::clearCache, &g_textures); g_lua.bindSingletonFunction("g_textures", "liveReload", &TextureManager::liveReload, &g_textures); // UI g_lua.registerSingletonClass("g_ui"); g_lua.bindSingletonFunction("g_ui", "clearStyles", &UIManager::clearStyles, &g_ui); g_lua.bindSingletonFunction("g_ui", "importStyle", &UIManager::importStyle, &g_ui); g_lua.bindSingletonFunction("g_ui", "getStyle", &UIManager::getStyle, &g_ui); g_lua.bindSingletonFunction("g_ui", "getStyleClass", &UIManager::getStyleClass, &g_ui); g_lua.bindSingletonFunction("g_ui", "loadUI", &UIManager::loadUI, &g_ui); g_lua.bindSingletonFunction("g_ui", "displayUI", &UIManager::displayUI, &g_ui); g_lua.bindSingletonFunction("g_ui", "createWidget", &UIManager::createWidget, &g_ui); g_lua.bindSingletonFunction("g_ui", "createWidgetFromOTML", &UIManager::createWidgetFromOTML, &g_ui); g_lua.bindSingletonFunction("g_ui", "getRootWidget", &UIManager::getRootWidget, &g_ui); g_lua.bindSingletonFunction("g_ui", "getDraggingWidget", &UIManager::getDraggingWidget, &g_ui); g_lua.bindSingletonFunction("g_ui", "getPressedWidget", &UIManager::getPressedWidget, &g_ui); g_lua.bindSingletonFunction("g_ui", "setDebugBoxesDrawing", &UIManager::setDebugBoxesDrawing, &g_ui); g_lua.bindSingletonFunction("g_ui", "isDrawingDebugBoxes", &UIManager::isDrawingDebugBoxes, &g_ui); g_lua.bindSingletonFunction("g_ui", "isMouseGrabbed", &UIManager::isMouseGrabbed, &g_ui); g_lua.bindSingletonFunction("g_ui", "isKeyboardGrabbed", &UIManager::isKeyboardGrabbed, &g_ui); // FontManager g_lua.registerSingletonClass("g_fonts"); g_lua.bindSingletonFunction("g_fonts", "clearFonts", &FontManager::clearFonts, &g_fonts); g_lua.bindSingletonFunction("g_fonts", "importFont", &FontManager::importFont, &g_fonts); g_lua.bindSingletonFunction("g_fonts", "fontExists", &FontManager::fontExists, &g_fonts); g_lua.bindSingletonFunction("g_fonts", "setDefaultFont", &FontManager::setDefaultFont, &g_fonts); // ParticleManager g_lua.registerSingletonClass("g_particles"); g_lua.bindSingletonFunction("g_particles", "importParticle", &ParticleManager::importParticle, &g_particles); g_lua.bindSingletonFunction("g_particles", "getEffectsTypes", &ParticleManager::getEffectsTypes, &g_particles); // UIWidget g_lua.registerClass<UIWidget>(); g_lua.bindClassStaticFunction<UIWidget>("create", []{ return UIWidgetPtr(new UIWidget); }); g_lua.bindClassMemberFunction<UIWidget>("addChild", &UIWidget::addChild); g_lua.bindClassMemberFunction<UIWidget>("insertChild", &UIWidget::insertChild); g_lua.bindClassMemberFunction<UIWidget>("removeChild", &UIWidget::removeChild); g_lua.bindClassMemberFunction<UIWidget>("focusChild", &UIWidget::focusChild); g_lua.bindClassMemberFunction<UIWidget>("focusNextChild", &UIWidget::focusNextChild); g_lua.bindClassMemberFunction<UIWidget>("focusPreviousChild", &UIWidget::focusPreviousChild); g_lua.bindClassMemberFunction<UIWidget>("lowerChild", &UIWidget::lowerChild); g_lua.bindClassMemberFunction<UIWidget>("raiseChild", &UIWidget::raiseChild); g_lua.bindClassMemberFunction<UIWidget>("moveChildToIndex", &UIWidget::moveChildToIndex); g_lua.bindClassMemberFunction<UIWidget>("lockChild", &UIWidget::lockChild); g_lua.bindClassMemberFunction<UIWidget>("unlockChild", &UIWidget::unlockChild); g_lua.bindClassMemberFunction<UIWidget>("mergeStyle", &UIWidget::mergeStyle); g_lua.bindClassMemberFunction<UIWidget>("applyStyle", &UIWidget::applyStyle); g_lua.bindClassMemberFunction<UIWidget>("addAnchor", &UIWidget::addAnchor); g_lua.bindClassMemberFunction<UIWidget>("removeAnchor", &UIWidget::removeAnchor); g_lua.bindClassMemberFunction<UIWidget>("fill", &UIWidget::fill); g_lua.bindClassMemberFunction<UIWidget>("centerIn", &UIWidget::centerIn); g_lua.bindClassMemberFunction<UIWidget>("breakAnchors", &UIWidget::breakAnchors); g_lua.bindClassMemberFunction<UIWidget>("updateParentLayout", &UIWidget::updateParentLayout); g_lua.bindClassMemberFunction<UIWidget>("updateLayout", &UIWidget::updateLayout); g_lua.bindClassMemberFunction<UIWidget>("lock", &UIWidget::lock); g_lua.bindClassMemberFunction<UIWidget>("unlock", &UIWidget::unlock); g_lua.bindClassMemberFunction<UIWidget>("focus", &UIWidget::focus); g_lua.bindClassMemberFunction<UIWidget>("lower", &UIWidget::lower); g_lua.bindClassMemberFunction<UIWidget>("raise", &UIWidget::raise); g_lua.bindClassMemberFunction<UIWidget>("grabMouse", &UIWidget::grabMouse); g_lua.bindClassMemberFunction<UIWidget>("ungrabMouse", &UIWidget::ungrabMouse); g_lua.bindClassMemberFunction<UIWidget>("grabKeyboard", &UIWidget::grabKeyboard); g_lua.bindClassMemberFunction<UIWidget>("ungrabKeyboard", &UIWidget::ungrabKeyboard); g_lua.bindClassMemberFunction<UIWidget>("bindRectToParent", &UIWidget::bindRectToParent); g_lua.bindClassMemberFunction<UIWidget>("destroy", &UIWidget::destroy); g_lua.bindClassMemberFunction<UIWidget>("destroyChildren", &UIWidget::destroyChildren); g_lua.bindClassMemberFunction<UIWidget>("setId", &UIWidget::setId); g_lua.bindClassMemberFunction<UIWidget>("setParent", &UIWidget::setParent); g_lua.bindClassMemberFunction<UIWidget>("setLayout", &UIWidget::setLayout); g_lua.bindClassMemberFunction<UIWidget>("setRect", &UIWidget::setRect); g_lua.bindClassMemberFunction<UIWidget>("setStyle", &UIWidget::setStyle); g_lua.bindClassMemberFunction<UIWidget>("setStyleFromNode", &UIWidget::setStyleFromNode); g_lua.bindClassMemberFunction<UIWidget>("setEnabled", &UIWidget::setEnabled); g_lua.bindClassMemberFunction<UIWidget>("setVisible", &UIWidget::setVisible); g_lua.bindClassMemberFunction<UIWidget>("setOn", &UIWidget::setOn); g_lua.bindClassMemberFunction<UIWidget>("setChecked", &UIWidget::setChecked); g_lua.bindClassMemberFunction<UIWidget>("setFocusable", &UIWidget::setFocusable); g_lua.bindClassMemberFunction<UIWidget>("setPhantom", &UIWidget::setPhantom); g_lua.bindClassMemberFunction<UIWidget>("setDraggable", &UIWidget::setDraggable); g_lua.bindClassMemberFunction<UIWidget>("setFixedSize", &UIWidget::setFixedSize); g_lua.bindClassMemberFunction<UIWidget>("setClipping", &UIWidget::setClipping); g_lua.bindClassMemberFunction<UIWidget>("setLastFocusReason", &UIWidget::setLastFocusReason); g_lua.bindClassMemberFunction<UIWidget>("setAutoFocusPolicy", &UIWidget::setAutoFocusPolicy); g_lua.bindClassMemberFunction<UIWidget>("setAutoRepeatDelay", &UIWidget::setAutoRepeatDelay); g_lua.bindClassMemberFunction<UIWidget>("setVirtualOffset", &UIWidget::setVirtualOffset); g_lua.bindClassMemberFunction<UIWidget>("isVisible", &UIWidget::isVisible); g_lua.bindClassMemberFunction<UIWidget>("isChildLocked", &UIWidget::isChildLocked); g_lua.bindClassMemberFunction<UIWidget>("hasChild", &UIWidget::hasChild); g_lua.bindClassMemberFunction<UIWidget>("getChildIndex", &UIWidget::getChildIndex); g_lua.bindClassMemberFunction<UIWidget>("getMarginRect", &UIWidget::getMarginRect); g_lua.bindClassMemberFunction<UIWidget>("getPaddingRect", &UIWidget::getPaddingRect); g_lua.bindClassMemberFunction<UIWidget>("getChildrenRect", &UIWidget::getChildrenRect); g_lua.bindClassMemberFunction<UIWidget>("getAnchoredLayout", &UIWidget::getAnchoredLayout); g_lua.bindClassMemberFunction<UIWidget>("getRootParent", &UIWidget::getRootParent); g_lua.bindClassMemberFunction<UIWidget>("getChildAfter", &UIWidget::getChildAfter); g_lua.bindClassMemberFunction<UIWidget>("getChildBefore", &UIWidget::getChildBefore); g_lua.bindClassMemberFunction<UIWidget>("getChildById", &UIWidget::getChildById); g_lua.bindClassMemberFunction<UIWidget>("getChildByPos", &UIWidget::getChildByPos); g_lua.bindClassMemberFunction<UIWidget>("getChildByIndex", &UIWidget::getChildByIndex); g_lua.bindClassMemberFunction<UIWidget>("recursiveGetChildById", &UIWidget::recursiveGetChildById); g_lua.bindClassMemberFunction<UIWidget>("recursiveGetChildByPos", &UIWidget::recursiveGetChildByPos); g_lua.bindClassMemberFunction<UIWidget>("recursiveGetChildren", &UIWidget::recursiveGetChildren); g_lua.bindClassMemberFunction<UIWidget>("recursiveGetChildrenByPos", &UIWidget::recursiveGetChildrenByPos); g_lua.bindClassMemberFunction<UIWidget>("recursiveGetChildrenByMarginPos", &UIWidget::recursiveGetChildrenByMarginPos); g_lua.bindClassMemberFunction<UIWidget>("backwardsGetWidgetById", &UIWidget::backwardsGetWidgetById); g_lua.bindClassMemberFunction<UIWidget>("resize", &UIWidget::resize); g_lua.bindClassMemberFunction<UIWidget>("move", &UIWidget::move); g_lua.bindClassMemberFunction<UIWidget>("rotate", &UIWidget::rotate); g_lua.bindClassMemberFunction<UIWidget>("hide", &UIWidget::hide); g_lua.bindClassMemberFunction<UIWidget>("show", &UIWidget::show); g_lua.bindClassMemberFunction<UIWidget>("disable", &UIWidget::disable); g_lua.bindClassMemberFunction<UIWidget>("enable", &UIWidget::enable); g_lua.bindClassMemberFunction<UIWidget>("isActive", &UIWidget::isActive); g_lua.bindClassMemberFunction<UIWidget>("isEnabled", &UIWidget::isEnabled); g_lua.bindClassMemberFunction<UIWidget>("isDisabled", &UIWidget::isDisabled); g_lua.bindClassMemberFunction<UIWidget>("isFocused", &UIWidget::isFocused); g_lua.bindClassMemberFunction<UIWidget>("isHovered", &UIWidget::isHovered); g_lua.bindClassMemberFunction<UIWidget>("isPressed", &UIWidget::isPressed); g_lua.bindClassMemberFunction<UIWidget>("isFirst", &UIWidget::isFirst); g_lua.bindClassMemberFunction<UIWidget>("isMiddle", &UIWidget::isMiddle); g_lua.bindClassMemberFunction<UIWidget>("isLast", &UIWidget::isLast); g_lua.bindClassMemberFunction<UIWidget>("isAlternate", &UIWidget::isAlternate); g_lua.bindClassMemberFunction<UIWidget>("isChecked", &UIWidget::isChecked); g_lua.bindClassMemberFunction<UIWidget>("isOn", &UIWidget::isOn); g_lua.bindClassMemberFunction<UIWidget>("isDragging", &UIWidget::isDragging); g_lua.bindClassMemberFunction<UIWidget>("isHidden", &UIWidget::isHidden); g_lua.bindClassMemberFunction<UIWidget>("isExplicitlyEnabled", &UIWidget::isExplicitlyEnabled); g_lua.bindClassMemberFunction<UIWidget>("isExplicitlyVisible", &UIWidget::isExplicitlyVisible); g_lua.bindClassMemberFunction<UIWidget>("isFocusable", &UIWidget::isFocusable); g_lua.bindClassMemberFunction<UIWidget>("isPhantom", &UIWidget::isPhantom); g_lua.bindClassMemberFunction<UIWidget>("isDraggable", &UIWidget::isDraggable); g_lua.bindClassMemberFunction<UIWidget>("isFixedSize", &UIWidget::isFixedSize); g_lua.bindClassMemberFunction<UIWidget>("isClipping", &UIWidget::isClipping); g_lua.bindClassMemberFunction<UIWidget>("isDestroyed", &UIWidget::isDestroyed); g_lua.bindClassMemberFunction<UIWidget>("hasChildren", &UIWidget::hasChildren); g_lua.bindClassMemberFunction<UIWidget>("containsMarginPoint", &UIWidget::containsMarginPoint); g_lua.bindClassMemberFunction<UIWidget>("containsPaddingPoint", &UIWidget::containsPaddingPoint); g_lua.bindClassMemberFunction<UIWidget>("containsPoint", &UIWidget::containsPoint); g_lua.bindClassMemberFunction<UIWidget>("getId", &UIWidget::getId); g_lua.bindClassMemberFunction<UIWidget>("getParent", &UIWidget::getParent); g_lua.bindClassMemberFunction<UIWidget>("getFocusedChild", &UIWidget::getFocusedChild); g_lua.bindClassMemberFunction<UIWidget>("getChildren", &UIWidget::getChildren); g_lua.bindClassMemberFunction<UIWidget>("getFirstChild", &UIWidget::getFirstChild); g_lua.bindClassMemberFunction<UIWidget>("getLastChild", &UIWidget::getLastChild); g_lua.bindClassMemberFunction<UIWidget>("getLayout", &UIWidget::getLayout); g_lua.bindClassMemberFunction<UIWidget>("getStyle", &UIWidget::getStyle); g_lua.bindClassMemberFunction<UIWidget>("getChildCount", &UIWidget::getChildCount); g_lua.bindClassMemberFunction<UIWidget>("getLastFocusReason", &UIWidget::getLastFocusReason); g_lua.bindClassMemberFunction<UIWidget>("getAutoFocusPolicy", &UIWidget::getAutoFocusPolicy); g_lua.bindClassMemberFunction<UIWidget>("getAutoRepeatDelay", &UIWidget::getAutoRepeatDelay); g_lua.bindClassMemberFunction<UIWidget>("getVirtualOffset", &UIWidget::getVirtualOffset); g_lua.bindClassMemberFunction<UIWidget>("getStyleName", &UIWidget::getStyleName); g_lua.bindClassMemberFunction<UIWidget>("getLastClickPosition", &UIWidget::getLastClickPosition); g_lua.bindClassMemberFunction<UIWidget>("setX", &UIWidget::setX); g_lua.bindClassMemberFunction<UIWidget>("setY", &UIWidget::setY); g_lua.bindClassMemberFunction<UIWidget>("setWidth", &UIWidget::setWidth); g_lua.bindClassMemberFunction<UIWidget>("setHeight", &UIWidget::setHeight); g_lua.bindClassMemberFunction<UIWidget>("setSize", &UIWidget::setSize); g_lua.bindClassMemberFunction<UIWidget>("setPosition", &UIWidget::setPosition); g_lua.bindClassMemberFunction<UIWidget>("setColor", &UIWidget::setColor); g_lua.bindClassMemberFunction<UIWidget>("setBackgroundColor", &UIWidget::setBackgroundColor); g_lua.bindClassMemberFunction<UIWidget>("setBackgroundOffsetX", &UIWidget::setBackgroundOffsetX); g_lua.bindClassMemberFunction<UIWidget>("setBackgroundOffsetY", &UIWidget::setBackgroundOffsetY); g_lua.bindClassMemberFunction<UIWidget>("setBackgroundOffset", &UIWidget::setBackgroundOffset); g_lua.bindClassMemberFunction<UIWidget>("setBackgroundWidth", &UIWidget::setBackgroundWidth); g_lua.bindClassMemberFunction<UIWidget>("setBackgroundHeight", &UIWidget::setBackgroundHeight); g_lua.bindClassMemberFunction<UIWidget>("setBackgroundSize", &UIWidget::setBackgroundSize); g_lua.bindClassMemberFunction<UIWidget>("setBackgroundRect", &UIWidget::setBackgroundRect); g_lua.bindClassMemberFunction<UIWidget>("setIcon", &UIWidget::setIcon); g_lua.bindClassMemberFunction<UIWidget>("setIconColor", &UIWidget::setIconColor); g_lua.bindClassMemberFunction<UIWidget>("setIconOffsetX", &UIWidget::setIconOffsetX); g_lua.bindClassMemberFunction<UIWidget>("setIconOffsetY", &UIWidget::setIconOffsetY); g_lua.bindClassMemberFunction<UIWidget>("setIconOffset", &UIWidget::setIconOffset); g_lua.bindClassMemberFunction<UIWidget>("setIconWidth", &UIWidget::setIconWidth); g_lua.bindClassMemberFunction<UIWidget>("setIconHeight", &UIWidget::setIconHeight); g_lua.bindClassMemberFunction<UIWidget>("setIconSize", &UIWidget::setIconSize); g_lua.bindClassMemberFunction<UIWidget>("setIconRect", &UIWidget::setIconRect); g_lua.bindClassMemberFunction<UIWidget>("setIconClip", &UIWidget::setIconClip); g_lua.bindClassMemberFunction<UIWidget>("setIconAlign", &UIWidget::setIconAlign); g_lua.bindClassMemberFunction<UIWidget>("setBorderWidth", &UIWidget::setBorderWidth); g_lua.bindClassMemberFunction<UIWidget>("setBorderWidthTop", &UIWidget::setBorderWidthTop); g_lua.bindClassMemberFunction<UIWidget>("setBorderWidthRight", &UIWidget::setBorderWidthRight); g_lua.bindClassMemberFunction<UIWidget>("setBorderWidthBottom", &UIWidget::setBorderWidthBottom); g_lua.bindClassMemberFunction<UIWidget>("setBorderWidthLeft", &UIWidget::setBorderWidthLeft); g_lua.bindClassMemberFunction<UIWidget>("setBorderColor", &UIWidget::setBorderColor); g_lua.bindClassMemberFunction<UIWidget>("setBorderColorTop", &UIWidget::setBorderColorTop); g_lua.bindClassMemberFunction<UIWidget>("setBorderColorRight", &UIWidget::setBorderColorRight); g_lua.bindClassMemberFunction<UIWidget>("setBorderColorBottom", &UIWidget::setBorderColorBottom); g_lua.bindClassMemberFunction<UIWidget>("setBorderColorLeft", &UIWidget::setBorderColorLeft); g_lua.bindClassMemberFunction<UIWidget>("setMargin", &UIWidget::setMargin); g_lua.bindClassMemberFunction<UIWidget>("setMarginHorizontal", &UIWidget::setMarginHorizontal); g_lua.bindClassMemberFunction<UIWidget>("setMarginVertical", &UIWidget::setMarginVertical); g_lua.bindClassMemberFunction<UIWidget>("setMarginTop", &UIWidget::setMarginTop); g_lua.bindClassMemberFunction<UIWidget>("setMarginRight", &UIWidget::setMarginRight); g_lua.bindClassMemberFunction<UIWidget>("setMarginBottom", &UIWidget::setMarginBottom); g_lua.bindClassMemberFunction<UIWidget>("setMarginLeft", &UIWidget::setMarginLeft); g_lua.bindClassMemberFunction<UIWidget>("setPadding", &UIWidget::setPadding); g_lua.bindClassMemberFunction<UIWidget>("setPaddingHorizontal", &UIWidget::setPaddingHorizontal); g_lua.bindClassMemberFunction<UIWidget>("setPaddingVertical", &UIWidget::setPaddingVertical); g_lua.bindClassMemberFunction<UIWidget>("setPaddingTop", &UIWidget::setPaddingTop); g_lua.bindClassMemberFunction<UIWidget>("setPaddingRight", &UIWidget::setPaddingRight); g_lua.bindClassMemberFunction<UIWidget>("setPaddingBottom", &UIWidget::setPaddingBottom); g_lua.bindClassMemberFunction<UIWidget>("setPaddingLeft", &UIWidget::setPaddingLeft); g_lua.bindClassMemberFunction<UIWidget>("setOpacity", &UIWidget::setOpacity); g_lua.bindClassMemberFunction<UIWidget>("setRotation", &UIWidget::setRotation); g_lua.bindClassMemberFunction<UIWidget>("getX", &UIWidget::getX); g_lua.bindClassMemberFunction<UIWidget>("getY", &UIWidget::getY); g_lua.bindClassMemberFunction<UIWidget>("getPosition", &UIWidget::getPosition); g_lua.bindClassMemberFunction<UIWidget>("getWidth", &UIWidget::getWidth); g_lua.bindClassMemberFunction<UIWidget>("getHeight", &UIWidget::getHeight); g_lua.bindClassMemberFunction<UIWidget>("getSize", &UIWidget::getSize); g_lua.bindClassMemberFunction<UIWidget>("getRect", &UIWidget::getRect); g_lua.bindClassMemberFunction<UIWidget>("getColor", &UIWidget::getColor); g_lua.bindClassMemberFunction<UIWidget>("getBackgroundColor", &UIWidget::getBackgroundColor); g_lua.bindClassMemberFunction<UIWidget>("getBackgroundOffsetX", &UIWidget::getBackgroundOffsetX); g_lua.bindClassMemberFunction<UIWidget>("getBackgroundOffsetY", &UIWidget::getBackgroundOffsetY); g_lua.bindClassMemberFunction<UIWidget>("getBackgroundOffset", &UIWidget::getBackgroundOffset); g_lua.bindClassMemberFunction<UIWidget>("getBackgroundWidth", &UIWidget::getBackgroundWidth); g_lua.bindClassMemberFunction<UIWidget>("getBackgroundHeight", &UIWidget::getBackgroundHeight); g_lua.bindClassMemberFunction<UIWidget>("getBackgroundSize", &UIWidget::getBackgroundSize); g_lua.bindClassMemberFunction<UIWidget>("getBackgroundRect", &UIWidget::getBackgroundRect); g_lua.bindClassMemberFunction<UIWidget>("getIconColor", &UIWidget::getIconColor); g_lua.bindClassMemberFunction<UIWidget>("getIconOffsetX", &UIWidget::getIconOffsetX); g_lua.bindClassMemberFunction<UIWidget>("getIconOffsetY", &UIWidget::getIconOffsetY); g_lua.bindClassMemberFunction<UIWidget>("getIconOffset", &UIWidget::getIconOffset); g_lua.bindClassMemberFunction<UIWidget>("getIconWidth", &UIWidget::getIconWidth); g_lua.bindClassMemberFunction<UIWidget>("getIconHeight", &UIWidget::getIconHeight); g_lua.bindClassMemberFunction<UIWidget>("getIconSize", &UIWidget::getIconSize); g_lua.bindClassMemberFunction<UIWidget>("getIconRect", &UIWidget::getIconRect); g_lua.bindClassMemberFunction<UIWidget>("getIconClip", &UIWidget::getIconClip); g_lua.bindClassMemberFunction<UIWidget>("getIconAlign", &UIWidget::getIconAlign); g_lua.bindClassMemberFunction<UIWidget>("getBorderTopColor", &UIWidget::getBorderTopColor); g_lua.bindClassMemberFunction<UIWidget>("getBorderRightColor", &UIWidget::getBorderRightColor); g_lua.bindClassMemberFunction<UIWidget>("getBorderBottomColor", &UIWidget::getBorderBottomColor); g_lua.bindClassMemberFunction<UIWidget>("getBorderLeftColor", &UIWidget::getBorderLeftColor); g_lua.bindClassMemberFunction<UIWidget>("getBorderTopWidth", &UIWidget::getBorderTopWidth); g_lua.bindClassMemberFunction<UIWidget>("getBorderRightWidth", &UIWidget::getBorderRightWidth); g_lua.bindClassMemberFunction<UIWidget>("getBorderBottomWidth", &UIWidget::getBorderBottomWidth); g_lua.bindClassMemberFunction<UIWidget>("getBorderLeftWidth", &UIWidget::getBorderLeftWidth); g_lua.bindClassMemberFunction<UIWidget>("getMarginTop", &UIWidget::getMarginTop); g_lua.bindClassMemberFunction<UIWidget>("getMarginRight", &UIWidget::getMarginRight); g_lua.bindClassMemberFunction<UIWidget>("getMarginBottom", &UIWidget::getMarginBottom); g_lua.bindClassMemberFunction<UIWidget>("getMarginLeft", &UIWidget::getMarginLeft); g_lua.bindClassMemberFunction<UIWidget>("getPaddingTop", &UIWidget::getPaddingTop); g_lua.bindClassMemberFunction<UIWidget>("getPaddingRight", &UIWidget::getPaddingRight); g_lua.bindClassMemberFunction<UIWidget>("getPaddingBottom", &UIWidget::getPaddingBottom); g_lua.bindClassMemberFunction<UIWidget>("getPaddingLeft", &UIWidget::getPaddingLeft); g_lua.bindClassMemberFunction<UIWidget>("getOpacity", &UIWidget::getOpacity); g_lua.bindClassMemberFunction<UIWidget>("getRotation", &UIWidget::getRotation); g_lua.bindClassMemberFunction<UIWidget>("setImageSource", &UIWidget::setImageSource); g_lua.bindClassMemberFunction<UIWidget>("setImageClip", &UIWidget::setImageClip); g_lua.bindClassMemberFunction<UIWidget>("setImageOffsetX", &UIWidget::setImageOffsetX); g_lua.bindClassMemberFunction<UIWidget>("setImageOffsetY", &UIWidget::setImageOffsetY); g_lua.bindClassMemberFunction<UIWidget>("setImageOffset", &UIWidget::setImageOffset); g_lua.bindClassMemberFunction<UIWidget>("setImageWidth", &UIWidget::setImageWidth); g_lua.bindClassMemberFunction<UIWidget>("setImageHeight", &UIWidget::setImageHeight); g_lua.bindClassMemberFunction<UIWidget>("setImageSize", &UIWidget::setImageSize); g_lua.bindClassMemberFunction<UIWidget>("setImageRect", &UIWidget::setImageRect); g_lua.bindClassMemberFunction<UIWidget>("setImageColor", &UIWidget::setImageColor); g_lua.bindClassMemberFunction<UIWidget>("setImageFixedRatio", &UIWidget::setImageFixedRatio); g_lua.bindClassMemberFunction<UIWidget>("setImageRepeated", &UIWidget::setImageRepeated); g_lua.bindClassMemberFunction<UIWidget>("setImageSmooth", &UIWidget::setImageSmooth); g_lua.bindClassMemberFunction<UIWidget>("setImageBorderTop", &UIWidget::setImageBorderTop); g_lua.bindClassMemberFunction<UIWidget>("setImageBorderRight", &UIWidget::setImageBorderRight); g_lua.bindClassMemberFunction<UIWidget>("setImageBorderBottom", &UIWidget::setImageBorderBottom); g_lua.bindClassMemberFunction<UIWidget>("setImageBorderLeft", &UIWidget::setImageBorderLeft); g_lua.bindClassMemberFunction<UIWidget>("setImageBorder", &UIWidget::setImageBorder); g_lua.bindClassMemberFunction<UIWidget>("getImageClip", &UIWidget::getImageClip); g_lua.bindClassMemberFunction<UIWidget>("getImageOffsetX", &UIWidget::getImageOffsetX); g_lua.bindClassMemberFunction<UIWidget>("getImageOffsetY", &UIWidget::getImageOffsetY); g_lua.bindClassMemberFunction<UIWidget>("getImageOffset", &UIWidget::getImageOffset); g_lua.bindClassMemberFunction<UIWidget>("getImageWidth", &UIWidget::getImageWidth); g_lua.bindClassMemberFunction<UIWidget>("getImageHeight", &UIWidget::getImageHeight); g_lua.bindClassMemberFunction<UIWidget>("getImageSize", &UIWidget::getImageSize); g_lua.bindClassMemberFunction<UIWidget>("getImageRect", &UIWidget::getImageRect); g_lua.bindClassMemberFunction<UIWidget>("getImageColor", &UIWidget::getImageColor); g_lua.bindClassMemberFunction<UIWidget>("isImageFixedRatio", &UIWidget::isImageFixedRatio); g_lua.bindClassMemberFunction<UIWidget>("isImageSmooth", &UIWidget::isImageSmooth); g_lua.bindClassMemberFunction<UIWidget>("getImageBorderTop", &UIWidget::getImageBorderTop); g_lua.bindClassMemberFunction<UIWidget>("getImageBorderRight", &UIWidget::getImageBorderRight); g_lua.bindClassMemberFunction<UIWidget>("getImageBorderBottom", &UIWidget::getImageBorderBottom); g_lua.bindClassMemberFunction<UIWidget>("getImageBorderLeft", &UIWidget::getImageBorderLeft); g_lua.bindClassMemberFunction<UIWidget>("getImageTextureWidth", &UIWidget::getImageTextureWidth); g_lua.bindClassMemberFunction<UIWidget>("getImageTextureHeight", &UIWidget::getImageTextureHeight); g_lua.bindClassMemberFunction<UIWidget>("resizeToText", &UIWidget::resizeToText); g_lua.bindClassMemberFunction<UIWidget>("clearText", &UIWidget::clearText); g_lua.bindClassMemberFunction<UIWidget>("setText", &UIWidget::setText); g_lua.bindClassMemberFunction<UIWidget>("setTextAlign", &UIWidget::setTextAlign); g_lua.bindClassMemberFunction<UIWidget>("setTextOffset", &UIWidget::setTextOffset); g_lua.bindClassMemberFunction<UIWidget>("setTextWrap", &UIWidget::setTextWrap); g_lua.bindClassMemberFunction<UIWidget>("setTextAutoResize", &UIWidget::setTextAutoResize); g_lua.bindClassMemberFunction<UIWidget>("setTextVerticalAutoResize", &UIWidget::setTextVerticalAutoResize); g_lua.bindClassMemberFunction<UIWidget>("setTextHorizontalAutoResize", &UIWidget::setTextHorizontalAutoResize); g_lua.bindClassMemberFunction<UIWidget>("setFont", &UIWidget::setFont); g_lua.bindClassMemberFunction<UIWidget>("getText", &UIWidget::getText); g_lua.bindClassMemberFunction<UIWidget>("getDrawText", &UIWidget::getDrawText); g_lua.bindClassMemberFunction<UIWidget>("getTextAlign", &UIWidget::getTextAlign); g_lua.bindClassMemberFunction<UIWidget>("getTextOffset", &UIWidget::getTextOffset); g_lua.bindClassMemberFunction<UIWidget>("getTextWrap", &UIWidget::getTextWrap); g_lua.bindClassMemberFunction<UIWidget>("getFont", &UIWidget::getFont); g_lua.bindClassMemberFunction<UIWidget>("getTextSize", &UIWidget::getTextSize); // UILayout g_lua.registerClass<UILayout>(); g_lua.bindClassMemberFunction<UILayout>("update", &UILayout::update); g_lua.bindClassMemberFunction<UILayout>("updateLater", &UILayout::updateLater); g_lua.bindClassMemberFunction<UILayout>("applyStyle", &UILayout::applyStyle); g_lua.bindClassMemberFunction<UILayout>("addWidget", &UILayout::addWidget); g_lua.bindClassMemberFunction<UILayout>("removeWidget", &UILayout::removeWidget); g_lua.bindClassMemberFunction<UILayout>("disableUpdates", &UILayout::disableUpdates); g_lua.bindClassMemberFunction<UILayout>("enableUpdates", &UILayout::enableUpdates); g_lua.bindClassMemberFunction<UILayout>("setParent", &UILayout::setParent); g_lua.bindClassMemberFunction<UILayout>("getParentWidget", &UILayout::getParentWidget); g_lua.bindClassMemberFunction<UILayout>("isUpdateDisabled", &UILayout::isUpdateDisabled); g_lua.bindClassMemberFunction<UILayout>("isUpdating", &UILayout::isUpdating); g_lua.bindClassMemberFunction<UILayout>("isUIAnchorLayout", &UILayout::isUIAnchorLayout); g_lua.bindClassMemberFunction<UILayout>("isUIBoxLayout", &UILayout::isUIBoxLayout); g_lua.bindClassMemberFunction<UILayout>("isUIHorizontalLayout", &UILayout::isUIHorizontalLayout); g_lua.bindClassMemberFunction<UILayout>("isUIVerticalLayout", &UILayout::isUIVerticalLayout); g_lua.bindClassMemberFunction<UILayout>("isUIGridLayout", &UILayout::isUIGridLayout); // UIBoxLayout g_lua.registerClass<UIBoxLayout, UILayout>(); g_lua.bindClassMemberFunction<UIBoxLayout>("setSpacing", &UIBoxLayout::setSpacing); g_lua.bindClassMemberFunction<UIBoxLayout>("setFitChildren", &UIBoxLayout::setFitChildren); // UIVerticalLayout g_lua.registerClass<UIVerticalLayout, UIBoxLayout>(); g_lua.bindClassStaticFunction<UIVerticalLayout>("create", [](UIWidgetPtr parent){ return UIVerticalLayoutPtr(new UIVerticalLayout(parent)); } ); g_lua.bindClassMemberFunction<UIVerticalLayout>("setAlignBottom", &UIVerticalLayout::setAlignBottom); g_lua.bindClassMemberFunction<UIVerticalLayout>("isAlignBottom", &UIVerticalLayout::isAlignBottom); // UIHorizontalLayout g_lua.registerClass<UIHorizontalLayout, UIBoxLayout>(); g_lua.bindClassStaticFunction<UIHorizontalLayout>("create", [](UIWidgetPtr parent){ return UIHorizontalLayoutPtr(new UIHorizontalLayout(parent)); } ); g_lua.bindClassMemberFunction<UIHorizontalLayout>("setAlignRight", &UIHorizontalLayout::setAlignRight); // UIGridLayout g_lua.registerClass<UIGridLayout, UILayout>(); g_lua.bindClassStaticFunction<UIGridLayout>("create", [](UIWidgetPtr parent){ return UIGridLayoutPtr(new UIGridLayout(parent)); }); g_lua.bindClassMemberFunction<UIGridLayout>("setCellSize", &UIGridLayout::setCellSize); g_lua.bindClassMemberFunction<UIGridLayout>("setCellWidth", &UIGridLayout::setCellWidth); g_lua.bindClassMemberFunction<UIGridLayout>("setCellHeight", &UIGridLayout::setCellHeight); g_lua.bindClassMemberFunction<UIGridLayout>("setCellSpacing", &UIGridLayout::setCellSpacing); g_lua.bindClassMemberFunction<UIGridLayout>("setFlow", &UIGridLayout::setFlow); g_lua.bindClassMemberFunction<UIGridLayout>("setNumColumns", &UIGridLayout::setNumColumns); g_lua.bindClassMemberFunction<UIGridLayout>("setNumLines", &UIGridLayout::setNumLines); g_lua.bindClassMemberFunction<UIGridLayout>("getNumColumns", &UIGridLayout::getNumColumns); g_lua.bindClassMemberFunction<UIGridLayout>("getNumLines", &UIGridLayout::getNumLines); g_lua.bindClassMemberFunction<UIGridLayout>("getCellSize", &UIGridLayout::getCellSize); g_lua.bindClassMemberFunction<UIGridLayout>("getCellSpacing", &UIGridLayout::getCellSpacing); g_lua.bindClassMemberFunction<UIGridLayout>("isUIGridLayout", &UIGridLayout::isUIGridLayout); // UIAnchorLayout g_lua.registerClass<UIAnchorLayout, UILayout>(); g_lua.bindClassStaticFunction<UIAnchorLayout>("create", [](UIWidgetPtr parent){ return UIAnchorLayoutPtr(new UIAnchorLayout(parent)); } ); g_lua.bindClassMemberFunction<UIAnchorLayout>("removeAnchors", &UIAnchorLayout::removeAnchors); g_lua.bindClassMemberFunction<UIAnchorLayout>("centerIn", &UIAnchorLayout::centerIn); g_lua.bindClassMemberFunction<UIAnchorLayout>("fill", &UIAnchorLayout::fill); // UITextEdit g_lua.registerClass<UITextEdit, UIWidget>(); g_lua.bindClassStaticFunction<UITextEdit>("create", []{ return UITextEditPtr(new UITextEdit); } ); g_lua.bindClassMemberFunction<UITextEdit>("setCursorPos", &UITextEdit::setCursorPos); g_lua.bindClassMemberFunction<UITextEdit>("setSelection", &UITextEdit::setSelection); g_lua.bindClassMemberFunction<UITextEdit>("setCursorVisible", &UITextEdit::setCursorVisible); g_lua.bindClassMemberFunction<UITextEdit>("setChangeCursorImage", &UITextEdit::setChangeCursorImage); g_lua.bindClassMemberFunction<UITextEdit>("setTextHidden", &UITextEdit::setTextHidden); g_lua.bindClassMemberFunction<UITextEdit>("setValidCharacters", &UITextEdit::setValidCharacters); g_lua.bindClassMemberFunction<UITextEdit>("setShiftNavigation", &UITextEdit::setShiftNavigation); g_lua.bindClassMemberFunction<UITextEdit>("setMultiline", &UITextEdit::setMultiline); g_lua.bindClassMemberFunction<UITextEdit>("setEditable", &UITextEdit::setEditable); g_lua.bindClassMemberFunction<UITextEdit>("setSelectable", &UITextEdit::setSelectable); g_lua.bindClassMemberFunction<UITextEdit>("setSelectionColor", &UITextEdit::setSelectionColor); g_lua.bindClassMemberFunction<UITextEdit>("setSelectionBackgroundColor", &UITextEdit::setSelectionBackgroundColor); g_lua.bindClassMemberFunction<UITextEdit>("setMaxLength", &UITextEdit::setMaxLength); g_lua.bindClassMemberFunction<UITextEdit>("setTextVirtualOffset", &UITextEdit::setTextVirtualOffset); g_lua.bindClassMemberFunction<UITextEdit>("getTextVirtualOffset", &UITextEdit::getTextVirtualOffset); g_lua.bindClassMemberFunction<UITextEdit>("getTextVirtualSize", &UITextEdit::getTextVirtualSize); g_lua.bindClassMemberFunction<UITextEdit>("getTextTotalSize", &UITextEdit::getTextTotalSize); g_lua.bindClassMemberFunction<UITextEdit>("moveCursorHorizontally", &UITextEdit::moveCursorHorizontally); g_lua.bindClassMemberFunction<UITextEdit>("moveCursorVertically", &UITextEdit::moveCursorVertically); g_lua.bindClassMemberFunction<UITextEdit>("appendText", &UITextEdit::appendText); g_lua.bindClassMemberFunction<UITextEdit>("wrapText", &UITextEdit::wrapText); g_lua.bindClassMemberFunction<UITextEdit>("removeCharacter", &UITextEdit::removeCharacter); g_lua.bindClassMemberFunction<UITextEdit>("blinkCursor", &UITextEdit::blinkCursor); g_lua.bindClassMemberFunction<UITextEdit>("del", &UITextEdit::del); g_lua.bindClassMemberFunction<UITextEdit>("paste", &UITextEdit::paste); g_lua.bindClassMemberFunction<UITextEdit>("copy", &UITextEdit::copy); g_lua.bindClassMemberFunction<UITextEdit>("cut", &UITextEdit::cut); g_lua.bindClassMemberFunction<UITextEdit>("selectAll", &UITextEdit::selectAll); g_lua.bindClassMemberFunction<UITextEdit>("clearSelection", &UITextEdit::clearSelection); g_lua.bindClassMemberFunction<UITextEdit>("getDisplayedText", &UITextEdit::getDisplayedText); g_lua.bindClassMemberFunction<UITextEdit>("getSelection", &UITextEdit::getSelection); g_lua.bindClassMemberFunction<UITextEdit>("getTextPos", &UITextEdit::getTextPos); g_lua.bindClassMemberFunction<UITextEdit>("getCursorPos", &UITextEdit::getCursorPos); g_lua.bindClassMemberFunction<UITextEdit>("getMaxLength", &UITextEdit::getMaxLength); g_lua.bindClassMemberFunction<UITextEdit>("getSelectionStart", &UITextEdit::getSelectionStart); g_lua.bindClassMemberFunction<UITextEdit>("getSelectionEnd", &UITextEdit::getSelectionEnd); g_lua.bindClassMemberFunction<UITextEdit>("getSelectionColor", &UITextEdit::getSelectionColor); g_lua.bindClassMemberFunction<UITextEdit>("getSelectionBackgroundColor", &UITextEdit::getSelectionBackgroundColor); g_lua.bindClassMemberFunction<UITextEdit>("hasSelection", &UITextEdit::hasSelection); g_lua.bindClassMemberFunction<UITextEdit>("isEditable", &UITextEdit::isEditable); g_lua.bindClassMemberFunction<UITextEdit>("isSelectable", &UITextEdit::isSelectable); g_lua.bindClassMemberFunction<UITextEdit>("isCursorVisible", &UITextEdit::isCursorVisible); g_lua.bindClassMemberFunction<UITextEdit>("isChangingCursorImage", &UITextEdit::isChangingCursorImage); g_lua.bindClassMemberFunction<UITextEdit>("isTextHidden", &UITextEdit::isTextHidden); g_lua.bindClassMemberFunction<UITextEdit>("isShiftNavigation", &UITextEdit::isShiftNavigation); g_lua.bindClassMemberFunction<UITextEdit>("isMultiline", &UITextEdit::isMultiline); g_lua.registerClass<ShaderProgram>(); g_lua.registerClass<PainterShaderProgram>(); g_lua.bindClassMemberFunction<PainterShaderProgram>("addMultiTexture", &PainterShaderProgram::addMultiTexture); // ParticleEffect g_lua.registerClass<ParticleEffectType>(); g_lua.bindClassStaticFunction<ParticleEffectType>("create", []{ return ParticleEffectTypePtr(new ParticleEffectType); }); g_lua.bindClassMemberFunction<ParticleEffectType>("getName", &ParticleEffectType::getName); g_lua.bindClassMemberFunction<ParticleEffectType>("getDescription", &ParticleEffectType::getDescription); // UIParticles g_lua.registerClass<UIParticles, UIWidget>(); g_lua.bindClassStaticFunction<UIParticles>("create", []{ return UIParticlesPtr(new UIParticles); } ); g_lua.bindClassMemberFunction<UIParticles>("addEffect", &UIParticles::addEffect); #endif #ifdef FW_NET // Server g_lua.registerClass<Server>(); g_lua.bindClassStaticFunction<Server>("create", &Server::create); g_lua.bindClassMemberFunction<Server>("close", &Server::close); g_lua.bindClassMemberFunction<Server>("isOpen", &Server::isOpen); g_lua.bindClassMemberFunction<Server>("acceptNext", &Server::acceptNext); // Connection g_lua.registerClass<Connection>(); g_lua.bindClassMemberFunction<Connection>("getIp", &Connection::getIp); // Protocol g_lua.registerClass<Protocol>(); g_lua.bindClassStaticFunction<Protocol>("create", []{ return ProtocolPtr(new Protocol); }); g_lua.bindClassMemberFunction<Protocol>("connect", &Protocol::connect); g_lua.bindClassMemberFunction<Protocol>("disconnect", &Protocol::disconnect); g_lua.bindClassMemberFunction<Protocol>("isConnected", &Protocol::isConnected); g_lua.bindClassMemberFunction<Protocol>("isConnecting", &Protocol::isConnecting); g_lua.bindClassMemberFunction<Protocol>("getConnection", &Protocol::getConnection); g_lua.bindClassMemberFunction<Protocol>("setConnection", &Protocol::setConnection); g_lua.bindClassMemberFunction<Protocol>("send", &Protocol::send); g_lua.bindClassMemberFunction<Protocol>("recv", &Protocol::recv); g_lua.bindClassMemberFunction<Protocol>("setXteaKey", &Protocol::setXteaKey); g_lua.bindClassMemberFunction<Protocol>("getXteaKey", &Protocol::getXteaKey); g_lua.bindClassMemberFunction<Protocol>("generateXteaKey", &Protocol::generateXteaKey); g_lua.bindClassMemberFunction<Protocol>("enableXteaEncryption", &Protocol::enableXteaEncryption); g_lua.bindClassMemberFunction<Protocol>("enableChecksum", &Protocol::enableChecksum); // ProtocolHttp g_lua.registerClass<ProtocolHttp>(); g_lua.bindClassStaticFunction<ProtocolHttp>("create", []{ return ProtocolHttpPtr(new ProtocolHttp); }); g_lua.bindClassMemberFunction<ProtocolHttp>("connect", &ProtocolHttp::connect); g_lua.bindClassMemberFunction<ProtocolHttp>("disconnect", &ProtocolHttp::disconnect); g_lua.bindClassMemberFunction<ProtocolHttp>("send", &ProtocolHttp::send); g_lua.bindClassMemberFunction<ProtocolHttp>("recv", &ProtocolHttp::recv); // InputMessage g_lua.registerClass<InputMessage>(); g_lua.bindClassStaticFunction<InputMessage>("create", []{ return InputMessagePtr(new InputMessage); }); g_lua.bindClassMemberFunction<InputMessage>("setBuffer", &InputMessage::setBuffer); g_lua.bindClassMemberFunction<InputMessage>("skipBytes", &InputMessage::skipBytes); g_lua.bindClassMemberFunction<InputMessage>("getU8", &InputMessage::getU8); g_lua.bindClassMemberFunction<InputMessage>("getU16", &InputMessage::getU16); g_lua.bindClassMemberFunction<InputMessage>("getU32", &InputMessage::getU32); g_lua.bindClassMemberFunction<InputMessage>("getU64", &InputMessage::getU64); g_lua.bindClassMemberFunction<InputMessage>("getString", &InputMessage::getString); g_lua.bindClassMemberFunction<InputMessage>("peekU8", &InputMessage::peekU8); g_lua.bindClassMemberFunction<InputMessage>("peekU16", &InputMessage::peekU16); g_lua.bindClassMemberFunction<InputMessage>("peekU32", &InputMessage::peekU32); g_lua.bindClassMemberFunction<InputMessage>("peekU64", &InputMessage::peekU64); g_lua.bindClassMemberFunction<InputMessage>("decryptRsa", &InputMessage::decryptRsa); g_lua.bindClassMemberFunction<InputMessage>("getReadSize", &InputMessage::getReadSize); g_lua.bindClassMemberFunction<InputMessage>("getUnreadSize", &InputMessage::getUnreadSize); g_lua.bindClassMemberFunction<InputMessage>("getMessageSize", &InputMessage::getMessageSize); g_lua.bindClassMemberFunction<InputMessage>("eof", &InputMessage::eof); // OutputMessage g_lua.registerClass<OutputMessage>(); g_lua.bindClassStaticFunction<OutputMessage>("create", []{ return OutputMessagePtr(new OutputMessage); }); g_lua.bindClassMemberFunction<OutputMessage>("getBuffer", &OutputMessage::getBuffer); g_lua.bindClassMemberFunction<OutputMessage>("reset", &OutputMessage::reset); g_lua.bindClassMemberFunction<OutputMessage>("addU8", &OutputMessage::addU8); g_lua.bindClassMemberFunction<OutputMessage>("addU16", &OutputMessage::addU16); g_lua.bindClassMemberFunction<OutputMessage>("addU32", &OutputMessage::addU32); g_lua.bindClassMemberFunction<OutputMessage>("addU64", &OutputMessage::addU64); g_lua.bindClassMemberFunction<OutputMessage>("addString", &OutputMessage::addString); g_lua.bindClassMemberFunction<OutputMessage>("addPaddingBytes", &OutputMessage::addPaddingBytes); g_lua.bindClassMemberFunction<OutputMessage>("encryptRsa", &OutputMessage::encryptRsa); g_lua.bindClassMemberFunction<OutputMessage>("getMessageSize", &OutputMessage::getMessageSize); g_lua.bindClassMemberFunction<OutputMessage>("setMessageSize", &OutputMessage::setMessageSize); g_lua.bindClassMemberFunction<OutputMessage>("getWritePos", &OutputMessage::getWritePos); g_lua.bindClassMemberFunction<OutputMessage>("setWritePos", &OutputMessage::setWritePos); #endif #ifdef FW_SOUND // SoundManager g_lua.registerSingletonClass("g_sounds"); g_lua.bindSingletonFunction("g_sounds", "preload", &SoundManager::preload, &g_sounds); g_lua.bindSingletonFunction("g_sounds", "play", &SoundManager::play, &g_sounds); g_lua.bindSingletonFunction("g_sounds", "getChannel", &SoundManager::getChannel, &g_sounds); g_lua.bindSingletonFunction("g_sounds", "stopAll", &SoundManager::stopAll, &g_sounds); g_lua.bindSingletonFunction("g_sounds", "enableAudio", &SoundManager::enableAudio, &g_sounds); g_lua.bindSingletonFunction("g_sounds", "disableAudio", &SoundManager::disableAudio, &g_sounds); g_lua.bindSingletonFunction("g_sounds", "setAudioEnabled", &SoundManager::setAudioEnabled, &g_sounds); g_lua.bindSingletonFunction("g_sounds", "isAudioEnabled", &SoundManager::isAudioEnabled, &g_sounds); g_lua.registerClass<SoundSource>(); g_lua.registerClass<CombinedSoundSource, SoundSource>(); g_lua.registerClass<StreamSoundSource, SoundSource>(); g_lua.registerClass<SoundChannel>(); g_lua.bindClassMemberFunction<SoundChannel>("play", &SoundChannel::play); g_lua.bindClassMemberFunction<SoundChannel>("stop", &SoundChannel::stop); g_lua.bindClassMemberFunction<SoundChannel>("enqueue", &SoundChannel::enqueue); g_lua.bindClassMemberFunction<SoundChannel>("enable", &SoundChannel::enable); g_lua.bindClassMemberFunction<SoundChannel>("disable", &SoundChannel::disable); g_lua.bindClassMemberFunction<SoundChannel>("setGain", &SoundChannel::setGain); g_lua.bindClassMemberFunction<SoundChannel>("getGain", &SoundChannel::getGain); g_lua.bindClassMemberFunction<SoundChannel>("setEnabled", &SoundChannel::setEnabled); g_lua.bindClassMemberFunction<SoundChannel>("isEnabled", &SoundChannel::isEnabled); g_lua.bindClassMemberFunction<SoundChannel>("getId", &SoundChannel::getId); #endif #ifdef FW_SQL // Database g_lua.registerClass<Database>(); g_lua.bindClassMemberFunction<Database>("getDatabaseEngine", &Database::getDatabaseEngine); g_lua.bindClassMemberFunction<Database>("isConnected", &Database::isConnected); g_lua.bindClassMemberFunction<Database>("getStringComparer", &Database::getStringComparer); g_lua.bindClassMemberFunction<Database>("getUpdateLimiter", &Database::getUpdateLimiter); g_lua.bindClassMemberFunction<Database>("getLastInsertedRowID", &Database::getLastInsertedRowID); g_lua.bindClassMemberFunction<Database>("escapeString", &Database::escapeString); //g_lua.bindClassMemberFunction<Database>("escapeBlob", &Database::escapeBlob); // need to write a cast for this type to work (if needed) // DBQuery /* (not sure if this class will work as a luafunction) g_lua.registerClass<DBQuery>(); g_lua.bindClassStaticFunction<DBQuery>("create", []{ return DBQuery(); }); g_lua.bindClassMemberFunction<DBQuery>("append", &DBQuery::append); g_lua.bindClassMemberFunction<DBQuery>("set", &DBQuery::set); */ // DBResult g_lua.registerClass<DBResult>(); g_lua.bindClassMemberFunction<DBResult>("getDataInt", &DBResult::getDataInt); g_lua.bindClassMemberFunction<DBResult>("getDataLong", &DBResult::getDataLong); g_lua.bindClassMemberFunction<DBResult>("getDataString", &DBResult::getDataString); //g_lua.bindClassMemberFunction<DBResult>("getDataStream", &DBResult::getDataStream); // need to write a cast for this type to work (if needed) g_lua.bindClassMemberFunction<DBResult>("getRowCount", &DBResult::getRowCount); g_lua.bindClassMemberFunction<DBResult>("free", &DBResult::free); g_lua.bindClassMemberFunction<DBResult>("next", &DBResult::next); // MySQL g_lua.registerClass<DatabaseMySQL, Database>(); g_lua.bindClassStaticFunction<DatabaseMySQL>("create", []{ return DatabaseMySQLPtr(new DatabaseMySQL); }); g_lua.bindClassMemberFunction<DatabaseMySQL>("connect", &DatabaseMySQL::connect); g_lua.bindClassMemberFunction<DatabaseMySQL>("beginTransaction", &DatabaseMySQL::beginTransaction); g_lua.bindClassMemberFunction<DatabaseMySQL>("rollback", &DatabaseMySQL::rollback); g_lua.bindClassMemberFunction<DatabaseMySQL>("commit", &DatabaseMySQL::commit); g_lua.bindClassMemberFunction<DatabaseMySQL>("executeQuery", &DatabaseMySQL::executeQuery); g_lua.bindClassMemberFunction<DatabaseMySQL>("storeQuery", &DatabaseMySQL::storeQuery); // MySQLResult g_lua.registerClass<MySQLResult>(); g_lua.bindClassMemberFunction<MySQLResult>("getDataInt", &MySQLResult::getDataInt); g_lua.bindClassMemberFunction<MySQLResult>("getDataLong", &MySQLResult::getDataLong); g_lua.bindClassMemberFunction<MySQLResult>("getDataString", &MySQLResult::getDataString); //g_lua.bindClassMemberFunction<MySQLResult>("getDataStream", &MySQLResult::getDataStream); // need to write a cast for this type to work (if needed) g_lua.bindClassMemberFunction<MySQLResult>("getRowCount", &MySQLResult::getRowCount); g_lua.bindClassMemberFunction<MySQLResult>("free", &MySQLResult::free); g_lua.bindClassMemberFunction<MySQLResult>("next", &MySQLResult::next);
  11. Queria saber como faço para colocar aquela barra de spells, igual a do servers de pokemon, Gostaria muito de colocar em meu OT 9.60, alguem pode me ajudar? Ja baixei o spellbar e ja coloquei na pasta Mods, mais nao funciona, tenho que fazer algo a mais? Colocar alguma script no meu server algo parecido, sei la..
  12. OTClient Duvida Backgroud fixed

    Mudei a imagem do fundo do cliente, porém ela não parece completamente, corta uns pedaços o que eu faço? @Edited. Resolvido: Em modules\client_background abra background.OTUI. e mude: image-fixed-ratio: true para image-fixed-ratio: false
  13. OTClient Error

    Gente as minhas windows quando eu arrasto pela tela, o conteudo dela começa se mexer também, começa a ficar tudo misturado, troca tudo de lugar, alguém sabe como resolver isso? Acho que é algo no anchors e tal, que não manjo direito :S, normal fica tudo na linha certinho, mas eu arrasto a janela e fica assim :S [ATTACH]5455[/ATTACH]
  14. OTClient Como editar inventario

    Eu gostaria de editar o meu inventario igual ao dessa imagem, alguém poderia falar em que lugares tenho que editar, onde tenho que colocar a foto de fundo... porque a localização dos slots já achei.. Vlw :33 [ATTACH]5450[/ATTACH]
  15. OTClient [MOD]CandyBot

    O CandyBot é um mod do otclient que funciona como um bot comum, ele não foi feito por mim eu apenas estou trazendo ele pra vocês, ele foi feito pelo BeniS. Instalação Você deve ir a página do github do candybot e clicar no botão ZIP, você estará baixando o mod compactado, descompacte e transfira a pasta do CandyBot para a pasta mods do seu otclient. Screenshots Autores BeniS (Ben Dol) - [email protected] Alexandre do Amaral Severino - [email protected]
  16. OTClient Duas dúvidas

    Como faço pra alterar essa descrição que aparece no canto inferior direito do client: [ATTACH=CONFIG]5390[/ATTACH] ? E também queria saber como faço pra alterar o nome da janela do client... ? Obrigado desde já.
  17. OTClient Algumas dúvidas do OTClient

    Como faço pra: - Tirar música do client - Na janelinha de enter game tirar a opção de protocolo e deixar sempre 8.54, tirar a opção de alterar a porta e deixar sempre 7171 e tirar a opção de digitar o ip e deixar um fixo - Tirar os botões Terminal, Module Manager e Spell List que ficam no topo do client - Mudar nome do Default pra MSGs e nome do Server Log pra Logs Alguém pode me ajudar? Obrigado.
  18. • Servidor Stigal 3.0 {PDA 1.5} [Download]• • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Edições / Ajustes • • Erros Do Servidor • • PrintScreen • • Download's • Servidor Stigal 3.0 {PDA 1.5} 8.54 (4shared) http://www.4shared.com/rar/QhexHDf8/Pokemon_Servidor_Stigal_30_PDA.html? Client PDA 1.6/2.6 (4shared) http://www.mediafire.com/?2a6012x9oz8i5ga Scan Servidor Stigal 3.0 {PDA 1.5+} 8.54 (Virus Total) https://www.virustotal.com/file/f591c04b9323c5bb1f3edb8863a105aa28012732e453766a5783ca44f64abfa9/analysis/1347638278/ Aviso: Os 3 Virus Contidos São Do Executavel... Por Ser "TROJAN" Não Se Multiplica e não fazem mal ao computador! • Creditos • Slicer - {Criador do PDA 1.5} Stigal
  19. Derivado [8.54] [SQL] Pokemon Fight

    Nome: Pokemon Fight Autor: Darkus Versão: 8.54 Oi pessoal!:issoae: Hoje vou postar um novo OTSERV, que muita jente tava procurando. O server contem varias coisas, aqui vão elas: [spoiler=Contem] Ride Surf Fly (como o da SVKE h1,h2) Move Pokemons Passivos e Agressivos Sistema de evolução Mapa Pokemon Online quase completo (faltam algumas hunts) Cassino Sistema de ataques (m1,m2,m3) 100% Diamonds e small Diamonds dropando de bichos Potion, Super Potion, Hyper Potion Algumas guests do Pokemon Online Cath Loot dos pokemons todos arrumados Sistema de reset (ao chegar ao level 150 diga "!reborn" e volte ao level 15) Varias outras coisas (não posso postar tudo aqui né) O servidor esta quase pronto, com muitas coisas para aproveitar: Algumas Screns: Eu casçando no boero No accont Manager Com a minha mãe Indo para o laboratorio do Prof.Oak Download do server sem as dll's Download do Client Download das dll's Bye:meliga:
  20. Derivado Poketibia Erondino Site Server V11.2

    Poketibia Erondino Site Server V11.2 Poketibia [8.54] Sistemas [100%] Sistema m1-m12 Fly Ride Surf Teleport Stones Box 1, 2, 3, 4 8 Balls diferentes Cassino Demais sistemas conferir no site Sistemas para a v12 Level System [45%] Gym System [100%] Felicidade [100%] v11 (1 a 48 itens listados) 1-Colocado boost sistema (Boost sistema aumenta o ataque dos pokemon pelos moves m1,m2,m3 etc.. n aumenta vida speed etc... 2-Colocada novas sprites nos itens: >Lendaria box >Shiny box >Johto Box >Shiny rod 2 >Shiny rod 1 >Box Thirty 3-Colocado sistema m1 a m12 nos pokemon: >Shiny aerodactyl >Shiny Snorlax >Shiny victreebel >Shiny Beedrill >Shiny Alakazam >Shiny Dragonair >Shiny Dragonite 4-Concertado pokemon que vinha ne box bugado: >Shiny zubat >Shiny Muk >Shiny Seadra 5-Acrescentado na shiny box >Shiny aerodactyl >Shiny Snorlax >Shiny victreebel >Shiny Beedrill >Shiny Alakazam >Shiny Dragonair >Shiny Dragonite 6-Tirado o bug da invisibiladade do gengar 7-Concertado loot: >Eevee 8-Acrescentado ou concertado moves nos pokemon: >Abra >Beedrill >Clefairy >Chansey >Blissey >Dratini >Dodrio >Eevee >Exeggcute 9-Concerta o bug das novas ball que n dava para heala 10-Colocado um npc de boost no 1 andar de cada templo 11-Posto um npc de task por itens no laboratorio do bill onde o player tem q dar para ele 30 feather e em troca ele da 10 hd e 500 de exp 12-Colocado um npc de task por itens na cabana indo para pewter quest onde o player tem q levar 100 stone orb e em troca recebera 1 rock stone e 5000 de exp 13-Adicionados novas mensagens no global events que ira ajudar os players durante o jogo 14-Colocado shiny estaca magica no server... 15-Trocado os itens das estacas magicas agora a estaca magica é o msm iten so q sem o brilho e a shiny estaca magica contem brilho 16-Colocado Scyther na estaca magica 17-Trocado o premio da quest das ball pois ninguem vai fazer ela posto para ganhar 15 ultra ball e 30 super ball 18-Fortalecido os pokemons >Shiny Scyther >Elite Hitmonlee >Elite Hitmonchan 19-Concertado o loot e a exp nos pokemon johto (nas hunts) obs-Essas sao as hunts de johtos ja existentes no 1 continente... 20-Facilitado a quest da box 2 21-Dificultado a quest de lvl 30 e tirado o tp para ir embora pois pela porta da para ir embora... 22-Adicionado um segundo continente com novas cidades onde os pokemons e as ilhas q fica ao redor das cidades sao johtos obs-As casas das cidades n da para comprar obs2-Mapa feito por betinhowz666 tirei as hunts kanto q tinha e posto hunts johtos 23-Adicionado um bloco de notas para saber quais johtos tem nos 2 continentes 24-Adicionado um npc que joga 21 e jogo dos 6 em cima do cassino em celadon e umas placas explicando como jogar (o jogo n ganha nem pede muita grana é mais para diversao ) 25-Colocado evoluçoes nos pokemons johto que adicionei sistema m1 na v10 26-Colocado control mind no haunter 27-Colocado para vim pokemons johto nas rods: >Old rod >Advanced Rod >Shiny rod 1 >Shiny Rod2 28-Agora os npcs saffari da 30 saffari ball ao entrar no saffari 29-Aumentado o preço para o saffari kanto de 300dl para 500dl 30-Colocado para fearow pidgeotto e pidgeot para pegar a pena brilhosa 31-Feito equipe rocket quest onde o giovanni pede uma pena brilhosa em troca de uma box 2 32-Colocado um buero com um caixote em cima no cassino em saffron para dar acesso ao esconderijo da equipe rocker 33-Colocado o giovanni no esconderijo da equipe rocket 34-Deletado a ilha da quest da venom stone quest e posto agua 35-Feito um npc de quest de venom stone ele pede 50 bat wing e em troca ele da 1 venom stone 36-Posto o npc da quest da venom stone em lavender 37-Modificado a area de dodou e dodrio de fuchsia e posto hunts de: >Ponyta >Rapidash >Doduo >Dodrio >Tauros 38-Trocado a localizaçao do npc do saffari johto agora ele se localiza em uma ilha la no continente johto 39-Feito uma ponte na entrada da pewter quest ate uma cidade do 2 continente 40-Expandido a ponte que vai de lavender ate a floresta de vermilion agora ela pode ir tbm ate a floresta de fuchsia 41-Feito uma ball chamada "mega ball" ela pega todos pokemon de primeira a fomra dela é de pokeball o efeito on e fail cath tbm mas quando captura vira uma dark ball (Como minha equipe viajo e me mando uma master ball inutil foi o unico jeito q achei espero que compreendem e aguarde a proxima versao com ela arrumada ) obs- Id dela é 2149 42-Configurado o arquivo cath para fica mais facil pega os pokemons 43-Concertado o comando /town pois algumas cidades n tinha ficando... /town 1 --> Saffron /town 2 --> Cerulean /town 3 --> Lavender /town 4 --> Fuchsia /town 5 --> Celadon /town 6 --> Viridian /town 7 --> Cinnabar /town 8 --> Pewter /town 9 --> Vermilion /town 10 --> Pallet /town 11 -->Ilha inicial 44-Trocado a first city que era parllet por uma ilha obs-Essa ilha so server para pega o pokemon inicial e o kit ao sair dela nao tem volta 45-Feito uma ponte de pallet ate cinnabar 46-Feito quest da shiny estaca magica 47-Colocado um navio na praia de cerulean com acesso para a ilha de pigeotto 48-Colocado um navio na ilha de pigeotto para ir para a praia de cerulean obs-Ao ir na direçao do navio se vai direto para a ilha depois fasso um sistema para demorar chega um pouco 49-Deletado a lendaria box Download do Poketibia Erondino Site Server v11.2 http://tibiapoketibia-erondino.weebly.com/pokemon-erondino-site-server-alguns-shinyjohto.html Server http://www.4shared.com/rar/MJKYl4NY/Poketibiia_versao_Erondino_Sit.html Client http://www.4shared.com/get/cAQ9pBRJ/Client_Erondino_Site_2.html Scan do Server: https://www.virustotal.com/url/ac180f93c4200a9331236a18c3370258a28129984542bd97b588c4e85c3dc09d/analysis/1327331691/ Créditos: Erondino Nic Loeher Urbanchaos Caioo Red Dragon Gazulina (Pelo client) V12 em breve!
  21. Derivado [8.54] Pokemon OTserver

    Aqui está a versão 3.0 do PokeServer TFS 0.3.6pl1, ~~( O que contém na versão 3.0? ) ~~ ~~>Fly System - Bug corrigido ~~>Ride System- Bug corrigido ~~>Catch System- Bug corrigido ~~>Go/back System- Bug corrigido ~~>Stones System - Bug corrigido ~~>Npc Heal - Bug arrumano ~~>Todos os 151 pokemons (50% configurados) ~~>Skill System - Para cada tipo de pokemon é um poder difirente! ~~>Mapa Svke 70% ~~>Todas as outfits Stones,Go/back,Npc,Fly,Ride,Skill, foram testados, então não venha encher o saco falando baboseiras <--! Download !--> Server 3.0 Client Créditos: thalia e Créditos ao Drakylucas por me ajuda a fazer os scripts!
  22. Derivado Criando Servidor de WODBO

    WoDBO - Wolrd of Dragon Ball Online Como Narutibia, WoDBO é um Tibia Modificado mas como o nome ja diz de "Dragon Ball" . Este Tutorial irá ensinar a criar um destes servidores de Dragon Ball Atenção Net compartilhada e a Rádio não funcionarão, apenas via hamachi ,Caso não seja compartilhada ou a rádio crie um ip fixo aconsselho no-ip Downloads WoDBO By Jao: http://www.mediafire.com/?zfyjjm25nbj Xampp: http://www.baixaki.com.br/download/xampp.htm Procurem pelo wodbo by river o jao parece estar bugado Com estes dois progamas já instalados poderá criar facilmente em 5 minutos um servidor de WoDBO perguntas: P:o quê cotem neste wodbo by jau? R:Acc Maker(nescessário para criar o site de contas) ,os arquivos para ligar o server (junto com a pasta data), um client e ip changuer para entrar no server (IP Changuer Propio não serve o de tibia). Ok vamos começar! você ja deve ter vasculhado 1º Passo- Criando uma database para seu servidor Com o xampp instalado abra o arquivo Xampp Control Panel e ligue o apache e o mysql Perguntas: P:Como liga? R:Ao lado do apache tem start só clicar nele , o mesmo para o mysql em seguida acesse :http://localhost/phpmyadmin irá pedir um uzuario e uma senha ,uzuario deixe root e a senha deixe em branco logo no inicio terá escrito algo para criar o da esquerda deixe collation No espaço em branco coloque o nome da database ,no meu caso coloquei "Server" . Na Barra Lateral irá aparecer a sua database por exemplo no meu: Server(0) o numero zero corresponde ao numero de abas acesse sua database e vá em importar irá pedir um arquivo de texto ,no mesmo local em que liga o server tem um arquivo chamado database escolha ele irá ficar com 19 abas ,vá em importar novamente agora na pasta acc maker tem mais 2 pasta dentro dela entre na copy of sparking também tem uma database lá ,selecione-a ,agora irá ficar com 27 abas feito isso parte 1 - criar database está pronta 2º Passo - Configurando e deixando servidor online Na pasta server (não me recordo muito bem)abra o config.lua com bloco de notas procure isto: Quote -- server ip (the ip that server listens on) ip = "SEU IP" coloque seu ip agora procure isto Quote --- MySQL part (ignore if you are using SQLite) sql_host = "localhost" sql_user = "root" sql_pass = "" sql_db = "server" no sql_db ponha o nome de sua database ,caso tenha senha no xampp coloque no sql_pass agora salve e abra o servidor pelo Restarter irá dar uns erros na primeira vez é bastante normal ,sempre que forem logar no server irá aparecer na primeira tentativa disconnected from server , já na segunda entrará normalmente a conta para testar inicialmente é 1/1 esta conta pode ser excluida no database (phpmyadmin). 3º Passo- prevenção anti engraçadinhos nukadores de server vá em data/talkactions/talkactions.xml abra-o com bloco de notas e adicione estas linhas Quote agora quando tentarem nukar seu servidor irão perde um pouco de life 4º Passo- criando o site todos nós sabemos que baixamos o xampp ,então acesse a pasta do xampp e lá terá uma pasta chamada "htdocs" abra a pasta copy sparking que está dentro da pasta acc maker e jogue todos arkivos dentro dela para a pasta htdocs faça o mesmo procedimento com a pasta sparkingw jogue os arkivos para a pasta htdocs se pedir para substituir substitua! agora abra o arquivo config.inc com bloco de notas (ele estava dentro da pasta copy of sparking agora na htdocs) logo de cara irá ver isso Quote # MySQL server settings $cfg['SQL_Server'] = 'localhost:8090'; - caso nao tenha 8090 coloque $cfg['SQL_User'] = 'root'; $cfg['SQL_Password'] = ''; $cfg['SQL_Database'] = 'server'; SQL_Database = nome da sua database SQL_Password = deixe em do geito q eu mostrei caso nao tenha senha no xampp agora procure Quote $cfg['admin_ip'] = array('127.0.0.1'); coloque no lugar do 127.0.0.1 seu ip do no-ip feito isso salve e acesse http://localhost:8090 OBS :para os outros entrarem no server abra as portas: 7171,7172,8090 no firewall eles entrão com o ip fixo(no-ip) na maioria dos caso fica por ex : blablalbla.no-ip.biz:8090 exatamente com um :8090 no final quem não sabe abrir as portas no firewall procura no: GOOGLE Créditos Arquivos ~ WoDBO By Jao - Jao Xampp - Baixaki Tutorial ~ ~Alison~ AVISO andaram falando que o site não está funcionando irei disponibilizar minha pasta htdocs(o site) isso não irá mudar o fato de ter de configurar eu tambem havia esquecido de remove a pan , videl e por aí mas não ligo pois só consseguirão fazer essas vocations funcionarem com um client que eu mesmo crio quer o client? OBS : será propio o htdocs como eu disse antes :http://www.megaupload.com/?d=39TPRQD3 OBS :ouvi reclamações então editarei novamente vá em xampp/apache/conf e abra httpd procure por #Listen 0.0.0.0:80 #Listen [::]:80 Listen 80 deixe assim : #Listen 0.0.0.0:8090 #Listen [::]:8090 Listen 8090 e salve vá na pasta extra (xampp/apache/conf/extra e abra httpd-vhosts procure ##NameVirtualHost *:80 e mude para ##NameVirtualHost *:8090 salve apartir de agora o phpmyadmin será acessado assim :http://localhost:8090/phpmyadmin/ WoDBO By Jao está com defeito ,então baixem wodbo by daisuke : http://www.megaupload.com/?d=MWF8K4JJ <- vem sem pasta acc maker baixe a pasta htdocs la em cima se estiver na area errado movam ?? Vlw Cliquem no Ovo e Me Upe nao Custa Nada
×