Suporte no desenvolvimento de jogos


    VXA-OS - Crie seu MMO com RPG Maker

    Blast
    Blast
    Administrador
    Administrador

    Medalhas : VXA-OS - Crie seu MMO com RPG Maker - Página 37 94JxvVXA-OS - Crie seu MMO com RPG Maker - Página 37 ZgLkiRU
    Mensagens : 4992
    Créditos : 1105
    Cash : 0

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Empty Re: VXA-OS - Crie seu MMO com RPG Maker

    Mensagem por Blast em Sex Ago 09, 2019 10:11 am

    @iLight escreveu:To com o piquenho prroblema do audio 117 que nao da para ficar de tela cheia
    Qual erro?


    _________________
    VXA-OS - Crie seu MMO com RPG Maker - Página 37 AIymW
    iLight
    iLight
    Novato
    Novato

    Mensagens : 18
    Créditos : 1
    Cash : 0

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Empty Re: VXA-OS - Crie seu MMO com RPG Maker

    Mensagem por iLight em Dom Ago 11, 2019 2:20 pm

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Sem_tz13


    Esse o o Problema nao consigo colocar tela cheia fica assim nao mudei nada!
    avatar
    Brayan96
    Novato
    Novato

    Mensagens : 4
    Créditos : 0
    Cash : 0

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Empty Re: VXA-OS - Crie seu MMO com RPG Maker

    Mensagem por Brayan96 em Seg Ago 12, 2019 3:24 pm

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Sin_tz1 VXA-OS - Crie seu MMO com RPG Maker - Página 37 Sin_tz11Olá, tenho problemas no painel do administrador, não posso teletransportar ou enviar itens, já que o painel só mostra uma seção da lista destes e não há nenhuma barra para selecionar os primeiros, como no caso do Eu tenho mapas numerados, alguém sabe como eu posso consertar isso, ou o Valentine planeja consertar isso em futuras atualizações?
    iLight
    iLight
    Novato
    Novato

    Mensagens : 18
    Créditos : 1
    Cash : 0

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Empty Re: VXA-OS - Crie seu MMO com RPG Maker

    Mensagem por iLight em Seg Ago 12, 2019 10:34 pm

    @Brayan96 escreveu:VXA-OS - Crie seu MMO com RPG Maker - Página 37 Sin_tz1 VXA-OS - Crie seu MMO com RPG Maker - Página 37 Sin_tz11Olá, tenho problemas no painel do administrador, não posso teletransportar ou enviar itens, já que o painel só mostra uma seção da lista destes e não há nenhuma barra para selecionar os primeiros, como no caso do Eu tenho mapas numerados, alguém sabe como eu posso consertar isso, ou o Valentine planeja consertar isso em futuras atualizações?
    mano o seu ta pegando tela cheia?
    avatar
    Brayan96
    Novato
    Novato

    Mensagens : 4
    Créditos : 0
    Cash : 0

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Empty Re: VXA-OS - Crie seu MMO com RPG Maker

    Mensagem por Brayan96 em Ter Ago 13, 2019 12:10 am

    [size=36]não, é apenas parte do jogo, o resto é minha mesa[/size]
    Blast
    Blast
    Administrador
    Administrador

    Medalhas : VXA-OS - Crie seu MMO com RPG Maker - Página 37 94JxvVXA-OS - Crie seu MMO com RPG Maker - Página 37 ZgLkiRU
    Mensagens : 4992
    Créditos : 1105
    Cash : 0

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Empty Re: VXA-OS - Crie seu MMO com RPG Maker

    Mensagem por Blast em Qui Ago 15, 2019 9:17 pm

    Correções de bugs da versão 1.1.3:
    Correção nas coordenadas das animações:
    1) No script [VS] Sprite_Character do cliente, após def end_sprites adicione:
    Código:
     def update_position
        move_animation(@character.screen_x - x, @character.screen_y - y)
        self.x = @character.screen_x
        self.y = @character.screen_y
        self.z = @character.screen_z
      end
      def move_animation(dx, dy)
        if @animation && @animation.position != 3
          @ani_ox += dx
          @ani_oy += dy
          @ani_sprites.each do |sprite|
            sprite.x += dx
            sprite.y += dy
          end
        end
      end

    Correção no registro de atividades do servidor:
    1) No arquivo logger.rb da pasta Scripts do SERVIDOR, substitua:
    Código:
    type = type.integer? ? type == Constants::GROUP_ADMIN ? 'Admin' : 'Monitor' : type
    2) Por:
    Código:
    type = type.is_a?(Integer) ? type == Constants::GROUP_ADMIN ? 'Admin' : 'Monitor' : type

    Correção na experiência do nível máximo:
    1) No arquivo game_client.rb da pasta Scripts do SERVIDOR, substitua o def change_exp por:
    Código:
    def change_exp(exp)
     return if @level == Configs::MAX_LEVEL && exp > @exp
     $server.send_player_exp(self, exp - @exp)
     @exp = [[exp, exp_for_level(Configs::MAX_LEVEL)].min, 0].max
     level_up while !max_level? && @exp >= next_level_exp
     level_down while @exp < current_level_exp
     end
    2) No script [VS] Game_Actor do CLIENTE, depois do def max_level, ADICIONE:
    Código:
     def change_exp(exp, show)
        @exp[@class_id] = [[exp, exp_for_level(Configs::MAX_LEVEL)].min, 0].max
        last_level = @level
        last_skills = skills
        level_up while !max_level? && self.exp >= next_level_exp
        level_down while self.exp < current_level_exp
        display_level_up if show && @level > last_level
        refresh
      end

    Correção no recebimento de dados:
    1) Substitua o script [VS] Network do CLIENTE por este:
    Código:
    #==============================================================================
    # ** Network
    #------------------------------------------------------------------------------
    #  Esta classe lida com a rede.
    #------------------------------------------------------------------------------
    #  Autor: Valentine
    #==============================================================================

    class Network
      
      include Send_Data, Handle_Data
      
      attr_reader   :motd, :actors, :vip_time
      
      def initialize
        @group = Constants::GROUP_STANDARD
        @in_game = false
        @vip_time = nil
        @socket = nil
        @message = nil
        @m_size = 0
        @player_id = -1
        @motd = ''
        @actors = {}
      end
      
      def connect
        @socket = SocketLib.new(Configs::HOST, Configs::PORT)
      end
      
      def disconnect
        return unless connected?
        @socket.close
        @socket = nil
      end
      
      def connected?
        @socket
      end
      
      def connection_lost?(status)
        status == -1
      end
      
      def standard_group?
        @group == Constants::GROUP_STANDARD
      end
      
      def vip?
        @vip_time > Time.now
      end
      
      def server_online?
        retry_count = 0
        successful = false
        while !successful && retry_count < 2
          begin
            connect
            successful = true
          rescue
            retry_count += 1
          end
        end
        successful
      end
      
      def update
        # Se a conexão não foi fechada e há dados para ler
        until !@socket || @socket.eof?
          if @message
            receive_message_gradually
          else
            receive_full_message
          end
        end
      end
      
      def receive_full_message
        b_size = @socket.recv_non_block(2)
        if connection_lost?(b_size) || b_size.size < 2
          $alert_msg ||= Vocab::ConnectionFailed
          DataManager.back_login
          return
        end
        size = b_size.unpack('s')[0]
        message = @socket.recv_non_block(size)
        if message.size - 4 == size
          handle_messages(message)
        else
          @message = message
          @m_size = size
        end
      end
      
      def receive_message_gradually
        message = @socket.recv_non_block(@m_size - @message.size)
        @message << message
        if @message.size - 4 == @m_size
          msgbox('Por favor, tire print deste erro e reporte-o à staff.\nErro: o pacote não chegou inteiro inicialmente, mas o problema já foi resolvido!')
          handle_messages(@message)
          @message = nil
        end
      end
      
    end

    Correção no envio de dados:
    1) Substitua o script [VS] Send_Data do CLIENTE por este:
    Código:
    #==============================================================================
    # ** Send_Data
    #------------------------------------------------------------------------------
    #  Este módulo envia as mensagens para o servidor.
    #------------------------------------------------------------------------------
    #  Autor: Valentine
    #==============================================================================

    module Send_Data
      
      def send_login(user, pass)
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_LOGIN)
        buffer.write_string(user)
        buffer.write_string(VXAOS::md5(pass))
        buffer.write_short(Configs::GAME_VERSION)
        @socket.send(buffer.to_s)
      end
      
      def send_new_account(user, pass, email)
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_NEW_ACCOUNT)
        buffer.write_string(user)
        buffer.write_string(VXAOS::md5(pass))
        buffer.write_string(email)
        buffer.write_short(Configs::GAME_VERSION)
        @socket.send(buffer.to_s)
      end
      
      def send_new_character(actor_id, name, character_index, class_id, sex, params, points)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_NEW_CHAR)
        buffer.write_byte(actor_id)
        buffer.write_string(name)
        buffer.write_byte(character_index)
        buffer.write_short(class_id)
        buffer.write_byte(sex)
        params.each { |param| buffer.write_byte(param) }
        buffer.write_byte(points)
        @socket.send(buffer.to_s)
      end
      
      def send_remove_character(actor_id, pass)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_REMOVE_CHAR)
        buffer.write_byte(actor_id)
        buffer.write_string(VXAOS::md5(pass))
        @socket.send(buffer.to_s)
      end
      
      def send_use_character(actor_id)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_USE_CHAR)
        buffer.write_byte(actor_id)
        @socket.send(buffer.to_s)
      end
      
      def check_ping
        return unless @socket
        $ping_start = Time.now
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_PING)
        @socket.send(buffer.to_s)
      end
      
      def send_player_movement(direction)
        # Se o jogador foi desconectado, mas ainda não saiu
        #da cena do mapa e tentou andar no momento imeditamente
        #posterior ao encerramento da conexão
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_PLAYER_MOVE)
        buffer.write_byte(direction)
        @socket.send(buffer.to_s)
      end
      
      def send_chat_message(message, talk_type, player_name = '')
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_CHAT_MSG)
        buffer.write_string(message)
        buffer.write_byte(talk_type)
        buffer.write_string(player_name)
        @socket.send(buffer.to_s)
      end
      
      def send_player_attack
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_PLAYER_ATTACK)
        @socket.send(buffer.to_s)
      end
      
      def send_use_item(item_id)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_USE_ITEM)
        buffer.write_short(item_id)
        @socket.send(buffer.to_s)
      end
      
      def send_use_skill(skill_id)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_USE_SKILL)
        buffer.write_short(skill_id)
        @socket.send(buffer.to_s)
      end
      
      def send_change_hotbar(id, type, item_id)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_CHANGE_HOTBAR)
        buffer.write_byte(id)
        buffer.write_byte(type)
        buffer.write_short(item_id)
        @socket.send(buffer.to_s)
      end
      
      def send_use_hotbar(id)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_USE_HOTBAR)
        buffer.write_byte(id)
        @socket.send(buffer.to_s)
      end
      
      def send_target(target_id, type)
        # Se o alvo está sendo selecionado após
        #chamar a cena do login
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_TARGET)
        buffer.write_byte(type)
        buffer.write_short(target_id)
        @socket.send(buffer.to_s)
      end
      
      def send_add_drop(item_id, kind, amount)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_ADD_DROP)
        buffer.write_short(item_id)
        buffer.write_byte(kind)
        buffer.write_short(amount)
        @socket.send(buffer.to_s)
      end
      
      def send_remove_drop(drop_id)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_REMOVE_DROP)
        buffer.write_byte(drop_id)
        @socket.send(buffer.to_s)
      end
      
      def send_add_param(param_id)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_PLAYER_PARAM)
        buffer.write_byte(param_id)
        @socket.send(buffer.to_s)
      end
      
      def send_player_equip(item_id, slot_id)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_PLAYER_EQUIP)
        buffer.write_byte(slot_id)
        buffer.write_short(item_id)
        @socket.send(buffer.to_s)
      end
      
      def send_open_friends
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_OPEN_FRIENDS)
        @socket.send(buffer.to_s)
      end
      
      def send_remove_friend(index)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_REMOVE_FRIEND)
        buffer.write_byte(index)
        @socket.send(buffer.to_s)
      end
      
      def send_leave_party
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_LEAVE_PARTY)
        @socket.send(buffer.to_s)
      end
      
      def send_choice(index)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_CHOICE)
        buffer.write_byte(index)
        @socket.send(buffer.to_s)
      end
      
      def send_bank_item(item_id, kind, amount)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_BANK_ITEM)
        buffer.write_short(item_id)
        buffer.write_byte(kind)
        buffer.write_short(amount)
        @socket.send(buffer.to_s)
      end
      
      def send_bank_gold(amount)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_BANK_GOLD)
        buffer.write_int(amount)
        @socket.send(buffer.to_s)
      end
      
      def send_close_bank
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_CLOSE_BANK)
        @socket.send(buffer.to_s)
      end
      
      def send_close_shop
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_CLOSE_SHOP)
        @socket.send(buffer.to_s)
      end
      
      def send_buy_item(index, amount)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_BUY_ITEM)
        buffer.write_byte(index)
        buffer.write_short(amount)
        @socket.send(buffer.to_s)
      end
      
      def send_sell_item(item_id, kind, amount)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_SELL_ITEM)
        buffer.write_short(item_id)
        buffer.write_byte(kind)
        buffer.write_short(amount)
        @socket.send(buffer.to_s)
      end
      
      def send_choice_telepot(index)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_CHOICE_TELEPORT)
        buffer.write_byte(index)
        @socket.send(buffer.to_s)
      end
      
      def send_request(type, player_id = -1)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_REQUEST)
        buffer.write_byte(type)
        buffer.write_short(player_id)
        @socket.send(buffer.to_s)
      end
      
      def send_accept_request
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_ACCEPT_REQUEST)
        @socket.send(buffer.to_s)
      end
      
      def send_decline_request
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_DECLINE_REQUEST)
        @socket.send(buffer.to_s)
      end
      
      def send_trade_item(item_id, kind, amount)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_TRADE_ITEM)
        buffer.write_short(item_id)
        buffer.write_byte(kind)
        buffer.write_short(amount)
        @socket.send(buffer.to_s)
      end
      
      def send_trade_gold(amount)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_TRADE_GOLD)
        buffer.write_int(amount)
        @socket.send(buffer.to_s)
      end
      
      def send_close_trade
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_CLOSE_TRADE)
        @socket.send(buffer.to_s)
      end
      
      def send_admin_command(command, str1, str2 = 0, str3 = 0, str4 = 0)
        return unless @socket
        buffer = Buffer_Writer.new
        buffer.write_byte(Constants::PACKET_ADMIN_COMMAND)
        buffer.write_byte(command)
        buffer.write_string(str1)
        buffer.write_int(str2)
        buffer.write_int(str3)
        buffer.write_short(str4)
        @socket.send(buffer.to_s)
      end
      
    end

    Em breve atualizarei o link de download para incluir estas correções.


    _________________
    VXA-OS - Crie seu MMO com RPG Maker - Página 37 AIymW
    Blast
    Blast
    Administrador
    Administrador

    Medalhas : VXA-OS - Crie seu MMO com RPG Maker - Página 37 94JxvVXA-OS - Crie seu MMO com RPG Maker - Página 37 ZgLkiRU
    Mensagens : 4992
    Créditos : 1105
    Cash : 0

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Empty Re: VXA-OS - Crie seu MMO com RPG Maker

    Mensagem por Blast em Qui Ago 15, 2019 9:47 pm

    Versão 1.1.4 disponível

    LOG:
    -Bônus de ouro, experiência e drop também admitem números decimais;
    -Tempo mínimo para falar novamente no bate-papo global adicionado;
    -Erro ao enviar mensagens para o servidor corrigido;
    -Erro nas coordenadas das animações corrigido;
    -Erro ao receber dados do servidor corrigido;
    -Erros no log corrigidos.


    _________________
    VXA-OS - Crie seu MMO com RPG Maker - Página 37 AIymW

    Conteúdo patrocinado

    VXA-OS - Crie seu MMO com RPG Maker - Página 37 Empty Re: VXA-OS - Crie seu MMO com RPG Maker

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sab Ago 17, 2019 9:37 pm