- Сообщений: 727
- Спасибо получено: 124
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
Нужна помощь - вам сюда!
15 года 7 мес. назад #35878
от mephis
→ → ↓ ↑ Y
mephis ответил в теме Нужна помощь - вам сюда!
CapeH, в этой демке всё показано:
www.mediafire.com/?pcd0ldcogiz
→ → ↓ ↑ Y
Спасибо сказали: CapeH
Тема заблокирована.
15 года 7 мес. назад #35880
от CapeH
CapeH ответил в теме Нужна помощь - вам сюда!
Спасибо разобрался
Тема заблокирована.
- Hikaru Miharu
- Не в сети
- Заблокирован
-
Скрыть
Больше
- Сообщений: 20
- Спасибо получено: 3
15 года 7 мес. назад #36049
от Hikaru Miharu
Hikaru Miharu ответил в теме Нужна помощь - вам сюда!
Можно ли, используя RPG Maker 2000, не используя внешние сценарии, не изменяя код самой программы, создать игру, в которой: во время битвы видны герои, вне битвы можно переключаться между группами героев?
Тема заблокирована.
15 года 7 мес. назад #36050
от James
James ответил в теме Нужна помощь - вам сюда!
Мне кажется, только если сделать боёвку на эвентах. Например, при энкаунтере (который организуется банально - столкновением с эвентом монстра) либо переход на другую локацию (Предварительно запомнив его место на карте), либо организовать всё прямо на месте - что сложнее.
Использовать предварительно нарисованные картинки и несколько параллельных эвентов. Один отслеживает нажатия клавиш, другой - отображение баттлеров, третий - отображение меню и всяких Active Time Battle, остальные - по надобности.
Это сделать не очень просто, но иногда на эвентах делали довольно неплохие боёвки.
Использовать предварительно нарисованные картинки и несколько параллельных эвентов. Один отслеживает нажатия клавиш, другой - отображение баттлеров, третий - отображение меню и всяких Active Time Battle, остальные - по надобности.
Это сделать не очень просто, но иногда на эвентах делали довольно неплохие боёвки.
Тема заблокирована.
- Hikaru Miharu
- Не в сети
- Заблокирован
-
Скрыть
Больше
- Сообщений: 20
- Спасибо получено: 3
15 года 7 мес. назад #36051
от Hikaru Miharu
Hikaru Miharu ответил в теме Нужна помощь - вам сюда!
Спасибо, James.
Попробую чего-нибудь натворить.
Попробую чего-нибудь натворить.
Тема заблокирована.
15 года 7 мес. назад #36073
от CapeH
CapeH ответил в теме Нужна помощь - вам сюда!
Тема заблокирована.
- Dr. Nick To
-
- Не в сети
- Живу я здесь
-
Скрыть
Больше
- Сообщений: 2158
- Спасибо получено: 24
15 года 7 мес. назад #36075
от Dr. Nick To
На седьмом столбе мудрости дома клана Тайра в Эдо написано: Каждый, кто не понимает разницу между небрежностью и качеством, старанием и поспешностью, - достоин сожаления.
Dr. Nick To ответил в теме Нужна помощь - вам сюда!
Вставляй через менеджер материалов (кнопка в мейкере рядом с базой). Там явно прописана папка Graphic/Pictures.
На седьмом столбе мудрости дома клана Тайра в Эдо написано: Каждый, кто не понимает разницу между небрежностью и качеством, старанием и поспешностью, - достоин сожаления.
Тема заблокирована.
15 года 7 мес. назад - 15 года 7 мес. назад #36102
от D.kun
D.kun ответил в теме Нужна помощь - вам сюда!
Вечер добрый академия!
С мейкером познакомился сравнительно недавно, и вот хотелось бы поинтересоваться, как можно сделать боевку наподобие FF 1/2, чтобы вид сбоку во время сражений был и персонажей собственно было видно.
Вопрос наверно уже не раз задавался, но все же было бы славно если бы кто-нибудь обьяснил.
С мейкером познакомился сравнительно недавно, и вот хотелось бы поинтересоваться, как можно сделать боевку наподобие FF 1/2, чтобы вид сбоку во время сражений был и персонажей собственно было видно.
Вопрос наверно уже не раз задавался, но все же было бы славно если бы кто-нибудь обьяснил.
Последнее редактирование: 15 года 7 мес. назад пользователем D.kun.
Тема заблокирована.
15 года 7 мес. назад #36103
от Sn@ke
"Люди, Ангелы, Демоны... Есть ли между ними разница? Я не согласен с теми, кто утверждает, что Демоны - это абсолютное зло. Бывают Люди, гораздо хуже Демонов.И бывают Демоны куда более великодушные, чем Ангелы. Важно не то, кто ты, а то, кем ты хочешь быть..."
- Найн, Высший Демон -
Dark Arts - The Wings of Angel
Sn@ke ответил в теме Нужна помощь - вам сюда!
Если это ХР - то боевка "CTB by Charlie Fleed"
Она по-моему, есть в файловом архиве
Она по-моему, есть в файловом архиве
"Люди, Ангелы, Демоны... Есть ли между ними разница? Я не согласен с теми, кто утверждает, что Демоны - это абсолютное зло. Бывают Люди, гораздо хуже Демонов.И бывают Демоны куда более великодушные, чем Ангелы. Важно не то, кто ты, а то, кем ты хочешь быть..."
- Найн, Высший Демон -
Dark Arts - The Wings of Angel
Тема заблокирована.
15 года 7 мес. назад #36112
от D.kun
D.kun ответил в теме Нужна помощь - вам сюда!
Хм что-то не нашел..но все равно спасибо!
А измененный скрипт боевой системы непосредственно в мейкер надо будет скопировать или как?
А измененный скрипт боевой системы непосредственно в мейкер надо будет скопировать или как?
Тема заблокирована.
- Agckuu_Coceg
-
- Не в сети
- Живу я здесь
-
- Простой Гинтокист с огромной внутренней ленью.
Скрыть
Больше
- Сообщений: 1549
- Спасибо получено: 329
15 года 7 мес. назад #36114
от Agckuu_Coceg
Agckuu_Coceg ответил в теме Нужна помощь - вам сюда!
Есть такой раздел: Script Editor, или редактор скриптов. Туда и пихаешь новые скрипты боевой системы. Так же оттуда порой нужно брать ресурся для боевой и ивент-системы, если они необходимы.
А боёвка CTB - вот тебе архивчик. Разберёшься, думаю.
ССЫЛКА
А боёвка CTB - вот тебе архивчик. Разберёшься, думаю.
ССЫЛКА
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Тема заблокирована.
15 года 7 мес. назад - 15 года 7 мес. назад #36135
от D.kun
D.kun ответил в теме Нужна помощь - вам сюда!
О благодарю!
А вот сразу спрошу, данная боевка с VX совместима?
То есь если я правильно понял, скачав CTB я просто в скрипт эдитор копипастю готовый скрипт, и все?
А вот сразу спрошу, данная боевка с VX совместима?
То есь если я правильно понял, скачав CTB я просто в скрипт эдитор копипастю готовый скрипт, и все?
Последнее редактирование: 15 года 7 мес. назад пользователем D.kun.
Тема заблокирована.
- Agckuu_Coceg
-
- Не в сети
- Живу я здесь
-
- Простой Гинтокист с огромной внутренней ленью.
Скрыть
Больше
- Сообщений: 1549
- Спасибо получено: 329
15 года 7 мес. назад #36157
от Agckuu_Coceg
Agckuu_Coceg ответил в теме Нужна помощь - вам сюда!
Не, с VX она несовместима, это на XP. Сразу надо было говорить - на XP или на VX...
Ну, да. Скрипт надо просто копипастить. Но для него иногда требуются ресурсы, их можно скопипастить с папки в демо.
Ну, да. Скрипт надо просто копипастить. Но для него иногда требуются ресурсы, их можно скопипастить с папки в демо.
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Тема заблокирована.
15 года 7 мес. назад - 15 года 7 мес. назад #36182
от D.kun
D.kun ответил в теме Нужна помощь - вам сюда!
Ну чтож, теперь у меня сразу появился вопрос о создании анимированных монстров и персов во время битвы.Нужно засунуть все позы того или иного персонажа в одну картинку, я так понимаю?Есть ли какой то порядок их постановки, или рисуешь разные движения человечка, рандомно соединяешь в одно изображение и импортируешь в мукер, усе?
Последнее редактирование: 15 года 7 мес. назад пользователем D.kun.
Тема заблокирована.
15 года 7 мес. назад #36217
от Kouta555
Kouta555 ответил в теме Нужна помощь - вам сюда!
При попытке начать тест битвы выскакивает ошибка
Script CBS Sprite_Battler line 354: RGSSErroe occured failed to create bitmap
Вот скрипт начинающийся со строчки 354
Как это вылечить?
Script CBS Sprite_Battler line 354: RGSSErroe occured failed to create bitmap
Вот скрипт начинающийся со строчки 354
ВНИМАНИЕ: Спойлер!
@sprite_sheet = Bitmap.new(width, height)
mark = 0
for i in 0..bitmaps.size
if bitmaps != nil
if $USING_VISIBLE_WEAPONS and @game_actor
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
@sprite_sheet.blt(0, mark, weapon_bitmaps, weapon_bitmaps.rect)
else
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
end
end
mark += @frame_height
end
end
end
mark = 0
for i in 0..bitmaps.size
if bitmaps != nil
if $USING_VISIBLE_WEAPONS and @game_actor
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
@sprite_sheet.blt(0, mark, weapon_bitmaps, weapon_bitmaps.rect)
else
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
end
end
mark += @frame_height
end
end
end
Как это вылечить?
Тема заблокирована.
- Narcotic Truth
-
- Не в сети
- Забанен
-
Скрыть
Больше
- Сообщений: 24
- Спасибо получено: 1
15 года 7 мес. назад #36218
от Narcotic Truth
За отсутствием телепатических способностей, хотелось бы уточнить детали:
1. Какой мейкер?
2. Что за боёвка?
3. Можно ли весь код?
4. Или лучше демку кинь, чтоб можно было покапаться.
Narcotic Truth ответил в теме Нужна помощь - вам сюда!
Kouta555 пишет: При попытке начать тест битвы выскакивает ошибка
Script CBS Sprite_Battler line 354: RGSSErroe occured failed to create bitmap
Вот скрипт начинающийся со строчки 354
ВНИМАНИЕ: Спойлер!@sprite_sheet = Bitmap.new(width, height)
mark = 0
for i in 0..bitmaps.size
if bitmaps != nil
if $USING_VISIBLE_WEAPONS and @game_actor
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
@sprite_sheet.blt(0, mark, weapon_bitmaps, weapon_bitmaps.rect)
else
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
end
end
mark += @frame_height
end
end
end
Как это вылечить?
За отсутствием телепатических способностей, хотелось бы уточнить детали:
1. Какой мейкер?
2. Что за боёвка?
3. Можно ли весь код?
4. Или лучше демку кинь, чтоб можно было покапаться.
Тема заблокирована.
- SaretOdin-Sol
-
- Не в сети
- Давно я тут
-
- Жизнь - не игра...Хотя кого это колышет?
Скрыть
Больше
- Сообщений: 475
- Спасибо получено: 77
15 года 7 мес. назад #36220
от SaretOdin-Sol
SaretOdin-Sol ответил в теме Нужна помощь - вам сюда!
Нужна помощь скриптера. Вот скрипт для VX:
Суть скрипта - чтение книг. Скрипт использует стандартный фонт. Так вот, как подредактировать данный скрипт, чтобы он использовал другой шрифт, к примеру, Tahoma?
ВНИМАНИЕ: Спойлер!
# =============================================================================
# Simple ReadBooks Scene
# Version: 1.0
# Author: Omegas7
# omegadev.biz or omegas7.blogspot.com
#
# Creates a book that may be called through an event script call.
#
# FEATURES:
# > 1.0
# > Independent book graphic for each book.
# > Book sound effect.
# > Unlimited books and pages allowed.
# > Window telling the pages you are on.
# > Displays two pages simulateously.
# > Use script call for opening a book.
# > Display pictures (also unlimited)
# > Book title window.
#
# USAGE: Adding a book to your database.
#
# This is the basic code template for your book, which is placed below:
# Titles[ID] = "My Title"
# Pages[ID][PageNumber] = ["So this is this is a page." , "This is the second line"]
# Graphics[ID] = "Graphic file name for book located in Pictures folder"
# Sounds[ID] = "Sound file name for book located in Audio/SE/ folder"
#
# Where ID is the ID number of the book in this script. Note that the
# first book is 0, then the other is 1, then 2, and so on...
# Let's say you want your book's first page to have three lines of text:
# Pages[ID][0] = ["First line" , "Second line", "Third line"]
# That 0 means the first page. It is an array with three strings.
# What if I want to make two pages? Well, put
# Pages[ID][1] = ["This is the second page!!"]
# Note the 1 there. It means second page.
# Remember that each line is inside quotes " " and separated by a comma.
# See examples in demo!
#
# ADDING PICTURES:
#
# All your pictures for books must be in Graphics/Pictures/ folder.
# If a book needs a picture (let's say, book ID 5), on page 4, we put this line:
# Pictures[5][4] = [ ]
# X and Y and screen coordinates.
# When thinking on X and Y, always think the page will be the left one.
# If the page is the second one (right half of the screen), the script should
# move the image automatically.
#
# OPENING A BOOK:
#
# Use the event script call command, and type:
# $scene = ReadBook.new(ID)
# Where ID is the ID number of the book in the script.
#
# IMPORTANT:
# When you add/remove a book, remember to update the
# HOW_MANY_BOOKS_EXIST
# number below.
# =============================================================================
module OmegaX
module ReadBookData
HOW_MANY_BOOKS_EXIST = 4 # Please update when you add a book
Titles = [] # <- Don't edit
Pages = [] # <- Don't edit
Graphics = [] # <- Don't edit
Sounds = [] # <- Don't edit
Pictures = [] # <- Don't edit
for i in 0...HOW_MANY_BOOKS_EXIST
Pages = []
Pictures = []
end # <- Don't edit
# PUT BOOK DATA BELOW HERE
Titles[0] = "Stupid's guide to glory"
Pages[0][0] = ["So you're reading this",
"because you're an idiot.","Well, this book with teach","you the path to glory!!"]
Pages[0][1] = ["First of all, you will need","lots of gold! How?",
"Very easy! Just go into an","epic quest and kill 200","dragons!!!"]
Pages[0][2] = ["Good! Now that you have","lots of money, you can",
"now go and buy your very","own castle in middle of",
"town! You will get lots of","respect! You are now","GLORIOUS!!","","End."]
Graphics[0] = "Book01"
Sounds[0] = "Book"
Titles[1] = "The one-page book"
Pages[1][0] = ["That's right, people!","this book only has ONE",
"PAGE!! BUT it is SUPER","heavy!! It is all thanks",
"to our new paper","compression system! Now",
"500 trees fit in one single","and compact book!","Umm... yeah. That's all."]
Graphics[1] = "Book01"
Sounds[1] = "Book"
Titles[2] = "Lots of pages book"
Pages[2][0] = ["Welcome to this test!","I will test a lot of","pages!"]
Pages[2][1] = ["This is page 2."]
Pages[2][2] = ["Page 3..."]
Pages[2][3] = ["This is the awesome","page 4!!"]
Pages[2][4] = ["This is page 5.","","END!"]
Graphics[2] = "Book01"
Sounds[2] = "Book"
Titles[3] = "The monster book"
Pages[3][0] = ["Below you can see a","terrible monster:"]
Pages[3][1] = ["And again:"]
Pages[3][2] = ["And again, but twice:"]
Graphics[3] = "Book01"
Sounds[3] = "Book"
Pictures[3][0] = [ ]
Pictures[3][1] = [ ]
Pictures[3][2] = [ , ]
end
end
class ReadBook < Scene_Base
include OmegaX::ReadBookData
def initialize(id)
@id = id
@page = 0
end
def start
create_menu_background
Audio.se_play("Audio/SE/#{Sounds[@id]}")
@title = Window_Base.new(0,0,544,50)
@title.contents.font.size = 16
@title.contents.draw_text(0,0,500,17,"Вы читаете: #{Titles[@id]}")
@title.z = 500
@graphic = Sprite_Base.new
@graphic.bitmap = Cache.picture(Graphics[@id].to_s)
@graphic.z = 500
@page1 = Window_Base.new(72,70,210,250)
@page2 = Window_Base.new(272,70,210,250)
@page1.contents.font.size = @page2.contents.font.size = 18
@page1.z = @page2.z = 501
@page1.opacity = @page2.opacity = 0
@info = Window_Base.new(100,416 - 50,344,50)
@info.contents.font.size = 14
@info.z = 500
@pictures = []
draw_pages
end
def update
if Input.trigger?(Input::
finish
end
if Input.trigger?(Input::RIGHT)
if Pages[@id].size > 1
if @page + 2 < Pages[@id].size
Audio.se_play("Audio/SE/#{Sounds[@id]}")
@page += 1
draw_pages
end
end
end
if Input.trigger?(Input::LEFT)
if Pages[@id].size > 1
if @page >= 1
Audio.se_play("Audio/SE/#{Sounds[@id]}")
@page -= 1
draw_pages
end
end
end
end
def draw_pages
for i in 0...@pictures.size
@pictures.dispose
@pictures = nil
end
@pictures.compact!
@page1.contents.clear
@page2.contents.clear
reading = []
if Pages[@id][@page] != nil
for i in 0...Pages[@id][@page].size
@page1.contents.draw_text(0,i * 17,205,18,Pages[@id][@page].to_s)
end
if @page + 1 == 0
reading[0] = Pages[@id].size
else
reading[0] = @page + 1
end
if Pictures[@id][@page] != nil
for i in 0...Pictures[@id][@page].size
@pictures.push(Sprite_Base.new)
x = @pictures.size - 1
@pictures[x].bitmap = Cache.picture(Pictures[@id][@page][0])
@pictures[x].x = Pictures[@id][@page][1]
@pictures[x].y = Pictures[@id][@page][2]
@pictures[x].z = 501
end
end
end
if Pages[@id][@page + 1] != nil
for i in 0...Pages[@id][@page + 1].size
@page2.contents.draw_text(0,i * 17,205,18,Pages[@id][@page + 1].to_s)
end
if Pictures[@id][@page] != nil
for i in 0...Pictures[@id][@page + 1].size
@pictures.push(Sprite_Base.new)
x = @pictures.size - 1
@pictures[x].bitmap = Cache.picture(Pictures[@id][@page + 1][0])
@pictures[x].x = Pictures[@id][@page + 1][1] + @page2.x - 64
@pictures[x].y = Pictures[@id][@page + 1][2]
@pictures[x].z = 501
end
end
reading[1] = @page + 2
end
if @page + 1 == Pages[@id].size || @page + 1 == 0
@page2.contents.clear
reading[1] = nil
end
reading.compact!
@info.contents.clear
if reading.size > 1
@info.contents.draw_text(0,-2,322,15,"Страницы: #{reading[0]} и #{reading[1]}",1)
else
@info.contents.draw_text(0,-2,322,15,"Страница: #{reading[0]}",1)
end
end
def finish
Sound.play_cancel
@title.dispose
@graphic.dispose
@info.dispose
@page1.dispose
@page2.dispose
for i in 0...@pictures.size
@pictures.dispose
@pictures = nil
end
@pictures.compact!
$scene = Scene_Map.new
end
end
# Simple ReadBooks Scene
# Version: 1.0
# Author: Omegas7
# omegadev.biz or omegas7.blogspot.com
#
# Creates a book that may be called through an event script call.
#
# FEATURES:
# > 1.0
# > Independent book graphic for each book.
# > Book sound effect.
# > Unlimited books and pages allowed.
# > Window telling the pages you are on.
# > Displays two pages simulateously.
# > Use script call for opening a book.
# > Display pictures (also unlimited)
# > Book title window.
#
# USAGE: Adding a book to your database.
#
# This is the basic code template for your book, which is placed below:
# Titles[ID] = "My Title"
# Pages[ID][PageNumber] = ["So this is this is a page." , "This is the second line"]
# Graphics[ID] = "Graphic file name for book located in Pictures folder"
# Sounds[ID] = "Sound file name for book located in Audio/SE/ folder"
#
# Where ID is the ID number of the book in this script. Note that the
# first book is 0, then the other is 1, then 2, and so on...
# Let's say you want your book's first page to have three lines of text:
# Pages[ID][0] = ["First line" , "Second line", "Third line"]
# That 0 means the first page. It is an array with three strings.
# What if I want to make two pages? Well, put
# Pages[ID][1] = ["This is the second page!!"]
# Note the 1 there. It means second page.
# Remember that each line is inside quotes " " and separated by a comma.
# See examples in demo!
#
# ADDING PICTURES:
#
# All your pictures for books must be in Graphics/Pictures/ folder.
# If a book needs a picture (let's say, book ID 5), on page 4, we put this line:
# Pictures[5][4] = [ ]
# X and Y and screen coordinates.
# When thinking on X and Y, always think the page will be the left one.
# If the page is the second one (right half of the screen), the script should
# move the image automatically.
#
# OPENING A BOOK:
#
# Use the event script call command, and type:
# $scene = ReadBook.new(ID)
# Where ID is the ID number of the book in the script.
#
# IMPORTANT:
# When you add/remove a book, remember to update the
# HOW_MANY_BOOKS_EXIST
# number below.
# =============================================================================
module OmegaX
module ReadBookData
HOW_MANY_BOOKS_EXIST = 4 # Please update when you add a book
Titles = [] # <- Don't edit
Pages = [] # <- Don't edit
Graphics = [] # <- Don't edit
Sounds = [] # <- Don't edit
Pictures = [] # <- Don't edit
for i in 0...HOW_MANY_BOOKS_EXIST
Pages = []
Pictures = []
end # <- Don't edit
# PUT BOOK DATA BELOW HERE
Titles[0] = "Stupid's guide to glory"
Pages[0][0] = ["So you're reading this",
"because you're an idiot.","Well, this book with teach","you the path to glory!!"]
Pages[0][1] = ["First of all, you will need","lots of gold! How?",
"Very easy! Just go into an","epic quest and kill 200","dragons!!!"]
Pages[0][2] = ["Good! Now that you have","lots of money, you can",
"now go and buy your very","own castle in middle of",
"town! You will get lots of","respect! You are now","GLORIOUS!!","","End."]
Graphics[0] = "Book01"
Sounds[0] = "Book"
Titles[1] = "The one-page book"
Pages[1][0] = ["That's right, people!","this book only has ONE",
"PAGE!! BUT it is SUPER","heavy!! It is all thanks",
"to our new paper","compression system! Now",
"500 trees fit in one single","and compact book!","Umm... yeah. That's all."]
Graphics[1] = "Book01"
Sounds[1] = "Book"
Titles[2] = "Lots of pages book"
Pages[2][0] = ["Welcome to this test!","I will test a lot of","pages!"]
Pages[2][1] = ["This is page 2."]
Pages[2][2] = ["Page 3..."]
Pages[2][3] = ["This is the awesome","page 4!!"]
Pages[2][4] = ["This is page 5.","","END!"]
Graphics[2] = "Book01"
Sounds[2] = "Book"
Titles[3] = "The monster book"
Pages[3][0] = ["Below you can see a","terrible monster:"]
Pages[3][1] = ["And again:"]
Pages[3][2] = ["And again, but twice:"]
Graphics[3] = "Book01"
Sounds[3] = "Book"
Pictures[3][0] = [ ]
Pictures[3][1] = [ ]
Pictures[3][2] = [ , ]
end
end
class ReadBook < Scene_Base
include OmegaX::ReadBookData
def initialize(id)
@id = id
@page = 0
end
def start
create_menu_background
Audio.se_play("Audio/SE/#{Sounds[@id]}")
@title = Window_Base.new(0,0,544,50)
@title.contents.font.size = 16
@title.contents.draw_text(0,0,500,17,"Вы читаете: #{Titles[@id]}")
@title.z = 500
@graphic = Sprite_Base.new
@graphic.bitmap = Cache.picture(Graphics[@id].to_s)
@graphic.z = 500
@page1 = Window_Base.new(72,70,210,250)
@page2 = Window_Base.new(272,70,210,250)
@page1.contents.font.size = @page2.contents.font.size = 18
@page1.z = @page2.z = 501
@page1.opacity = @page2.opacity = 0
@info = Window_Base.new(100,416 - 50,344,50)
@info.contents.font.size = 14
@info.z = 500
@pictures = []
draw_pages
end
def update
if Input.trigger?(Input::
finish
end
if Input.trigger?(Input::RIGHT)
if Pages[@id].size > 1
if @page + 2 < Pages[@id].size
Audio.se_play("Audio/SE/#{Sounds[@id]}")
@page += 1
draw_pages
end
end
end
if Input.trigger?(Input::LEFT)
if Pages[@id].size > 1
if @page >= 1
Audio.se_play("Audio/SE/#{Sounds[@id]}")
@page -= 1
draw_pages
end
end
end
end
def draw_pages
for i in 0...@pictures.size
@pictures.dispose
@pictures = nil
end
@pictures.compact!
@page1.contents.clear
@page2.contents.clear
reading = []
if Pages[@id][@page] != nil
for i in 0...Pages[@id][@page].size
@page1.contents.draw_text(0,i * 17,205,18,Pages[@id][@page].to_s)
end
if @page + 1 == 0
reading[0] = Pages[@id].size
else
reading[0] = @page + 1
end
if Pictures[@id][@page] != nil
for i in 0...Pictures[@id][@page].size
@pictures.push(Sprite_Base.new)
x = @pictures.size - 1
@pictures[x].bitmap = Cache.picture(Pictures[@id][@page][0])
@pictures[x].x = Pictures[@id][@page][1]
@pictures[x].y = Pictures[@id][@page][2]
@pictures[x].z = 501
end
end
end
if Pages[@id][@page + 1] != nil
for i in 0...Pages[@id][@page + 1].size
@page2.contents.draw_text(0,i * 17,205,18,Pages[@id][@page + 1].to_s)
end
if Pictures[@id][@page] != nil
for i in 0...Pictures[@id][@page + 1].size
@pictures.push(Sprite_Base.new)
x = @pictures.size - 1
@pictures[x].bitmap = Cache.picture(Pictures[@id][@page + 1][0])
@pictures[x].x = Pictures[@id][@page + 1][1] + @page2.x - 64
@pictures[x].y = Pictures[@id][@page + 1][2]
@pictures[x].z = 501
end
end
reading[1] = @page + 2
end
if @page + 1 == Pages[@id].size || @page + 1 == 0
@page2.contents.clear
reading[1] = nil
end
reading.compact!
@info.contents.clear
if reading.size > 1
@info.contents.draw_text(0,-2,322,15,"Страницы: #{reading[0]} и #{reading[1]}",1)
else
@info.contents.draw_text(0,-2,322,15,"Страница: #{reading[0]}",1)
end
end
def finish
Sound.play_cancel
@title.dispose
@graphic.dispose
@info.dispose
@page1.dispose
@page2.dispose
for i in 0...@pictures.size
@pictures.dispose
@pictures = nil
end
@pictures.compact!
$scene = Scene_Map.new
end
end
Суть скрипта - чтение книг. Скрипт использует стандартный фонт. Так вот, как подредактировать данный скрипт, чтобы он использовал другой шрифт, к примеру, Tahoma?
Тема заблокирована.
- Desperate Egoist
-
- Не в сети
- Захожу иногда
-
- Оценить?
Скрыть
Больше
- Сообщений: 125
- Спасибо получено: 9
15 года 7 мес. назад #36224
от Desperate Egoist
Desperate Egoist ответил в теме Нужна помощь - вам сюда!
У автора не пробовал спрашивать?SaretOdin-Sol пишет: Нужна помощь скриптера. Вот скрипт для VX:
ВНИМАНИЕ: Спойлер!# =============================================================================
# Simple ReadBooks Scene
# Version: 1.0
# Author: Omegas7
# omegadev.biz or omegas7.blogspot.com
#
# Creates a book that may be called through an event script call.
#
# FEATURES:
# > 1.0
# > Independent book graphic for each book.
# > Book sound effect.
# > Unlimited books and pages allowed.
# > Window telling the pages you are on.
# > Displays two pages simulateously.
# > Use script call for opening a book.
# > Display pictures (also unlimited)
# > Book title window.
#
# USAGE: Adding a book to your database.
#
# This is the basic code template for your book, which is placed below:
# Titles[ID] = "My Title"
# Pages[ID][PageNumber] = ["So this is this is a page." , "This is the second line"]
# Graphics[ID] = "Graphic file name for book located in Pictures folder"
# Sounds[ID] = "Sound file name for book located in Audio/SE/ folder"
#
# Where ID is the ID number of the book in this script. Note that the
# first book is 0, then the other is 1, then 2, and so on...
# Let's say you want your book's first page to have three lines of text:
# Pages[ID][0] = ["First line" , "Second line", "Third line"]
# That 0 means the first page. It is an array with three strings.
# What if I want to make two pages? Well, put
# Pages[ID][1] = ["This is the second page!!"]
# Note the 1 there. It means second page.
# Remember that each line is inside quotes " " and separated by a comma.
# See examples in demo!
#
# ADDING PICTURES:
#
# All your pictures for books must be in Graphics/Pictures/ folder.
# If a book needs a picture (let's say, book ID 5), on page 4, we put this line:
# Pictures[5][4] = [ ]
# X and Y and screen coordinates.
# When thinking on X and Y, always think the page will be the left one.
# If the page is the second one (right half of the screen), the script should
# move the image automatically.
#
# OPENING A BOOK:
#
# Use the event script call command, and type:
# $scene = ReadBook.new(ID)
# Where ID is the ID number of the book in the script.
#
# IMPORTANT:
# When you add/remove a book, remember to update the
# HOW_MANY_BOOKS_EXIST
# number below.
# =============================================================================
module OmegaX
module ReadBookData
HOW_MANY_BOOKS_EXIST = 4 # Please update when you add a book
Titles = [] # <- Don't edit
Pages = [] # <- Don't edit
Graphics = [] # <- Don't edit
Sounds = [] # <- Don't edit
Pictures = [] # <- Don't edit
for i in 0...HOW_MANY_BOOKS_EXIST
Pages = []
Pictures = []
end # <- Don't edit
# PUT BOOK DATA BELOW HERE
Titles[0] = "Stupid's guide to glory"
Pages[0][0] = ["So you're reading this",
"because you're an idiot.","Well, this book with teach","you the path to glory!!"]
Pages[0][1] = ["First of all, you will need","lots of gold! How?",
"Very easy! Just go into an","epic quest and kill 200","dragons!!!"]
Pages[0][2] = ["Good! Now that you have","lots of money, you can",
"now go and buy your very","own castle in middle of",
"town! You will get lots of","respect! You are now","GLORIOUS!!","","End."]
Graphics[0] = "Book01"
Sounds[0] = "Book"
Titles[1] = "The one-page book"
Pages[1][0] = ["That's right, people!","this book only has ONE",
"PAGE!! BUT it is SUPER","heavy!! It is all thanks",
"to our new paper","compression system! Now",
"500 trees fit in one single","and compact book!","Umm... yeah. That's all."]
Graphics[1] = "Book01"
Sounds[1] = "Book"
Titles[2] = "Lots of pages book"
Pages[2][0] = ["Welcome to this test!","I will test a lot of","pages!"]
Pages[2][1] = ["This is page 2."]
Pages[2][2] = ["Page 3..."]
Pages[2][3] = ["This is the awesome","page 4!!"]
Pages[2][4] = ["This is page 5.","","END!"]
Graphics[2] = "Book01"
Sounds[2] = "Book"
Titles[3] = "The monster book"
Pages[3][0] = ["Below you can see a","terrible monster:"]
Pages[3][1] = ["And again:"]
Pages[3][2] = ["And again, but twice:"]
Graphics[3] = "Book01"
Sounds[3] = "Book"
Pictures[3][0] = [ ]
Pictures[3][1] = [ ]
Pictures[3][2] = [ , ]
end
end
class ReadBook < Scene_Base
include OmegaX::ReadBookData
def initialize(id)
@id = id
@page = 0
end
def start
create_menu_background
Audio.se_play("Audio/SE/#{Sounds[@id]}")
@title = Window_Base.new(0,0,544,50)
@title.contents.font.size = 16
@title.contents.draw_text(0,0,500,17,"Вы читаете: #{Titles[@id]}")
@title.z = 500
@graphic = Sprite_Base.new
@graphic.bitmap = Cache.picture(Graphics[@id].to_s)
@graphic.z = 500
@page1 = Window_Base.new(72,70,210,250)
@page2 = Window_Base.new(272,70,210,250)
@page1.contents.font.size = @page2.contents.font.size = 18
@page1.z = @page2.z = 501
@page1.opacity = @page2.opacity = 0
@info = Window_Base.new(100,416 - 50,344,50)
@info.contents.font.size = 14
@info.z = 500
@pictures = []
draw_pages
end
def update
if Input.trigger?(Input::
finish
end
if Input.trigger?(Input::RIGHT)
if Pages[@id].size > 1
if @page + 2 < Pages[@id].size
Audio.se_play("Audio/SE/#{Sounds[@id]}")
@page += 1
draw_pages
end
end
end
if Input.trigger?(Input::LEFT)
if Pages[@id].size > 1
if @page >= 1
Audio.se_play("Audio/SE/#{Sounds[@id]}")
@page -= 1
draw_pages
end
end
end
end
def draw_pages
for i in 0...@pictures.size
@pictures.dispose
@pictures = nil
end
@pictures.compact!
@page1.contents.clear
@page2.contents.clear
reading = []
if Pages[@id][@page] != nil
for i in 0...Pages[@id][@page].size
@page1.contents.draw_text(0,i * 17,205,18,Pages[@id][@page].to_s)
end
if @page + 1 == 0
reading[0] = Pages[@id].size
else
reading[0] = @page + 1
end
if Pictures[@id][@page] != nil
for i in 0...Pictures[@id][@page].size
@pictures.push(Sprite_Base.new)
x = @pictures.size - 1
@pictures[x].bitmap = Cache.picture(Pictures[@id][@page][0])
@pictures[x].x = Pictures[@id][@page][1]
@pictures[x].y = Pictures[@id][@page][2]
@pictures[x].z = 501
end
end
end
if Pages[@id][@page + 1] != nil
for i in 0...Pages[@id][@page + 1].size
@page2.contents.draw_text(0,i * 17,205,18,Pages[@id][@page + 1].to_s)
end
if Pictures[@id][@page] != nil
for i in 0...Pictures[@id][@page + 1].size
@pictures.push(Sprite_Base.new)
x = @pictures.size - 1
@pictures[x].bitmap = Cache.picture(Pictures[@id][@page + 1][0])
@pictures[x].x = Pictures[@id][@page + 1][1] + @page2.x - 64
@pictures[x].y = Pictures[@id][@page + 1][2]
@pictures[x].z = 501
end
end
reading[1] = @page + 2
end
if @page + 1 == Pages[@id].size || @page + 1 == 0
@page2.contents.clear
reading[1] = nil
end
reading.compact!
@info.contents.clear
if reading.size > 1
@info.contents.draw_text(0,-2,322,15,"Страницы: #{reading[0]} и #{reading[1]}",1)
else
@info.contents.draw_text(0,-2,322,15,"Страница: #{reading[0]}",1)
end
end
def finish
Sound.play_cancel
@title.dispose
@graphic.dispose
@info.dispose
@page1.dispose
@page2.dispose
for i in 0...@pictures.size
@pictures.dispose
@pictures = nil
end
@pictures.compact!
$scene = Scene_Map.new
end
end
Суть скрипта - чтение книг. Скрипт использует стандартный фонт. Так вот, как подредактировать данный скрипт, чтобы он использовал другой шрифт, к примеру, Tahoma?
Тема заблокирована.
15 года 7 мес. назад - 15 года 7 мес. назад #36227
от Kouta555
1.RMXP104
2.Я незнаю какая боёвка, игра Sailormoon the moon child.
3.можно
#==============================================================================
# ** Sprite_Battler
#
# This sprite is used to display the battler.It observes the Game_Character
# class and automatically changes sprite conditions.
#==============================================================================
class Sprite_Battler < RPG::Sprite
#
# * Object Initialization
# viewport : viewport
# battler : battler (Game_Battler)
#
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
if @battler != nil
@pose = @battler.pose
end
@frame = 0
@frame_height = 0
@count = Graphics.frame_count
@frames = []
@moving = false
@move_speed = 10
@hold_pose = -1
make_sprite_sheet
end
#
# * Frame Update
#
def update
super
# If battler is nil
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# If file name or hue are different than current ones
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# Get and set bitmap
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
if @battler.animated
make_sprite_sheet
self.bitmap = @sprite_sheet
self.ox = @frame_height / 2
self.oy = @frame_height
@battler.height = @battler.width = @frame_height
else
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
@battler.height = @height
@battler.width = @width
end
# Change opacity level to 0 when dead or hidden
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
# animation stuff
# if the battler's pose has changed
if @battler.pose != @pose and @hold_pose == -1
if @pose == $BATTLEOPEN
@hold_pose = @battler.pose
else
@frame = 0
@pose = @battler.pose
end
end
if Graphics.frame_count - @count >= 10 and !@animation_stop and @battler.animated
@count = Graphics.frame_count
self.src_rect = Rect.new(@frame * @frame_height, @pose * @frame_height, @frame_height, @frame_height)
@frame = @frame + 1
# if we've reached the end of the frames for this pose
if @frame == @frames[@pose]
if @pose == $VICTORY and !@battler.loop_victory
@animation_stop = true
end
if @hold_pose != -1
@pose = @hold_pose
@hold_pose = -1
end
if @battler.loop == false
@battler.set_pose(@battler.base_pose)
end
@frame = 0
end
end
# end animation stuff
# If the battler needs to move somewhere
if @battler.target_x != @battler.actual_x or @battler.target_y != @battler.actual_y
@moving = true
slope = (@battler.target_y.to_f - @battler.actual_y.to_f) / (@battler.target_x.to_f - @battler.actual_x.to_f)
if slope < 0
slope = -slope
end
@move_x = Math.sqrt((@move_speed * @move_speed) / (slope * slope + 1))
@move_y = slope * @move_x
end
# If animation ID is different than current one
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# If invisible
unless @battler_visible
# Appear
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# If visible
if @battler_visible
# Escape
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# Animation
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# Damage
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# Collapse
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
@battler_visible = false
collapse
elsif @pose != $DEAD
$game_system.se_play($data_system.actor_collapse_se)
@battler.set_pose($DEAD)
end
end
end
# Set sprite coordinates
if @moving
if @battler.actual_x < @battler.target_x
#battler is to the left of the target
@battler.actual_x += @move_x
if @battler.actual_x > @battler.target_x
@battler.actual_x = @battler.target_x
end
else
# battler is to the right of the target
@battler.actual_x -= @move_x
if @battler.actual_x < @battler.target_x
@battler.actual_x = @battler.target_x
end
end
if @battler.actual_y < @battler.target_y
# battler is above the target
@battler.actual_y += @move_y
if @battler.actual_y > @battler.target_y
@battler.actual_y = @battler.target_y
end
else
# battler is below the target
@battler.actual_y -= @move_y
if @battler.actual_y < @battler.target_y
@battler.actual_y = @battler.target_y
end
end
self.x = @battler.actual_x
self.y = @battler.actual_y
if self.x == @battler.target_x and self.y == @battler.target_y
@moving = false
end
else
self.x = @battler.actual_x
self.y = @battler.actual_y
end
self.z = @battler.screen_z
end
def make_sprite_sheet
if @battler == nil
@spritesheet = Bitmap.new(1, 1)
return
end
if @battler.is_a?(Game_Actor)
@game_actor = true
weapon = $data_weapons[@battler.weapon_id]
if weapon != nil
begin
RPG::Cache.battler(@battler.battler_name + "_attack_" + weapon.name.sub(" ", "_"), @battler.battler_hue)
@pose_names = ["_ready", "_guard", "_hit", "_miss", "_skill_default",
"_attack_" + weapon.name.sub(" ", "_"), "_lowhp",
"_moveto", "_movefrom", "_dead", "_battle_open", "_item"]
rescue
@pose_names = ["_ready", "_guard", "_hit", "_miss", "_skill_default",
"_attack_default", "_lowhp", "_moveto", "_movefrom",
"_dead", "_battle_open", "_item"]
end
else
@pose_names = ["_ready", "_guard", "_hit", "_miss", "_skill_default",
"_attack_default", "_lowhp", "_moveto", "_movefrom",
"_dead", "_battle_open", "_item"]
end
# if we have two victory animations, pick the second at a 25% chance
begin
RPG::Cache.battler(@battler.battler_name + "_victory2.png", @battler.battler_hue)
r = rand(100)
if r <= 25
@pose_names.push("_victory2")
else
@pose_names.push("_victory1")
end
rescue # only one victory animation, get it
@pose_names.push("_victory")
end
index = $VICTORY + 1
# Status Effects
for i in $STATES_ANIMATED
@pose_names.push("_state_" + $data_states.name.sub(" ", "_"))
index += 1
end
# Now for the tricky part, skills
if $USING_INDIV_SKILL_ANIM
@battler.skill_hash = Hash.new($SKILL) # default skill animation
for skill in @battler.skills
filename = "_skill_" + $data_skills[skill].name.sub(" ", "_")
# first, see if a animation for that particular skill exists
begin
RPG::Cache.battler(@battler.battler_name + filename, @battler.battler_hue)
@pose_names.push(filename)
@battler.skill_hash[$data_skills[skill].name] = index
index += 1
rescue
# animation does not exist for skill, check skill type
for i in 0...$SKILL_KINDS.size
if $data_skills[skill].element_set.include?($SKILL_OFFSET + i)
filename = "_skill_" + $SKILL_KINDS.sub("_", " ")
begin
RPG::Cache.battler(@battler.battler_name + filename, @battler.battler_hue)
@pose_names.push(filename)
@battler.skill_hash[$data_skills[skill].name] = index
index += 1
break
rescue
# do nothing
end
end
end
end
end
else # skill animations by type
@battler.skill_type_hash = Hash.new($SKILL) # default skill animation
for skill in $SKILL_KINDS
filesuffix = "_skill_" + skill.sub(" ", "_")
begin
RPG::Cache.battler(@battler.battler_name + filesuffix, @battler.battler_hue)
@pose_names.push(filesuffix)
@battler.skill_type_hash[skill] = index
index += 1
rescue
# do nothing
end
end
end
# If we're using visible weapons, better get that, too
if $USING_VISIBLE_WEAPONS and weapon != nil
weapon_poses = []
weapon_name = weapon.name.sub(" ", "_")
for string in @pose_names
weapon_poses.push("_" + weapon_name + string)
end
end
else # the battler is an enemy. Much simpler.
if !@battler.animated
return
end
@pose_names = ["_ready", "_guard", "_hit", "_miss", "_skill", "_attack",
"_lowhp", "_moveto", "_movefrom"]
end
bitmaps = []
height = width = 0
@frame_height = 0
@frames = []
weapon_bitmaps = []
dummy_image = Bitmap.new(1, 1)
for i in 0...@pose_names.size
begin
RPG::Cache.battler(@battler.battler_name + @pose_names, @battler.battler_hue)
bitmaps = RPG::Cache.battler(@battler.battler_name + @pose_names, @battler.battler_hue)
height += bitmaps.height
width = [width, bitmaps.width].max
@frames = bitmaps.width / bitmaps.height
@frame_height = bitmaps.height
if $USING_VISIBLE_WEAPONS and @game_actor
begin
weapon_bitmaps = RPG::Cache.battler(@battler.battler_name + weapon_poses, @battler.battler_hue)
rescue
weapon_bitmaps = dummy_image
end
end
if @pose_names.include?("attack")
@battler.attack_frames = @frames
end
rescue
bitmaps = nil
height += @frame_height
@frames = 0
end
end
@sprite_sheet = Bitmap.new(width, height)
mark = 0
for i in 0..bitmaps.size
if bitmaps != nil
if $USING_VISIBLE_WEAPONS and @game_actor
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
@sprite_sheet.blt(0, mark, weapon_bitmaps, weapon_bitmaps.rect)
else
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
end
end
mark += @frame_height
end
end
end
4.Вот исходники игры (112 метров)
narod.ru/disk/25822366000/RGSSAD2.zip.html
Kouta555 ответил в теме Нужна помощь - вам сюда!
За отсутствием телепатических способностей, хотелось бы уточнить детали:
1. Какой мейкер?
2. Что за боёвка?
3. Можно ли весь код?
4. Или лучше демку кинь, чтоб можно было покапаться.
1.RMXP104
2.Я незнаю какая боёвка, игра Sailormoon the moon child.
3.можно
ВНИМАНИЕ: Спойлер!
#==============================================================================
# ** Sprite_Battler
#
# This sprite is used to display the battler.It observes the Game_Character
# class and automatically changes sprite conditions.
#==============================================================================
class Sprite_Battler < RPG::Sprite
#
# * Object Initialization
# viewport : viewport
# battler : battler (Game_Battler)
#
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
if @battler != nil
@pose = @battler.pose
end
@frame = 0
@frame_height = 0
@count = Graphics.frame_count
@frames = []
@moving = false
@move_speed = 10
@hold_pose = -1
make_sprite_sheet
end
#
# * Frame Update
#
def update
super
# If battler is nil
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# If file name or hue are different than current ones
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# Get and set bitmap
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
if @battler.animated
make_sprite_sheet
self.bitmap = @sprite_sheet
self.ox = @frame_height / 2
self.oy = @frame_height
@battler.height = @battler.width = @frame_height
else
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
@battler.height = @height
@battler.width = @width
end
# Change opacity level to 0 when dead or hidden
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
# animation stuff
# if the battler's pose has changed
if @battler.pose != @pose and @hold_pose == -1
if @pose == $BATTLEOPEN
@hold_pose = @battler.pose
else
@frame = 0
@pose = @battler.pose
end
end
if Graphics.frame_count - @count >= 10 and !@animation_stop and @battler.animated
@count = Graphics.frame_count
self.src_rect = Rect.new(@frame * @frame_height, @pose * @frame_height, @frame_height, @frame_height)
@frame = @frame + 1
# if we've reached the end of the frames for this pose
if @frame == @frames[@pose]
if @pose == $VICTORY and !@battler.loop_victory
@animation_stop = true
end
if @hold_pose != -1
@pose = @hold_pose
@hold_pose = -1
end
if @battler.loop == false
@battler.set_pose(@battler.base_pose)
end
@frame = 0
end
end
# end animation stuff
# If the battler needs to move somewhere
if @battler.target_x != @battler.actual_x or @battler.target_y != @battler.actual_y
@moving = true
slope = (@battler.target_y.to_f - @battler.actual_y.to_f) / (@battler.target_x.to_f - @battler.actual_x.to_f)
if slope < 0
slope = -slope
end
@move_x = Math.sqrt((@move_speed * @move_speed) / (slope * slope + 1))
@move_y = slope * @move_x
end
# If animation ID is different than current one
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# If invisible
unless @battler_visible
# Appear
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# If visible
if @battler_visible
# Escape
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# Animation
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# Damage
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# Collapse
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
@battler_visible = false
collapse
elsif @pose != $DEAD
$game_system.se_play($data_system.actor_collapse_se)
@battler.set_pose($DEAD)
end
end
end
# Set sprite coordinates
if @moving
if @battler.actual_x < @battler.target_x
#battler is to the left of the target
@battler.actual_x += @move_x
if @battler.actual_x > @battler.target_x
@battler.actual_x = @battler.target_x
end
else
# battler is to the right of the target
@battler.actual_x -= @move_x
if @battler.actual_x < @battler.target_x
@battler.actual_x = @battler.target_x
end
end
if @battler.actual_y < @battler.target_y
# battler is above the target
@battler.actual_y += @move_y
if @battler.actual_y > @battler.target_y
@battler.actual_y = @battler.target_y
end
else
# battler is below the target
@battler.actual_y -= @move_y
if @battler.actual_y < @battler.target_y
@battler.actual_y = @battler.target_y
end
end
self.x = @battler.actual_x
self.y = @battler.actual_y
if self.x == @battler.target_x and self.y == @battler.target_y
@moving = false
end
else
self.x = @battler.actual_x
self.y = @battler.actual_y
end
self.z = @battler.screen_z
end
def make_sprite_sheet
if @battler == nil
@spritesheet = Bitmap.new(1, 1)
return
end
if @battler.is_a?(Game_Actor)
@game_actor = true
weapon = $data_weapons[@battler.weapon_id]
if weapon != nil
begin
RPG::Cache.battler(@battler.battler_name + "_attack_" + weapon.name.sub(" ", "_"), @battler.battler_hue)
@pose_names = ["_ready", "_guard", "_hit", "_miss", "_skill_default",
"_attack_" + weapon.name.sub(" ", "_"), "_lowhp",
"_moveto", "_movefrom", "_dead", "_battle_open", "_item"]
rescue
@pose_names = ["_ready", "_guard", "_hit", "_miss", "_skill_default",
"_attack_default", "_lowhp", "_moveto", "_movefrom",
"_dead", "_battle_open", "_item"]
end
else
@pose_names = ["_ready", "_guard", "_hit", "_miss", "_skill_default",
"_attack_default", "_lowhp", "_moveto", "_movefrom",
"_dead", "_battle_open", "_item"]
end
# if we have two victory animations, pick the second at a 25% chance
begin
RPG::Cache.battler(@battler.battler_name + "_victory2.png", @battler.battler_hue)
r = rand(100)
if r <= 25
@pose_names.push("_victory2")
else
@pose_names.push("_victory1")
end
rescue # only one victory animation, get it
@pose_names.push("_victory")
end
index = $VICTORY + 1
# Status Effects
for i in $STATES_ANIMATED
@pose_names.push("_state_" + $data_states.name.sub(" ", "_"))
index += 1
end
# Now for the tricky part, skills
if $USING_INDIV_SKILL_ANIM
@battler.skill_hash = Hash.new($SKILL) # default skill animation
for skill in @battler.skills
filename = "_skill_" + $data_skills[skill].name.sub(" ", "_")
# first, see if a animation for that particular skill exists
begin
RPG::Cache.battler(@battler.battler_name + filename, @battler.battler_hue)
@pose_names.push(filename)
@battler.skill_hash[$data_skills[skill].name] = index
index += 1
rescue
# animation does not exist for skill, check skill type
for i in 0...$SKILL_KINDS.size
if $data_skills[skill].element_set.include?($SKILL_OFFSET + i)
filename = "_skill_" + $SKILL_KINDS.sub("_", " ")
begin
RPG::Cache.battler(@battler.battler_name + filename, @battler.battler_hue)
@pose_names.push(filename)
@battler.skill_hash[$data_skills[skill].name] = index
index += 1
break
rescue
# do nothing
end
end
end
end
end
else # skill animations by type
@battler.skill_type_hash = Hash.new($SKILL) # default skill animation
for skill in $SKILL_KINDS
filesuffix = "_skill_" + skill.sub(" ", "_")
begin
RPG::Cache.battler(@battler.battler_name + filesuffix, @battler.battler_hue)
@pose_names.push(filesuffix)
@battler.skill_type_hash[skill] = index
index += 1
rescue
# do nothing
end
end
end
# If we're using visible weapons, better get that, too
if $USING_VISIBLE_WEAPONS and weapon != nil
weapon_poses = []
weapon_name = weapon.name.sub(" ", "_")
for string in @pose_names
weapon_poses.push("_" + weapon_name + string)
end
end
else # the battler is an enemy. Much simpler.
if !@battler.animated
return
end
@pose_names = ["_ready", "_guard", "_hit", "_miss", "_skill", "_attack",
"_lowhp", "_moveto", "_movefrom"]
end
bitmaps = []
height = width = 0
@frame_height = 0
@frames = []
weapon_bitmaps = []
dummy_image = Bitmap.new(1, 1)
for i in 0...@pose_names.size
begin
RPG::Cache.battler(@battler.battler_name + @pose_names, @battler.battler_hue)
bitmaps = RPG::Cache.battler(@battler.battler_name + @pose_names, @battler.battler_hue)
height += bitmaps.height
width = [width, bitmaps.width].max
@frames = bitmaps.width / bitmaps.height
@frame_height = bitmaps.height
if $USING_VISIBLE_WEAPONS and @game_actor
begin
weapon_bitmaps = RPG::Cache.battler(@battler.battler_name + weapon_poses, @battler.battler_hue)
rescue
weapon_bitmaps = dummy_image
end
end
if @pose_names.include?("attack")
@battler.attack_frames = @frames
end
rescue
bitmaps = nil
height += @frame_height
@frames = 0
end
end
@sprite_sheet = Bitmap.new(width, height)
mark = 0
for i in 0..bitmaps.size
if bitmaps != nil
if $USING_VISIBLE_WEAPONS and @game_actor
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
@sprite_sheet.blt(0, mark, weapon_bitmaps, weapon_bitmaps.rect)
else
@sprite_sheet.blt(0, mark, bitmaps, bitmaps.rect)
end
end
mark += @frame_height
end
end
end
4.Вот исходники игры (112 метров)
narod.ru/disk/25822366000/RGSSAD2.zip.html
Последнее редактирование: 15 года 7 мес. назад пользователем Kouta555.
Тема заблокирована.
- Pavlentus007
-
- Не в сети
- Завсегдатай
-
Скрыть
Больше
- Сообщений: 787
- Спасибо получено: 73
15 года 7 мес. назад - 15 года 7 мес. назад #36280
от Pavlentus007
Я линивая свинья...
Я хороший мапер...Но конченый автор...
Я опять ленивая свинья....
Хочу курицу жаренную с пиццой О.О
Pavlentus007 ответил в теме Нужна помощь - вам сюда!
Вопросов ооочень много т.к. я 3день в макере у меня ХР вот вопросы:1как сделать квест типо мне сказали иди убей 10скелетов пока не убьёшь не возвращайся...и он тебе даёт задание другое только после того как ты их убьёшь...ну вы поняли короче =)2 как сделать что то вроде видео что бы ты дошол до определёного места и он сам подошол к человеку и начал болтать потом там повернулся отошол и ещо чо нибудь сделал...3 хотел добавить в бой новое действие призыв как в финалки
и как сделать когда вызываешь что бы шло видео?4хотел бы сделать боёвку сбоку что бы они двигались и били но 1 проблема я рисовать воообще не умею.......прям не просто не умею а конкретно не умею фотошопом я не дружу....ПОМОГИТЕ!!!!!!!!!ЕСЛИ вопросы были простите лень читать а поиском пользоваться не умею
и как сделать когда вызываешь что бы шло видео?4хотел бы сделать боёвку сбоку что бы они двигались и били но 1 проблема я рисовать воообще не умею.......прям не просто не умею а конкретно не умею фотошопом я не дружу....ПОМОГИТЕ!!!!!!!!!ЕСЛИ вопросы были простите лень читать а поиском пользоваться не умею
Я линивая свинья...
Я хороший мапер...Но конченый автор...
Я опять ленивая свинья....
Хочу курицу жаренную с пиццой О.О
Последнее редактирование: 15 года 7 мес. назад пользователем Pavlentus007.
Тема заблокирована.
Время создания страницы: 0.297 секунд
\RPGVX\Graphics и там во все папки вставлял эффекта не было.
