- 
			Equilibrium Keeper		
 
						- 
			
 
		 
		
		
		- 
			
				
					Вне сайта
				
			
		
 
				- 
			Мастер		
 
						- 
			
 		 
		
				- 
			Скриптер		
 
						- Сообщений: 119
 
							- Спасибо получено: 3
 
								- 
			
				  			
		
 
				
		- 
																				
 
		
		 
			 | 
			
				
	
		Ок, гляну, но и на твою помощь рассчитываю. (= 
 
Глянул. Собственно, так и делаю. Сейчас реализую кривинько - придется изначально прописывать в массив параметры видео, такие как, например, имя папки с кадрами. Зато можно будет давать любые названия видяхам, а не  video001, video002  и т.д.
 
Хм... а нельзя написать на руби библиотеку и подцепить ее к мейкеру? (= 
Если бы можно было пользоваться всеми возможностями руби... ^^ 
 
В общем, сделал вот так:
 RPG::DataLoadmodule RPG
  class DataLoad
    #==========================================================================
    # Кастомные базы данных
    #--------------------------------------------------------------------------
    # Видео
    #--------------------------------------------------------------------------
    # Массив, индекс которого принимается за id видео. Первый элемент - nil.
    # Каждый последующий элемент так же представляет из себя массив:
    # [0 : string]  - Собственное имя видео
    # [1 : string]  - Название папки с набором кадров, каждого кадра, без нумерации
    # [2 : integer] - Номер первого кадра
    # [3 : integer] - Количество знаков в номере кадра
    # [4] : integer - Одномерный массив, указывающий расположение видео [x, y] 
    # [5 : integer] - Оттенок изображения (0..360)
    VIDEO = [nil,
      [ Стартовое видео ,  start , 1, 4, [0, 0], 0],
    ]
    #==========================================================================
    # Метод подгружает кастомную базу данных $data_video
    def video
      $data_video    = []                  # Создаем глобальный массив
      $data_video[0] = nil                 # Первый элемент, традиционно, nil.
      for i in 1..VIDEO.size - 1           # Перебираем элементы массива VIDEO
        $data_video[i] = RPG::Video.new    # Создаем новый объект на основе RPG::Video
        $data_video[i].id = i              # В качестве id берем и записываем индекс в массиве
        $data_video[i].name = VIDEO[i][0] # Записываем имя видео
        # Записываем имя каждого кадра и подсчитываем их количество
        frame_index = VIDEO[i][2]
        path =  Graphics/Video/  + VIDEO[i][1] +  / 
        n = 0
        loop do
          counter = $EKLib.intToString(frame_index, VIDEO[i][3])
          filename = VIDEO[i][1] +  _  + counter
          if FileTest.exist?(path + filename +  .png )
            $data_video[i].frames[n] = path + filename +  .png 
          elsif FileTest.exist?(path + filename +  .jpg )
            $data_video[i].frames[n] = path + filename +  .jpg 
          else
            break
          end
          n += 1
          frame_index += 1
        end
        $data_video[i].frame_max = frame_index - 1 # Записываем количество кадров
        $data_video[i].position = VIDEO[i][4] # Записываем положение видео
        $data_video[i].video_hue = VIDEO[i][5] # Записываем оттенок видео
      end
    end
  end
end 
RPG::Videomodule RPG
  class Video
    def initialize
      @id = 0
      @name =   
      @frames = [  ]
      @frame_max = 1
      @position = [0, 0]
      @video_hue = 0
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :frames
    attr_accessor :frame_max
    attr_accessor :position
    attr_accessor :video_hue
  end
end 
EKLib#==============================================================================
# EK Lib v.1.3b
#------------------------------------------------------------------------------
# Created by: Equilibrium Keeper [[email protected]]
# Created on: 11.07.2008 23:11:45
# Отдельное спасибо: insider, Рольф
#          А так же: rpgmaker.sk6.ru, rpg-maker.info, gdsa.rpgmaker.ru
#==============================================================================
# Описание: Библиотека содержит несколько наиболее часто используемых мной
#           функций. При желании вы можете воспользоваться ими, но делайте
#           это на свой страх и риск.
#------------------------------------------------------------------------------
# Установка: В редакторе скриптов создайте чистую страницу над  Main  и
#            скопируйте туда данный скрипт.
#==============================================================================
class EKLib
 
  # Метод ворвращает фрагмент изображения.
  # filename : string   - имя файла, относительно папки проекта.
  # index    : integer - порядковый номер изображения
  # width    : integer - ширина фрагмента
  # height   : integer - высота фрагмента
  # Примечание: Счет ведется слева направо, сверху вниз.
  def getImagePartByIndex (filename, index, width, height)
    bitmap = Bitmap.new (filename)
    bitmap_result = Bitmap.new (width, height)
    n = bitmap.width / width
    x = (index * width - width) - ((index - 1) / n) * width * n
    y = ((index - 1) / n) * height
    rect = Rect.new(x, y, width, height)
    bitmap_result.blt(0, 0, bitmap, rect)
    return bitmap_result
  end
 
  # Метод преобразует целое число в строку с заданным количеством знаков.
  # number         : integer - число, которое требуется преобразовать
  # digits         : integer - количество знаков в возвращаемой строке
  # filling_symbol : string   - символ, заполняющий не достающие знаки
  def intToString (number, digits = 3, filling_symbol =  0 )
    i = number
    counter = number.to_s
    for i in number.to_s.size..digits - 1
      counter = filling_symbol + counter
      i += 1
    end
    return counter
  end
 
  # Метод построчно рисует заданный text на bitmap, перенося непомещающиеся слова
  # text         : string   - строка (длина не важна), которую требуется записать
  # bitmap       : bitmap   - изображение, на котором будем рисовать
  # width        : integer - максимальная надписи строк
  # x            : integer - Координата x начала первой строки
  # y            : integer - Координата y начала первой строки
  # stringheight : integer - Высота строки; -1 - высота будет высчитана автоматически
  # correct      : integer - Коректеровка длины строки (количество байт); +/-
  # fontsize     : integer - Размер шрифта. Используется только для вычеслений.
  def hyphenDrawText (text, bitmap, width, x = 20, y = 20, stringheight = -1, correct = 0, fontsize = bitmap.font.size)
    n = 0
    index = 0
    strings = []
    # Если высота строки не была задана, высчитываем ее исходя из размера шрифта
    if stringheight == -1 then stringheight = 24 - 0.2 * (24 - fontsize) end
    # Высчитываем примерное количество знаков на строку исходя из размера шрифта
    if fontsize   24 then const = 2 else const = 6 end
    maxchar = width / fontsize * 5 - (24 - fontsize) * const + correct
    maxchar = maxchar / 2 * 2
    # Делим строку на несколько
    while n   text.size
      # Записываем в массив фрагмент строки начиная с n байта длиной maxchar байт
      strings[index] = text[n, maxchar]
      lenght = maxchar # Временная переменная для переноса слов
      # Пока на конце строки не окажется пробела или она не закончится...
      while strings[index][lenght - 1, 1] !=     && strings[index][lenght - 1, 1] !=   
        # ...урезаем строку на один байт
        lenght -= 1
        strings[index] = strings[index][0, lenght]
      end
      n += lenght - 1 # Задаем новый начальный байт для следующей строки
      index += 1 # Переходим к следующему элементу массива
    end
    for i in 0..strings.size - 1
      # Отрезаем пробелы в начале строки
      if strings[i][0, 1] ==     then strings[i] = strings[i][1, strings[i].size] end
      # Записываем все получившиеся строки на понравившийся bitmap
      bitmap.draw_text(x, y + stringheight * i, width, stringheight, strings[i])
    end
  end
 
  # Метод рисует геометрические фигуры на заданном изображении
  # bitmap : bitmap - изображение, на котором будем рисовать
  # type   : string - тип фигуры, которую будем рисовать
  # color  : color  - цвет, который будем использовать, к примеру Color.new(255,255,255,255)
  # Прочие параметры изменяются от фигуры к фигуре - смотрим скрипт
  # Доступные типы фигур: square =  квадрат;
  def drawFigure (bitmap, type, color, param1 = 0, param2 = 0, param3 = 0, param4 = 0, param5 = 0, param6 = 0)
    case type
    when  square 
      filling = param1 # : Integral [0, 1] Будем ли заливать квадрат или оставим его пустым
      gauge   = param2 # : Integral Толщина линии, в случае заливки принципиального значения не имеет
      x       = param3 # : Integral Координата x верхнего левого угла квадрата
      y       = param4 # : Integral Координата y верхнего левого угла квадрата
      width   = param5 # : Integral Ширина квадрата
      height  = param6 # : Integral Высота квадрата
      if filling != 0
        bitmap.fill_rect(x, y, width, height, color)
      else
        bitmap.fill_rect(x, y, width, gauge, color)
        bitmap.fill_rect(x, y, gauge, height, color)
        bitmap.fill_rect(x, y + height - gauge, width, gauge, color)
        bitmap.fill_rect(x + width - gauge, y, gauge, height, color)
      end
    end
  end
 
end
В  Main вставил: $EKLib    = EKLib.new
$DataLoad = RPG::DataLoad.new 
В  Scene_Title вставил: 
Ваши комментарии. (= 
Все-таки не нравятся мне эти массивы-константы...  _  Хотелось бы просто перебрать файлы\папки и автоматом все записать... -_-	  
 
			  |