- Сообщений: 56
- Спасибо получено: 91
Ящики (VX ACE)
caveman пишет:
Вот свежий, допиленный скрипт от Др.Тодда.2) Сам такой скрипт хочу, искал как-то раз, но не нашел
Я доработал чуть его, для того, чтоб автосейв также показывался в окне сохранения/загрузки.
ВНИМАНИЕ: Спойлер!Code:#=============================================================================== # # DT's Autosave # Author: DoctorTodd # Date (06/22/2012) # Edited by: ArkLennard # Date (01/13/2013) # Version: (1.0.0) (VXA) # Level: (Simple) # Email: Todd@beacongames.com # #=============================================================================== # # 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
Как я помню этот скрипт не совместим со световыми эффектами Кхаса. В этой версии это исправлено?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Нет, и это не ставилось целью скрипта. Все претензии и вопросы по Кхасу к автору (Dr. Todd)Как я помню этот скрипт не совместим со световыми эффектами Кхаса. В этой версии это исправлено?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Сохранение прикольно сделано!
- И опять вышибло ( впоследствие выяснилось, что после каждого уровня игру вышибает из полноэкранного режима)
- На втором уровне ящики были уже сразу расставлены как надо - то есть головоломка появилась сразу решенной
- И опять свернулось и эта поганая консоль! Блин, уже раздражает!
- Да и уровень-то на 1 зуб - элементарщина
- Попробовала не сохраняясь перейти на следующий - все равно выкидывает из полноэкранного режима - ну что ты будешь делать(((
- Обратила внимание на то, что меняется при перезапуске вид комнаты, не совсем уверена, что это хорошее решение , из за этого приходится перестраиваться зрительно, что неудобно
- Про порт прикольная шутка))
- На одном уровне он сказал, что мол не трудно не легко, в самый раз - при этом уровень сгенерировался просто элементарный, вообще прошла чуть ли не мгновенно
- Вот опять говорит, что "не просто", а между тем на уровне уже два ящика стоит на кнопках, почти решенный!
- И еще плохо, что герой переодически ругается на свою участь и постоянно недоволен и скулит, я тут включила игру развлечьсь повеселиться, мне в кайф двигать эти ящики, а герой не разделяет эту точку зрения, отчего возникает некий диссонанс) ну, у меня по крайней мере)
- вот опять "скорей бы закончилось"...ыыы
- Как их много!!! 0_о Похоже, дошла до сложных уровней.
- На 24 уровне при загрузке повисло вообще на 5 минут, причем даже через диспетчер задач не удалось вырубить процесс, т.к. разрешение экрана поменялось и кнопки были недоступны, уж хотела комп перезагружать по-горячему, как вдруг уровень загрузился. А я уж думала, что повисло нафиг.
- А конец интересный, не ожидала, посмеялась от души)))
Понравилось
- Юмор
- Прикольное оформление
Не понравилось
- Реплики героя не всегда в тему
- Выпадающая консоль раздражает и не дает сосредоточиться на игре (если играть с геймпада, то вообще заколебаешься бегать туда сюда
- Зависание на последнем уровне
Итого: Здорово, что такое возможно технически, и что-то в этом определенно есть.
Липтон писал
5. Ну и пару раз помянул создателей добрым словом, когда от случайного прикосновения ящик сдвигался к стенке.
Все таки я бы лучше двигал их по энтеру.
А вот тут не уверена, постоянно жать энтер тоже вроде не очень круто. Я не испытывала подобной проблемы, когда играла. Так что идея добавить именно опцию в настройках - идеальное решение.
Пещерный писал
1) Сделать показ прохождения (например, по кнопке). При этом:
- в идеале уровень сбрасывается на начало, и начинается автоматический проигрыш уровня, Джон сам по себе ходит и толкает ящики
Да вот это было бы круто.
Пещерный писал
Мозголом. Без генератора. Собрать на просторах интернетов годные варианты головоломок (в том числе, с неровными комнатами), предоставить решать игроку.
А по-моему в этой игре это будет лишним.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

