Простите, немного не понимаю. Файл скриптов - какой конкретно? Скрипты, которые новые (добавляю в игру) или какие-то из стандартных? Или что-то другое?
Простите, немного не понимаю. Файл скриптов - какой конкретно? Скрипты, которые новые (добавляю в игру) или какие-то из стандартных? Или что-то другое?
в папке нового проекта, есть папка data, в ней есть файл Scripts (например в асе имеет расширение *.rvdata2, как в хр не помню)
Мне нужна помощь. Есть такой скрипт Message Queue v1.0:
Он выводит разные тексты на выбор. Я тут туплю немного и не понимаю, как передвинуть место появления текста по оси 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 # # ============================================================================ # 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
если только сам текст, то вот
self.bitmap.draw_text(0, 0, Graphics.width - 4, 24,
$game_map.queue[0].to_s, Marc::Queue::ALIGNMENT)
жирный ноль это координата у
ps: я конечно не тру, но вроде правильно указал
Обычно координаты записывают как (x1,y1,x2,y2), так что в этой строчке не только 0, но и 24 надо изменить на что-то там, что надо. Пробуй, Блади. -)
Я знаю, как лучше.
эм, там идет (х, y, ширина, высота, текст, выравнивание)
Да я уже эти x, y столько раз менял, но ничего не получается, либо тупо сверху, либо нижнюю половину букв не видно, либо вообще не видно букв. Все утро бился - но так ничего и не понял.
Последний раз редактировалось Bloody; 14.10.2014 в 19:36.
Держи, допилил. Можешь установить Y с помощью QUEUE_CHANGE_POS_Y, которая под шапкой. Там просто вьювпорт надо было увеличить.
Спойлер Скрипт:
Последний раз редактировалось dirge; 14.10.2014 в 20:30.
Так, а вот стандартный файл скриптов из папки xp. Напомню, что у меня и Rekumie не отображаются цифры при функции "Ввести число..." (Однако ввести число можно, просто его не видно).
https://dl.dropboxusercontent.com/u/...Scripts.rxdata
Заранее спасибо за помощь.
Эту тему просматривают: 33 (пользователей: 0 , гостей: 33)
Социальные закладки