Ir para conteúdo
  • Cadastre-se

[Pedido] Mudar barra de Hp e Mana do OTClient


Posts Recomendados

Galera queria pedir a vcs que me ajudaçem nessa questão de mudar a barra de hp e mana do otclient que é muito basica e eu queria mudar e deixar ela mais moderna.

Hidden Content

    Give reaction to this post to see the hidden content.

sei que se vcs me ajudarem a unica retribuição será com um rep ++ mesmo não sendo dinheiro ;D .

Link para o post
Compartilhar em outros sites

O que você quer dizer com "moderna"? Isso pra mim já é bastante moderno, XD.

 

Quem sabe algum exemplo poderia nos ajudar a entender melhor como você quer deixá-la :P


O tópico foi movido para a área correta, preste mais atenção da próxima vez!
Leia as regras do fórum:

Hidden Content

    Give reaction to this post to see the hidden content.


Este tópico foi movido:
De: "OTServSuporte OTServSuporte de Scripts"
Para: "OTServSuporte OTServSuporte de Clients"

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

Eita foi mau postar no lugar errado mas voltando ao assunto eu queria deixar ela mais bonitinha tipo isso

Hidden Content

    Give reaction to this post to see the hidden content.

sei que isso é possivel pois já vi em outros servidores isso.

Link para o post
Compartilhar em outros sites

Jovem, comentei em outro tópico seu referente ao assunto.
Mas posso ajuda-lo a fazer algo parecido, barras arredondadas e a barra de mana menor que a de life.
Basta alterar duas coisas.

1 - Coloque essa imagem (progressbar) no lugar da progressbar do Otclient.

progressbar1_zps049c5347.png

2 - No arquivo healthInfo.otui.

Procure por esse código e acrescente a ultima linha.

ManaBar < ProgressBar
  id: manaBar
  background-color: #E3BC05
  anchors.top: prev.bottom
  anchors.left: parent.left
  anchors.right: parent.right
  margin: 1
  margin-top: 3
  margin-right: 8

<EDIT> A cor da minha barra está diferente da sua.

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

tumblr_mkngr99i9x1r41unfo1_400.gif

Ajude um Noob

  Mostrar conteúdo oculto

Erro ao compilar TFS
OTClient ajuda

Link para o post
Compartilhar em outros sites

Participe da conversa

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

Visitante
Responder

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

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

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

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por L3K0T
      Bem-vindo ao tutorial sobre como compilar o OTClient Mehah no Visual Studio 2022! Neste tutorial, vou guiá-lo pelo processo de configuração do ambiente de desenvolvimento e compilação do OTClient Mehah no Visual Studio 2022
       
       
      Tutorial: Compilando o OTClient Mehah no Visual Studio 2022
       
       
      Passo 1:  Downloads necessários baixe todos primeiro
       
      Visual Studio 2022 Comunidade:
      Faça o download:  https://visualstudio.microsoft.com/pt-br/downloads/


       
       
      Microsoft Visual C++ Redistributable 2015-2022: 
      Download:  32bits: https://aka.ms/vs/17/release/vc_redist.x86.exe  ou 64 bits: https://aka.ms/vs/17/release/vc_redist.x64.exe
       
       
      Git: Se ainda não tiver o Git instalado, faça o download: https://git-scm.com/download/win
       

       
       
      Passo 2: Instalando abra o visual studio 22 ai quando chegar nessa tela você marca essas opções e desmarca as outras:
       

       

       
       
      instalando o git, pode só dar next até o final...
       

       
      instalando o Microsoft Visual C++ Redistributable 2015-2022
      abra seu powershell
       
      digite os comando 1 por vez:
       
      git clone https://github.com/Microsoft/vcpkg  
      cd vcpkg  
      .\bootstrap-vcpkg.bat  
       
      bibliotecas 64bits referente ao seus sistema
        .\vcpkg install boost-iostreams:x64-windows boost-asio:x64-windows boost-system:x64-windows boost-variant:x64-windows boost-lockfree:x64-windows luajit:x64-windows glew:x64-windows boost-filesystem:x64-windows boost-uuid:x64-windows physfs:x64-windows openal-soft:x64-windows libogg:x64-windows libvorbis:x64-windows zlib:x64-windows opengl:x64-windows openssl:x64-windows liblzma:x64-windows nlohmann-json:x64-windows protobuf:x64-windows  
      bibliotecas 32bits referente ao seus sistema
        .\vcpkg install boost-iostreams:x86-windows boost-asio:x86-windows boost-system:x86-windows boost-variant:x86-windows boost-lockfree:x86-windows luajit:x86-windows glew:x86-windows boost-filesystem:x86-windows boost-uuid:x86-windows physfs:x86-windows openal-soft:x86-windows libogg:x86-windows libvorbis:x86-windows zlib:x86-windows opengl:x86-windows openssl:x86-windows liblzma:x86-windows nlohmann-json:x86-windows protobuf:x86-windows  
      por final:
      .\vcpkg integrate install
       
       
      Download cliente mehah versão nova: https://github.com/mehah/otclient
       
      Agora só abrir o projeto pelo visual studio e clica compilar que vai configura tudo certinho e vai compilar
       


       
       
       
    • Por idlerpl
      TFS 1.5
       
      https://gyazo.com/b42464c4e3689d5d1a199e738208fb24

      game_fishing (1).zip
    • Por Under
      Tutorial: Criando um Sistema de Enviar efeito com OTClient.


       
      Neste tutorial, vamos criar um sistema simples de Enviar efeito no OTClient.
      Este sistema permitirá que os jogadores ativem um efeito especial e vejam uma janela ao clicar em um botão específico.
      Pré-requisitos:
      Ambiente de Desenvolvimento:
      Certifique-se de ter um ambiente de desenvolvimento configurado com OTClient Edubart. Conhecimento Básico em Lua:
      Familiaridade com a linguagem de script Lua.
       
      Passo 1: Estrutura do projeto
       
      Organize seu projeto conforme abaixo:

      OTC / MODS



      Passo 2: Criando a Interface Gráfica (OTUI)

      game_pass.otui
      Repare que em nossa interface nossos botões de ação entram no caminho do module e iniciam uma função que esta disponivel em nosso game_pass.lua (Client-Side)

       



      Passo 3: Criando funções Client-Side

      Agora com as funções criada podemos chamar elas de acordo com a necessidade em nosso arquivo de interface.
      Por exemplo a função effect() que foi chamada em nosso arquivo de interface.otui agora é criada aqui para mostrar o efeito ao jogador.

      game_pass.lua
       
       
      Passo 4: Registrando o novo Mod

      Agora podemos registrar e iniciar nosso modulo usando o arquivo de configuração

      game_pass.otmod
       

      Feito isso ja podemos ver nosso module no client e enviar opcodes através do gameprotocol e também receber o buffer para manipular os dados podemos utilizar :
      protocolGame:sendExtendedOpcode(14, "1")
      Basicamente oque estamos fazendo é armazenando o valor 1 na variaval 14 do ExtendedOpcode e futuramente podemos recuperar esse valor.

      Recuperamos esse valor em nosso server side data/creatuerscript/otc/game_pass.lua

      Verificando se o opcode é 14 se for 14 então fazemos x ação.

      Show, tendo isso em mente para que o nosso client-side consiga receber com sucesso o efeito enviado ao jogador então utilizamos 

      Passo 5: Criando o Server-side responsavel por enviar o efeito correto ao jogador dependendo do opcode selecionado no nosso cliente.

      data/creaturescripts/otc/game_pass.lua
       
      Passo 6: Registrando o evento para evitar erros futuros!
      Para que tudo funcione corretamente sem erros é  necessário registrar o evento no creaturescript.xml / login.lua

      creaturescript.xml
      <event type="extendedopcode" name="GamePass" script="otc/game_pass.lua" />
      login.lua
          player:registerEvent("GamePass")  


      Ótimo agora ao selecionar o menu recompensa o jogador recebera um efeito.

      Espero que tenha ficado claro como usar Opcodes/ExetendedOpcodes.

      Arquivos usados no tutorrial:
      OTC MODULE
      game_pass.rar
      Creaturescript
      game_pass.lua

      Vi muitos tutoriais desatualizado então resolvi trazer esse!
      Reparem que nesse caso passamos creature como parametro do buffer isso porque precisamos enviar um efeito no player.

      Melhorando a formatação com JSON Encoder

       
       
    • Por Akun
      Oiiii Boa Noite !!! , Gostaria de pedir a ajuda de vocês em um poblemas que eu estou tendo,
       
      Adicionei recentemente esse Script Abaixo e consegui instalar tudo direitinho, ta rodando liso.. Mas Gostaria de implementar bonus nesse script
      Exemplo:
      Player Vip: 20% a + de XP
      Player Vip: 1%   a + de ATK SPEED
       
      abaixo todo o Script
       
      [Fonte]
       
      Sistema Vip
       
      1° execute dentro da sua db
      ALTER TABLE `accounts` ADD COLUMN `viplastday` int(10) NOT NULL DEFAULT 0 AFTER `lastday`, ADD COLUMN `vipdays` int(11) NOT NULL DEFAULT 0 AFTER `lastday`;  
       
       
      2º na pasta data/creaturescripts/scripts procure pelo arquivo login.lua e adicione na segunda linha, logo após o function onLogin(player) isso
      player:loadVipData() player:updateVipTime() 3° na pasta data\ crie um arquivo chamado vipsystem.lua e adicione o seguinte
      local config = { -- true = player will be teleported to this position if Vip runs out -- false = player will not be teleported useTeleport = true, expirationPosition = Position(95, 114, 7), -- true = player will received the message you set -- false = player will not receive a message useMessage = true, expirationMessage = 'Your vip days ran out.', expirationMessageType = MESSAGE_STATUS_WARNING } if not VipData then VipData = { } end function Player.onRemoveVip(self) if config.useTeleport then self:teleportTo(config.expirationPosition) config.expirationPosition:sendMagicEffect(CONST_ME_TELEPORT) end if config.useMessage then self:sendTextMessage(config.expirationMessageType, config.expirationMessage) end end function Player.getVipDays(self) return VipData[self:getId()].days end function Player.getLastVipDay(self) return VipData[self:getId()].lastDay end function Player.isVip(self) return self:getVipDays() > 0 end function Player.addInfiniteVip(self) local data = VipData[self:getId()] data.days = 0xFFFF data.lastDay = 0 db.query(string.format('UPDATE `accounts` SET `vipdays` = %i, `viplastday` = %i WHERE `id` = %i;', 0xFFFF, 0, self:getAccountId())) end function Player.addVipDays(self, amount) local data = VipData[self:getId()] local amount = math.min(0xFFFE - data.days, amount) if amount > 0 then if data.days == 0 then local time = os.time() db.query(string.format('UPDATE `accounts` SET `vipdays` = `vipdays` + %i, `viplastday` = %i WHERE `id` = %i;', amount, time, self:getAccountId())) data.lastDay = time else db.query(string.format('UPDATE `accounts` SET `vipdays` = `vipdays` + %i WHERE `id` = %i;', amount, self:getAccountId())) end data.days = data.days + amount end return true end function Player.removeVipDays(self, amount) local data = VipData[self:getId()] if data.days == 0xFFFF then return false end local amount = math.min(data.days, amount) if amount > 0 then db.query(string.format('UPDATE `accounts` SET `vipdays` = `vipdays` - %i WHERE `id` = %i;', amount, self:getAccountId())) data.days = data.days - amount if data.days == 0 then self:onRemoveVip() end end return true end function Player.removeVip(self) local data = VipData[self:getId()] if data.days == 0 then return end data.days = 0 data.lastDay = 0 self:onRemoveVip() db.query(string.format('UPDATE `accounts` SET `vipdays` = 0, `viplastday` = 0 WHERE `id` = %i;', self:getAccountId())) end function Player.loadVipData(self) local resultId = db.storeQuery(string.format('SELECT `vipdays`, `viplastday` FROM `accounts` WHERE `id` = %i;', self:getAccountId())) if resultId then VipData[self:getId()] = { days = result.getDataInt(resultId, 'vipdays'), lastDay = result.getDataInt(resultId, 'viplastday') } result.free(resultId) return true end VipData[self:getId()] = { days = 0, lastDay = 0 } return false end function Player.updateVipTime(self) local save = false local data = VipData[self:getId()] local days, lastDay = data.days, data.lastDay local daysBefore = days if days == 0 or days == 0xFFFF then if lastDay ~= 0 then lastDay = 0 save = true end elseif lastDay == 0 then lastDay = os.time() save = true else local time = os.time() local elapsedDays = math.floor((time - lastDay) / 86400) if elapsedDays > 0 then if elapsedDays >= days then days = 0 lastDay = 0 else days = days - elapsedDays lastDay = time - ((time - lastDay) % 86400) end save = true end end if save then if daysBefore > 0 and days == 0 then self:onRemoveVip() end db.query(string.format('UPDATE `accounts` SET `vipdays` = %i, `viplastday` = %i WHERE `id` = %i;', days, lastDay, self:getAccountId())) data.days = days data.lastDay = lastDay end end  
      4° no arquivo global.lua adicione a seguinte linha
      dofile('data/vipsystem.lua')  
      Talkaction !checkvip para todos os players
       
      1° vá na pasta data/talkactions/scripts e crie um arquivo chamando checkvip.lua e adicione o seguinte
      function onSay(cid, words, param) local player = Player(cid) local days = player:getVipDays() if days == 0 then player:sendCancelMessage('You do not have any vip days.') else player:sendCancelMessage(string.format('You have %s vip day%s left.', (days == 0xFFFF and 'infinite amount of' or days), (days == 1 and '' or 's'))) end return false end 2° e em data/talkactions/talkactions.xml adicione
       
      <talkaction words="!checkvip" script="checkvip.lua"/>  
      Talkaction /vip para membros da staff
      - /vip adddays, NomedoPlayer, 5 --> Adiciona 5 dias vip para o Player. - /vip removedays, NomedoPlayer, 5 --> Remove 5 dias vip do Player. - /vip remove, PlayerName --> Remove todos os dias vip do Player. - /vip check, NomedoPlayer --> Checa quantos dias vip o Player tem. - /vip addinfinite, NomedoPlayer --> Adiciona tempo vip infinito para o Player.  
      Tiles VIP
       
      1° em data/movements/movements.xml e adicione
      <movevent event="StepIn" actionid="1500" script="viptiles.lua"/> <movevent event="StepIn" actionid="1501" script="viptiles.lua"/> 2° em data/movements/script crie o arquivo viptiles.lua e adicione o seguinte
      local vipPosition = Position(101, 116, 7) function onStepIn(cid, item, position, fromPosition) local player = Player(cid) if not player then return true end if item.actionid == 1500 then if not player:isVip() then player:teleportTo(fromPosition) fromPosition:sendMagicEffect(CONST_ME_POFF) player:sendCancelMessage('You do not have any vip days.') end elseif item.actionid == 1501 then if player:isVip() then player:teleportTo(vipPosition) player:say('!* VIP *!', TALKTYPE_MONSTER_SAY) vipPosition:sendMagicEffect(CONST_ME_STUN) else player:teleportTo(fromPosition) player:sendCancelMessage('You do not have any vip days.') fromPosition:sendMagicEffect(CONST_ME_POFF) end end return true end Items que adicionam dias VIP
       
      ItemId 10135 adiciona 10 dias vip. ItemId 10134 adiciona 30 dias vip. ItemId 10133 adiciona 90 dias vip.  
       
      1° em data/actions/actions.xml adicione
      <action fromid="10133" toid="10135" script="vipitems.lua"/> 2° e em data/actions/scripts crie um arquivo chamado vipitems.lua e adicione o seguinte
      local vipItems = { -- [itemid] = amount of vip days [10135] = 10, [10134] = 30, [10133] = 90 } function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey) local player = Player(cid) local days = vipItems[item.itemid] player:addVipDays(days) player:say('!* YAY VIP! *!', TALKTYPE_MONSTER_SAY) player:getPosition():sendMagicEffect(CONST_ME_STUN) player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('You received %s vip days.', days)) Item(item.uid):remove(1) return true end
    • Por EddyHavoc
      Descrição: Com estas alterações nas sources do servidor e do OTC você conseguirá adicionar ao jogo uma barra de carregamento nas criaturas do jogo. Esta barra é personalizável e pode ser utilizada de diversas formas em diferentes scripts.

      Server sources.
      No arquivo game.h
      Abaixo de:
      Adicione:
       
      No arquivo game.cpp
      Adicione:
       
      No arquivo luascript.h
      Abaixo de:
      Adicione:
       
      No arquivo luascript.cpp
      Abaixo de:
      Adicione:
      Abaixo de:
      Adicione:
       
      No arquivo player.h
      Abaixo de:
      Adicione:
       
      No arquivo protocolgame.h
      Abaixo de:
      Adicione:
       
      No arquivo protocolgame.cpp
      No final do arquivo adicione:
       
      Client sources.
      No arquivo protocolcodes.cpp
      Abaixo de:
      Adicione:
       
      No arquivo protocolgame.h
      Abaixo de:
      Adicione:
       
      No arquivo protocolgameparse.cpp
      Abaixo de:
      Adicione:
      Abaixo de:
      Adicione:
       
      No arquivo creature.h
      Abaixo de:
      Adicione:
      Abaixo de:
      Adicione:
       
      No arquivo creature.cpp
      Abaixo de:
      Adicione:
      Substitua o código abaixo:
       
      Por este código:
       
      E ainda no arquivo creature.cpp no final da página adicione:
       
       
      Fim! Estas são todas as alterações! 

      Créditos:
      EddyHavoc
      Flatlander
      Kondrah
      Oen432
       
  • Estatísticas dos Fóruns

    96842
    Tópicos
    519602
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo