Ajudinha básica

    Compartilhe

    Dumsol
    Iniciante
    Iniciante

    Mensagens : 36
    Créditos : 2

    Ajudinha básica

    Mensagem por Dumsol em Ter Ago 23, 2016 4:05 pm

    Não sei bem, mas ao fazer duas quest no Netplay 4.9.2 (5) você tem que começar pela primeira, e depois fazer a segunda para que o "Quest info" não fique bugado, caso você comece pela 2 quest o "Quest info" não mostra a recompensa, nem a descrição. Tem como mudar isso? Agradeço de já
    #Edit
    Esse é o código do windows quest
    Código:
    #==============================================================================
    # ** Window_Quests
    #------------------------------------------------------------------------------
    # By Valentine
    #==============================================================================

    class Window_Quests < Window_Base
      #--------------------------------------------------------------------------
      # * Inicialização dos Objetos
      #--------------------------------------------------------------------------
      def initialize
        super(310, 80, 232, 207)
        $game_temp.windows << self
        self.contents = Bitmap.new(width - 32, height - 32)
        self.back_opacity = 200
        self.visible = false
        self.active = false
        self.z = 999999
        @title = Sprite_Title.new(self, Vocab::TITLE16)
        @dragable = true
        @closable = true
      end
      #--------------------------------------------------------------------------
      # * Atualização do Frame
      #--------------------------------------------------------------------------
      def update
        super
        @title.update
      end
      #--------------------------------------------------------------------------
      # * Atualização
      #--------------------------------------------------------------------------
      def refresh
        self.contents.clear
        id = $scene.quest_list.index + 1
        @name = Config::MISSION[id][0]
        @info = Config::MISSION[id][1]
        @item = Config::MISSION[id][2]
        @item_amount = Config::MISSION[id][3]
        @level = Config::MISSION[id][4]
        @gain_item = Config::MISSION[id][5]
        @amount = Config::MISSION[id][6]
        # Não é necessário usar @ nas variáveis abaixo
        exp = Config::MISSION[id][7] != nil ? Config::MISSION[id][7] : 0
        enemy = Config::MISSION[id][8] if Config::MISSION[id][8] != nil
        enemy_amount = Config::MISSION[id][9] if Config::MISSION[id][9] != nil
        enemy_sprite = Config::MISSION[id][10] if Config::MISSION[id][10] != nil
        # Nome
        self.contents.font.color = Color.new(255, 0, 0)
        rect = Rect.new(4, 0, self.contents.width - 8, 32)
        self.contents.draw_text(rect, @name.to_s, 1)
        self.contents.font.color = normal_color
        # Informação
        desc = Game_Chat.text_break(self.contents, @info.to_s, 200)
        count = 0
        for line in desc.split("-N-")
          rect = Rect.new(0, 17 + (count * 14), self.contents.width, 32)
          self.contents.draw_text(rect, "#{line}", 1)
          count += 1
        end
        # Recompensa
        self.contents.draw_text(0, 50, self.contents.width, 32, Vocab::QUEST_REWARD)
        self.contents.draw_text(self.contents.text_size(Vocab::QUEST_REWARD).width + 34, 50, self.contents.width, 32, "#{$data_items[@gain_item].name} (#{@amount.to_s}x)")
        draw_item_name($data_items[@gain_item], self.contents.text_size(Vocab::QUEST_REWARD).width + 5, 50, 1)
        # Status
        self.contents.draw_text(0, 70, 262, 32, Vocab::QUEST_STATUS)
        if $game_quests.finished(id)
          @status_quest = Vocab::QUEST_COMPLETE
          self.contents.font.color = Color.new(0, 128, 0)
        else
          @status_quest = Vocab::QUEST_IN_PROGRESS
        end
        self.contents.draw_text(40, 70, 262, 32, @status_quest.to_s)
        self.contents.font.color = normal_color
        # Experiência
        self.contents.draw_text(0, 90, 262, 32, "#{Vocab::QUEST_EXP} #{exp}x")
        # Nível
        self.contents.draw_text(0, 110, 262, 32, "#{Vocab::QUEST_LEVEL} #{@level.to_s}")
        # Requerimentos
        self.contents.draw_text(0, 130, 262, 32, Vocab::QUEST_REQUIREMENTS)
        draw_item_name($data_items[@item], self.contents.text_size(Vocab::QUEST_REQUIREMENTS).width + 5, 130, 1)
        self.contents.draw_text(self.contents.text_size(Vocab::QUEST_REQUIREMENTS).width + 34, 130, self.contents.width, 32, "#{@item_amount}x")
        if enemy != nil
          bitmap = RPG::Cache.character(enemy_sprite, 0)
          self.contents.blt(self.contents.text_size(Vocab::QUEST_REQUIREMENTS).width + 50, 125, bitmap, Rect.new(0, 0, bitmap.width / 4, bitmap.height / 4))
          self.contents.draw_text(self.contents.text_size(Vocab::QUEST_REQUIREMENTS).width + 55 + bitmap.width / 4, 130, 262, 32, "#{enemy_amount}x")
        end
      end
    end

    Esse é do quest list:
    Código:
    #==============================================================================
    # ** Quest_List
    #------------------------------------------------------------------------------
    # By Valentine
    #==============================================================================

    class Quest_List < Window_Selectable
      #--------------------------------------------------------------------------
      # * Inicialização dos Objetos
      #--------------------------------------------------------------------------
      def initialize
        super(100, 80, 207, 207)
        $game_temp.windows << self
        self.back_opacity = 200
        self.visible = false
        self.active = false
        self.z = 99999
        self.index = 0
        @title = Sprite_Title.new(self, Vocab::TITLE10)
        @dragable = true
        @closable = true
      end
      #--------------------------------------------------------------------------
      # * Selecionar Item
      #--------------------------------------------------------------------------
      def item
        return @data[self.index]
      end
      #--------------------------------------------------------------------------
      # * Atualização do Frame
      #--------------------------------------------------------------------------
      def update
        super
        @title.update
        refresh if @old_quests != @data
        if Input.trigger?(Input::C) or can_pressed?
          return if item == nil
          #return if @data[index] == nil
          return if $game_quests.started(index + 1) == false
          $scene.quest_window.refresh
          $scene.quest_window.visible = true
          $scene.quest_window.active = true
        end
      end
      #--------------------------------------------------------------------------
      # * Atualização
      #--------------------------------------------------------------------------
      def refresh
        @old_quests = @data
        if self.contents != nil
          self.contents.dispose
          self.contents = nil
        end
        @data = []
        for i in 1..Config::MISSION.size-1#$game_quests.progress.size-1
          @data.push(Config::MISSION[i][0]) if $game_quests.started(i)
        end
        @data = @data.compact
        @item_max = @data.size
        if @data.size > 0
          self.contents = Bitmap.new(width - 32, row_max * 32)
          for i in 0...@data.size
            draw_item(i)
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Desenhar Item
      #--------------------------------------------------------------------------
      def draw_item(index)
        item = @data[index]
        self.contents.font.color = $game_quests.finished(index + 1) == true ? Color.new(0, 128, 0) : normal_color
        y = index * 20
        rect = Rect.new(4, y - 6, self.contents.width - 8, 32)
        self.contents.draw_text(rect, item, 1)
      end
    end

    E esse é o quest info
    Código:
    #==============================================================================
    # ** Quest_Info
    #------------------------------------------------------------------------------
    # By Valentine
    #==============================================================================

    class Quest_Info < Window_Base
      #--------------------------------------------------------------------------
      # * Inicialização dos Objetos
      #--------------------------------------------------------------------------
      def initialize
        super(205, 125, 230, 230)
        $game_temp.windows << self
        self.contents = Bitmap.new(width - 32, height - 32)
        self.back_opacity = 200
        self.visible = false
        self.active = false
        self.z = 9999999
        @accept_button = Button.new(self, 47, 45, Vocab::CALL_ACCEPT) {accept}
        @cancel_button = Button.new(self, 111, 45, Vocab::CALL_NOT_ACCEPT) {on_close}
        @title = Sprite_Title.new(self, "")
        @dragable = true
        @closable = true
      end
      #--------------------------------------------------------------------------
      # * Atualização do Frame
      #--------------------------------------------------------------------------
      def update
        super
        @title.update
      end
      #--------------------------------------------------------------------------
      # * Abrir Janela
      #--------------------------------------------------------------------------
      def open(message, id)
        self.visible = true
        self.active = true
        self.contents.clear
        @id = id
        @title.text = Config::MISSION[@id][0]
        @title.update
        @title.refresh
        message = Game_Chat.text_break(self.contents, message, 200)
        count = 0
        for line in message.split("-N-")
          rect = Rect.new(0, count * 17, self.contents.width, 32)
          self.contents.draw_text(rect, "#{line}", 1)
          count += 1
        end
        self.height = count > 3 ? 25 * (count + 1) : 25 * (count + 2)
        @accept_button.y = self.height - 50
        @cancel_button.y = self.height - 50
      end
      #--------------------------------------------------------------------------
      # * Aceitar
      #--------------------------------------------------------------------------
      def accept
        $game_quests.accept(@id)
        on_close
      end
    end


    Última edição por Dumsol em Ter Ago 23, 2016 9:40 pm, editado 1 vez(es)

    Paulo S.
    Lenda
    Lenda

    Mensagens : 1876
    Créditos : 331

    Re: Ajudinha básica

    Mensagem por Paulo S. em Ter Ago 23, 2016 8:40 pm

    Modifique o tópico adicionando o script em questão. Melhor ainda, adicione todos os scripts relacionados ao sistema de quest para que pessoas que não possuem o netplay possam te ajudar.


    _________________

    Dumsol
    Iniciante
    Iniciante

    Mensagens : 36
    Créditos : 2

    Re: Ajudinha básica

    Mensagem por Dumsol em Ter Ago 23, 2016 10:11 pm

    OK

      Data/hora atual: Dom Dez 11, 2016 10:46 am