Mass Effect 2 чит-файл №3

.:: Мануал по вскрытию Mass Effect 2 ::.

Инструменты:
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, будут доступны
альтернативные костюмы напарников


© SID44SID и/или Antimandalajnah

Отдельное спасибо добрым людям:
kubrub
Mitsuru
metronome22

--------------------------------------
*** Приложение ***


Скрипт для регенерации отредактированного файла 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