Ir para conteúdo
  • Cadastre-se

Histórico de Edições

Please note that revisions older than 15 days are pruned and will no longer show here

Não há histórico de edição para mostrar, ou este comentário foi editado por um moderador.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

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


       
       
      Em caso de dúvidas sobre o client web ou sobre servidores com suporte a websockets, por favor poste aqui.
       
      Disponibilizou um client web para seu servidor? Me avise para que eu inclua seu OT na categoria Web na OTServList Brasil, com um botão "Jogar Agora".
    • Por matiasz123
      [OTCLIENT SHOWOFF] Questlog Actualizado
      Updated quest log, showing quest details:
      Npc name Npc level Npc outfit Mission status Description Amount of reward experience Number of reward points Enemies you must kill Items to collect  
       

       
      When you click on the follow button, an alternative map opens that shows you the next objective of the mission and at what coordinates:


       
      If you want the system write a comment with your discord
    • Por Underewar
      Explorando o Mundo de PokexAdventure
      Abertura oficial dia 15 de janeiro.


      Entre em nosso discord e aguarde o lançamento.
      https://discord.gg/nec7SucPDH
       
      Olá Comunidade!
      Gostaríamos de compartilhar as emocionantes características do nosso projeto em desenvolvimento, PokexAdventure.

      Estamos empenhados em criar uma experiência de jogo envolvente e única, com elementos que tornam a exploração do mundo Pokémon ainda mais cativante.
       
      Sistema Dinâmico de Spawn: O mundo de PokexAdventure é vivo e dinâmico.
      O sistema de spawn é influenciado por fatores climáticos como chuva, tempestade, vento, erupções vulcânicas, tsunamis, estações e horário do servidor.
      Cada horário e estação trazem diferentes tipos de Pokémon, proporcionando uma experiência de jogo variada e dinâmica.
       
      Eventos Específicos: Alguns Pokémon só aparecem em eventos específicos, como tempestades ou ventos fortes.
      Esteja preparado para encontrar criaturas raras e únicas durante esses momentos especiais no jogo.
       
      Pokemon Scanner: Explore o mapa com o Pokemon Scanner!
      Descubra lugares especiais onde você pode usar seu scanner para procurar Pokémon.
      A diversidade do mundo Pokémon está ao seu alcance.
       
      Encontros Raros: Andando pelo jogo, há uma pequena chance de encontrar Pokémon raros.
      Essas criaturas só podem ser encontradas em áreas específicas do jogo, incentivando a exploração e a descoberta.
       
      Sistema de Hunter: Junte-se ao sistema de Hunter e suba até 5 ranks completando missões específicas. Desbloqueie tecnologias de exploração, mergulhe no novo sistema de craft do jogo e descubra novas moedas e criaturas exclusivas.
       
      Desenvolvimento do Mapa e Nova Lore: Nosso mapa está sendo desenvolvido do zero, apresentando uma nova lore inspirada no universo Pokémon.
      Explore regiões inéditas e descubra segredos que expandem ainda mais o mundo Pokémon.
      Estamos ansiosos para ouvir seus feedbacks e compartilhar mais detalhes sobre o desenvolvimento contínuo do PokexAdventure.
      Junte-se a nós nesta jornada emocionante!
       
      Estamos emocionados em apresentar nosso novo e empolgante Sistema de Ranked 2v2, uma experiência única que promete batalhas Pokémon intensas e estratégicas. Nosso objetivo é proporcionar uma jogabilidade equilibrada, onde a habilidade e a estratégia são fundamentais.
       
      Características do Sistema de Ranked 2v2:
      Batalhas em Duplas:
      Convide um amigo ou faça parceria com outro treinador para formar uma equipe poderosa de 2v2.
      Desenvolva táticas coordenadas e sincronizadas para superar seus oponentes.
      Equipes de 5 Pokémon:
      Cada treinador seleciona uma equipe de 5 Pokémon para o confronto.
      A variedade de Pokémon permite a criação de estratégias complexas e adaptação às situações de batalha.
      Níveis Balanceados:
      Todos os Pokémon participantes têm seus níveis ajustados para garantir uma competição justa.
      Isso elimina desequilíbrios de poder e enfatiza a importância da estratégia e do trabalho em equipe.
      Estratégias Diversificadas:
      Explore diferentes combinações de tipos de Pokémon, movimentos e habilidades para criar estratégias únicas.
      Adapte-se às escolhas do seu oponente e planeje suas jogadas com antecedência.
      Classificação e Recompensas:
      Ganhe pontos de classificação com vitórias e suba nas fileiras da competição.
      Desbloqueie recompensas exclusivas, como skins para Pokémon, itens raros e muito mais.
      Ambiente Competitivo e Amigável:
      Desfrute de um ambiente competitivo, mas também amigável, incentivando a troca de estratégias e dicas entre os treinadores.
      Participe de torneios regulares e eventos especiais para desafiar os melhores treinadores.
      Estamos dedicados a proporcionar uma experiência de jogo única e emocionante para todos os treinadores de PokexAdventure.
      Prepare-se para enfrentar desafios, formar alianças estratégicas e se destacar no mundo competitivo das batalhas Pokémon em equipe.

      OTCv8 IMGS
       

       
    • Por maikon1993
      Fala galerinha de boas ?
       
      Preciso de ajuda, preciso de um macro para otcV8, que faça um item dar use no outro.
      Exemplo: Tem um item no servidor "spellswand" e ela é usada para vender item, dando "use" nela e no item que quer vender, queria deixar isso automático, se alguém poder me ajudar agradeço.
    • Por Mutio
      PokeDash by Pota TFS 1.2
      OTCv8
      Dialogue module by Gengo (Reworked)
       
      Hello everyone, would anyone be able to help me improve this dialogue system?
      When I have a lot of text, it expands, and there's a write effect. I made this primarily for myself, but you can also benefit from it.
      The problem is that if there's a lot of text, the window doesn't layout as I intended, specifically regarding the buttons. They get cut off, and I'd like the window to adjust its size based on the amount of text and buttons. For example, if there are 3 buttons, the window should not cut them off but should expand, adding a few pixels at the bottom to display the buttons correctly.
      Additionally, I've implemented a feature in the code to display items in the center if they are required for quests or anything an NPC might ask from the player. I'd like to make sure this feature also adapts correctly to the window size.
      Perhaps there is an expert in the OTC module who could guide me or correct and remove unnecessary code that I've written and is not needed. I must admit that I'm not a very skilled developer in OTC, but I managed to accomplish something. If someone can help me, I can share this dialogue system. (Modified version of Gengo)



      LUA:
       
      local npcWindowDialog local buttonHolder local lblTitle local outfitBox local panelMsg local scrollPanel local lblMessage local LabelText local itemBox local buttondialog local fadeOutEvent = nil local initialHeight = 200 function init() connect(g_game, { onGameEnd = offline }) connect(LocalPlayer, { onPositionChange = onCreaturePositionChange }) ProtocolGame.registerExtendedOpcode(80, function(protocol, opcode, buffer) print("Received extended opcode data: " .. buffer) local data = json.decode(buffer) if (data.action == "close") then offline() elseif (data.action == "create") then NpcDialog(data.data) end end) npcWindowDialog = g_ui.displayUI('npcdialog') buttonHolder = npcWindowDialog:getChildById('buttonHolder') lblTitle = npcWindowDialog:getChildById('lblTitle') scrollPanel = npcWindowDialog:getChildById('scrollPanel') panelMsg = npcWindowDialog:getChildById('panelMsg') outfitBox = npcWindowDialog:getChildById('outfitBox') itemBox = npcWindowDialog:getChildById('itemBox') buttondialog = npcWindowDialog:getChildById('buttondialog') lblMessage = g_ui.createWidget('LabelText', panelMsg) end function terminate() disconnect(g_game, { onGameEnd = offline }) disconnect(Creature, { onPositionChange = onCreaturePositionChange }) ProtocolGame.unregisterExtendedOpcode(80) removeEvent(npcWindowDialog.fadeEvent) npcWindowDialog:destroy() end function clearItemBox() itemBox:destroyChildren() end function offline() clearItemBox() buttondialog:destroyChildren() npcWindowDialog:hide() npcWindowDialog:setHeight(initialHeight) if fadeOutEvent then removeEvent(fadeOutEvent) end end function onCreaturePositionChange(creature, newPos, oldPos) if creature:isLocalPlayer() then clearItemBox() npcWindowDialog:setHeight(initialHeight) npcWindowDialog:hide() end end function openDialog() npcWindowDialog:raise() npcWindowDialog:show() npcWindowDialog:setOpacity(0) npcWindowDialog:setHeight(initialHeight) g_effects.fadeIn(npcWindowDialog, 150) if fadeOutEvent then removeEvent(fadeOutEvent) end fadeOutEvent = scheduleEvent(function() g_effects.fadeOut(npcWindowDialog, 150) end, 30000) end function writeTextEffect(lblMessage, text, delay, callback) lblMessage:clearText() local textSize = #text local initialHeight = npcWindowDialog:getHeight() for i = 1, textSize do scheduleEvent(function() lblMessage:setText(lblMessage:getText() .. text:sub(i, i)) local newHeight = initialHeight + lblMessage:getTextSize().height npcWindowDialog:setHeight(newHeight) end, delay * i) end end function NpcDialog(value) clearItemBox() local Npc = g_map.getCreatureById(value.npcId) lblTitle:setText(Npc:getName()) outfitBox:setOutfit(Npc:getOutfit()) lblMessage:clearText() writeTextEffect(lblMessage, tr(value.message), 15) scrollPanel:setVisible(lblMessage:getTextSize().height > panelMsg.limitText) local textLength = string.len(value.message) local windowHeight = textLength * 10 if value.items ~= nil then local itemHeight = 10 windowHeight = windowHeight + (#value.items * itemHeight) end local maxHeight = 800 if windowHeight > maxHeight then windowHeight = maxHeight end npcWindowDialog:setHeight(windowHeight) if value.items ~= nil then for _, itemId in ipairs(value.items) do local item = g_ui.createWidget('Item', itemBox) item:setItemId(itemId) end end buttondialog:destroyChildren() if value.options ~= '' then local option = value.options:split('&') for i = 1, #option do local button = g_ui.createWidget('OptionButton', buttondialog) button:setText(tr(option[i])) button:setWidth(500) button:setHeight(150) button:setVisible(false) button.onClick = function() g_game.talkChannel(MessageModes.NpcTo, 0, option[i]) npcWindowDialog:setHeight(initialHeight) button:setVisible(false) end end buttondialog:setHeight(#option > 25 and 88 or 25) scheduleEvent(function() for i, child in ipairs(buttondialog:getChildren()) do child:setVisible(true) g_effects.fadeIn(child, 500) end end, (#value.message * 8) + 500) end openDialog() end

      OTUI:

       
      LabelText < Label padding-bottom: 5 font: sans-bold-16px color: #e8c05e text-wrap: true text-auto-resize: true OptionButton < UIButton image-source: /images/ui/buttondialog image-repeated: true text-offset: 0 1 change-cursor-image: true cursor: pointer $pressed: image-color: #dfdfdf44 $disabled: image-color: #dfdfdf55 change-cursor-image: false UIWindow id: npcWindowDialog size: 690 381 visible: false focusable: false image-source: window image-repeated: false anchors.centerIn: parent @onEscape: modules.game_npcdialog.offline() Label id: lblTitle font: sans-bold-16px anchors.top: parent.top anchors.left: parent.left !text: tr('Title') margin: 18 0 5 25 color: #e8c05e text-auto-resize: true UICreature id: outfitBox size: 58 58 anchors.top: prev.bottom anchors.left: parent.left margin: 20 0 5 34 VerticalScrollBar id: scrollPanel height: 65 anchors.top: panelMsg.top anchors.left: panelMsg.right anchors.bottom: panelMsg.bottom pixels-scroll: true step: 14 margin-left: 5 visible: false ScrollablePanel id: panelMsg size: 0 60 anchors.top: lblTitle.bottom anchors.left: outfitBox.right anchors.right: parent.right margin: 8 30 10 25 vertical-scrollbar: scrollPanel layout: verticalBox &limitText: 80 UIItem id: itemBox size: 50 50 anchors.horizontalCenter: parent.horizontalCenter anchors.top: panelMsg.bottom layout: type: horizontalBox cell-size: 50 50 cell-spacing: 12 num-columns: 10 fit-children: true UIScrollArea id: buttondialog anchors.top: itemBox.bottom anchors.left: parent.left anchors.right: parent.right margin: 15 10 25 10 layout: type: grid cell-size: 500 42 flow: true fit-children: true
       

       


×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo