Плохо! Плохо!:  0
Показано с 1 по 7 из 7

Тема: Advance Text Reader

  1. #1
    Познающий Аватар для 100500
    Информация о пользователе
    Регистрация
    22.05.2011
    Сообщений
    343
    Записей в дневнике
    14
    Репутация: 25 Добавить или отнять репутацию

    По умолчанию Advance Text Reader

    Advance Text Reader
    Автор: Woratana


    Описание: скрипт, позволяющий открывать в игре текстовый файл (с расширением .txt)

    Возможности:
    • настройка папки для хранения текстовых файлов
    • форматирование текста при отображении в игре(жирный, курсив, тень)


    Прочая информация: Чтобы установить скрипт, просто скопируйте код, расположенный ниже и вставьте в пустую секцию выше Main в редакторе скриптов. Инструкция по использованию и тэги для форматирования текста находятся в скрипте в виде комментариев. Комментарии переведены на русский язык.
    Текстовые файлы рекомендуется сохранять в кодировке UTF-8 (в блокноте это делается так: Файл > Сохранить как > в поле "Кодировка" выбираем UTF-8) и вызывать Текст Ридер скриптом вида $scene = Text_Reader.new("название_файла.txt"). В противном случае текст может не отображаться.

    Обратите внимание:
    • Поддерживаются файлы только с расширением .txt. Никаких doc-ов и word-ов!
    • Данный скрипт не поддерживает авто перенос строки, поэтому текстовый документ следует набирать предварительно выяснив, сколько символов помещвается в строке. Иначе текст выстроится в одну строку и уползёт за край экрана!


    Скриншот:
    Спойлер Клик!:

    Текст на скрине адаптирован под более жирный шрифт, поэтому он такой неровный


    Скрипт:
    Спойлер Код:
    PHP код:
    #==============================================================================
    # [VX] Advance Text Reader by Woratana
    #-------------------------------------------------------------------------
    # Version: 1.0
    # Released on: 16/02/2008
    # by Woratana [woratana@hotmail.com]
    #
    =begin
    ==================================
    +[
    Возможности версии 1.0]+

    ** 
    Чтобы открыть текстовый файлнужно ввызвать следующий скрипт:
    $scene Text_Reader.new("filename with file type")

    Напримересли вы хотите открыть файл "test.txt"вызовите скрипт:
    $scene Text_Reader.new("text.txt")

    Если ваш текстовый файл сохранён в кодировке UTF-8
      
    (Это мультиязычная кодировкарекомендуется использовать именно еёнужно вызвать 
      такой скрипт
    :
    $scene Text_Reader.new("название файла.txt",1)

    ** 
    Папка для хранения текстовых файлов
    Вы можете сменить папку для хранения текстов
    изменив эту строку:
    TEXT_FOLDER "название нужной папки"

    "" 
    << Если название папки не писатьтексты должны находиться в папке с игрой
    "Файлы/" << путь для папки "Папка с игрой > Файлы"
    "Data/Файлы/" 
    << путь для папки "Папка с игрой > Data > Файлы"

    ==================================
    +[
    Форматирование текста]+

    Вы можете использовать следующие опции для изменения текста:

    [
    b] << Жирный текст
    [/b] << не жирный текст

    [i] << курсив
    [/i] << не курсив

    [s] << тень у текста
    [/s] << текст без тени

    [cen] << выровнять текст по центру
    [left] << выровнять по левой стороне
    [right] << выровнять по правой стороне

    ЗаметкаНе вставляйте форматирующие тэги с противоположными эффектами
               в одной строке
    !
    Например, [bделает текст жирныма [/bделает текст обычным

    Заметка2Эффект форматирования будет применён ко всем последующим строкам,
                
    пока вы не поставите закрывающий тэг!

    [
    b]строка1
    строка2
    [/b]строка3

    строка1 и строка2 будет написано жирным текстом
    а строка3 обычным.

    ==================================
    +[
    Настройки]+

    OPEN_SPEED скоростьс которой окно Текст Ридера открывается/закрывается
    SCROLL_SPEED 
    скоростьс которой игрок проматывет окно Текст Ридера вверх/вниз

    TEXT_FOLDER 
    папка для хранения текстовых файлов
    e
    .g"Data/Файлы/Тексты" << путь для папки "Папка с игрой > Data > Файлы > Тексты"

    =end
    #===========================================================================

    class Text_Reader Scene_Base
      
      OPEN_SPEED 
    100 # скоростьоткрытия окна Текст Ридера (больше значение - выше скорость)
      
    SCROLL_SPEED # скорость прокрутки текста вверх/вниз
      
      
    TEXT_FOLDER "Texts/" # папка для хранения текстовых файлов
      
      
    def initialize(file_name,mode 0)
        @
    filename file_name
        
    @mode mode
      end
      
      def start
        super
        create_menu_background
        file 
    File.open(TEXT_FOLDER + @filename)
        @
    text = []
        for 
    i in file.readlines
          
    @text.push i.sub(/\n/) {}
        
    end
        
    if @mode == 1
          
    @text[0] = @text[0].sub(/^./m) {}
        
    end
        
    @window Window_Reader.new(@text)
      
    end
      
      def update
        
    @window.update
        
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
          
    Sound.play_cancel
          
    while @window.openness 0
            
    @window.openness -= OPEN_SPEED
            Graphics
    .update
          end
          
    @window.dispose
          $scene 
    Scene_Map.new # В этой строке можно настроить сцену, на которую
          # попадает игрок после закрытия окна Текст Ридера.
          # $scene = Scene_Map.new переносит игрока на карту
          # $scene = Scene_Item.new переносит игрока в меню выбора вещей
          # $scene = Scene_Menu.new переносит игрока в игровое меню
        
    end
        
    if Input.press?(Input::DOWN)
          @
    window.oy += SCROLL_SPEED if (@window.oy 272) < @window.contents.height
        end
        
    if Input.press?(Input::UP)
          @
    window.oy -= SCROLL_SPEED if @window.oy 0
        end
      end
      
    end


    class Window_Reader Window_Base
      attr_accessor 
    :firstline, :nowline
      
      def initialize
    (text)
        
    super(0,0,544,416)
        
    self.openness 0
        self
    .active true
        
    @firstline = @nowline 0
        
    @text text
        
    @align 0
        draw_text
      end

      def update
        
    if self.openness 255
          self
    .openness += Text_Reader::OPEN_SPEED
        end
      end

      def draw_text
        self
    .contents Bitmap.new(width 32, @text.size 24 32)
        
    line_index 0
        
    for i in 0..@text.size
          
    if !@text[i].nil?
            
    text decorate_text(@text[i])
            
    self.contents.draw_text(0line_index 24width 3224text, @align)
          
    end
          line_index 
    += 1
        end
      end
      
      
      def decorate_text
    (text)
         
    text.scan(/(\[\/b\])/)
         if $
    1.to_s != ""
           
    self.contents.font.bold false
           text
    .sub!(/\[\/b\]/) {}
         
    end
        
         a 
    text.scan(/(\[b\])/)
         if $
    1.to_s != ""
           
    self.contents.font.bold true
           text
    .sub!(/\[b\]/) {}
         
    end
        
        a 
    text.scan(/(\[\/i\])/)
         if $
    1.to_s != ""
           
    self.contents.font.italic false
           text
    .sub!(/\[\/i\]/) {}
         
    end
        
         a 
    text.scan(/(\[i\])/)
         if $
    1.to_s != ""
           
    self.contents.font.italic true
           text
    .sub!(/\[i\]/) {}
         
    end
        
         a 
    text.scan(/(\[\/s\])/)
         if $
    1.to_s != ""
           
    self.contents.font.shadow false
           text
    .sub!(/\[\/s\]/) {}
         
    end
        
         a 
    text.scan(/(\[s\])/)
         if $
    1.to_s != ""
           
    self.contents.font.shadow true
           text
    .sub!(/\[s\]/) {}
         
    end
        
         a 
    text.scan(/(\[cen\])/)
         if $
    1.to_s != ""
           
    @align 1
           text
    .sub!(/\[cen\]/) {}
         
    end
        
        a 
    text.scan(/(\[left\])/)
         if $
    1.to_s != ""
           
    @align 0
           text
    .sub!(/\[left\]/) {}
         
    end
        
        a 
    text.scan(/(\[right\])/)
         if $
    1.to_s != ""
           
    @align 2
           text
    .sub!(/\[right\]/) {}
         
    end
        
         
    return text
      end
      
    end 


    Демо: Adv Text Reader VX Demo.rar



    PS: может, оно никому не пригодится, но раз уж я зачем-то перевёл некоторые скрипты в своём проекте, то чего бы и не поделиться. Надеюсь, что такого ещё не выкладывали.
    Последний раз редактировалось 100500; 05.02.2012 в 23:48.

  2. #2
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,020
    Записей в дневнике
    3
    Репутация: 165 Добавить или отнять репутацию

    По умолчанию

    А для ХР???

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/downloads/%D0%B7%...-2010raid-full

  3. #3
    Познающий Аватар для 100500
    Информация о пользователе
    Регистрация
    22.05.2011
    Сообщений
    343
    Записей в дневнике
    14
    Репутация: 25 Добавить или отнять репутацию

    По умолчанию

    Для XP, к сожалению, подобных скриптов не встречал. Но поискать можно.

  4. #4
    Мастер Форума Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    8,279
    Записей в дневнике
    2
    Репутация: 87 Добавить или отнять репутацию

    По умолчанию

    Для xр есть и по лучше. Позже выложу, если надо.

  5. #5
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,020
    Записей в дневнике
    3
    Репутация: 165 Добавить или отнять репутацию

    По умолчанию

    Надо, надо! ))

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/downloads/%D0%B7%...-2010raid-full

  6. #6
    Авторитет Аватар для David Kristens
    Информация о пользователе
    Регистрация
    27.09.2010
    Сообщений
    1,688
    Записей в дневнике
    149
    Репутация: 66 Добавить или отнять репутацию

    По умолчанию

    Данный скрипт не поддерживает авто перенос строки, поэтому текстовый документ следует набирать предварительно выяснив, сколько символов помещвается в строке. Иначе текст выстроится в одну строку и уползёт за край экрана!
    как это жестоко с его стороны ))

  7. #7
    Познающий Аватар для 100500
    Информация о пользователе
    Регистрация
    22.05.2011
    Сообщений
    343
    Записей в дневнике
    14
    Репутация: 25 Добавить или отнять репутацию

    По умолчанию

    как это жестоко с его стороны ))
    И не говори))
    Но другого скрипта для подобных целей я не нашёл, пришлось использовать этот.
    Есть ещё крутой скрипт для создания книги, с подложкой (фоновой картинкой), страницами и возможностью отображать картинки. Если кому-нибудь понадобится, я мог бы перевести его и выложить.

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

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

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

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

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

Ваши права

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