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 = 5 # скорость прокрутки текста вверх/вниз
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(0, line_index * 24, width - 32, 24, text, @align)
end
line_index += 1
end
end
def decorate_text(text)
a = 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
Социальные закладки