Глава III. Компиляция (ZHLT). |
§ 3.9 Узнай устройство карты без декомпиляции |
В этой статье мы рассказываем о том, как можно узнать устройство
какого-либо события на карте, которая не декомпилируется. Под событием
мы подразумеваем систему взаимосвязанных объектов, которые создают
какой-то один эффект, например, летающая птица на De_Survivor или
авиаудар на De_Torn. Для опытных декомпиляторщиков не секрет, что некоторые карты не декомпилируются :) Возможно, это происходит из-за каких-то ограничений внутри программ-декомпиляторов, потому как не декомпилируются, в основном, большие по размеру карты. Мы не будем декомпилировать карты, а узнаем ее устройство более цивильным методом. Возмем, к примеру, авиаудары на карте De_Torn. Как они сделаны? (Если Вы не знаете, о каких авиаударах идет речь, то можете прочитать об этом в статье из раздела «Секреты». Консольная команда: developer 2Загружаем интересующую нас карту карту и вводим в консоли: developer 2. Теперь у нас на экране будут отображаться сообщения обо всех события на карте (активации объектов, где что нажалось, какой звук проигрался и т.д.).Бегая по карте, мы обнаружили, что активируется некий объект jetmulti. Им оказался multi_manager. При этом на экране появилась строчка: Found: multi_manager Firing: jetmulti Затем мы открыли карту (de_torn.bsp) во втроенном редакторе менеджера FAR (можно использовать и TotalCom) и, так как информация об энтити-объектах хранится внутри карт в чистом виде, то можно отыскать объект по имени jetmulti, что мы и сделали. В свойствах multi_manager'а мы нашли имена всех объектов, которые он активирует в игре. Это были и самолеты (которые на поверку оказались обычными дверями, которые func_door :), и звуки, и прочие объекты. Дальше мы составили схему работы всего авиаудара — «кто» «кого» и когда активирует. Подобным же образом можно определить устройство объектов и на других картах. |