Resource Checker/Unchecker(VXACE)
Автор: caveman
Версия: 1.1
Тип: Работа с БД и ресурсами
Описание:
По подкинутой DeadElf79 идее нарисовал скрипт, который проверяет существование в папках проекта звуковых и графических ресурсов, используемых в игре, а также проверяет наличие неиспользуемых ресурсов.
Полезно:
- при отвязке проекта от rtp и распространении игры на те компы, где он не установлен
- для уменьшения количества лучей ненависти на форуме по отношению к новичкам, выложившим очередной проект с забытым фейсом или музыкой
- для уменьшения веса проекта путем избавления его от лишних ненужных файлов
Особенности:
Скрипт, кроме БД проекта, просматривает все общие события, а также карты (батлбеки, параллакс файл, BGS, BGM) и все события карт, которые могут задействовать ресурсы, типа Change Actor Graphic, Show Picture или Play SE (где-то с десяток видов), а также два события изменения ресурсов внутри Set Move Route.
Скрипт для VX (положить в Materials):
Спойлер файл настроек:
Код:#=============================================================================== =begin Resource Checker Скрипт проверяет наличие всех используемых ресурсов в игре. Автор: caveman Версия: 1.1 Изменения: 1.1 - добавлена возможность проверки наличия лишних ресурсов - добавлено несколько забытых проверок в чекер (титульник и графика евента) =end #=============================================================================== class Checker def initialize #==========МЕНЯЕМ ТОЛЬКО ЗДЕСЬ========== #опция проверки наличия ресурсов (пункт в меню) @check_resource=true #опция проверки неиспользуемых ресурсов (пункт в меню) @uncheck_resource=true #возможность проверки прямо из титульного экрана #если проект был запущен из редактора (то есть $DEBUG=true) @do_title_debug=true #==========ДАЛЬШЕ НЕ ТРОГАЕМ============ @options_button_name="Настройки" @options_check_name="Пров. нехватку" @options_uncheck_name="Пров. лишнее" @options_cancel_name="Отмена" end attr_accessor :check_resource attr_accessor :uncheck_resource attr_accessor :do_title_debug attr_accessor :options_button_name attr_accessor :options_check_name attr_accessor :options_uncheck_name attr_accessor :options_cancel_name end $max_maps=999 $counter=0 class Game_Event attr_accessor :erased def g_event return @event end end class Game_Map def g_map return @map end end class Window_TitleCommand def make_command_list add_command(Vocab::new_game, :new_game) add_command(Vocab::continue, :continue, continue_enabled) if $checker.do_title_debug add_command($checker.options_button_name, :checker) end add_command(Vocab::shutdown, :shutdown) end end class Window_DialsCommand<Window_TitleCommand def make_command_list add_command($checker.options_check_name,:check,$checker.check_resource) add_command($checker.options_uncheck_name,:uncheck,$checker.uncheck_resource) add_command($checker.options_cancel_name,:cancel) end end class Scene_Title def start super SceneManager.clear Graphics.freeze create_background create_foreground $checker=Checker.new create_command_window create_extra_window play_title_music end def create_command_window @command_window = Window_TitleCommand.new @command_window.set_handler(:new_game, method(:command_new_game)) @command_window.set_handler(:continue, method(:command_continue)) if $checker.do_title_debug @command_window.set_handler(:checker, method(:command_checker)) end @command_window.set_handler(:shutdown, method(:command_shutdown)) end def create_extra_window @extra=Window_DialsCommand.new @extra.visible=false @extra.x = (Graphics.width - @command_window.width) / 2+@extra.width @extra.y = (Graphics.height * 1.6 - @command_window.height) / 2 @extra.set_handler(:check, method(:command_check)) @extra.set_handler(:uncheck, method(:command_uncheck)) @extra.set_handler(:cancel, method(:command_cancel)) end def command_checker @extra.visible=true @extra.openness=0 @extra.open @command_window.active=false @extra.active=true end def command_check checker=Resource_Checker.new if checker.done then @extra.close msgbox "Проверка успешно завершена!" update until @extra.close? @command_window.active=true @extra.active=false elsif checker.error @extra.close @file=File.open("check.txt","w") @file.write(checker.errmsg) @file.close msgbox "При проверке возникли ошибки. Смотрите в файле check.txt" update until @extra.close? @command_window.active=true @extra.active=false elsif @extra.close msgbox "Эльфы полетели!" update until @extra.close? @command_window.active=true @extra.active=false end end def command_uncheck checker=Resource_Unchecker.new if checker.done then @extra.close msgbox "Проверка успешно завершена!" update until @extra.close? @command_window.active=true @extra.active=false elsif checker.error @extra.close @file=File.open("uncheck.txt","w") @file.write(checker.errmsg) @file.close msgbox "При проверке нашлись ненужные ресурсы. Смотрите в файле uncheck.txt" update until @extra.close? @command_window.active=true @extra.active=false elsif @extra.close msgbox "Эльфы полетели!" update until @extra.close? @command_window.active=true @extra.active=false end end def command_cancel @extra.close update until @extra.close? @command_window.active=true @extra.active=false end end
Спойлер скрипт checker:
Код:#=============================================================================== =begin RESOURCE_CHECKER Проверяльщик ресурсов Этот скрипт просматривает проект на предмет забытых графических и звуковых ресурсов при выкладывании без РТП. Автор: caveman =end #=============================================================================== class Resource_Checker attr_accessor :done attr_accessor :error attr_accessor :errmsg def initialize DataManager.init $checker=Checker.new if $checker==nil @done=true @error = false @errmsg = "[База]\n" if !check_db? @error = true @done = false end @errmsg += "\n" @errmsg += "[Общие события]\n" if !check_commons? @error = true @done = false end @errmsg += "\n" @errmsg += "[Карты]\n" for map in 1..$max_maps if FileTest.exist?(sprintf("Data/Map%03d.rvdata2",map)) if !check_map?(map) @error = true @done = false end else next end end @errmsg += "\n" end def check_img_file?(folder_name, file_name) if FileTest.exist?(sprintf("Graphics/%s/%s.%s",folder_name,file_name,"png")) return true end return false end def check_vid_file?(file_name) if FileTest.exist?(sprintf("Movies/%s",file_name)) return true end return false end def check_mus_file?(folder_name, file_name) if FileTest.exist?(sprintf("Audio/%s/%s.%s",folder_name,file_name,"mp3")) || FileTest.exist?(sprintf("Audio/%s/%s.%s",folder_name,file_name,"ogg")) return true end return false end def check_db? flag = true # icons if !check_img_file?("System","IconSet") @errmsg += sprintf("Не найден набор %s.png в папке System\n", "IconSet") flag = false end # actors for i in 1...$data_actors.size if $data_actors[i].character_name != "" && !check_img_file?("Characters",$data_actors[i].character_name) @errmsg += sprintf("Не найдена графика %s.png в папке Characters\n", $data_actors[i].character_name) flag = false end if $data_actors[i].face_name != "" && !check_img_file?("Faces",$data_actors[i].face_name) @errmsg += sprintf("Не найден фейс %s.png в папке Faces\n", $data_actors[i].face_name) flag = false end end # enemies for i in 1...$data_enemies.size if $data_enemies[i].battler_name != "" && !check_img_file?("Battlers",$data_enemies[i].battler_name) @errmsg += sprintf("Не найдена графика противника %s.png в папке Battlers\n", $data_enemies[i].battler_name) flag = false end end # animations for i in 1...$data_animations.size if $data_animations[i].animation1_name != "" && !check_img_file?("Animations",$data_animations[i].animation1_name) @errmsg += sprintf("Не найдена анимационная графика 1 %s.png в папке Animations\n", $data_animations[i].animation1_name) flag = false end if $data_animations[i].animation2_name != "" && !check_img_file?("Animations",$data_animations[i].animation2_name) @errmsg += sprintf("Не найдена анимационная графика 2 %s.png в папке Animations\n", $data_animations[i].animation2_name) flag = false end end # tilesets for i in 1...$data_tilesets.size for j in 0...8 if $data_tilesets[i].tileset_names[j] != "" && !check_img_file?("Tilesets",$data_tilesets[i].tileset_names[j]) @errmsg += sprintf("Не найдена графика для тайлсета %s.png в папке Tilesets\n", $data_tilesets[i].tileset_names[j]) flag = false end end end # system if $data_system.title1_name != "" && !check_img_file?("Titles1",$data_system.title1_name) @errmsg += sprintf("Не найдена графика для Title %s.png в папке Titles1\n", $data_system.title1_name) flag = false end if $data_system.title2_name != "" && !check_img_file?("Titles2",$data_system.title2_name) @errmsg += sprintf("Не найдена графика для Title %s.png в папке Titles2\n", $data_system.title2_name) flag = false end if $data_system.boat.character_name != "" && !check_img_file?("Characters",$data_system.boat.character_name) @errmsg += sprintf("Не найдена графика для boat %s.png в папке Characters\n", $data_system.boat.character_name) flag = false end if $data_system.ship.character_name != "" && !check_img_file?("Characters",$data_system.ship.character_name) @errmsg += sprintf("Не найдена графика для ship %s.png в папке Characters\n", $data_system.ship.character_name) flag = false end if $data_system.airship.character_name != "" && !check_img_file?("Characters",$data_system.airship.character_name) @errmsg += sprintf("Не найдена графика для airship %s.png в папке Characters\n", $data_system.airship.character_name) flag = false end if $data_system.title_bgm.name != "" && !check_mus_file?("BGM",$data_system.title_bgm.name) @errmsg += sprintf("Не найден трек %s для title_bgm в папке Audio/BGM\n", $data_system.title_bgm.name) flag = false end if $data_system.battle_bgm.name != "" && !check_mus_file?("BGM",$data_system.battle_bgm.name) @errmsg += sprintf("Не найден трек %s для battle_bgm в папке Audio/BGM\n", $data_system.battle_bgm.name) flag = false end if $data_system.battle_end_me.name != "" && !check_mus_file?("ME",$data_system.battle_end_me.name) @errmsg += sprintf("Не найден трек %s для battle_end_me в папке Audio/ME\n", $data_system.battle_end_me.name) flag = false end if $data_system.gameover_me.name != "" && !check_mus_file?("ME",$data_system.gameover_me.name) @errmsg += sprintf("Не найден трек %s для gameover_me в папке Audio/ME\n", $data_system.gameover_me.name) flag = false end if $data_system.boat.bgm.name != "" && !check_mus_file?("BGM",$data_system.boat.bgm.name) @errmsg += sprintf("Не найден трек %s для boat в папке Audio/BGM\n", $data_system.boat.bgm.name) flag = false end if $data_system.ship.bgm.name != "" && !check_mus_file?("BGM",$data_system.ship.bgm.name) @errmsg += sprintf("Не найден трек %s для ship в папке Audio/BGM\n", $data_system.ship.bgm.name) flag = false end if $data_system.airship.bgm.name != "" && !check_mus_file?("BGM",$data_system.airship.bgm.name) @errmsg += sprintf("Не найден трек %s для airship в папке Audio/BGM\n", $data_system.airship.bgm.name) flag = false end for j in 0..23 if $data_system.sounds[j].name != "" && !check_mus_file?("SE",$data_system.sounds[j].name) @errmsg += sprintf("Не найден системный звук %s в папке Audio/SE\n", $data_system.sounds[j].name) flag = false end end return flag end def check_commons? flag = true for i in 1...$data_common_events.size list = $data_common_events[i].list if list != nil for command in list case command.code when 101 if command.parameters[0] != "" && !check_img_file?("Faces",command.parameters[0]) @errmsg += sprintf("[Общее событие %04d] Не найден фейс %s.png в папке Faces\n", i,command.parameters[0]) flag = false end when 231 if command.parameters[1] != "" && !check_img_file?("Pictures",command.parameters[1]) @errmsg += sprintf("[Общее событие %04d] Не найдена картинка %s.png в папке Pictures\n", i,command.parameters[1]) flag = false end when 241 if command.parameters[0].name != "" && !check_mus_file?("BGM",command.parameters[0].name) @errmsg += sprintf("[Общее событие %04d] Не найден BGM файл %s в папке Audio/BGM\n", i,command.parameters[0].name) flag = false end when 245 if command.parameters[0].name != "" && !check_mus_file?("BGS",command.parameters[0].name) @errmsg += sprintf("[Общее событие %04d] Не найден BGS файл %s в папке Audio/BGS\n", i,command.parameters[0].name) flag = false end when 249 if command.parameters[0].name != "" && !check_mus_file?("ME",command.parameters[0].name) @errmsg += sprintf("[Общее событие %04d] Не найден ME файл %s в папке Audio/ME\n", i,command.parameters[0].name) flag = false end when 250 if command.parameters[0].name != "" && !check_mus_file?("SE",command.parameters[0].name) @errmsg += sprintf("[Общее событие %04d] Не найден SE файл %s в папке Audio/SE\n", i,command.parameters[0].name) flag = false end when 283 if command.parameters[0] != "" && !check_img_file?("Battlebacks1",command.parameters[0]) @errmsg += sprintf("[Общее событие %04d] Не найдена картинка %s.png в папке Battlebacks1\n", i,command.parameters[0].name) flag = false end if command.parameters[1] != "" && !check_img_file?("Battlebacks2",command.parameters[1]) @errmsg += sprintf("[Общее событие %04d] Не найдена картинка %s.png в папке Battlebacks2\n", i,command.parameters[1]) flag = false end when 284 if command.parameters[0] != "" && !check_img_file?("Parallaxes",command.parameters[0]) @errmsg += sprintf("[Общее событие %04d] Не найдена картинка %s.png в папке Parallaxes\n", i,command.parameters[0]) flag = false end when 261 if command.parameters[0] != "" && !check_vid_file?(command.parameters[0]) @errmsg += sprintf("[Общее событие %04d] Не найдено видео %s в папке Movies\n", i,command.parameters[0]) flag = false end when 132 if command.parameters[0].name != "" && !check_mus_file?("BGM",command.parameters[0].name) @errmsg += sprintf("[Общее событие %04d] Не найден BGM файл %s в папке Audio/BGM\n", i,command.parameters[0].name) flag = false end when 133 if command.parameters[0].name != "" && !check_mus_file?("ME",command.parameters[0].name) @errmsg += sprintf("[Общее событие %04d] Не найден ME файл %s в папке Audio/ME\n", i,command.parameters[0].name) flag = false end when 322 if command.parameters[1] != "" && !check_img_file?("Characters",command.parameters[1]) @errmsg += sprintf("[Общее событие %04d] Не найден файл %s.png в папке Characters\n", i,command.parameters[1]) flag = false end if command.parameters[3] != "" && !check_img_file?("Faces",command.parameters[3]) @errmsg += sprintf("[Общее событие %04d] Не найден файл %s.png в папке Faces\n", i,command.parameters[3]) flag = false end when 323 if command.parameters[1] != "" && !check_img_file?("Characters",command.parameters[1]) @errmsg += sprintf("[Общее событие %04d] Не найден файл %s.png в папке Characters\n", i,command.parameters[1]) flag = false end # move route when 205 for j in 0..command.parameters[1].list.length-1 cmd = command.parameters[1].list[j] if cmd.code == 41 # change graphic if cmd.parameters[0] != "" && !check_img_file?("Characters",cmd.parameters[0]) @errmsg += sprintf("[Общее событие %04d] Не найден файл %s.png в папке Characters\n", i,cmd.parameters[0]) flag = false end end if cmd.code == 44 # play SE if cmd.parameters[0].name != "" && !check_mus_file?("SE",cmd.parameters[0].name) @errmsg += sprintf("[Общее событие %04d] Не найден SE файл %s в папке Audio/SE\n", i,cmd.parameters[0].name) flag = false end end end end end end end return flag end def check_map?(map_id) flag = true $game_map = Game_Map.new $game_map.setup(map_id) if $game_map.parallax_name != "" && !check_img_file?("Parallaxes",$game_map.parallax_name) @errmsg += sprintf("[Карта %04d] Не найден файл %s.png в папке Parallaxes\n", map_id,$game_map.parallax_name) flag = false end if $game_map.battleback1_name != "" && !check_img_file?("Battlebacks1",$game_map.battleback1_name) @errmsg += sprintf("[Карта %04d] Не найден файл %s.png в папке Battlebacks1\n", map_id,$game_map.battleback1_name) flag = false end if $game_map.battleback2_name != "" && !check_img_file?("Battlebacks2",$game_map.battleback2_name) @errmsg += sprintf("[Карта %04d] Не найден файл %s.png в папке Battlebacks2\n", map_id,$game_map.battleback2_name) flag = false end if $game_map.g_map.bgm.name != "" && !check_mus_file?("BGM",$game_map.g_map.bgm.name) @errmsg += sprintf("[Карта %04d] Не найден трек %s в папке Audio/BGM\n", map_id,$game_map.g_map.bgm.name) flag = false end if $game_map.g_map.bgs.name != "" && !check_mus_file?("BGS",$game_map.g_map.bgs.name) @errmsg += sprintf("[Карта %04d] Не найден трек %s в папке Audio/BGS\n", map_id,$game_map.g_map.bgs.name) flag = false end events=$game_map.events for i in 1..9999 if events[i]!=nil for page in events[i].g_event.pages unless page.list.nil? if page.graphic.character_name != "" && !check_img_file?("Characters",page.graphic.character_name) @errmsg += sprintf("[Карта %04d, событие %04d] Не найдена графика события %s.png в папке Characters\n", map_id,i,page.graphic.character_name) flag = false end for command in page.list case command.code when 101 if command.parameters[0] != "" && !check_img_file?("Faces",command.parameters[0]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден фейс %s.png в папке Faces\n", map_id,i,command.parameters[0]) flag = false end when 231 if command.parameters[1] != "" && !check_img_file?("Pictures",command.parameters[1]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найдена картинка %s.png в папке Pictures\n", map_id,i,command.parameters[1]) flag = false end when 241 if command.parameters[0].name != "" && !check_mus_file?("BGM",command.parameters[0].name) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден BGM файл %s в папке Audio/BGM\n", map_id,i,command.parameters[0].name) flag = false end when 245 if command.parameters[0].name != "" && !check_mus_file?("BGS",command.parameters[0].name) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден BGS файл %s в папке Audio/BGS\n", map_id,i,command.parameters[0].name) flag = false end when 249 if command.parameters[0].name != "" && !check_mus_file?("ME",command.parameters[0].name) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден ME файл %s в папке Audio/ME\n", map_id,i,command.parameters[0].name) flag = false end when 250 if command.parameters[0].name != "" && !check_mus_file?("SE",command.parameters[0].name) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден SE файл %s в папке Audio/SE\n", map_id,i,command.parameters[0].name) flag = false end when 283 if command.parameters[0] != "" && !check_img_file?("Battlebacks1",command.parameters[0]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найдена картинка %s.png в папке Battlebacks1\n", map_id,i,command.parameters[0].name) flag = false end if command.parameters[1] != "" && !check_img_file?("Battlebacks2",command.parameters[1]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найдена картинка %s.png в папке Battlebacks2\n", map_id,i,command.parameters[1]) flag = false end when 284 if command.parameters[0] != "" && !check_img_file?("Parallaxes",command.parameters[0]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найдена картинка %s.png в папке Parallaxes\n", map_id,i,command.parameters[0]) flag = false end when 261 if command.parameters[0] != "" && !check_vid_file?(command.parameters[0]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найдено видео %s в папке Movies\n", map_id,i,command.parameters[0]) flag = false end when 132 if command.parameters[0].name != "" && !check_mus_file?("BGM",command.parameters[0].name) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден BGM файл %s в папке Audio/BGM\n", map_id,i,command.parameters[0].name) flag = false end when 133 if command.parameters[0].name != "" && !check_mus_file?("ME",command.parameters[0].name) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден ME файл %s в папке Audio/ME\n", map_id,i,command.parameters[0].name) flag = false end when 322 if command.parameters[1] != "" && !check_img_file?("Characters",command.parameters[1]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден файл %s.png в папке Characters\n", map_id,i,command.parameters[1]) flag = false end if command.parameters[3] != "" && !check_img_file?("Faces",command.parameters[3]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден файл %s.png в папке Faces\n", map_id,i,command.parameters[3]) flag = false end when 323 if command.parameters[1] != "" && !check_img_file?("Characters",command.parameters[1]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден файл %s.png в папке Characters\n", map_id,i,command.parameters[1]) flag = false end # move route when 205 for j in 0..command.parameters[1].list.length-1 cmd = command.parameters[1].list[j] if cmd.code == 41 # change graphic if cmd.parameters[0] != "" && !check_img_file?("Characters",cmd.parameters[0]) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден файл %s.png в папке Characters\n", map_id,i,cmd.parameters[0]) flag = false end end if cmd.code == 44 # play SE if cmd.parameters[0].name != "" && !check_mus_file?("SE",cmd.parameters[0].name) @errmsg += sprintf("[Карта %04d, событие %04d] Не найден SE файл %s в папке Audio/SE\n", map_id,i,cmd.parameters[0].name) flag = false end end end end end end end end end return flag end end
Спойлер скрипт unchecker:
Код:#=============================================================================== =begin RESOURCE_UNCHECKER Проверяльщик ресурсов Этот скрипт просматривает папки проекта на предмет неиспользуемых в проекте графических и звуковых ресурсов при выкладывании без РТП. Автор: caveman =end #=============================================================================== class Resource_Unchecker attr_accessor :done attr_accessor :error attr_accessor :errmsg def initialize DataManager.init $checker=Checker.new if $checker==nil @done=true @error = false # списки существующих ресурсов по папкам # звуки @bgm_array = [] @bgs_array = [] @se_array = [] @me_array = [] # ролики @vid_array = [] # графика @anim_array = [] @bb1_array = [] @bb2_array = [] @btl_array = [] @char_array = [] @face_array = [] @prlx_array = [] @pict_array = [] @sys_array = [] @tile_array = [] @ttl1_array = [] @ttl2_array = [] check_db check_commons for map in 1..$max_maps if FileTest.exist?(sprintf("Data/Map%03d.rvdata2",map)) check_map(map) else next end end if !find_unused? @error = true @done = false elsif @error = false @done = true end end def find_unused? flag = true @errmsg = "[Audio/BGM]\n" Dir.foreach("Audio/BGM") {|x| if x != "." && x != ".." if !@bgm_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Audio/BGS]\n" Dir.foreach("Audio/BGS") {|x| if x != "." && x != ".." if !@bgs_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Audio/SE]\n" Dir.foreach("Audio/SE") {|x| if x != "." && x != ".." if !@se_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Audio/ME]\n" Dir.foreach("Audio/ME") {|x| if x != "." && x != ".." if !@me_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Movies]\n" Dir.foreach("Movies") {|x| if x != "." && x != ".." if !@vid_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Animations]\n" Dir.foreach("Graphics/Animations") {|x| if x != "." && x != ".." if !@anim_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Battlebacks1]\n" Dir.foreach("Graphics/Battlebacks1") {|x| if x != "." && x != ".." if !@bb1_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Battlebacks2]\n" Dir.foreach("Graphics/Battlebacks2") {|x| if x != "." && x != ".." if !@bb2_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Battlers]\n" Dir.foreach("Graphics/Battlers") {|x| if x != "." && x != ".." if !@btl_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Characters]\n" Dir.foreach("Graphics/Characters") {|x| if x != "." && x != ".." if !@char_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Faces]\n" Dir.foreach("Graphics/Faces") {|x| if x != "." && x != ".." if !@face_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Parallaxes]\n" Dir.foreach("Graphics/Parallaxes") {|x| if x != "." && x != ".." if !@prlx_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Pictures]\n" Dir.foreach("Graphics/Pictures") {|x| if x != "." && x != ".." if !@pict_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Tilesets]\n" Dir.foreach("Graphics/Tilesets") {|x| if x != "." && x != ".." if !@tile_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Titles1]\n" Dir.foreach("Graphics/Titles1") {|x| if x != "." && x != ".." if !@ttl1_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } @errmsg += "\n" @errmsg += "[Graphics/Titles2]\n" Dir.foreach("Graphics/Titles2") {|x| if x != "." && x != ".." if !@ttl2_array.include?(File.basename(x, ".*")) @errmsg += sprintf("%s\n", x) flag = false end end } return flag end def check_img_file?(folder_name, file_name) if FileTest.exist?(sprintf("Graphics/%s/%s.%s",folder_name,file_name,"png")) return true end return false end def check_vid_file?(file_name) if FileTest.exist?(sprintf("Movies/%s",file_name)) return true end return false end def check_mus_file?(folder_name, file_name) if FileTest.exist?(sprintf("Audio/%s/%s.%s",folder_name,file_name,"mp3")) || FileTest.exist?(sprintf("Audio/%s/%s.%s",folder_name,file_name,"ogg")) return true end return false end def check_db # actors for i in 1...$data_actors.size if $data_actors[i].character_name != "" && !@char_array.include?($data_actors[i].character_name) @char_array.push($data_actors[i].character_name) end if $data_actors[i].face_name != "" && !@face_array.include?($data_actors[i].face_name) @face_array.push($data_actors[i].face_name) end end # enemies for i in 1...$data_enemies.size if $data_enemies[i].battler_name != "" && !@btl_array.include?($data_enemies[i].battler_name) @btl_array.push($data_enemies[i].battler_name) end end # animations for i in 1...$data_animations.size if $data_animations[i].animation1_name != "" && !@anim_array.include?($data_animations[i].animation1_name) @anim_array.push($data_animations[i].animation1_name) end if $data_animations[i].animation2_name != "" && !@anim_array.include?($data_animations[i].animation2_name) @anim_array.push($data_animations[i].animation2_name) end end # tilesets for i in 1...$data_tilesets.size for j in 0...8 if $data_tilesets[i].tileset_names[j] != "" && !@tile_array.include?($data_tilesets[i].tileset_names[j]) @tile_array.push($data_tilesets[i].tileset_names[j]) end end end # system if $data_system.title1_name != "" && !@ttl1_array.include?($data_system.title1_name) @ttl1_array.push($data_system.title1_name) end if $data_system.title2_name != "" && !@ttl2_array.include?($data_system.title2_name) @ttl2_array.push($data_system.title2_name) end if $data_system.boat.character_name != "" && !@char_array.include?($data_system.boat.character_name) @char_array.push($data_system.boat.character_name) end if $data_system.ship.character_name != "" && !@char_array.include?($data_system.ship.character_name) @char_array.push($data_system.ship.character_name) end if $data_system.airship.character_name != "" && !@char_array.include?($data_system.airship.character_name) @char_array.push($data_system.airship.character_name) end if $data_system.title_bgm.name != "" && !@bgm_array.include?($data_system.title_bgm.name) @bgm_array.push($data_system.title_bgm.name) end if $data_system.battle_bgm.name != "" && !@bgm_array.include?($data_system.battle_bgm.name) @bgm_array.push($data_system.battle_bgm.name) end if $data_system.battle_end_me.name != "" && !@me_array.include?($data_system.battle_end_me.name) @me_array.push($data_system.battle_end_me.name) end if $data_system.gameover_me.name != "" && !@me_array.include?($data_system.gameover_me.name) @me_array.push($data_system.gameover_me.name) end if $data_system.boat.bgm.name != "" && !@bgm_array.include?($data_system.boat.bgm.name) @bgm_array.push($data_system.boat.bgm.name) end if $data_system.ship.bgm.name != "" && !@bgm_array.include?($data_system.ship.bgm.name) @bgm_array.push($data_system.ship.bgm.name) end if $data_system.airship.bgm.name != "" && !@bgm_array.include?($data_system.airship.bgm.name) @bgm_array.push($data_system.airship.bgm.name) end for j in 0..23 if $data_system.sounds[j].name != "" && !@se_array.include?($data_system.sounds[j].name) @se_array.push($data_system.sounds[j].name) end end end def check_commons for i in 1...$data_common_events.size list = $data_common_events[i].list if list != nil for command in list case command.code when 101 if command.parameters[0] != "" && !@face_array.include?(command.parameters[0]) @face_array.push(command.parameters[0]) end when 231 if command.parameters[1] != "" && !@pict_array.include?(command.parameters[1]) @pict_array.push(command.parameters[1]) end when 241 if command.parameters[0].name != "" && !@bgm_array.include?(command.parameters[0].name) @bgm_array.push(command.parameters[0].name) end when 245 if command.parameters[0].name != "" && !@bgs_array.include?(command.parameters[0].name) @bgs_array.push(command.parameters[0].name) end when 249 if command.parameters[0].name != "" && !@me_array.include?(command.parameters[0].name) @me_array.push(command.parameters[0].name) end when 250 if command.parameters[0].name != "" && !@se_array.include?(command.parameters[0].name) @se_array.push(command.parameters[0].name) end when 283 if command.parameters[0] != "" && !@bb1_array.include?(command.parameters[0]) @bb1_array.push(command.parameters[0]) end if command.parameters[1] != "" && !@bb2_array.include?(command.parameters[1]) @bb2_array.push(command.parameters[1]) end when 284 if command.parameters[0] != "" && !@prlx_array.include?(command.parameters[0]) @prlx_array.push(command.parameters[0]) end when 261 if command.parameters[0] != "" && !@vid_array.include?(command.parameters[0]) @vid_array.push(command.parameters[0]) end when 132 if command.parameters[0].name != "" && !@bgm_array.include?(command.parameters[0].name) @bgm_array.push(command.parameters[0].name) end when 133 if command.parameters[0].name != "" && !@me_array.include?(command.parameters[0].name) @me_array.push(command.parameters[0].name) end when 322 if command.parameters[1] != "" && !@char_array.include?(command.parameters[1]) @char_array.push(command.parameters[1]) end if command.parameters[3] != "" && !@face_array.include?(command.parameters[3]) @face_array.push(command.parameters[3]) end when 323 if command.parameters[1] != "" && !@char_array.include?(command.parameters[1]) @char_array.push(command.parameters[1]) end # move route when 205 for j in 0..command.parameters[1].list.length-1 cmd = command.parameters[1].list[j] if cmd.code == 41 # change graphic if cmd.parameters[0] != "" && !@char_array.include?(cmd.parameters[0]) @char_array.push(cmd.parameters[0]) end end if cmd.code == 44 # play SE if cmd.parameters[0].name != "" && !@se_array.include?(cmd.parameters[0].name) @se_array.push(cmd.parameters[0].name) end end end end end end end end def check_map(map_id) $game_map = Game_Map.new $game_map.setup(map_id) if $game_map.parallax_name != "" && !@prlx_array.include?($game_map.parallax_name) @prlx_array.push($game_map.parallax_name) end if $game_map.battleback1_name != "" && !@bb1_array.include?($game_map.battleback1_name) @bb1_array.push($game_map.battleback1_name) end if $game_map.battleback2_name != "" && !@bb2_array.include?($game_map.battleback2_name) @bb2_array.push($game_map.battleback2_name) end if $game_map.g_map.bgm.name != "" && !@bgm_array.include?($game_map.g_map.bgm.name) @bgm_array.push($game_map.g_map.bgm.name) end if $game_map.g_map.bgs.name != "" && !@bgs_array.include?($game_map.g_map.bgs.name) @bgs_array.push($game_map.g_map.bgs.name) end events=$game_map.events for i in 1..9999 if events[i]!=nil for page in events[i].g_event.pages unless page.list.nil? if page.graphic.character_name != "" && !@char_array.include?(page.graphic.character_name) @char_array.push(page.graphic.character_name) end for command in page.list case command.code when 101 if command.parameters[0] != "" && !@face_array.include?(command.parameters[0]) @face_array.push(command.parameters[0]) end when 231 if command.parameters[1] != "" && !@pict_array.include?(command.parameters[1]) @pict_array.push(command.parameters[1]) end when 241 if command.parameters[0].name != "" && !@bgm_array.include?(command.parameters[0].name) @bgm_array.push(command.parameters[0].name) end when 245 if command.parameters[0].name != "" && !@bgs_array.include?(command.parameters[0].name) @bgs_array.push(command.parameters[0].name) end when 249 if command.parameters[0].name != "" && !@me_array.include?(command.parameters[0].name) @me_array.push(command.parameters[0].name) end when 250 if command.parameters[0].name != "" && !@se_array.include?(command.parameters[0].name) @se_array.push(command.parameters[0].name) end when 283 if command.parameters[0] != "" && !@bb1_array.include?(command.parameters[0]) @bb1_array.push(command.parameters[0]) end if command.parameters[1] != "" && !@bb2_array.include?(command.parameters[1]) @bb2_array.push(command.parameters[1]) end when 284 if command.parameters[0] != "" && !@prlx_array.include?(command.parameters[0]) @prlx_array.push(command.parameters[0]) end when 261 if command.parameters[0] != "" && !@vid_array.include?(command.parameters[0]) @vid_array.push(command.parameters[0]) end when 132 if command.parameters[0].name != "" && !@bgm_array.include?(command.parameters[0].name) @bgm_array.push(command.parameters[0].name) end when 133 if command.parameters[0].name != "" && !@me_array.include?(command.parameters[0].name) @me_array.push(command.parameters[0].name) end when 322 if command.parameters[1] != "" && !@char_array.include?(command.parameters[1]) @char_array.push(command.parameters[1]) end if command.parameters[3] != "" && !@face_array.include?(command.parameters[3]) @face_array.push(command.parameters[3]) end when 323 if command.parameters[1] != "" && !@char_array.include?(command.parameters[1]) @char_array.push(command.parameters[1]) end # move route when 205 for j in 0..command.parameters[1].list.length-1 cmd = command.parameters[1].list[j] if cmd.code == 41 # change graphic if cmd.parameters[0] != "" && !@char_array.include?(cmd.parameters[0]) @char_array.push(cmd.parameters[0]) end end if cmd.code == 44 # play SE if cmd.parameters[0].name != "" && !@se_array.include?(cmd.parameters[0].name) @se_array.push(cmd.parameters[0].name) end end end end end end end end end end end
Использование:
Описание настроек скрипта внутри его. По умолчанию он встраивается пунктом "Настройки->Проверить" в титульное меню, для проверенной игры этот пункт можно отключить флагом @do_title_debug.
Результат проверки выкидывается в файл check.txt или uncheck.txt в корне проекта.
Прикладываю также демку "забытыми" и "лишними" ресурсами, на которые проверки ругаются, и, если все вернуть на место / убрать - то проверка проходит, да и игра падать перестает
http://yadi.sk/d/ELjQqrOR79tvz
Социальные закладки