Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Отображение под окном

Отображение под окном 7 года 4 мес. назад #95099

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 688
  • Спасибо получено: 350
Есть вот такой вот скрипт
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Проблема в том что иконки отображаются поверх обычных окон мейкера. Помогите это исправить.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95123

  • Amphilohiy
  • Amphilohiy аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 547
  • Спасибо получено: 666
  • Учитель2 место ГотвПобедитель Сбитой кодировкиОраторПрограммист Ruby
166 строчкой добавь
self.z = 200
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95124

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 688
  • Спасибо получено: 350
Нет, не помогло.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95133

  • Lipton
  • Lipton аватар
  • Вне сайта
  • Просветлённый
  • Ух ты!
  • Сообщений: 379
  • Спасибо получено: 670
  • Программист Ruby2 место Организатор конкурсов
ради интереса вставил код в чистый проект



Вроде все прекрасно работает. Или я что-то не так понял?

При входе в меню тоже не лезут вверх.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95134

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 688
  • Спасибо получено: 350
Хах? Тогда что я делаю не так? Попробовал с чистым проектом, все равно не пашет.
Последнее редактирование: 7 года 4 мес. назад от Paranoid.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95135

  • Lipton
  • Lipton аватар
  • Вне сайта
  • Просветлённый
  • Ух ты!
  • Сообщений: 379
  • Спасибо получено: 670
  • Программист Ruby2 место Организатор конкурсов
Не знаю =)

Вот вся настройка что я сделал.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95136

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 688
  • Спасибо получено: 350
Повторил, все так же над окном.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95137

  • Amphilohiy
  • Amphilohiy аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 547
  • Спасибо получено: 666
  • Учитель2 место ГотвПобедитель Сбитой кодировкиОраторПрограммист Ruby
Виноват, неправильно прочитал с утра.
Посмотрел на пустом проекте, все нормально. Попробовал сейвы - скрипт в них не умеет. Посмотрел что он делает с дата мэнеджером - поржал.
Ну тебе надо как-нибудь дать понять нам как воспроизвести баг, иначе к гадалкам.
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95138

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 688
  • Спасибо получено: 350
Я уже кинул Липтону ссылку на чистый проект с багом - yadi.sk/d/ENeVpf3vzqt3X

Я не знал что скрипт не дружит с сохранениями. Видимо придется искать другой скрипт на показ переменных.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95139

  • Amphilohiy
  • Amphilohiy аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 547
  • Спасибо получено: 666
  • Учитель2 место ГотвПобедитель Сбитой кодировкиОраторПрограммист Ruby
Оххх, ирония судьбы. С утра я прочитал что тебе надо, чтобы они были поверх окон, поэтому и фикс сделал соотвествующий. Убери эту строчку обратно.
И тогда демо заработает, но... Проблема ведь не решена, верно? Ты бы изначально и не писал.
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95141

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 688
  • Спасибо получено: 350
Оу, а мне все таки удалось заставить ее работать, поставил вместо 200, 2 и все норм.
Вот только если переменные не показываются после загрузки сохранения это создает огромную проблему.
Администратор запретил публиковать записи гостям.

Отображение под окном 7 года 4 мес. назад #95143

  • Lipton
  • Lipton аватар
  • Вне сайта
  • Просветлённый
  • Ух ты!
  • Сообщений: 379
  • Спасибо получено: 670
  • Программист Ruby2 место Организатор конкурсов
Да тоже снес z которого там вроде и не было и все заработало. =)

Приделал костыль и теперь вроде должно сохраняться в сейвы. Вынес его массив в класс который попадает в дамп. Проверил вроде загрузились и показывались. Возможно где-то еще накосячил =) Но нужно проверять.
=begin
================================================================================
 CDR - Show Variables 1.3
 -------------------------------------------------------------------------------
 Author: Ceodore
 Mail: ceodore@email.com
 https://ceodoremaker.wordpress.com
 
===============================Change log=======================================
  04/04/2013 - 1.3 release. Bug fixes and new stuff
  02/04/2013 - 1.2 release. Added font options.
  01/04/2013 - 1.1 release. Fixed a minor bug.
  01/04/2013 - 1.0 release.
 
===============================Description======================================
  This implementation is meant to provide a way display any number of variables 
  on the map.
 
=================================License========================================
  You may freely use and modify this script as long as you do not change the
  original author information. If you use this on your game, include the author
  on the credits.
 
