Войти на сайт
×
|
ТЕМА: Ящики (VX ACE)
Ящики (VX ACE) 10 года 2 мес. назад #74196
|
caveman пишет:
2) Сам такой скрипт хочу, искал как-то раз, но не нашел Вот свежий, допиленный скрипт от Др.Тодда.Я доработал чуть его, для того, чтоб автосейв также показывался в окне сохранения/загрузки. ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ][ Нажмите, чтобы скрыть ] #===============================================================================
#
# DT's Autosave
# Author: DoctorTodd
# Date (06/22/2012)
# Edited by: ArkLennard
# Date (01/13/2013)
# Version: (1.0.0) (VXA)
# Level: (Simple)
# Email: [email protected]
#
#===============================================================================
#
# NOTES: 1)This script will only work with ace.
#
#===============================================================================
#
# Description: Saves the game when transferring the map, before battle,
# and opening the menu (all optional).
#
# Credits: Me (DoctorTodd), ArkLennard
#
#===============================================================================
#
# Instructions
# Paste above main.
#
#===============================================================================
#
# Free for any use as long as I'm credited.
#
#===============================================================================
#
# Editing begins 37 and ends on 50.
#
#===============================================================================
module ToddAutoSaveAce
#Max files (without autosave).
MAXFILES = 16
#Autosave file name.
AUTOSAVEFILENAME = "Autosave"
#Switch to activate autosave before battle?
AUTOSAVEBB = 100
#Switch to activate autosave when menu opened?
AUTOSAVEM = 101
#Switch to activate autosave when changing map?
AUTOSAVETM = 102
#Variable ID that contains the number where the sutosave file will be saved.
VARIABLE = 1
end
#==============================================================================
# ** Autosave
#------------------------------------------------------------------------------
# This module contains the autosave method. This allows you to use the
# "Autosave.call" ans "Autosave.load" commands.
#==============================================================================
module Autosave
#--------------------------------------------------------------------------
# * Save header writer
#--------------------------------------------------------------------------
def self.make_save_header
header = {}
header[:characters] = $game_party.characters_for_savefile
header[:playtime_s] = $game_system.playtime_s
header
end
#--------------------------------------------------------------------------
# * Save contents writer
#--------------------------------------------------------------------------
def self.make_save_contents
contents = {}
contents[:system] = $game_system
contents[:timer] = $game_timer
contents[:message] = $game_message
contents[:switches] = $game_switches
contents[:variables] = $game_variables
contents[:self_switches] = $game_self_switches
contents[:actors] = $game_actors
contents[:party] = $game_party
contents[:troop] = $game_troop
contents[:map] = $game_map
contents[:player] = $game_player
contents
end
#--------------------------------------------------------------------------
# * Save contents extractor
#--------------------------------------------------------------------------
def self.extract_save_contents(contents)
$game_system = contents[:system]
$game_timer = contents[:timer]
$game_message = contents[:message]
$game_switches = contents[:switches]
$game_variables = contents[:variables]
$game_self_switches = contents[:self_switches]
$game_actors = contents[:actors]
$game_party = contents[:party]
$game_troop = contents[:troop]
$game_map = contents[:map]
$game_player = contents[:player]
end
#--------------------------------------------------------------------------
# * Map reloader
#--------------------------------------------------------------------------
def self.reload_map_if_updated
if $game_system.version_id != $data_system.version_id
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
$game_player.make_encounter_count
end
end
#--------------------------------------------------------------------------
# * Total fade out
# time : duration (milliseconds)
#--------------------------------------------------------------------------
def self.fadeout_all(time = 1000)
RPG::BGM.fade(time)
RPG::BGS.fade(time)
RPG::ME.fade(time)
Graphics.fadeout(time * Graphics.frame_rate / 1000)
RPG::BGM.stop
RPG::BGS.stop
RPG::ME.stop
end
#--------------------------------------------------------------------------
# * Call method
#--------------------------------------------------------------------------
def self.call
#DataManager.save_game(ToddAutoSaveAce::VARIABLE - 1)
File.open('Autosave.rvdata2', "wb") do |file|
$game_system.on_before_save
Marshal.dump(make_save_header, file)
Marshal.dump(make_save_contents, file)
end
end
def self.load
fadeout_all
File.open('Autosave.rvdata2', "rb") do |file|
Marshal.load(file)
extract_save_contents(Marshal.load(file))
reload_map_if_updated
end
$game_system.on_after_load
SceneManager.goto(Scene_Map)
end
end
#==============================================================================
# ** DataManager
#------------------------------------------------------------------------------
# This module manages the database and game objects. Almost all of the
# global variables used by the game are initialized by this module.
#==============================================================================
module DataManager
#--------------------------------------------------------------------------
# * Maximum Number of Save Files
#--------------------------------------------------------------------------
def self.savefile_max
return ToddAutoSaveAce::MAXFILES + 1
end
end
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# This class performs the map screen processing.
#==============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# * Preprocessing for Battle Screen Transition
#--------------------------------------------------------------------------
def pre_battle_scene
Graphics.update
Graphics.freeze
@spriteset.dispose_characters
BattleManager.save_bgm_and_bgs
BattleManager.play_battle_bgm
Sound.play_battle_start
Autosave.call if $game_switches[ToddAutoSaveAce::AUTOSAVEBB] == true
end
#--------------------------------------------------------------------------
# * Call Menu Screen
#--------------------------------------------------------------------------
def call_menu
Sound.play_ok
SceneManager.call(Scene_Menu)
Window_MenuCommand::init_command_position
Autosave.call if $game_switches[ToddAutoSaveAce::AUTOSAVEM] == true
end
#--------------------------------------------------------------------------
# * Preprocessing for Transferring Player
#--------------------------------------------------------------------------
def pre_transfer
@map_name_window.close
case $game_temp.fade_type
when 0
fadeout(fadeout_speed)
when 1
white_fadeout(fadeout_speed)
end
#--------------------------------------------------------------------------
# * Post Processing for Transferring Player
#--------------------------------------------------------------------------
def post_transfer
case $game_temp.fade_type
when 0
Graphics.wait(fadein_speed / 2)
fadein(fadein_speed)
when 1
Graphics.wait(fadein_speed / 2)
white_fadein(fadein_speed)
end
@map_name_window.open
Autosave.call if $game_switches[ToddAutoSaveAce::AUTOSAVETM] == true
end
end
end
module DataManager
#--------------------------------------------------------------------------
# * Create Filename
# index : File Index
#--------------------------------------------------------------------------
def self.make_filename(index)
if index + 1 == ToddAutoSaveAce::VARIABLE
sprintf("%s.rvdata2", ToddAutoSaveAce::AUTOSAVEFILENAME)
else
sprintf("Save%02d.rvdata2", index + 1)
end
end
end
class Window_SaveFile
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
change_color(normal_color)
if @file_index + 1 == ToddAutoSaveAce::VARIABLE
name = ToddAutoSaveAce::AUTOSAVEFILENAME
else
name = Vocab::File + " #{@file_index + 1}"
end
draw_text(4, 0, 200, line_height, name)
@name_width = text_size(name).width
draw_party_characters(152, 58)
draw_playtime(0, contents.height - line_height, contents.width - 4, 2)
end
end Как я помню этот скрипт не совместим со световыми эффектами Кхаса. В этой версии это исправлено? |
Администратор запретил публиковать записи гостям.
|
Ящики (VX ACE) 10 года 2 мес. назад #74200
|
Как я помню этот скрипт не совместим со световыми эффектами Кхаса. В этой версии это исправлено? Нет, и это не ставилось целью скрипта. Все претензии и вопросы по Кхасу к автору (Dr. Todd) |
Администратор запретил публиковать записи гостям.
|
Ящики (VX ACE) 10 года 2 мес. назад #74422
|
Прошла! Заняло где-то в районе часа. Вот список впечатлений:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ][ Нажмите, чтобы скрыть ] - Вот засада, игру развернула на весь экран, а она взяла и свернулась опять - Сохранение прикольно сделано! - И опять вышибло ( впоследствие выяснилось, что после каждого уровня игру вышибает из полноэкранного режима) - На втором уровне ящики были уже сразу расставлены как надо - то есть головоломка появилась сразу решенной - И опять свернулось и эта поганая консоль! Блин, уже раздражает! - Да и уровень-то на 1 зуб - элементарщина - Попробовала не сохраняясь перейти на следующий - все равно выкидывает из полноэкранного режима - ну что ты будешь делать((( - Обратила внимание на то, что меняется при перезапуске вид комнаты, не совсем уверена, что это хорошее решение , из за этого приходится перестраиваться зрительно, что неудобно - Про порт прикольная шутка)) - На одном уровне он сказал, что мол не трудно не легко, в самый раз - при этом уровень сгенерировался просто элементарный, вообще прошла чуть ли не мгновенно - Вот опять говорит, что "не просто", а между тем на уровне уже два ящика стоит на кнопках, почти решенный! - И еще плохо, что герой переодически ругается на свою участь и постоянно недоволен и скулит, я тут включила игру развлечьсь повеселиться, мне в кайф двигать эти ящики, а герой не разделяет эту точку зрения, отчего возникает некий диссонанс) ну, у меня по крайней мере) - вот опять "скорей бы закончилось"...ыыы - Как их много!!! 0_о Похоже, дошла до сложных уровней. - На 24 уровне при загрузке повисло вообще на 5 минут, причем даже через диспетчер задач не удалось вырубить процесс, т.к. разрешение экрана поменялось и кнопки были недоступны, уж хотела комп перезагружать по-горячему, как вдруг уровень загрузился. А я уж думала, что повисло нафиг. - А конец интересный, не ожидала, посмеялась от души))) Понравилось - Юмор - Прикольное оформление Не понравилось - Реплики героя не всегда в тему - Выпадающая консоль раздражает и не дает сосредоточиться на игре (если играть с геймпада, то вообще заколебаешься бегать туда сюда ) - Зависание на последнем уровне Итого: Здорово, что такое возможно технически, и что-то в этом определенно есть. Липтон писал 5. Ну и пару раз помянул создателей добрым словом, когда от случайного прикосновения ящик сдвигался к стенке. =) Все таки я бы лучше двигал их по энтеру. =) А вот тут не уверена, постоянно жать энтер тоже вроде не очень круто. Я не испытывала подобной проблемы, когда играла. Так что идея добавить именно опцию в настройках - идеальное решение. Пещерный писал 1) Сделать показ прохождения (например, по кнопке). При этом: - в идеале уровень сбрасывается на начало, и начинается автоматический проигрыш уровня, Джон сам по себе ходит и толкает ящики Да вот это было бы круто. Пещерный писал Мозголом. Без генератора. Собрать на просторах интернетов годные варианты головоломок (в том числе, с неровными комнатами), предоставить решать игроку. А по-моему в этой игре это будет лишним. |
Последнее редактирование: 7 года 8 мес. назад от Демий.
Администратор запретил публиковать записи гостям.
|
|
Модераторы: Lis
Время создания страницы: 0.225 секунд