- Сообщений: 1640
- Спасибо получено: 1080
Постоянные данные
- strelokhalfer
-
Автор темы
- Не в сети
- Живу я здесь
-
- Знатный грамотей
Скрыть
Больше
11 года 3 мес. назад - 10 года 8 мес. назад #77644
от strelokhalfer
Автор: Стрелок, он же Халфер, он же Стрелокхалфер
Версия: 1.0
Тип: Компонент для управления переменными
Описание:
Данный скрипт позволяет запоминать значения определенных переменных и переключателей в отдельный файл. Подходит, например, для возможности "Новая игра +"
Код:
Скачать:
Как всегда, я прилагаю простенькое демо (Архив 7z, 1.3 МБ).
Благодарности:
DeadElf79 за помощь с хэш-таблицами и загрузкой.
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
strelokhalfer создал тему: Постоянные данные
Постоянные данные
Информация:
Автор: Стрелок, он же Халфер, он же Стрелокхалфер
Версия: 1.0
Тип: Компонент для управления переменными
Описание:
Данный скрипт позволяет запоминать значения определенных переменных и переключателей в отдельный файл. Подходит, например, для возможности "Новая игра +"
Код:
Code:
=begin
Постоянные данные
Автор: strelokhalfer
При поддержке DeadElf
Требования: Мозг и прямые руки :)
Описание:
Данный скрипт позволяет запоминать значения определенных переменных
и переключателей в отдельный файл.
Лицензия:
Скрипт защищён лицензией CC BY-NC-ND 4.0, что означает:
Вы МОЖЕТЕ распространять скрипт, использовать в проектах, НО:
Вы ОБЯЗАНЫ указать моё авторство.
Вы НЕ МОЖЕТЕ использовать скрипт в коммерческих проектах,
но вы МОЖЕТЕ узнать стоимость разрешения, написав мне на
strelokhalfer@gmail.com
Вы НЕ МОЖЕТЕ изменять данный скрипт или делать свой на основе этого.
Использование:
Можно использовать для создания "Новой игры+"
Все настройки хранятся в модуле Settings
Для добавления своей настройки, просто напишите новую строку:
["тип данных", "индекс", "id карты", "id события"]
"тип данных" - может быть:
"switch"(переключатель)
"variable"(переменная)
"selfswitch"(Локальный переключатель)
"индекс" - если это переключатель или переменная, то это номер в
базе данных. Если локальный переключатель, то это буква.
"id карты" - для локальных переключателей.
"id события" - для локальных переключателей.
=end
#РЕДАКТИРОВАТЬ ТОЛЬКО В ЭТОМ МОДУЛЕ
module Settings
PERSISTENT = [
#Не забывайте ставить запятые!
["switch", 1],
["selfswitch", "A", 1, 1],
["variable", 1]
]
end
#НАСТРОЙКИ КОНЧИЛИСЬ
#~ Модуль данных
module DataManager
def self.saveper #Метод сохранения
File.open("Persistent.rvdata2", "wb") do |file|
$game_system.on_before_save
Marshal.dump(make_persistent_contents, file)
end
end
#--------------------------------------------------------------------------
# * Execute Load (No Exception Processing)
#--------------------------------------------------------------------------
def self.loadper
if (File.exist?("Persistent.rvdata2"))
File.open("Persistent.rvdata2", "rb") do |file|
extract_persistent_contents(Marshal.load(file))
end
else
saveper
end
return true
end
def self.make_persistent_contents
persistent=[]
Settings::PERSISTENT.each_index { |i|
data = Settings::PERSISTENT[i]
case data[0].to_s
when 'switch'
persistent.push( [ data[0], data[1], $game_switches[ data[1] ] ]) # вгоняем новый элемент с данными
when 'variable'
persistent<<[ data[0], data[1], $game_variables[ data[1] ]]# выглядит по другому, но работает точно также
when 'selfswitch'
persistent<<[ data[0], data[2], data[3], data[1], $game_self_switches[ [ data[2], data[3], data[1] ] ] ]
end
}
persistent
end
def self.extract_persistent_contents(persistent)
persistent.each{|data|
case data[0].to_s
when 'switch'
$game_switches[ data[1] ] = data[2]
when 'variable'
$game_variables[ data[1] ] = data[2]
when 'selfswitch'
$game_self_switches[ [ data[1], data[2], data[3] ] ] = data[4]
end
}
end
class << self
alias old_create_game_objects create_game_objects
def create_game_objects
old_create_game_objects
loadper
end
end
end
#~ Переопределяю действие при сохранении
class Scene_Save
alias mody_savefile_ok on_savefile_ok #Делаю псевдоним метода
def on_savefile_ok
mody_savefile_ok #Сохранить игру
DataManager.saveper #Сохранить данные
end
end
#~ Сохранить данные при выходе из игры
class Scene_End
alias title_psave command_to_title #Делаю псевдоним метода
def command_to_title
DataManager.saveper #Сохранить данные
title_psave #Оригинальный метод
end
alias mody_shutdown command_shutdown #Делаю псевдоним метода
def command_shutdown
DataManager.saveper #Сохранить данные
mody_shutdown #Оригинальный метод
end
end
Скачать:
Как всегда, я прилагаю простенькое демо (Архив 7z, 1.3 МБ).
Благодарности:
DeadElf79 за помощь с хэш-таблицами и загрузкой.
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Последнее редактирование: 10 года 8 мес. назад пользователем strelokhalfer. Причина: Обновлено демо.
Спасибо сказали: Sn@ke, Lekste, Ren310, Демий, MaltonTheWarrior, Eokati, TheMaximGames, peter8031983, DesKarD
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 3 мес. назад #77645
от Lekste
Lekste ответил в теме Постоянные данные
Круто. Хотя лучше было бы сделать какой-нибудь префикс к имени сохраняемого свитча и определять, какие из них сохранять, автоматически.
Было б проще использовать и более понятно для пользователей.
Было б проще использовать и более понятно для пользователей.
Спасибо сказали: DeadElf79
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 3 мес. назад #77646
от DeadElf79
DeadElf79 ответил в теме Постоянные данные
На будущее
, Стрелок
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- strelokhalfer
-
Автор темы
- Не в сети
- Живу я здесь
-
- Знатный грамотей
Скрыть
Больше
- Сообщений: 1640
- Спасибо получено: 1080
11 года 3 мес. назад - 11 года 3 мес. назад #77648
от strelokhalfer
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
strelokhalfer ответил в теме Постоянные данные
Я не понял, как имя получить.
Но на будущее возьму.
Йелф, ну ты(
У меня же все в шапке скрипта описано. или мне в пост вынести?
Но на будущее возьму.
Йелф, ну ты(
У меня же все в шапке скрипта описано. или мне в пост вынести?
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Последнее редактирование: 11 года 3 мес. назад пользователем strelokhalfer.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 3 мес. назад #77649
от DeadElf79
DeadElf79 ответил в теме Постоянные данные
Стрелок, у нас все скрипты так оформляются со времени вступления шаблона в действие и утверждения его администрацией) Выноси в пост, никто не читает инструкций в скриптах
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- strelokhalfer
-
Автор темы
- Не в сети
- Живу я здесь
-
- Знатный грамотей
Скрыть
Больше
- Сообщений: 1640
- Спасибо получено: 1080
11 года 3 мес. назад #77656
от strelokhalfer
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
strelokhalfer ответил в теме Постоянные данные
Чуток пофиксил скрипт и добавил шапку.
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 3 мес. назад #77657
от DK
DK ответил в теме Постоянные данные
если про имя переключателей/переменных, то можно так: $data_system.switches[data_id]
Спасибо сказали: strelokhalfer
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- strelokhalfer
-
Автор темы
- Не в сети
- Живу я здесь
-
- Знатный грамотей
Скрыть
Больше
- Сообщений: 1640
- Спасибо получено: 1080
10 года 8 мес. назад #84401
от strelokhalfer
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
strelokhalfer ответил в теме Постоянные данные
Обновлено демо и скрипт.
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Спасибо сказали: AnnTenna
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.102 секунд