===================================Use==========================================
  Open a Script event command and follow the instructions:
 
  Before showing a variable you need to define it's options. To do it, type
  the command:
 
  sv_options(n,x,y,icon,color,dir,icon_pos, lzeros)
  Where n is the variable number and x and y are the value position on screen.
  The other are optional, but it's nice to define, you only need to do it once
  for each variable.
 
    icon -> The icon index
    color -> the color number
    dir -> the text direction, wich can be:
                :ltr (left to right)
                :rtl (Right)
                :mid (center)
    icon_pos -> The icon position, can be :left or :right
    lzeros -> The number of leading zeroes
 
  show_variable(n)
  Shows a variable on screen as specified in sv_options()
 
  hide_variable(n)
  Hides the variable n if it's being displayed on screen.  
 
================================================================================
=end
module CDR_SV  
  # sub module containing default font options for the variable values
  module FONT
    NAME = ["VL Gothic"]
    SIZE = 22
    BOLD = true
    ITALIC = false
    SHADOW = false
  end
end
#==============================================================================
#  DataManager
#==============================================================================
SuperDataManager = DataManager.dup
module DataManager
    #--------------------------------------------------------------------------
    # * intercept: clears the variable settings list
    #--------------------------------------------------------------------------
    def self.create_game_objects
      Window_Variables.clear
      SuperDataManager.create_game_objects
    end
end
#==============================================================================
#  Game_Interpreter
#==============================================================================
class Game_Interpreter
  #--------------------------------------------------------------------------
  # * new method: displays a variable on map screen
  #--------------------------------------------------------------------------
  def sv_options(n,x,y,icon=nil,color=1,dir=:ltr,icon_pos=:left, lzeros=0)
    return unless SceneManager.scene.is_a?(Scene_Map)
    sv_window = SceneManager.scene.variables_window
    case dir
      when :ltr
        text_direction = 0
      when :mid
        text_direction = 1
      when :rtl
        text_direction = 2
     end
    sv_window.sv_options(n,x,y,icon,color,text_direction,icon_pos,lzeros)
  end
  #--------------------------------------------------------------------------
  # * new method: displays a variable on map screen
  #--------------------------------------------------------------------------
  def show_variable(n)
    return unless SceneManager.scene.is_a?(Scene_Map)
    sv_window = SceneManager.scene.variables_window
    sv_window.show_variable(n)
  end  
  #--------------------------------------------------------------------------
  # * new method: hides a displayed variable
  #--------------------------------------------------------------------------
  def hide_variable(n)
    return unless SceneManager.scene.is_a?(Scene_Map)
    sv_window = SceneManager.scene.variables_window
    sv_window.hide_variable(n)
  end
end
#==============================================================================
#  SvOptions
#==============================================================================
class SvOptions
  attr_accessor :id
  attr_accessor :x
  attr_accessor :y
  attr_accessor :text_color
  attr_accessor :x
  attr_accessor :text_direction
  attr_accessor :icon_index
  attr_accessor :icon_position
  attr_accessor :lzeros
  attr_accessor :visible
 
  #--------------------------------------------------------------------------
  # * new method: initialize
  #--------------------------------------------------------------------------
  def initialize(id,x,y,icon,color,dir,icon_pos,lzeros,visible)   
    @id = id    
    @x = x
    @y = y
    @text_color = color
    @text_direction = dir
    @icon_index = icon
    @icon_position = icon_pos
    @lzeros = lzeros
    @visible = visible    
  end
  #--------------------------------------------------------------------------
  # * new method: displays the variable on map screen
  #--------------------------------------------------------------------------
  def show
    @visible = true
  end
  #--------------------------------------------------------------------------
  # * new method: hides the variable from map screen
  #--------------------------------------------------------------------------
  def hide
    @visible = false
  end
end
 
class Game_System 
    attr_accessor :superitems
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias initialize_dhfskjdfhkjsdfhkjs11 initialize
  def initialize
    @superitems = {}
    initialize_dhfskjdfhkjsdfhkjs11
  end
 
end
 
