- Регистрация
- 29.05.2024
- Темы
- 1
- Сообщения
- 341
- Реакции
- 265
Картинка вроде переписывается, но перестает работать, если поменять папку с "Graphics" на "Graphics/System/Menu/07equip".Поставь там msgbox в конце и погляди.
И что такое 8 в args[0][0, 8]?
Картинка вроде переписывается, но перестает работать, если поменять папку с "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 для обеспечения максимального удобства пользователя. Предоставляя нам персональные данные, вы соглашаетесь на их обработку в соответствии с этой политикой.
Посмотрите дополнительную информацию и настройте свои предпочтения