Инструменты: 1. Notepad++ 5.6.6. http://sourceforge.net/project/showfiles.php?group_id=95717&package_id=102072 2. Ruby http://rubyforge.org/frs/download.php/66872/rubyinstaller-1.9.1-p243-rc1.exe 3. Скрипт для регенерации отредактированного файла me2_fix_ini.rb (см. приложение)
Принцип работы: 1. В папке с игрой по адресу \BioGame\Config\PC\Cooked найти файл Coalesced.ini 2. Сделать backup данного файла!!! 3. Открыть в Notepad++, проверить, чтобы он был в UNIX формате (Правка -> EOL Конверсия -> Преобразовать в UNIX формат) 4. Произвести необходимые правки. Сохранить и закрыть файл 5. Запустить с помощью ruby предварительно скопированный в вышеуказанную папку скрипт me2_fix_ini.rb 6. Удалить файл Coalesced.ini, в сгенерированном fix_Coalesced.ini убрать приставку "fix_" 7. Готово.
Возможные настройки. *чит-коды почти полностью повторяют первую часть Mass Effect
1. Убрать логотипы производителя и издателя при загрузке игры: В секции [FullScreenMovie] закомментить первые три строчки ;StartupMovies=BWLogo ;StartupMovies=ME_EAsig_720p_v2_raw ;StartupMovies=publisher
2. Назначить на кнопку F1 получение 55000 кредитов В секции [SFXGame.SFXGameModeDefault] после последней строки вставить Bindings=( Name="F1", Command="initcredits 55000" )
Другие возможные команды, которые можно привязать к определенным клавишам: givetalentpoints # - получить очки умений (не более 99) initpalladium 5 | initiridium 5 | initeezo 5 | initplatinum 5 - получить по 5 единиц каждого ресурса giveXP # - получить # опыта setparagon # - установить значение положительной кармы (максимум по умолчанию 1957) setrenegade # - установить значение отрицательной кармы (максимум по умолчанию 1900) god - включить режим бога initammo # - получить термозаряды shot - сделать скриншот
3. Также большое поле для читерской деятельности предоставляют следующие секции Coalesced.ini: [SFXGame.SFXPRI] - например, PointsFor_HeadShot=# - количество очков за убийство в голову [SFXGame.SFXDroppedAmmo] - PctAmmoGiven=0.25 - количество боеприпасов в найденных термозарядах [SFXGameContent.SFXSeqAct_NewGameBonuses] - бонусы, получаемые при импорте ГГ из первой части Mass Effect [SFXGame.SFXGame] - например, StormStamina=4.0 и StormRegen=0.8 - скорость ускорения и его регенерации во время боя [SFXGame.SFXGameConfig] - максимальный уровень ГГ и кол-во опыта [SFXGame.BioArtPlaceable] - настройки времени и др. условий исчезновения трупов [SFXGameContent.BioSeqAct_GiveMissionXP] - кол-во опыта за прохождение миссий и квестов [SFXGame.SFXInventoryManager] - настройки инвентаря [SFXGameContent_Inventory.SFXWeapon_AssaultRifle] и далее - настройки оружия [SFXGame.SFXPlayerSquadLoadoutData] - удалив строчки "UnlockPloIDt=Wpn_***" можно сразу сделать доступным всё оружие [SFXGame.SFXPawn_Player] - TorsoAppearances(Id=2, ****) если выставить PlotFlag=-1, то вся будут доступны все улучшения брони [SFXGame.BioSFHandler_PartySelection] - если в строках строчках lstAppearances=(Tag=hench_***) выставить PlotFlag=-1, будут доступны альтернативные костюмы напарников
Скрипт для регенерации отредактированного файла me2_fix_ini.rb 1. Можно найти на просторах сети. 2. Создать текстовый файл в Win-ANSI кодировке с расширением .rb следующего содержания: filename = ARGV[0] || 'Coalesced.ini'
File.open(filename, "r:ascii-8bit") do |f| exit if f.read(4) != "\x1e\x00\x00\x00" data = Array.new i = 0 until f.eof do data[i] = Hash.new data[i][:offset] = f.pos data[i][:name_len], data[i][:name], data[i][:data_len], data[i][:data] = f.read.unpack('VZ*VZ*') f.seek((data[i][:offset] + data[i][:data].length + data[i][:name].length + 10)) i += 1 end data.each do |section| if section[:name_len] != (section[:name].length+1) section[:name_len] = (section[:name].length+1) $is_fixed ||= true puts "Fixing section name at 0x#{section[:offset].to_s(16)} ..." end if section[:data_len] != (section[:data].length+1) section[:data_len] = (section[:data].length+1) $is_fixed ||= true puts "Fixing section data at 0x" + (section[:offset] + 4 + section[:name_len]).to_s(16) + " ..." end end if $is_fixed puts "\nWriting fixed file to fix_#{filename}" output = "\x1e\x00\x00\x00" output << data.map {|section| [section[:name_len], section[:name], section[:data_len], section[:data]].pack('VZ*VZ*')}.join File.open("fix_#{filename}", 'wb') {|f| f.write(output) } end end