#~ $game_system.superitems
#==============================================================================
#  Window_Variables
#==============================================================================
class Window_Variables < Window_Base  
#~   @@items = {}
  #--------------------------------------------------------------------------
  # * new method: initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, window_width, window_height)    
    self.opacity = 0
    self.visible = true
    self.z = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * new method: window_width
  #--------------------------------------------------------------------------
  def window_width
    return Graphics.width
  end
  #--------------------------------------------------------------------------
  # * new method: window_height
  #--------------------------------------------------------------------------
  def window_height
    return Graphics.height
  end
  #--------------------------------------------------------------------------
  # * new method: variable_width
  #--------------------------------------------------------------------------
  def variable_width
    return 160
  end
  #--------------------------------------------------------------------------
  # * new method: refresh
  #--------------------------------------------------------------------------
  def refresh
    contents.clear    
    $game_system.superitems.each{|k,vw| draw_item(vw) if vw.visible}
  end
  #--------------------------------------------------------------------------
  # * new method: refresh
  #--------------------------------------------------------------------------
  def draw_item(item)
    icon_x = draw_item_icon(item) unless item.icon_index.nil?
    change_color(text_color(item.text_color))
    cdr_sv_font
    x_offset = item.icon_position == :left ? 28 : 0 
    text = $game_variables[item.id].to_s.rjust(item.lzeros, '0')    
    dir = item.text_direction
    draw_text(item.x+x_offset, item.y, variable_width, line_height, text, dir)
    reset_font_settings
    change_color(normal_color)
  end
  #--------------------------------------------------------------------------
  # * new method: draw_item_icon
  #--------------------------------------------------------------------------
  def draw_item_icon(item)
    case item.icon_position
      when :left
        icon_x = item.x
      when :right
        icon_x = item.x+variable_width
    end
    draw_icon(item.icon_index, icon_x, item.y)
    return icon_x
  end
  #--------------------------------------------------------------------------
  # * new method: sets the font options as specified on CDR_SV::FONT module
  #--------------------------------------------------------------------------
  def cdr_sv_font
    contents.font.name = CDR_SV::FONT::NAME
    contents.font.size = CDR_SV::FONT::SIZE
    contents.font.bold = CDR_SV::FONT::BOLD
    contents.font.italic = CDR_SV::FONT::ITALIC
    contents.font.shadow = CDR_SV::FONT::SHADOW
  end
 
  #--------------------------------------------------------------------------
  # * new method: resets the font settings as in default font
  #--------------------------------------------------------------------------
  def reset_font_settings
    contents.font.name = Font.default_name
    contents.font.size = Font.default_size
    contents.font.bold = Font.default_bold
    contents.font.italic = Font.default_italic
    contents.font.shadow = Font.default_shadow
  end
 
  #--------------------------------------------------------------------------
  # * new method: adds a new variable_window
  #--------------------------------------------------------------------------
  def sv_options(n,x,y,icon,color,dir,icon_pos, lzeros, visible = false)    
    if !$game_system.superitems.has_key?(n)
      $game_system.superitems[n] = SvOptions.new(n,x,y,icon,color,dir,icon_pos,lzeros,visible)
    else
      $game_system.superitems[n].x = x      
      $game_system.superitems[n].y = y
      $game_system.superitems[n].icon_index = icon
      $game_system.superitems[n].text_color = color
      $game_system.superitems[n].text_direction = dir
      $game_system.superitems[n].icon_position = icon_pos
      $game_system.superitems[n].lzeros = lzeros
      $game_system.superitems[n].visible = visible
    end
  end  
 
  #--------------------------------------------------------------------------
  # * new method: adds a new variable_window
  #--------------------------------------------------------------------------
  def show_variable(n)  
    return if !$game_system.superitems.has_key?(n)
    $game_system.superitems[n].show
  end  
 
  #--------------------------------------------------------------------------
  # * new method: removes a specific variable_window
  #--------------------------------------------------------------------------
  def hide_variable(n)
    return if !$game_system.superitems.has_key?(n)
    $game_system.superitems[n].hide
  end 
 
  #--------------------------------------------------------------------------
  # * new method: clears the variable options data
  #--------------------------------------------------------------------------
  def self.clear
    $game_system.superitems = {} if $game_system != nil
  end 
end
#==============================================================================
#  Scene_map
#==============================================================================
class Scene_Map < Scene_Base
  attr_accessor :variables_window
  alias cdr_sv_start start
  def start
    cdr_sv_start
    @variables_window = Window_Variables.new
  end
 
  #--------------------------------------------------------------------------
  # * alias: updates each variable_window
  #--------------------------------------------------------------------------
  alias cdr_sv_update update
  def update
    cdr_sv_update
    @variables_window.refresh
  end
 
end

PS. Я так и не понял как изначально у тебя возникла проблема с иконкой если в изначальном состоянии оно прекрасно работало само. =)))))
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Amphilohiy, Paranoid

Отображение под окном 7 года 4 мес. назад #95145

  • Amphilohiy
  • Amphilohiy аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 547
  • Спасибо получено: 666
  • Учитель2 место ГотвПобедитель Сбитой кодировкиОраторПрограммист Ruby
Город засыпает, просыпается мафия.
Хоть проблема и решена (видимо), я не смогу пройти мимо и не сказать, что этот фикс можно сделать и попроще, добавив в конец
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Но это так... Большой необходимости искать @@items по всему коду не было :)
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Lipton, Paranoid

Отображение под окном 7 года 4 мес. назад #95147

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 688
  • Спасибо получено: 350
Взял фикс Амфи, так как боялся сломать все к черту. Все работает.
Спасибо всем большое.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.296 секунд