Скрипт биографии героя. Это дополнительная страница в Статистике героя. Активируется она нажатием клавишы пробел в статистике героя.
#==============================================================
# Скрипт биографии Версия 1.2 by Claimh
# Преведен gromdron ом
# Дополнен by ItalianStal1ion (добовление коментариев на английском)
#------------------------------------------------------------------------------
# Скрипт отображает биографию героя в специальном окне.
# Для того чтобы посмотреть статистику войдите в меню\сттистика,
# выберите героя и нажмите 2 раза пробел. Вы увидите биографию героя.
# По умолчанию статистика: Имя, Возраст, Откуда, Высота и вес, но вы можете
# добавить функции. Вы также можете изменять цвет текста.
#
# Ревизия от ItalianStal1ion s:
# Теперьу вас есть 7 страк для описания героя, добавлены новые функции:
# Тип крови, Пол, Специльность, и Раса. Так же отображается класс героя.
# Добавлен FAQ
#
# Экстра
# Для вызова этого окна в другое время :
# Найдите строку 335, И прочитайте комментарии там.
# вызов осуществляется кодом $scene = Scene_Charactor.new
#==============================================================
#----------------------------------------------------------------------------
# Начнем
#----------------------------------------------------------------------------
# Это клваша вызова биоса.
CHENGE_KEY = Input::C
#--------------------------------------------------------------------------
# Это поле обозначает возраст героя. Тут есть 8 полей, для 8 героев
# но вы можете добавить еще. Замените Возраст героя на возраст героя
# первое поле - возраст 1 героя, второе - второго и т.д.
#--------------------------------------------------------------------------
CHARA_AGE = [ Возраст героя , Возраст героя , Возраст героя , Возраст героя , Возраст героя , Возраст героя , Возраст героя , Возраст героя ]
#--------------------------------------------------------------------------
# Это поле обозначает откуда герой родом.
#--------------------------------------------------------------------------
CHARA_FROM = [ Страна или место откуда герой , Страна или место откуда герой , Страна или место откуда герой , Страна или место откуда герой , Страна или место откуда герой , Страна или место откуда герой , Страна или место откуда герой , Страна или место откуда герой ]
#--------------------------------------------------------------------------
# Поле находящиеся ниже обозначает рост героя. Замените Рост героя на количество лет в ковычках.
#--------------------------------------------------------------------------
CHARA_H = Рост героя , Рост героя , Рост героя , Рост героя , Рост героя , Рост героя , Рост героя ]
#--------------------------------------------------------------------------
# This is character s weight by default.
#--------------------------------------------------------------------------
CHARA_W = [ Вес героя , Вес героя , Вес героя , Вес героя , Вес героя , Вес героя , Вес героя , Вес героя ]
#--------------------------------------------------------------------------
# Это поле обозначает расу героя. Замените раса героя на расу героя в ковычках
#--------------------------------------------------------------------------
CHARA_R = [ раса героя , раса героя , раса героя , раса героя , раса героя , раса героя , раса героя , раса героя ]
#--------------------------------------------------------------------------
# Поле ниже обозначает тип крови героя
#--------------------------------------------------------------------------
CHARA_B = [ Группа крови героя , Группа крови героя , Группа крови героя , Группа крови героя , Группа крови героя , Группа крови героя , Группа крови героя , Группа крови героя ]
#--------------------------------------------------------------------------
# Поле ниже обозначает специальность героя
#--------------------------------------------------------------------------
CHARA_S = [ Специальность героя , Специальность героя , Специальность героя , Специальность героя , Специальность героя , Специаьность героя , Специаьность героя , Специаьность героя ]
#--------------------------------------------------------------------------
# Поле ниже обозначает пол героя
#--------------------------------------------------------------------------
CHARA_G = [ Пол героя , Пол героя , Пол героя , Пол героя , Пол героя , Пол героя , Пол героя , Пол героя ]
#--------------------------------------------------------------------------
# Ниже приведены строки из биографии героя. Вы можете добовлять новые строки
# L1, L2, L3, L4, L5, L6, и L7 будут записаны в строки 1, 2, 3, 4, 5, 6 и 7 соответственно.
# Для добовления строки создайте новую строчку Например L8 и в L_SET1 допишите , L8
# Так же вы можете добовлять биографию другим героям например герою 9.
# Для этого необходимо создать новые строчки после L_SET8.
# а заканчивать эти строки должен L_SET9 = [L1, L2, L3, L4, L5, L6, L7]
#--------------------------------------------------------------------------
# Описание героя 1 (вместо поисания указаны номера строчек)
L1 = 1
L2 = 2
L3 = 3
L4 = 4
L5 = 5
L6 = 6
L7 = 7
L_SET1 = [L1, L2, L3, L4, L5, L6, L7] # Все строчки были записаны в группу 1
# Описание героя 2 (вместо поисания указаны номера строчек)
L1 = 1
L2 = 2
L3 = 3
L4 = 4
L5 = 5
L6 = 6
L7 = 7
L_SET2 = [L1, L2, L3, L4, L5, L6, L7]
# Описание героя 3 (вместо поисания указаны номера строчек)
L1 = 1
L2 = 2
L3 = 3
L4 = 4
L5 = 5
L6 = 6
L7 = 7
L_SET3 = [L1, L2, L3, L4, L5, L6, L7]
# Описание героя 4 (вместо поисания указаны номера строчек)
L1 = 1
L2 = 2
L3 = 3
L4 = 4
L5 = 5
L6 = 6
L7 = 7
L_SET4 = [L1, L2, L3, L4, L5, L6, L7]
# Описание героя 5 (вместо поисания указаны номера строчек)
L1 = 1
L2 = 2
L3 = 3
L4 = 4
L5 = 5
L6 = 6
L7 = 7
L_SET5 = [L1, L2, L3, L4, L5, L6, L7]
# Описание героя 6 (вместо поисания указаны номера строчек)
L1 = 1
L2 = 2
L3 = 3
L4 = 4
L5 = 5
L6 = 6
L7 = 7
L_SET6 = [L1, L2, L3, L4, L5, L6, L7]
# Описание героя 7 (вместо поисания указаны номера строчек)
L1 = 1
L2 = 2
L3 = 3
L4 = 4
L5 = 5
L6 = 6
L7 = 7
L_SET7 = [L1, L2, L3, L4, L5, L6, L7]
# Описание героя 8 (вместо поисания указаны номера строчек)
L1 = 1
L2 = 2
L3 = 3
L4 = 4
L5 = 5
L6 = 6
L7 = 7
L_SET8 = [L1, L2, L3, L4, L5, L6, L7]
# Далеевы можете добавить еще биографии геоев
CHARA_INFO = [L_SET1,L_SET2,L_SET3,L_SET4,L_SET5,L_SET6,L_SET7,L_SET8]
# в строчку выше вы можете добавить код ,L_SET9...,L_SETn
#----------------------------------------------------------------------------
# Все, дальше код
#----------------------------------------------------------------------------
#==============================================================
# Window_Charactor
#==============================================================
class Window_Charactor Window_Base
def initialize(actor)
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@actor = actor
refresh
end
def refresh
self.contents.clear
draw_battler_graphics(@actor, 140, 225) # Показывает battle графику
self.contents.font.color.set(250, 0, 0) # Цвет текста. Устонавливается (красный, зеленый, синий)
self.contents.draw_text(250, 10, 80, 32, Имя: )
self.contents.draw_text(250, 50, 80, 32, Возраст: )
self.contents.draw_text(250, 90, 80, 32, Откуда: )
self.contents.draw_text(250, 130, 80, 32, Рост: )
self.contents.draw_text(250, 170, 80, 32, Вес: )
self.contents.draw_text(250, 210, 80, 32, Раса: )
self.contents.draw_text(420, 50, 90, 32, Тип крови: )
self.contents.draw_text(420, 130, 100, 32, Специальнось: )
self.contents.draw_text(420, 170, 100, 32, Пол: )
self.contents.font.color = normal_color # Возвращение текста обратно
draw_actor_class(@actor, 520, 10)
draw_actor_name(@actor, 340, 10)
# Написаие переменнх для данных
draw_actor_age(@actor, 340, 50)
draw_actor_from(@actor, 340, 90)
draw_actor_height(@actor, 340, 130)
draw_actor_weight(@actor, 340, 170)
draw_actor_race(@actor, 340, 210)
draw_actor_bloodtype(@actor, 520, 50)
draw_actor_specialty(@actor, 520, 130)
draw_actor_gender(@actor, 520, 170)
draw_actor_other(@actor, 50, 250)
end
end
class Window_Base Window
#--------------------------------------------------------------------------
# Выводит изображение
#--------------------------------------------------------------------------
def draw_battler_graphics(actor, x, y)
battler=RPG::Cache.battler(actor.battler_name, actor.battler_hue) # устонавливает каке изображение выводить
w = battler.width
h = battler.height
self.contents.blt(x-w/2, y-h, battler, Rect.new(0, 0, w,h))
end
#--------------------------------------------------------------------------
# Выводит возраст
#--------------------------------------------------------------------------
def draw_actor_age(actor, x, y)
self.contents.draw_text(x, y, 80, 32, CHARA_AGE[actor.id-1])
end
#--------------------------------------------------------------------------
# Выводит поле Откуда герой родом
#--------------------------------------------------------------------------
def draw_actor_from(actor, x, y)
self.contents.draw_text(x, y, 280, 32, CHARA_FROM[actor.id-1])
end
#--------------------------------------------------------------------------
# Выводит рост героя
#--------------------------------------------------------------------------
def draw_actor_height(actor, x, y)
self.contents.draw_text(x, y , 80, 32, CHARA_H[actor.id-1])
end
#--------------------------------------------------------------------------
# Выводит вес героя
#--------------------------------------------------------------------------
def draw_actor_weight(actor, x, y)
self.contents.draw_text(x, y, 80, 32, CHARA_W[actor.id-1])
end
#--------------------------------------------------------------------------
# Выводит расу героя
#--------------------------------------------------------------------------
def draw_actor_race(actor, x, y)
self.contents.draw_text(x, y, 280, 32, CHARA_R[actor.id-1])
end
#--------------------------------------------------------------------------
# Выводит тип крови героя
#--------------------------------------------------------------------------
def draw_actor_bloodtype(actor, x, y)
self.contents.draw_text(x, y, 100, 32, CHARA_B[actor.id-1])
end
#--------------------------------------------------------------------------
# выводит специальность героя
#--------------------------------------------------------------------------
def draw_actor_specialty(actor, x, y)
self.contents.draw_text(x, y, 100, 32, CHARA_S[actor.id-1])
end
#--------------------------------------------------------------------------
# выводит пол героя
#--------------------------------------------------------------------------
def draw_actor_gender(actor, x, y)
self.contents.draw_text(x, y, 100, 32, CHARA_G[actor.id-1])
end
#--------------------------------------------------------------------------
# выводит биографию героя - начинает с строки 0
#--------------------------------------------------------------------------
def draw_actor_other(actor, x, y)
info = CHARA_INFO[actor.id-1]
self.contents.draw_text(x, y, 600, 32, info[0])
self.contents.draw_text(x, y+28, 600, 32, info[1])
self.contents.draw_text(x, y+56, 600, 32, info[2])
self.contents.draw_text(x, y+84, 600, 32, info[3])
self.contents.draw_text(x, y+112, 600, 32, info[4])
self.contents.draw_text(x, y+140, 600, 32, info[5])
self.contents.draw_text(x, y+168, 600, 32, info[6])
end
end
#=============================================================
# Scene_Charactor
#=============================================================
class Scene_Charactor
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
end
def main
@actor = $game_party.actors[@actor_index]
@status_window = Window_Charactor.new(@actor)
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@status_window.dispose
end
#--------------------------------------------------------------------------
# Проверяет нажата ли клавиша; если R нажата показывает биографию следующего героя
#--------------------------------------------------------------------------
def update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(3)
return
end
if Input.trigger?(Input::R)
$game_system.se_play($data_system.cursor_se)
@actor_index += 1
@actor_index %= $game_party.actors.size
$scene = Scene_Charactor.new(@actor_index)
return
end
if Input.trigger?(Input::L)
$game_system.se_play($data_system.cursor_se)
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
$scene = Scene_Charactor.new(@actor_index)
return
end
end
end
#===============================================================
# Scene_Status
#===============================================================
class Scene_Status
alias update_chara update
def update
if Input.trigger?(CHENGE_KEY)
$game_system.se_play($data_system.decision_se)
$scene = Scene_Charactor.new(@actor_index)
return
end
update_chara
end
end
# Стоп
=begin FAQ
1) не работает с CBS by Claimh! Как обойти этот баг?
если вы используете CBS like Cybersam s, ccoa s or Advocate s, вы должны сделать следующее:
battler=RPG::Cache.battler(actor.battler_name, actor.battler_hue)
заменить на:
battler=RPG::Cache.battler( Battlecharacters/ + actor.name, actor.character_hue)
это осздаст директорию battlers, Battlecharacters и поместит графику отваших персонажей туда.
(Спасибо Diego за это решение бага!)
Изменение шрифта:
Есть проблема с шрифтом?
Charas Bios 107 Type Error
no implicit conversion from nil to integer
Идите в скрипт main и посл фразы begin, вставляйте слдующие строки:
$fontface = $fonttype = $defaultfontface = $defaultfonttype = [font]
$fontsize = $defaultfontsize = [size]
Какдобавить собственные поля!
1) Семь это не предел! Как сделать больше?
Хоошо, для начало надо заполнить7. Я покажу на примере как это сделать: возьмите стрку семь и скопируйте ее
дальше просто поменяйте текст и номер. У нас получилось L8 = текст
и эту строку необходимо вставить после L7 = текст , это будет выглядеть так:
L7 = текст
L8 = текст
Если у вас 8 полос, а код имеет только 7 то делате следующее:
L_SET1 = [L1, L2, L3, L4, L5, L6, L7]
Теперь необходимо добавить строку в общий текст, и код примет такой вид: L_SET1 = [L1, L2, L3, L4, L5, L6, L7, L8]
(вместо L_SET1 можно взять любого героя)
Теперь, нам необходимо отобразить нашу стоку. Ниже кода:
info = CHARA_INFO[actor.id-1]
self.contents.draw_text(x, y, 600, 32, info[0])
self.contents.draw_text(x, y+28, 600, 32, info[1])
self.contents.draw_text(x, y+56, 600, 32, info[2])
self.contents.draw_text(x, y+84, 600, 32, info[3])
self.contents.draw_text(x, y+112, 600, 32, info[4])
self.contents.draw_text(x, y+140, 600, 32, info[5])
self.contents.draw_text(x, y+168, 600, 32, info[6])
Добавьте следующую строку: self.contents.draw_text(x, y+168, 600, 32, info[7])
Примчание лично от gromdron вместо 7 в info[7] вы встявляете номер строки например строки 8
это будет выглядеть так self.contents.draw_text(x, y+168, 600, 32, info[8])
=end