- Регистрация
 - 29.05.2024
 
- Темы
 - 1
 
- Сообщения
 - 764
 
- Реакции
 - 928
 
Картинка вроде переписывается, но перестает работать, если поменять папку с "Graphics" на "Graphics/System/Menu/07equip".Поставь там msgbox в конце и погляди.
И что такое 8 в args[0][0, 8]?
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Картинка вроде переписывается, но перестает работать, если поменять папку с "Graphics" на "Graphics/System/Menu/07equip".Поставь там msgbox в конце и погляди.
class << Bitmap
    alias_method :alias_new_transparent, :new unless method_defined?(:alias_new_transparent)
    def new(*args)
        modPath = "#{$trnsmod_modFolder}/"
        defultPath = args[0]
        args[0] = modPath+defultPath if args[0][0, 8] == "Graphics"
        alias_new_transparent(*args)
        rescue
        args[0] = defultPath
        alias_new_transparent(*args)
    end
end
	
	И!!!!!!!!!!!!
Я придумал!!!!!!!!!!!!!!!!!!!
Получилось!!!!!!!!!
Ruby:class Text alias_method :alias_load_file_transp, :load_file unless method_defined?(:alias_load_file_transp) def load_file(file) hashh = alias_load_file_transp(file).merge(load_file_Corsys(file)) return hashh end def load_file_Corsys(file) begin sth=File.read("#{$corsys_modFolder}/#{@base_folder}/#{file}.txt") return parse(sth.to_s.encode("utf-8")) rescue => ex # msgbox "ERROR: missing translation file #{$corsys_modFolder}/#{@base_folder}/#{file}.txt" return Hash.new end end end
![]()
![]()
Фишка этого метода еще и в том, что файлы перевода игрой воспринимаются так, будто лежат в ее родной папке текст.Проверил. Вроде хорошо работает. Намного лучше выглядит, нежели предыдущий вариант.))
Хм... Ну наверное ничего страшного, что все файлы заменяться. Потом еще погляжу, что там у меня и поудаляю лишнее. Я накидал много всякого в графику, но если она сканирует и переписывает, хочу, чтобы там было только то, что необходимо переписать.Для этого в папке мода должна быть папка Graphics, и в ней - все заменяемые файлы должны лежать в идентичных игровым папкам.
В общем, пока код вот такой, лежит без изменений,
Ruby:class << Bitmap alias_method :alias_new_transparent, :new unless method_defined?(:alias_new_transparent) def new(*args) modPath = "#{$trnsmod_modFolder}/" defultPath = args[0] args[0] = modPath+defultPath if args[0][0, 8] == "Graphics" alias_new_transparent(*args) rescue args[0] = defultPath alias_new_transparent(*args) end end
там ничего трогать не надо, кроме переименования функции для alias_method. И указания на свою папку мода.
То все файлы в папка_мода/Graphics, автоматически попадают в папку Graphics игры, так будто их заменило. Ну, виртуально, для кода игры. ВСЕ ФАЙЛЫ. В том числе с учетом вложенных папок и подпапок.
class Text
    alias_method :alias_load_file_ORIGINAL, :load_file
    def load_file(file)
        mod_file = File.exists?("#{$modName_modFolder}/#{@base_folder}/#{file}.txt")
        orig_file = File.exists?("#{@base_folder}/#{file}.txt")
        if mod_file && orig_file
            hashh = alias_load_file_ORIGINAL(file).merge(load_file_ModName(file))
        elsif mod_file
            hashh = load_file_ModName(file)
        else
            hashh = alias_load_file_ORIGINAL(file)
        end
        return hashh
    end
    def load_file_ModName(file)
        begin
            sth=File.read("#{$modName_modFolder}/#{@base_folder}/#{file}.txt")
            return parse(sth.to_s.encode("utf-8"))
        rescue => ex
            msgbox "ERROR: missing translation file #{$modName_modFolder}/#{@base_folder}/#{file}.txt"
            return Hash.new
        end
    end
end
	
	        modnpcs = FileGetter.load_NPCs_from_dir("#{$corsys_modFolder}/Data/NPCdata/")
        $data_npcs = $data_npcs.merge(modnpcs)
	
	FileGetter.load_mod_EventLib("#{$corsys_modFolder}/Data/Map211.rvdata2")
	
	        FileGetter.getFileList("#{$corsys_modFolder}/Data/HCGframes/*.rb").each{|file|
            $mod_load_script[file.split("#{$corsys_mod_name}/")[1]] = file
        }
        FileGetter.getFileList("#{$corsys_modFolder}/Data/Batch/*.rb").each{|file|
            $mod_load_script[file.split("#{$corsys_mod_name}/")[1]] = file
        }
        FileGetter.getFileList("#{$corsys_modFolder}/Data/HCGframes/event/*.rb").each{|file|
            $mod_load_script[file.split("#{$corsys_mod_name}/")[1]] = file
        }
	
	        if !@portrait_CorSys #only execute one time each launch
            @portrait_CorSys = true #make sure only execute 1 time
            #Sample ---- import lona portrait data from a mod POSE1
           
            poses = ["pose1", "pose4", "pose5", "chcg1", "chcg2", "chcg3", "chcg4", "chcg5"]
           
            poses.each{|pose|
                target = FileGetter.load_mod_lona_portrait_parts_dir(folder="#{$corsys_modFolder}/Data/Pconfig/Pconfig_lona/poses/#{pose}/",pose_name=pose)
                $data_lona_portrait[0] = $data_lona_portrait[0].merge(target[0])
                next if target[1][pose] == nil
                target[1][pose].each{|data| $data_lona_portrait[1][pose] << data}
            }
        end
	
	        tmpLonaCHS = FileGetter.load_lona_chs_settings_from_dir(folder="#{$trnsmod_modFolder}/Data/CHSConfig/CHSconfigs_ActorLayer/",chsh=false)
        tmpLonaCHSH = FileGetter.load_lona_chs_settings_from_dir(folder="#{$trnsmod_modFolder}/Data/CHSConfig/CHSconfigs_ActorHLayer/",chsh=true)
        tmpLonaCHS["Lona"].parts[0].each{|data| $chs_data["Lona"].parts[0] << data}
        tmpLonaCHSH["Lona_H"].parts[0].each{|data| $chs_data["Lona_H"].parts[0] << data}
        $chs_data["Lona"].parts[0] = $chs_data["Lona"].parts[0].sort_by { |obj| obj.layer } #sort new chs by layer
        $chs_data["Lona_H"].parts[0] = $chs_data["Lona_H"].parts[0].sort_by { |obj| obj.layer }
	
	Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя. Предоставляя нам персональные данные, вы соглашаетесь на их обработку в соответствии с этой политикой.
Посмотрите дополнительную информацию и настройте свои предпочтения