Страница 241 из 439 ПерваяПервая ... 141191231239240241242243251291341 ... ПоследняяПоследняя
Показано с 2,401 по 2,410 из 4388

Тема: Общие вопросы

  1. #2401

    По умолчанию

    Простите, немного не понимаю. Файл скриптов - какой конкретно? Скрипты, которые новые (добавляю в игру) или какие-то из стандартных? Или что-то другое?

  2. #2402
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    28.03.2013
    Сообщений
    1,184
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    в папке нового проекта, есть папка data, в ней есть файл Scripts (например в асе имеет расширение *.rvdata2, как в хр не помню)

  3. #2403
    Авторитет Аватар для Bloody
    Информация о пользователе
    Регистрация
    23.04.2008
    Сообщений
    1,523
    Записей в дневнике
    84
    Репутация: 21 Добавить или отнять репутацию

    По умолчанию

    Мне нужна помощь. Есть такой скрипт Message Queue v1.0:
    Код:
    # ============================================================================ #
    # Message Queue v1.0 by Marc (of Fall From Eden)                               #
    # This script is licensed under the Creative Commons BY-SA 3.0 license.        #
    # ============================================================================ #
    # DESCRIPTION                                                                  #
    # ---------------------------------------------------------------------------- #
    # This script creates a "message banner" at the top of the screen for showing  #
    # non-critical (but useful) information to the player during gameplay. This    #
    # banner can contain any messages you wish to place in it. These messages are  #
    # handled in a "first-in, first-out" manner, creating a queue of messages to   #
    # show to the player. Only one message is displayed at a time, but others can  #
    # be added to the queue to display after the first message has faded out.      #
    # ============================================================================ #
    # USAGE INSTRUCTIONS                                                           #
    # ---------------------------------------------------------------------------- #
    # This script comes with its own assortment of "add-ons." The message banner   #
    # does not show any messages ITSELF, but adding or creating methods which ADD  #
    # to the banner can be incredibly easy.                                        #
    #                                                                              #
    # By default, the add-ons included in this script are automatic. There is no   #
    # coding needed on your part to get them to work. You can find a list of these #
    # add-ons in the Marc::Queue module below and set them as you desire. Setting  #
    # an add-on to "true" will show the message while setting it to "false" will   #
    # keep the message from displaying and run the original method the add-on      #
    # aliased.                                                                     #
    #                                                                              #
    # NOTE: Messages shown for map names exclude text written between brackets.    #
    # Map names will only show on the banner if the name of the new map is not the #
    # same as the previous map. This keeps the banner from showing up more than    #
    # once for the map if the player goes to the menu, and lets you define whole   #
    # sections where you want the name shown only once. For instance, you could    #
    # create an inn with two floors, one named "Inn[1F]" and the other "Inn[2F]".  #
    # The banner would only display if the player entered from a location that is  #
    # not named "Inn" in that case (like the town where the inn is located). ;)    #
    #                                                                              #
    # Also, by default, the banner will NOT show duplicate messages. If two of the #
    # messages in the queue are identical, the duplicate message will be removed   #
    # from the queue. You can change this behavior in the Marc::Queue module below #
    # if that is not desired.                                                      #
    #                                                                              #
    # If you want to add messages to the banner yourself, you can easily do so in  #
    # an event's Script command. Simply add the following:                         #
    #                                                                              #
    #     $game_map.queue.push("Your message here.")                               #
    #                                                                              #
    # If your message is too long to write on a single line, you can do this to    #
    # get the same result:                                                         #
    #                                                                              #
    #     m = "Your message here."                                                 #
    #     $game_map.queue.push(m)                                                  #
    #                                                                              #
    # For scripters: the banner reads messages from the array @queue in $game_map. #
    # Adding or modifying methods to show messages is therefore simple, requiring  #
    # nothing more than pushing a string to the end of the array. You could also   #
    # write scripts that rearrange or modify the contents of the banner, if you so #
    # desire. :)                                                                   #
    #                                                                              #
    # Have fun! :)                                                                 #
    #     - Marc                                                                   #
    # ============================================================================ #
    
    module Marc
      module Queue
        # Set this to the switch you want to activate or deactivate the message
        # banner.
        SWITCH = 1
        # Should this switch be turned on automatically when starting a new game?
        ENABLED = true
        
        # The text alignment for the message banner. 0 is left-aligned, 1 is
        # centered, and 2 is right-aligned.
        ALIGNMENT = 1
        # The font you want the banner to display. By default, this is set to
        # Font.default_name, but you can specify an array of fonts instead. If the
        # first font in the array can't be used, it'll use the next, and so on.
        # For example: FONT = ["Verdana", "Arial", "Courier New"]
        FONT = Font.default_name
        # The background color of the message banner. Must be an instance of Color.
        # Write as Color.new(red, green, blue, transparency). Maximum values for
        # each are 255 (0 transparency is fully opaque, 255 fully transparent).
        BACKGROUND = Color.new(0, 0, 0, 128)
        # How much opacity is changed per frame when fading in or out. Increasing
        # this will cause messages to fade in and out faster, while decreasing it
        # will cause them to fade more slowly.
        FADE_STEP = 8
        # How long to show the message in frames after the fade-in is completed.
        WAIT = 120
        # Delete duplicate entries in the queue?
        REMOVE_DUPLICATES = true
        
        # Show message when a new map is loaded?
        MSG_MAP = true
        # Show message when gold is gained or lost?
        MSG_GOLD = true
        # Show message when items are gained or lost?
        MSG_ITEM = true
        # Show a message when a member is added or removed from the party?
        MSG_PARTY = true
        # Show a message when Change HP is used in an event?
        MSG_HP = true
        # Show a message when Change MP is used in an event?
        MSG_MP = true
        # Show a message when a state is added or removed in an event?
        MSG_STATE = true
        # Show a message when Recover All is used in an event?
        MSG_RECOVER = true
        # Show a message when experience is changed in an event?
        MSG_EXP = true
        # Show a message when a level is changed in an event?
        MSG_LEVEL = true
        # Show a message when an actor's parameters are changed in an event?
        MSG_PARAMETERS = true
        # Show a message when an actor learns or forgets a skill?
        MSG_SKILLS = true
        # Show a message when an actor's equipment changes in an event?
        MSG_EQUIPMENT = true
        # Show a message when an actor's name changes in an event?
        MSG_NAME = true
        # Show a message when an actor's class changes in an event?
        MSG_CLASS = true
      end
    end # module Marc::Queue
    
    # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #
    # !                      DO NOT EDIT BEYOND THIS POINT.                      ! #
    # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #
    
    $imported = {} if $imported == nil
    $imported["Marc_Message_Queue"] = true
    
    # ============================================================================ #
    # Game_Temp                                                                    #
    # ---------------------------------------------------------------------------- #
    # Aliased method: initialize                                                   #
    # ============================================================================ #
    if Marc::Queue::MSG_MAP
      class Game_Temp
        attr_accessor :old_map_name
        
        alias marc_queue_addons_initialize initialize
        def initialize
          @old_map_name = nil
          marc_queue_addons_initialize
        end # initialize
      end # class Game_Temp
    end
    
    # ============================================================================ #
    # Game_Switches                                                                #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: initialize                                                  #
    # ============================================================================ #
    if Marc::Queue::ENABLED
      class Game_Switches
        alias marc_queue_initialize initialize
        def initialize
          marc_queue_initialize
          @data[Marc::Queue::SWITCH] = true
        end # initialize
      end # class Game_Switches
    end # if Marc::Queue::ENABLED
    
    # ============================================================================ #
    # Game_Map                                                                     #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: initialize, setup                                           #
    # New method: map_name                                                         #
    # ============================================================================ #
    class Game_Map
      attr_accessor :queue
        
      alias marc_queue_initialize initialize
      def initialize
        @queue = []
        marc_queue_initialize
      end # initialize
        
      if Marc::Queue::MSG_MAP
        alias marc_queue_addons_setup setup
        def setup(map_id)
          marc_queue_addons_setup(map_id)
          if $game_temp.old_map_name != map_name
            $game_temp.old_map_name = map_name
            unless map_name == "" or not $game_switches[Marc::Queue::SWITCH]
                @queue.push("You have entered #{map_name}.")
            end
          end
        end # setup
            
        def map_name
          data = load_data("Data/MapInfos.rvdata")
          return data[@map_id].name.gsub(/\[.*?\]/, "").strip
        end # map_name
      end
    end # class Game_Map
    
    # ============================================================================ #
    # Game_Party                                                                   #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: gain_gold, gain_item                                        #
    # ============================================================================ #
    if Marc::Queue::MSG_GOLD or Marc::Queue::MSG_ITEM
      class Game_Party < Game_Unit
        if Marc::Queue::MSG_GOLD
          alias marc_queue_addons_gain_gold gain_gold
          def gain_gold(n)
            marc_queue_addons_gain_gold(n)
            return if not $scene.is_a?(Scene_Map)
            return if not $game_switches[Marc::Queue::SWITCH]
            if n > 0
              if n == 1
                $game_map.queue.push("Found a #{Vocab::gold}.")
              else
                $game_map.queue.push("Found #{n} #{Vocab::gold}s.")
              end
            else
              if n == -1
                $game_map.queue.push("Lost a #{Vocab::gold}.")
              else
                $game_map.queue.push("Lost #{n.abs} #{Vocab::gold}s.")
              end
            end
          end # gain_gold
        end
        
        if Marc::Queue::MSG_ITEM
          alias marc_queue_addons_gain_item gain_item
          def gain_item(item, n, include_equip = false)
            queue_item = item.name.to_s unless item.nil?
            marc_queue_addons_gain_item(item, n, include_equip = false)
            return if not $scene.is_a?(Scene_Map)
            return if not $game_switches[Marc::Queue::SWITCH]
            unless item.nil?
              if n > 0
                if n == 1
                  if queue_item =~ /^[aeiou]/i
                    $game_map.queue.push("Found an #{queue_item}.")
                  else
                    $game_map.queue.push("Found a #{queue_item}.")
                  end
                else
                  $game_map.queue.push("Found #{n} #{queue_item}s.")
                end
              else
                if n == -1
                  if queue_item =~ /^[aeiou]/i
                    $game_map.queue.push("Lost an #{queue_item}.")
                  else
                    $game_map.queue.push("Lost a #{queue_item}.")
                  end
                else
                  $game_map.queue.push("Lost #{n} #{queue_item}s.")
                end
              end
            end
          end # gain_item
        end
      end # class Game_Party
    end
    
    # ============================================================================ #
    # Game_Interpreter                                                             #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: command_129, command_311, command_312, command_313,         #
    #     command_314, command_315, command_316, command_317, command_318,         #
    #     command_319, command_320                                                 #
    # ============================================================================ #
    class Game_Interpreter
      if Marc::Queue::MSG_PARTY
        alias marc_queue_addons_command_129 command_129
        def command_129 # Change Party
          marc_queue_addons_command_129
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil and @params[1] == 0
              $game_map.queue.push("#{actor.name} has joined #{$game_party.name}.")
            elsif actor != nil and @params[1] != 0
              $game_map.queue.push("#{actor.name} has left #{$game_party.name}.")
            end
          end
        end # command_129
      end
      
      if Marc::Queue::MSG_HP
        alias marc_queue_addons_command_311 command_311
        def command_311 # Change HP
          marc_queue_addons_command_311
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if value > 0
              $game_map.queue.push("#{name} recovered #{value} #{Vocab::hp}.")
            elsif value < 0
              $game_map.queue.push("#{name} lost #{value.abs} #{Vocab::hp}.")
            end
          end
        end # command_311
      end
    
      if Marc::Queue::MSG_MP
        alias marc_queue_addons_command_312 command_312
        def command_312 # Change MP
          marc_queue_addons_command_312
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if value > 0
              $game_map.queue.push("#{name} recovered #{value} #{Vocab::mp}.")
            elsif value < 0
              $game_map.queue.push("#{name} lost #{value.abs} #{Vocab::mp}.")
            end
          end
        end # command_312
      end
      
      if Marc::Queue::MSG_STATE
        alias marc_queue_addons_command_313 command_313
        def command_313 # Change State
          marc_queue_addons_command_313
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            state = $data_states[@params[2]]
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if @params[1] == 0
              $game_map.queue.push("#{name}#{state.message1}")
            else
              $game_map.queue.push("#{name}#{state.message4}")
            end
          end
        end # command_313
      end
      
      if Marc::Queue::MSG_RECOVER
        alias marc_queue_addons_command_314 command_314
        def command_314 # Recover All
          marc_queue_addons_command_314
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            $game_map.queue.push("#{name} has been fully recovered.")
          end
        end # command_314
      end
      
      if Marc::Queue::MSG_EXP
        alias marc_queue_addons_command_315 command_315
        def command_315 # Change EXP
          marc_queue_addons_command_315
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if value > 0
              $game_map.queue.push("#{name} gained #{value} experience.")
            elsif value < 0
              $game_map.queue.push("#{name} lost #{value.abs} experience.")
            end
          end
        end # command_315
      end
      
      if Marc::Queue::MSG_LEVEL
        alias marc_queue_addons_command_316 command_316
        def command_316 # Change Level
          marc_queue_addons_command_316
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if @params[0] == 0
              if value > 0
                if value == 1
                  $game_map.queue.push("#{name} gained a #{Vocab::level}.")
                else
                  $game_map.queue.push("#{name} gained #{value} #{Vocab::level}s.")
                end
              elsif value < 0
                if value == -1
                  $game_map.queue.push("#{name} lost a #{Vocab::level}.")
                else
                  $game_map.queue.push
                  ("#{name} lost #{value.abs} #{Vocab::level}s.")
                end
              end
            else
              $game_map.queue.push
              ("#{name} is now #{Vocab::level} #{actor.level + value}.")
            end
          end
        end # command_316
      end
    
      if Marc::Queue::MSG_PARAMETERS
        alias marc_queue_addons_command_317 command_317
        def command_317 # Change Parameters
          marc_queue_addons_command_317
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[2], @params[3], @params[4])
            actor = $game_actors[@params[0]]
            name = actor.name
            if actor != nil and value != 0
              case @params[1]
              when 0
                $game_map.queue.push
                ("#{name}'s maximum #{Vocab::hp} is now #{actor.maxhp}.")
              when 1
                $game_map.queue.push
                ("#{name}'s maximum #{Vocab::mp} is now #{actor.maxmp}.")
              when 2
                $game_map.queue.push("#{name}'s #{Vocab::atk} is now #{actor.atk}.")
              when 3
                $game_map.queue.push("#{name}'s #{Vocab::def} is now #{actor.def}.")
              when 4
                $game_map.queue.push("#{name}'s #{Vocab::spi} is now #{actor.spi}.")
              when 5
                $game_map.queue.push("#{name}'s #{Vocab::agi} is now #{actor.agi}.")
              end
            end
          end
        end # command_317
      end
      
      if Marc::Queue::MSG_SKILLS
        alias marc_queue_addons_command_318 command_318
        def command_318 # Change Skills
          marc_queue_addons_command_318
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil
              name = actor.name
              skill = $data_skills[@params[2]]
              if @params[1] == 0
                $game_map.queue.push("#{name} learned #{skill.name}.")
              else
                $game_map.queue.push("#{name} forgot #{skill.name}.")
              end
            end
          end
        end # command_318
      end
    
      if Marc::Queue::MSG_EQUIPMENT
        alias marc_queue_addons_command_319 command_319
        def command_319 # Change Equipment
          marc_queue_addons_command_319
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil
              name = actor.name
              if @params[1] == 0 or (@params[1] == 1 and actor.two_swords_style)
                equipment = $data_weapons[@params[2]]
              else
                equipment = $data_armors[@params[2]]
              end
              unless equipment.nil?
                $game_map.queue.push("#{name} has equipped #{equipment.name}.")
              else
                case @params[1]
                when 0
                  $game_map.queue.push("#{name} has unequipped a weapon.")
                when 1
                  $game_map.queue.push("#{name} has unequipped their shield.")
                when 2
                  $game_map.queue.push("#{name} has unequipped their headgear.")
                when 3
                  $game_map.queue.push("#{name} has unequipped their armor.")
                when 4
                  $game_map.queue.push("#{name} has unequipped their accessory.")
                end
              end
            end
          end
        end # command_319
      end
      
      if Marc::Queue::MSG_NAME
        alias marc_queue_addons_command_320 command_320
        def command_320 # Change Name
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil
              $game_map.queue.push("#{actor.name} is now known as #{@params[1]}.")
            end
          end
          marc_queue_addons_command_320
        end # command_320
      end
      
      if Marc::Queue::MSG_CLASS
        alias marc_queue_addons_command_321 command_321
        def command_321 # Change Class
          marc_queue_addons_command_321
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            new_class = $data_classes[@params[1]]
            if actor != nil and new_class != nil
              if new_class.name =~ /^[aeiou]/i
                $game_map.queue.push("#{actor.name} is now an #{new_class.name}.")
              else
                $game_map.queue.push("#{actor.name} is now a #{new_class.name}.")
              end
            end
          end
        end # command_321
      end
    end # class Game_Interpreter
    
    # ============================================================================ #
    # Spriteset_Map                                                                #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: initialize, update, dispose                                 #
    # ============================================================================ #
    class Spriteset_Map
      alias marc_queue_initialize initialize
      def initialize
        marc_queue_initialize
        @queue = Marc_Queue.new(@viewport3) if $game_switches[Marc::Queue::SWITCH]
      end # initialize
      
      alias marc_queue_update update
      def update
        if $game_switches[Marc::Queue::SWITCH]
          @queue.update unless @queue.nil?
        else
          $game_map.queue.clear if $game_map.queue != nil
        end
        marc_queue_update
      end # update
      
      alias marc_queue_dispose dispose
      def dispose
        @queue.dispose unless @queue.nil?
        marc_queue_dispose
      end # dispose
    end # class Spriteset_Map
    
    # ============================================================================ #
    # Marc_Queue                                                                   #
    # ---------------------------------------------------------------------------- #
    # Methods: initialize, update, dispose                                         #
    # ============================================================================ #
    class Marc_Queue < Sprite_Base
      def initialize(viewport)
        super(viewport)
        @counter = 0
        self.opacity = 0
      end # initialize
      
      def update
        return if $game_map.queue.empty?
        $game_map.queue.uniq! if Marc::Queue::REMOVE_DUPLICATES
        if self.bitmap.nil? and @counter == 0
          self.bitmap = Bitmap.new(Graphics.width, 24)
          self.bitmap.fill_rect(0, 0, Graphics.width, 24, Marc::Queue::BACKGROUND)
          self.bitmap.font.name = Marc::Queue::FONT
          self.bitmap.draw_text(0, 0, Graphics.width - 4, 24,
            $game_map.queue[0].to_s, Marc::Queue::ALIGNMENT)
          self.z = 500
        end
        if self.opacity < 255 and @counter < Marc::Queue::WAIT
          self.opacity += Marc::Queue::FADE_STEP
        end
        if @counter < Marc::Queue::WAIT
          @counter += 1
        else
          self.opacity -= Marc::Queue::FADE_STEP if self.opacity > 0
          if self.opacity <= 0
            $game_map.queue.shift
            self.bitmap = nil
            @counter = 0
          end
        end
      end # update
    end # class Marc_Queue
    Он выводит разные тексты на выбор. Я тут туплю немного и не понимаю, как передвинуть место появления текста по оси Y (по вертикали).

  4. #2404
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    28.03.2013
    Сообщений
    1,184
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    если только сам текст, то вот
    self.bitmap.draw_text(0, 0, Graphics.width - 4, 24,
    $game_map.queue[0].to_s, Marc::Queue::ALIGNMENT)


    жирный ноль это координата у

    ps: я конечно не тру, но вроде правильно указал

  5. #2405

    По умолчанию

    Обычно координаты записывают как (x1,y1,x2,y2), так что в этой строчке не только 0, но и 24 надо изменить на что-то там, что надо. Пробуй, Блади. -)
    Я знаю, как лучше.

  6. #2406
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    652
    Репутация: 53 Добавить или отнять репутацию

    По умолчанию

    эм, там идет (х, y, ширина, высота, текст, выравнивание)

  7. #2407
    Авторитет Аватар для Bloody
    Информация о пользователе
    Регистрация
    23.04.2008
    Сообщений
    1,523
    Записей в дневнике
    84
    Репутация: 21 Добавить или отнять репутацию

    По умолчанию

    Да я уже эти x, y столько раз менял, но ничего не получается, либо тупо сверху, либо нижнюю половину букв не видно, либо вообще не видно букв. Все утро бился - но так ничего и не понял.
    Последний раз редактировалось Bloody; 14.10.2014 в 20:36.

  8. #2408
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    652
    Репутация: 53 Добавить или отнять репутацию

    По умолчанию

    Держи, допилил. Можешь установить Y с помощью QUEUE_CHANGE_POS_Y, которая под шапкой. Там просто вьювпорт надо было увеличить.
    Спойлер Скрипт:
    Код:
    # ============================================================================ #
    # Message Queue v1.0 by Marc (of Fall From Eden)                               #
    # This script is licensed under the Creative Commons BY-SA 3.0 license.        #
    # ============================================================================ #
    # DESCRIPTION                                                                  #
    # ---------------------------------------------------------------------------- #
    # This script creates a "message banner" at the top of the screen for showing  #
    # non-critical (but useful) information to the player during gameplay. This    #
    # banner can contain any messages you wish to place in it. These messages are  #
    # handled in a "first-in, first-out" manner, creating a queue of messages to   #
    # show to the player. Only one message is displayed at a time, but others can  #
    # be added to the queue to display after the first message has faded out.      #
    # ============================================================================ #
    # USAGE INSTRUCTIONS                                                           #
    # ---------------------------------------------------------------------------- #
    # This script comes with its own assortment of "add-ons." The message banner   #
    # does not show any messages ITSELF, but adding or creating methods which ADD  #
    # to the banner can be incredibly easy.                                        #
    #                                                                              #
    # By default, the add-ons included in this script are automatic. There is no   #
    # coding needed on your part to get them to work. You can find a list of these #
    # add-ons in the Marc::Queue module below and set them as you desire. Setting  #
    # an add-on to "true" will show the message while setting it to "false" will   #
    # keep the message from displaying and run the original method the add-on      #
    # aliased.                                                                     #
    #                                                                              #
    # NOTE: Messages shown for map names exclude text written between brackets.    #
    # Map names will only show on the banner if the name of the new map is not the #
    # same as the previous map. This keeps the banner from showing up more than    #
    # once for the map if the player goes to the menu, and lets you define whole   #
    # sections where you want the name shown only once. For instance, you could    #
    # create an inn with two floors, one named "Inn[1F]" and the other "Inn[2F]".  #
    # The banner would only display if the player entered from a location that is  #
    # not named "Inn" in that case (like the town where the inn is located). ;)    #
    #                                                                              #
    # Also, by default, the banner will NOT show duplicate messages. If two of the #
    # messages in the queue are identical, the duplicate message will be removed   #
    # from the queue. You can change this behavior in the Marc::Queue module below #
    # if that is not desired.                                                      #
    #                                                                              #
    # If you want to add messages to the banner yourself, you can easily do so in  #
    # an event's Script command. Simply add the following:                         #
    #                                                                              #
    #     $game_map.queue.push("Your message here.")                               #
    #                                                                              #
    # If your message is too long to write on a single line, you can do this to    #
    # get the same result:                                                         #
    #                                                                              #
    #     m = "Your message here."                                                 #
    #     $game_map.queue.push(m)                                                  #
    #                                                                              #
    # For scripters: the banner reads messages from the array @queue in $game_map. #
    # Adding or modifying methods to show messages is therefore simple, requiring  #
    # nothing more than pushing a string to the end of the array. You could also   #
    # write scripts that rearrange or modify the contents of the banner, if you so #
    # desire. :)                                                                   #
    #                                                                              #
    # Have fun! :)                                                                 #
    #     - Marc                                                                   #
    # ============================================================================ #
    
    
    QUEUE_CHANGE_POS_Y = 111
    
    
    module Marc
      module Queue
        # Set this to the switch you want to activate or deactivate the message
        # banner.
        SWITCH = 1
        # Should this switch be turned on automatically when starting a new game?
        ENABLED = true
        
        # The text alignment for the message banner. 0 is left-aligned, 1 is
        # centered, and 2 is right-aligned.
        ALIGNMENT = 1
        # The font you want the banner to display. By default, this is set to
        # Font.default_name, but you can specify an array of fonts instead. If the
        # first font in the array can't be used, it'll use the next, and so on.
        # For example: FONT = ["Verdana", "Arial", "Courier New"]
        FONT = Font.default_name
        # The background color of the message banner. Must be an instance of Color.
        # Write as Color.new(red, green, blue, transparency). Maximum values for
        # each are 255 (0 transparency is fully opaque, 255 fully transparent).
        BACKGROUND = Color.new(0, 0, 0, 128)
        # How much opacity is changed per frame when fading in or out. Increasing
        # this will cause messages to fade in and out faster, while decreasing it
        # will cause them to fade more slowly.
        FADE_STEP = 8
        # How long to show the message in frames after the fade-in is completed.
        WAIT = 120
        # Delete duplicate entries in the queue?
        REMOVE_DUPLICATES = true
        
        # Show message when a new map is loaded?
        MSG_MAP = true
        # Show message when gold is gained or lost?
        MSG_GOLD = true
        # Show message when items are gained or lost?
        MSG_ITEM = true
        # Show a message when a member is added or removed from the party?
        MSG_PARTY = true
        # Show a message when Change HP is used in an event?
        MSG_HP = true
        # Show a message when Change MP is used in an event?
        MSG_MP = true
        # Show a message when a state is added or removed in an event?
        MSG_STATE = true
        # Show a message when Recover All is used in an event?
        MSG_RECOVER = true
        # Show a message when experience is changed in an event?
        MSG_EXP = true
        # Show a message when a level is changed in an event?
        MSG_LEVEL = true
        # Show a message when an actor's parameters are changed in an event?
        MSG_PARAMETERS = true
        # Show a message when an actor learns or forgets a skill?
        MSG_SKILLS = true
        # Show a message when an actor's equipment changes in an event?
        MSG_EQUIPMENT = true
        # Show a message when an actor's name changes in an event?
        MSG_NAME = true
        # Show a message when an actor's class changes in an event?
        MSG_CLASS = true
      end
    end # module Marc::Queue
    
    # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #
    # !                      DO NOT EDIT BEYOND THIS POINT.                      ! #
    # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #
    
    $imported = {} if $imported == nil
    $imported["Marc_Message_Queue"] = true
    
    # ============================================================================ #
    # Game_Temp                                                                    #
    # ---------------------------------------------------------------------------- #
    # Aliased method: initialize                                                   #
    # ============================================================================ #
    if Marc::Queue::MSG_MAP
      class Game_Temp
        attr_accessor :old_map_name
        
        alias marc_queue_addons_initialize initialize
        def initialize
          @old_map_name = nil
          marc_queue_addons_initialize
        end # initialize
      end # class Game_Temp
    end
    
    # ============================================================================ #
    # Game_Switches                                                                #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: initialize                                                  #
    # ============================================================================ #
    if Marc::Queue::ENABLED
      class Game_Switches
        alias marc_queue_initialize initialize
        def initialize
          marc_queue_initialize
          @data[Marc::Queue::SWITCH] = true
        end # initialize
      end # class Game_Switches
    end # if Marc::Queue::ENABLED
    
    # ============================================================================ #
    # Game_Map                                                                     #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: initialize, setup                                           #
    # New method: map_name                                                         #
    # ============================================================================ #
    class Game_Map
      attr_accessor :queue
        
      alias marc_queue_initialize initialize
      def initialize
        @queue = []
        marc_queue_initialize
      end # initialize
        
      if Marc::Queue::MSG_MAP
        alias marc_queue_addons_setup setup
        def setup(map_id)
          marc_queue_addons_setup(map_id)
          if $game_temp.old_map_name != map_name
            $game_temp.old_map_name = map_name
            unless map_name == "" or not $game_switches[Marc::Queue::SWITCH]
                @queue.push("You have entered #{map_name}.")
            end
          end
        end # setup
            
        def map_name
          data = load_data("Data/MapInfos.rvdata")
          return data[@map_id].name.gsub(/\[.*?\]/, "").strip
        end # map_name
      end
    end # class Game_Map
    
    # ============================================================================ #
    # Game_Party                                                                   #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: gain_gold, gain_item                                        #
    # ============================================================================ #
    if Marc::Queue::MSG_GOLD or Marc::Queue::MSG_ITEM
      class Game_Party < Game_Unit
        if Marc::Queue::MSG_GOLD
          alias marc_queue_addons_gain_gold gain_gold
          def gain_gold(n)
            marc_queue_addons_gain_gold(n)
            return if not $scene.is_a?(Scene_Map)
            return if not $game_switches[Marc::Queue::SWITCH]
            if n > 0
              if n == 1
                $game_map.queue.push("Found a #{Vocab::gold}.")
              else
                $game_map.queue.push("Found #{n} #{Vocab::gold}s.")
              end
            else
              if n == -1
                $game_map.queue.push("Lost a #{Vocab::gold}.")
              else
                $game_map.queue.push("Lost #{n.abs} #{Vocab::gold}s.")
              end
            end
          end # gain_gold
        end
        
        if Marc::Queue::MSG_ITEM
          alias marc_queue_addons_gain_item gain_item
          def gain_item(item, n, include_equip = false)
            queue_item = item.name.to_s unless item.nil?
            marc_queue_addons_gain_item(item, n, include_equip = false)
            return if not $scene.is_a?(Scene_Map)
            return if not $game_switches[Marc::Queue::SWITCH]
            unless item.nil?
              if n > 0
                if n == 1
                  if queue_item =~ /^[aeiou]/i
                    $game_map.queue.push("Found an #{queue_item}.")
                  else
                    $game_map.queue.push("Found a #{queue_item}.")
                  end
                else
                  $game_map.queue.push("Found #{n} #{queue_item}s.")
                end
              else
                if n == -1
                  if queue_item =~ /^[aeiou]/i
                    $game_map.queue.push("Lost an #{queue_item}.")
                  else
                    $game_map.queue.push("Lost a #{queue_item}.")
                  end
                else
                  $game_map.queue.push("Lost #{n} #{queue_item}s.")
                end
              end
            end
          end # gain_item
        end
      end # class Game_Party
    end
    
    # ============================================================================ #
    # Game_Interpreter                                                             #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: command_129, command_311, command_312, command_313,         #
    #     command_314, command_315, command_316, command_317, command_318,         #
    #     command_319, command_320                                                 #
    # ============================================================================ #
    class Game_Interpreter
      if Marc::Queue::MSG_PARTY
        alias marc_queue_addons_command_129 command_129
        def command_129 # Change Party
          marc_queue_addons_command_129
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil and @params[1] == 0
              $game_map.queue.push("#{actor.name} has joined #{$game_party.name}.")
            elsif actor != nil and @params[1] != 0
              $game_map.queue.push("#{actor.name} has left #{$game_party.name}.")
            end
          end
        end # command_129
      end
      
      if Marc::Queue::MSG_HP
        alias marc_queue_addons_command_311 command_311
        def command_311 # Change HP
          marc_queue_addons_command_311
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if value > 0
              $game_map.queue.push("#{name} recovered #{value} #{Vocab::hp}.")
            elsif value < 0
              $game_map.queue.push("#{name} lost #{value.abs} #{Vocab::hp}.")
            end
          end
        end # command_311
      end
    
      if Marc::Queue::MSG_MP
        alias marc_queue_addons_command_312 command_312
        def command_312 # Change MP
          marc_queue_addons_command_312
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if value > 0
              $game_map.queue.push("#{name} recovered #{value} #{Vocab::mp}.")
            elsif value < 0
              $game_map.queue.push("#{name} lost #{value.abs} #{Vocab::mp}.")
            end
          end
        end # command_312
      end
      
      if Marc::Queue::MSG_STATE
        alias marc_queue_addons_command_313 command_313
        def command_313 # Change State
          marc_queue_addons_command_313
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            state = $data_states[@params[2]]
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if @params[1] == 0
              $game_map.queue.push("#{name}#{state.message1}")
            else
              $game_map.queue.push("#{name}#{state.message4}")
            end
          end
        end # command_313
      end
      
      if Marc::Queue::MSG_RECOVER
        alias marc_queue_addons_command_314 command_314
        def command_314 # Recover All
          marc_queue_addons_command_314
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            $game_map.queue.push("#{name} has been fully recovered.")
          end
        end # command_314
      end
      
      if Marc::Queue::MSG_EXP
        alias marc_queue_addons_command_315 command_315
        def command_315 # Change EXP
          marc_queue_addons_command_315
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if value > 0
              $game_map.queue.push("#{name} gained #{value} experience.")
            elsif value < 0
              $game_map.queue.push("#{name} lost #{value.abs} experience.")
            end
          end
        end # command_315
      end
      
      if Marc::Queue::MSG_LEVEL
        alias marc_queue_addons_command_316 command_316
        def command_316 # Change Level
          marc_queue_addons_command_316
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if @params[0] == 0
              if value > 0
                if value == 1
                  $game_map.queue.push("#{name} gained a #{Vocab::level}.")
                else
                  $game_map.queue.push("#{name} gained #{value} #{Vocab::level}s.")
                end
              elsif value < 0
                if value == -1
                  $game_map.queue.push("#{name} lost a #{Vocab::level}.")
                else
                  $game_map.queue.push
                  ("#{name} lost #{value.abs} #{Vocab::level}s.")
                end
              end
            else
              $game_map.queue.push
              ("#{name} is now #{Vocab::level} #{actor.level + value}.")
            end
          end
        end # command_316
      end
    
      if Marc::Queue::MSG_PARAMETERS
        alias marc_queue_addons_command_317 command_317
        def command_317 # Change Parameters
          marc_queue_addons_command_317
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[2], @params[3], @params[4])
            actor = $game_actors[@params[0]]
            name = actor.name
            if actor != nil and value != 0
              case @params[1]
              when 0
                $game_map.queue.push
                ("#{name}'s maximum #{Vocab::hp} is now #{actor.maxhp}.")
              when 1
                $game_map.queue.push
                ("#{name}'s maximum #{Vocab::mp} is now #{actor.maxmp}.")
              when 2
                $game_map.queue.push("#{name}'s #{Vocab::atk} is now #{actor.atk}.")
              when 3
                $game_map.queue.push("#{name}'s #{Vocab::def} is now #{actor.def}.")
              when 4
                $game_map.queue.push("#{name}'s #{Vocab::spi} is now #{actor.spi}.")
              when 5
                $game_map.queue.push("#{name}'s #{Vocab::agi} is now #{actor.agi}.")
              end
            end
          end
        end # command_317
      end
      
      if Marc::Queue::MSG_SKILLS
        alias marc_queue_addons_command_318 command_318
        def command_318 # Change Skills
          marc_queue_addons_command_318
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil
              name = actor.name
              skill = $data_skills[@params[2]]
              if @params[1] == 0
                $game_map.queue.push("#{name} learned #{skill.name}.")
              else
                $game_map.queue.push("#{name} forgot #{skill.name}.")
              end
            end
          end
        end # command_318
      end
    
      if Marc::Queue::MSG_EQUIPMENT
        alias marc_queue_addons_command_319 command_319
        def command_319 # Change Equipment
          marc_queue_addons_command_319
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil
              name = actor.name
              if @params[1] == 0 or (@params[1] == 1 and actor.two_swords_style)
                equipment = $data_weapons[@params[2]]
              else
                equipment = $data_armors[@params[2]]
              end
              unless equipment.nil?
                $game_map.queue.push("#{name} has equipped #{equipment.name}.")
              else
                case @params[1]
                when 0
                  $game_map.queue.push("#{name} has unequipped a weapon.")
                when 1
                  $game_map.queue.push("#{name} has unequipped their shield.")
                when 2
                  $game_map.queue.push("#{name} has unequipped their headgear.")
                when 3
                  $game_map.queue.push("#{name} has unequipped their armor.")
                when 4
                  $game_map.queue.push("#{name} has unequipped their accessory.")
                end
              end
            end
          end
        end # command_319
      end
      
      if Marc::Queue::MSG_NAME
        alias marc_queue_addons_command_320 command_320
        def command_320 # Change Name
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil
              $game_map.queue.push("#{actor.name} is now known as #{@params[1]}.")
            end
          end
          marc_queue_addons_command_320
        end # command_320
      end
      
      if Marc::Queue::MSG_CLASS
        alias marc_queue_addons_command_321 command_321
        def command_321 # Change Class
          marc_queue_addons_command_321
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            new_class = $data_classes[@params[1]]
            if actor != nil and new_class != nil
              if new_class.name =~ /^[aeiou]/i
                $game_map.queue.push("#{actor.name} is now an #{new_class.name}.")
              else
                $game_map.queue.push("#{actor.name} is now a #{new_class.name}.")
              end
            end
          end
        end # command_321
      end
    end # class Game_Interpreter
    
    # ============================================================================ #
    # Spriteset_Map                                                                #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: initialize, update, dispose                                 #
    # ============================================================================ #
    class Spriteset_Map
      alias marc_queue_initialize initialize
      def initialize
        marc_queue_initialize
        @queue = Marc_Queue.new(@viewport3) if $game_switches[Marc::Queue::SWITCH]
      end # initialize
      
      alias marc_queue_update update
      def update
        if $game_switches[Marc::Queue::SWITCH]
          @queue.update unless @queue.nil?
        else
          $game_map.queue.clear if $game_map.queue != nil
        end
        marc_queue_update
      end # update
      
      alias marc_queue_dispose dispose
      def dispose
        @queue.dispose unless @queue.nil?
        marc_queue_dispose
      end # dispose
    end # class Spriteset_Map
    
    # ============================================================================ #
    # Marc_Queue                                                                   #
    # ---------------------------------------------------------------------------- #
    # Methods: initialize, update, dispose                                         #
    # ============================================================================ #
    class Marc_Queue < Sprite_Base
      def initialize(viewport)
        super(viewport)
        @counter = 0
        self.opacity = 0
      end # initialize
      
      def update
        return if $game_map.queue.empty?
        $game_map.queue.uniq! if Marc::Queue::REMOVE_DUPLICATES
        if self.bitmap.nil? and @counter == 0
          self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
          self.bitmap.fill_rect(0, QUEUE_CHANGE_POS_Y, Graphics.width, 24, Marc::Queue::BACKGROUND)
          self.bitmap.font.name = Marc::Queue::FONT
          self.bitmap.draw_text(0, QUEUE_CHANGE_POS_Y, Graphics.width - 4, 24,
            $game_map.queue[0].to_s, Marc::Queue::ALIGNMENT)
          self.z = 500
        end
        if self.opacity < 255 and @counter < Marc::Queue::WAIT
          self.opacity += Marc::Queue::FADE_STEP
        end
        if @counter < Marc::Queue::WAIT
          @counter += 1
        else
          self.opacity -= Marc::Queue::FADE_STEP if self.opacity > 0
          if self.opacity <= 0
            $game_map.queue.shift
            self.bitmap = nil
            @counter = 0
          end
        end
      end # update
    end # class Marc_Queue
    Последний раз редактировалось dirge; 14.10.2014 в 21:30.

  9. #2409
    Авторитет Аватар для Bloody
    Информация о пользователе
    Регистрация
    23.04.2008
    Сообщений
    1,523
    Записей в дневнике
    84
    Репутация: 21 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от dirge Посмотреть сообщение
    Держи, допилил. Можешь установить Y с помощью QUEUE_CHANGE_POS_Y, которая под шапкой. Там просто вьювпорт надо было увеличить.
    Спойлер Скрипт:
    Код:
    # ============================================================================ #
    # Message Queue v1.0 by Marc (of Fall From Eden)                               #
    # This script is licensed under the Creative Commons BY-SA 3.0 license.        #
    # ============================================================================ #
    # DESCRIPTION                                                                  #
    # ---------------------------------------------------------------------------- #
    # This script creates a "message banner" at the top of the screen for showing  #
    # non-critical (but useful) information to the player during gameplay. This    #
    # banner can contain any messages you wish to place in it. These messages are  #
    # handled in a "first-in, first-out" manner, creating a queue of messages to   #
    # show to the player. Only one message is displayed at a time, but others can  #
    # be added to the queue to display after the first message has faded out.      #
    # ============================================================================ #
    # USAGE INSTRUCTIONS                                                           #
    # ---------------------------------------------------------------------------- #
    # This script comes with its own assortment of "add-ons." The message banner   #
    # does not show any messages ITSELF, but adding or creating methods which ADD  #
    # to the banner can be incredibly easy.                                        #
    #                                                                              #
    # By default, the add-ons included in this script are automatic. There is no   #
    # coding needed on your part to get them to work. You can find a list of these #
    # add-ons in the Marc::Queue module below and set them as you desire. Setting  #
    # an add-on to "true" will show the message while setting it to "false" will   #
    # keep the message from displaying and run the original method the add-on      #
    # aliased.                                                                     #
    #                                                                              #
    # NOTE: Messages shown for map names exclude text written between brackets.    #
    # Map names will only show on the banner if the name of the new map is not the #
    # same as the previous map. This keeps the banner from showing up more than    #
    # once for the map if the player goes to the menu, and lets you define whole   #
    # sections where you want the name shown only once. For instance, you could    #
    # create an inn with two floors, one named "Inn[1F]" and the other "Inn[2F]".  #
    # The banner would only display if the player entered from a location that is  #
    # not named "Inn" in that case (like the town where the inn is located). ;)    #
    #                                                                              #
    # Also, by default, the banner will NOT show duplicate messages. If two of the #
    # messages in the queue are identical, the duplicate message will be removed   #
    # from the queue. You can change this behavior in the Marc::Queue module below #
    # if that is not desired.                                                      #
    #                                                                              #
    # If you want to add messages to the banner yourself, you can easily do so in  #
    # an event's Script command. Simply add the following:                         #
    #                                                                              #
    #     $game_map.queue.push("Your message here.")                               #
    #                                                                              #
    # If your message is too long to write on a single line, you can do this to    #
    # get the same result:                                                         #
    #                                                                              #
    #     m = "Your message here."                                                 #
    #     $game_map.queue.push(m)                                                  #
    #                                                                              #
    # For scripters: the banner reads messages from the array @queue in $game_map. #
    # Adding or modifying methods to show messages is therefore simple, requiring  #
    # nothing more than pushing a string to the end of the array. You could also   #
    # write scripts that rearrange or modify the contents of the banner, if you so #
    # desire. :)                                                                   #
    #                                                                              #
    # Have fun! :)                                                                 #
    #     - Marc                                                                   #
    # ============================================================================ #
    
    
    QUEUE_CHANGE_POS_Y = 111
    
    
    module Marc
      module Queue
        # Set this to the switch you want to activate or deactivate the message
        # banner.
        SWITCH = 1
        # Should this switch be turned on automatically when starting a new game?
        ENABLED = true
        
        # The text alignment for the message banner. 0 is left-aligned, 1 is
        # centered, and 2 is right-aligned.
        ALIGNMENT = 1
        # The font you want the banner to display. By default, this is set to
        # Font.default_name, but you can specify an array of fonts instead. If the
        # first font in the array can't be used, it'll use the next, and so on.
        # For example: FONT = ["Verdana", "Arial", "Courier New"]
        FONT = Font.default_name
        # The background color of the message banner. Must be an instance of Color.
        # Write as Color.new(red, green, blue, transparency). Maximum values for
        # each are 255 (0 transparency is fully opaque, 255 fully transparent).
        BACKGROUND = Color.new(0, 0, 0, 128)
        # How much opacity is changed per frame when fading in or out. Increasing
        # this will cause messages to fade in and out faster, while decreasing it
        # will cause them to fade more slowly.
        FADE_STEP = 8
        # How long to show the message in frames after the fade-in is completed.
        WAIT = 120
        # Delete duplicate entries in the queue?
        REMOVE_DUPLICATES = true
        
        # Show message when a new map is loaded?
        MSG_MAP = true
        # Show message when gold is gained or lost?
        MSG_GOLD = true
        # Show message when items are gained or lost?
        MSG_ITEM = true
        # Show a message when a member is added or removed from the party?
        MSG_PARTY = true
        # Show a message when Change HP is used in an event?
        MSG_HP = true
        # Show a message when Change MP is used in an event?
        MSG_MP = true
        # Show a message when a state is added or removed in an event?
        MSG_STATE = true
        # Show a message when Recover All is used in an event?
        MSG_RECOVER = true
        # Show a message when experience is changed in an event?
        MSG_EXP = true
        # Show a message when a level is changed in an event?
        MSG_LEVEL = true
        # Show a message when an actor's parameters are changed in an event?
        MSG_PARAMETERS = true
        # Show a message when an actor learns or forgets a skill?
        MSG_SKILLS = true
        # Show a message when an actor's equipment changes in an event?
        MSG_EQUIPMENT = true
        # Show a message when an actor's name changes in an event?
        MSG_NAME = true
        # Show a message when an actor's class changes in an event?
        MSG_CLASS = true
      end
    end # module Marc::Queue
    
    # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #
    # !                      DO NOT EDIT BEYOND THIS POINT.                      ! #
    # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #
    
    $imported = {} if $imported == nil
    $imported["Marc_Message_Queue"] = true
    
    # ============================================================================ #
    # Game_Temp                                                                    #
    # ---------------------------------------------------------------------------- #
    # Aliased method: initialize                                                   #
    # ============================================================================ #
    if Marc::Queue::MSG_MAP
      class Game_Temp
        attr_accessor :old_map_name
        
        alias marc_queue_addons_initialize initialize
        def initialize
          @old_map_name = nil
          marc_queue_addons_initialize
        end # initialize
      end # class Game_Temp
    end
    
    # ============================================================================ #
    # Game_Switches                                                                #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: initialize                                                  #
    # ============================================================================ #
    if Marc::Queue::ENABLED
      class Game_Switches
        alias marc_queue_initialize initialize
        def initialize
          marc_queue_initialize
          @data[Marc::Queue::SWITCH] = true
        end # initialize
      end # class Game_Switches
    end # if Marc::Queue::ENABLED
    
    # ============================================================================ #
    # Game_Map                                                                     #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: initialize, setup                                           #
    # New method: map_name                                                         #
    # ============================================================================ #
    class Game_Map
      attr_accessor :queue
        
      alias marc_queue_initialize initialize
      def initialize
        @queue = []
        marc_queue_initialize
      end # initialize
        
      if Marc::Queue::MSG_MAP
        alias marc_queue_addons_setup setup
        def setup(map_id)
          marc_queue_addons_setup(map_id)
          if $game_temp.old_map_name != map_name
            $game_temp.old_map_name = map_name
            unless map_name == "" or not $game_switches[Marc::Queue::SWITCH]
                @queue.push("You have entered #{map_name}.")
            end
          end
        end # setup
            
        def map_name
          data = load_data("Data/MapInfos.rvdata")
          return data[@map_id].name.gsub(/\[.*?\]/, "").strip
        end # map_name
      end
    end # class Game_Map
    
    # ============================================================================ #
    # Game_Party                                                                   #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: gain_gold, gain_item                                        #
    # ============================================================================ #
    if Marc::Queue::MSG_GOLD or Marc::Queue::MSG_ITEM
      class Game_Party < Game_Unit
        if Marc::Queue::MSG_GOLD
          alias marc_queue_addons_gain_gold gain_gold
          def gain_gold(n)
            marc_queue_addons_gain_gold(n)
            return if not $scene.is_a?(Scene_Map)
            return if not $game_switches[Marc::Queue::SWITCH]
            if n > 0
              if n == 1
                $game_map.queue.push("Found a #{Vocab::gold}.")
              else
                $game_map.queue.push("Found #{n} #{Vocab::gold}s.")
              end
            else
              if n == -1
                $game_map.queue.push("Lost a #{Vocab::gold}.")
              else
                $game_map.queue.push("Lost #{n.abs} #{Vocab::gold}s.")
              end
            end
          end # gain_gold
        end
        
        if Marc::Queue::MSG_ITEM
          alias marc_queue_addons_gain_item gain_item
          def gain_item(item, n, include_equip = false)
            queue_item = item.name.to_s unless item.nil?
            marc_queue_addons_gain_item(item, n, include_equip = false)
            return if not $scene.is_a?(Scene_Map)
            return if not $game_switches[Marc::Queue::SWITCH]
            unless item.nil?
              if n > 0
                if n == 1
                  if queue_item =~ /^[aeiou]/i
                    $game_map.queue.push("Found an #{queue_item}.")
                  else
                    $game_map.queue.push("Found a #{queue_item}.")
                  end
                else
                  $game_map.queue.push("Found #{n} #{queue_item}s.")
                end
              else
                if n == -1
                  if queue_item =~ /^[aeiou]/i
                    $game_map.queue.push("Lost an #{queue_item}.")
                  else
                    $game_map.queue.push("Lost a #{queue_item}.")
                  end
                else
                  $game_map.queue.push("Lost #{n} #{queue_item}s.")
                end
              end
            end
          end # gain_item
        end
      end # class Game_Party
    end
    
    # ============================================================================ #
    # Game_Interpreter                                                             #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: command_129, command_311, command_312, command_313,         #
    #     command_314, command_315, command_316, command_317, command_318,         #
    #     command_319, command_320                                                 #
    # ============================================================================ #
    class Game_Interpreter
      if Marc::Queue::MSG_PARTY
        alias marc_queue_addons_command_129 command_129
        def command_129 # Change Party
          marc_queue_addons_command_129
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil and @params[1] == 0
              $game_map.queue.push("#{actor.name} has joined #{$game_party.name}.")
            elsif actor != nil and @params[1] != 0
              $game_map.queue.push("#{actor.name} has left #{$game_party.name}.")
            end
          end
        end # command_129
      end
      
      if Marc::Queue::MSG_HP
        alias marc_queue_addons_command_311 command_311
        def command_311 # Change HP
          marc_queue_addons_command_311
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if value > 0
              $game_map.queue.push("#{name} recovered #{value} #{Vocab::hp}.")
            elsif value < 0
              $game_map.queue.push("#{name} lost #{value.abs} #{Vocab::hp}.")
            end
          end
        end # command_311
      end
    
      if Marc::Queue::MSG_MP
        alias marc_queue_addons_command_312 command_312
        def command_312 # Change MP
          marc_queue_addons_command_312
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if value > 0
              $game_map.queue.push("#{name} recovered #{value} #{Vocab::mp}.")
            elsif value < 0
              $game_map.queue.push("#{name} lost #{value.abs} #{Vocab::mp}.")
            end
          end
        end # command_312
      end
      
      if Marc::Queue::MSG_STATE
        alias marc_queue_addons_command_313 command_313
        def command_313 # Change State
          marc_queue_addons_command_313
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            state = $data_states[@params[2]]
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if @params[1] == 0
              $game_map.queue.push("#{name}#{state.message1}")
            else
              $game_map.queue.push("#{name}#{state.message4}")
            end
          end
        end # command_313
      end
      
      if Marc::Queue::MSG_RECOVER
        alias marc_queue_addons_command_314 command_314
        def command_314 # Recover All
          marc_queue_addons_command_314
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            $game_map.queue.push("#{name} has been fully recovered.")
          end
        end # command_314
      end
      
      if Marc::Queue::MSG_EXP
        alias marc_queue_addons_command_315 command_315
        def command_315 # Change EXP
          marc_queue_addons_command_315
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if value > 0
              $game_map.queue.push("#{name} gained #{value} experience.")
            elsif value < 0
              $game_map.queue.push("#{name} lost #{value.abs} experience.")
            end
          end
        end # command_315
      end
      
      if Marc::Queue::MSG_LEVEL
        alias marc_queue_addons_command_316 command_316
        def command_316 # Change Level
          marc_queue_addons_command_316
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[1], @params[2], @params[3])
            actor = $game_actors[@params[0]] unless @params[0] == 0
            @params[0] == 0 ? name = $game_party.name : name = actor.name
            if @params[0] == 0
              if value > 0
                if value == 1
                  $game_map.queue.push("#{name} gained a #{Vocab::level}.")
                else
                  $game_map.queue.push("#{name} gained #{value} #{Vocab::level}s.")
                end
              elsif value < 0
                if value == -1
                  $game_map.queue.push("#{name} lost a #{Vocab::level}.")
                else
                  $game_map.queue.push
                  ("#{name} lost #{value.abs} #{Vocab::level}s.")
                end
              end
            else
              $game_map.queue.push
              ("#{name} is now #{Vocab::level} #{actor.level + value}.")
            end
          end
        end # command_316
      end
    
      if Marc::Queue::MSG_PARAMETERS
        alias marc_queue_addons_command_317 command_317
        def command_317 # Change Parameters
          marc_queue_addons_command_317
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            value = operate_value(@params[2], @params[3], @params[4])
            actor = $game_actors[@params[0]]
            name = actor.name
            if actor != nil and value != 0
              case @params[1]
              when 0
                $game_map.queue.push
                ("#{name}'s maximum #{Vocab::hp} is now #{actor.maxhp}.")
              when 1
                $game_map.queue.push
                ("#{name}'s maximum #{Vocab::mp} is now #{actor.maxmp}.")
              when 2
                $game_map.queue.push("#{name}'s #{Vocab::atk} is now #{actor.atk}.")
              when 3
                $game_map.queue.push("#{name}'s #{Vocab::def} is now #{actor.def}.")
              when 4
                $game_map.queue.push("#{name}'s #{Vocab::spi} is now #{actor.spi}.")
              when 5
                $game_map.queue.push("#{name}'s #{Vocab::agi} is now #{actor.agi}.")
              end
            end
          end
        end # command_317
      end
      
      if Marc::Queue::MSG_SKILLS
        alias marc_queue_addons_command_318 command_318
        def command_318 # Change Skills
          marc_queue_addons_command_318
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil
              name = actor.name
              skill = $data_skills[@params[2]]
              if @params[1] == 0
                $game_map.queue.push("#{name} learned #{skill.name}.")
              else
                $game_map.queue.push("#{name} forgot #{skill.name}.")
              end
            end
          end
        end # command_318
      end
    
      if Marc::Queue::MSG_EQUIPMENT
        alias marc_queue_addons_command_319 command_319
        def command_319 # Change Equipment
          marc_queue_addons_command_319
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil
              name = actor.name
              if @params[1] == 0 or (@params[1] == 1 and actor.two_swords_style)
                equipment = $data_weapons[@params[2]]
              else
                equipment = $data_armors[@params[2]]
              end
              unless equipment.nil?
                $game_map.queue.push("#{name} has equipped #{equipment.name}.")
              else
                case @params[1]
                when 0
                  $game_map.queue.push("#{name} has unequipped a weapon.")
                when 1
                  $game_map.queue.push("#{name} has unequipped their shield.")
                when 2
                  $game_map.queue.push("#{name} has unequipped their headgear.")
                when 3
                  $game_map.queue.push("#{name} has unequipped their armor.")
                when 4
                  $game_map.queue.push("#{name} has unequipped their accessory.")
                end
              end
            end
          end
        end # command_319
      end
      
      if Marc::Queue::MSG_NAME
        alias marc_queue_addons_command_320 command_320
        def command_320 # Change Name
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            if actor != nil
              $game_map.queue.push("#{actor.name} is now known as #{@params[1]}.")
            end
          end
          marc_queue_addons_command_320
        end # command_320
      end
      
      if Marc::Queue::MSG_CLASS
        alias marc_queue_addons_command_321 command_321
        def command_321 # Change Class
          marc_queue_addons_command_321
          if $scene.is_a?(Scene_Map) and $game_switches[Marc::Queue::SWITCH]
            actor = $game_actors[@params[0]]
            new_class = $data_classes[@params[1]]
            if actor != nil and new_class != nil
              if new_class.name =~ /^[aeiou]/i
                $game_map.queue.push("#{actor.name} is now an #{new_class.name}.")
              else
                $game_map.queue.push("#{actor.name} is now a #{new_class.name}.")
              end
            end
          end
        end # command_321
      end
    end # class Game_Interpreter
    
    # ============================================================================ #
    # Spriteset_Map                                                                #
    # ---------------------------------------------------------------------------- #
    # Aliased methods: initialize, update, dispose                                 #
    # ============================================================================ #
    class Spriteset_Map
      alias marc_queue_initialize initialize
      def initialize
        marc_queue_initialize
        @queue = Marc_Queue.new(@viewport3) if $game_switches[Marc::Queue::SWITCH]
      end # initialize
      
      alias marc_queue_update update
      def update
        if $game_switches[Marc::Queue::SWITCH]
          @queue.update unless @queue.nil?
        else
          $game_map.queue.clear if $game_map.queue != nil
        end
        marc_queue_update
      end # update
      
      alias marc_queue_dispose dispose
      def dispose
        @queue.dispose unless @queue.nil?
        marc_queue_dispose
      end # dispose
    end # class Spriteset_Map
    
    # ============================================================================ #
    # Marc_Queue                                                                   #
    # ---------------------------------------------------------------------------- #
    # Methods: initialize, update, dispose                                         #
    # ============================================================================ #
    class Marc_Queue < Sprite_Base
      def initialize(viewport)
        super(viewport)
        @counter = 0
        self.opacity = 0
      end # initialize
      
      def update
        return if $game_map.queue.empty?
        $game_map.queue.uniq! if Marc::Queue::REMOVE_DUPLICATES
        if self.bitmap.nil? and @counter == 0
          self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
          self.bitmap.fill_rect(0, QUEUE_CHANGE_POS_Y, Graphics.width, 24, Marc::Queue::BACKGROUND)
          self.bitmap.font.name = Marc::Queue::FONT
          self.bitmap.draw_text(0, QUEUE_CHANGE_POS_Y, Graphics.width - 4, 24,
            $game_map.queue[0].to_s, Marc::Queue::ALIGNMENT)
          self.z = 500
        end
        if self.opacity < 255 and @counter < Marc::Queue::WAIT
          self.opacity += Marc::Queue::FADE_STEP
        end
        if @counter < Marc::Queue::WAIT
          @counter += 1
        else
          self.opacity -= Marc::Queue::FADE_STEP if self.opacity > 0
          if self.opacity <= 0
            $game_map.queue.shift
            self.bitmap = nil
            @counter = 0
          end
        end
      end # update
    end # class Marc_Queue
    Спасибо, работает)

  10. #2410
    Авторитет Аватар для Bloody
    Информация о пользователе
    Регистрация
    23.04.2008
    Сообщений
    1,523
    Записей в дневнике
    84
    Репутация: 21 Добавить или отнять репутацию

    По умолчанию

    Так, а вот стандартный файл скриптов из папки xp. Напомню, что у меня и Rekumie не отображаются цифры при функции "Ввести число..." (Однако ввести число можно, просто его не видно).

    https://dl.dropboxusercontent.com/u/...Scripts.rxdata

    Заранее спасибо за помощь.

Страница 241 из 439 ПерваяПервая ... 141191231239240241242243251291341 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •