Новости | Конференция | Чат | База данных | Творчество | Сообщество | О сайте | English | Помощь сайту |
КАК СОЗДАТЬ СВОЮ СИСТЕМУ В FREELANCER В основе взята английская статья на эту тему. В процессе апробирования были добавлены некоторые комментарии (будут помечены звездочкой в начале абзаца). Они содержат более подробные пояснения к производимым действиям, и могут быть полезны тем, кто не хочет тратить время на самостоятельный разбор, что к чему. Оригинальный форум с оригинальным контентом содержится здесь * Структура Вселенной описывается ini-файлами, расположенными в папке и вложенных папках \Freelancer\DATA\UNIVERSE. Открыв папку \Freelancer\DATA\UNIVERSE\SYSTEMS, мы увидим папки со всеми уже созданными там системами. Их имена содержат первые буквы названия пространств. Пример: LI01 «первая» система пространства Либерти (потом нам пригодится, это система Нью-Йорк). 1. Теперь создадим здесь свою систему. Создайте системную директорию: В DATA/UNIVERSE/SYSTEMS создайте новую папку, я назвала ее, к примеру, DA01. В этой папке создайте новую, и назовите ее BASES, и в ней папку с именем ROOMS. Создайте в SYSTEMS/DA01 ini-файл (DA01.ini) [SystemInfo] space_color = 0, 0, 0 local_faction = li_p_grp [Dust] spacedust = Dust [TexturePanels] file = universe\heavens\shapes.ini [Music] space = music_li_space danger = music_li_danger battle = music_li_battle [Ambient] color = 30, 50, 80 [Background] basic_stars = solar\starsphere\starsphere_stars_basic.cmp complex_stars = solar\starsphere\starsphere_li01_stars.cmp nebulae = solar\starsphere\starsphere_li01.cmp [EncounterParameters] nickname = tradelane_trade_freighter filename = missions\encounters\tradelane_trade_freighter.ini [LightSource] nickname = System_LIGHT pos = 642, 0, 198 color = 255, 255, 255 range = 120000 type = DIRECTIONAL atten_curve = DYNAMIC_DIRECTION [Object] nickname = DA01_to_LI01 ids_name = 061982 pos = -83176, 0, 44831 rotate = 0, -70, 0 Archetype = jumpgate msg_id_prefix = gcs_refer_system_Li02 ids_info = 66145 jump_effect = jump_effect_bretonia reputation = li_p_grp behavior = NOTHING difficulty_level = 1 goto = Li01, Li01_to_Da01, gate_tunnel_bretonia loadout = jumpgate_da_01 pilot = pilot_solar_easiest [Object] nickname = Da01_01 ; измените в соответствии с вашими пожеланиями о названии ids_name = 196774 pos = -83176, 0, 49831 rotate = 0, 45, 0 Archetype = outpost ids_info = 65771 base = Da01_01_base dock_with = Da01_01_base voice = atc_leg_f01 space_costume = li_newscaster_head_gen, li_female_elite_body reputation = li_n_grp behavior = NOTHING faction = li_n_grp behavior = NOTHING difficulty_level = 1 loadout = trading_outpost_li_01 pilot = pilot_solar_hardest В данном случае будет одни прыжковые ворота (джампгейт) и одна станция. Остальное будет из системы Нью-Йорк. Просто скопируем это (не забудьте заменять там, где это нужно, LI01 на ваше название). 2. Хорошо, перейдем к станции: В SYSTEMS/DA01/BASES создайте ini-файл. Его имя должно содержать название (nickname) будущей станции (посмотрите в примере дальше, в моем случае имя файла будет da01_01_base.ini). [BaseInfo] nickname = Da01_01_Base start_room = Cityscape [Room] nickname = Cityscape file = Universe\Systems\Da01\Bases\Rooms\Da01_01_cityscape.ini ; измените соответствующую часть на название будущей стации [Room] nickname = Bar file = Universe\Systems\Da01\Bases\Rooms\Da01_01_bar.ini [Room] nickname = Trader file = Universe\Systems\Da01\Bases\Rooms\Da01_01_trader.ini [Room] nickname = ShipDealer file = Universe\Systems\Da01\Bases\Rooms\Da01_01_shipdealer.ini [Room] nickname = Equipment file = Universe\Systems\Da01\Bases\Rooms\Da01_01_equipment.ini Это отделения (комнаты) cтанции, они были скопированы из Манхеттена. И для каждого отделения станции создайте (или скопируйте и переименуйте оригинальные) ini-файлы. * Открыв папку, предположим одной из систем Кусари, Freelancer\DATA\UNIVERSE\SYSTEMS\KU04\BASES\ROOMS, мы увидим целую кучу инишников. Видно, что для объекта KU04_01 существует целых пять ini-файлов, это как раз то, о чем мы только что говорили. Понятно, что для данного объекта существует весь набор возможностей, вплоть до покупки корабля. Не забудьте, чтобы редактировать наши ini-файлы, их нужно сначала разархивировать. Об этом подробно написано в Руководстве по покупке крузера на сайте. Если коротко, то это утилитка bini.exe( утилита находится здесь в "Наборе моддера" ): bini.exe xxx.ini и получаем xxx.ini.txt, его и редактируем и заменяем, убрав txt конечно. Всегда невредно предварительно сохранить то, что будем изменять, на всякий случай. Если мы хотим чтобы на станции были старт, бар и продажа оборудования, нам необходимы три соответствующих ini-файла. Вот их названия для станции 01 системы KU04: ku04_01_bar.ini ku04_01_cityscape.ini ku04_01_equipment.ini *Сделайте необходимые изменения в названии и скопируйте содержимое из соответствующих файлов какой-нибудь базы. *Здесь предлагается пример с файлом для бара станции 01 системы Li01 [Room_Info] set_script = Scripts\Bases\Li_01_Bar_hardpoint_01.thn scene = all, ambient, Scripts\Bases\Li_01_Bar_ambi_int_01.thn [Room_Sound] music = music_bar_li01 ambient = ambience_bar_ground_larger [Camera] name = Camera_0 [CharacterPlacement] name = Zg/PC/Player/01/A/Stand start_script = scripts\bases\Li_01_Bar_enter_01.thn [Hotspot] name = IDS_HOTSPOT_EXIT behavior = ExitDoor room_switch = Cityscape [Hotspot] name = IDS_HOTSPOT_BAR behavior = ExitDoor room_switch = Bar [Hotspot] name = IDS_HOTSPOT_COMMODITYTRADER_ROOM behavior = ExitDoor room_switch = Trader [Hotspot] name = IDS_HOTSPOT_EQUIPMENTDEALER_ROOM behavior = ExitDoor room_switch = Equipment [Hotspot] name = IDS_HOTSPOT_SHIPDEALER_ROOM behavior = ExitDoor room_switch = ShipDealer [Hotspot] name = IDS_HOTSPOT_NEWSVENDOR behavior = NewsVendor [Hotspot] name = IDS_HOTSPOT_MISSIONVENDOR behavior = MissionVendor 3. Теперь сложнее: как попасть в вашу новую систему. В SYSTEMS/LI01/li01.ini я добавил новые ворота (джампгейт). *Найдите это место в файле, там описаны ворота в системе Li01. [Object] nickname = Li01_to_Li02 ids_name = 260911 pos = -83176, 0, 44831 rotate = 0, -70, 0 Archetype = jumpgate msg_id_prefix = gcs_refer_system_Li02 ids_info = 66145 jump_effect = jump_effect_bretonia reputation = li_p_grp behavior = NOTHING difficulty_level = 1 goto = Li02, Li02_to_Li01, gate_tunnel_bretonia loadout = jumpgate_li_01 pilot = pilot_solar_easiest *Найдите это место в файле, там описаны ворота в системе Li01. [pos = -83176, 0, 44831] — координаты ворот. Обратите внимание, вертикальная составляющая инвертирована, то есть ось направлена вниз. Это может вам пригодится, когда вы освоитесь и начнете располагать свои объекты, где пожелаете. *Вставьте следующие строчки в файл: [Object] nickname = Li01_to_Da01 ; нужно ли это менять не знаю ids_name = 061983 ; pos = -84976, 0, 44711 ; изменим немного значения так, чтобы ворота оказались рядом с оригинальными rotate = 0, -70, 0 Archetype = jumpgate msg_id_prefix = gcs_refer_system_Da01 ids_info = 66145 jump_effect = jump_effect_bretonia reputation = li_p_grp behavior = NOTHING difficulty_level = 1 goto = Da01, Da01_to_Li01, gate_tunnel_bretonia ; Здесь важно указать в какую систему ведет дыра loadout = jumpgate_li_01 pilot = pilot_solar_easiest Комментарий При проверке я долго мучилась с поиском сделанного, но вам скажу сразу, новые ворота появятся в системе Нью-Йорк рядом с воротами на Калифорнию. Прикол: когда я к ним подлетела, там уже активно в них залетали други-недруги всякие, как будто ворота там всегда «висели». Продолжение В UNIVERSE/universe.ini Добавьте вот это: [system] nickname = Da01 ; поменяйте на название вашей системы file = Systems\Da01\Da01.ini ; и это pos = 7, 9 ; Это позиция по направлению к Нью Йорку msg_id_prefix = gcs_refer_system_Li01 visit = 0 strid_name = 196609 ids_info = 66106 и [Base] nickname = Da01_01_Base ; Измените на свои названия system = Da01 ; и здесь strid_name = 196766 file = Universe\Systems\Da01\Bases\Da01_01_Base.ini ; здесь тоже важно не ошибиться с вашими названиями BGCS_base_run_by = W02bF35 4. Хорошо, перейдем к оборудованию, доступному на нашей станции: В EQUIPMENT/market_commodities.ini добавьте: [BaseGood] base = Da01_01_base MarketGood = commodity_boron, 0, -1, 150, 500, 0, 100.300000 MarketGood = commodity_gold, 0, -1, 0, 0, 1, 2 MarketGood = commodity_silver, 0, -1, 0, 0, 1, 2.250000 MarketGood = commodity_niobium, 0, -1, 0, 0, 1, 2.850000 MarketGood = commodity_oxygen, 0, -1, 150, 500, 0, 0.500000 MarketGood = commodity_water, 0, -1, 150, 500, 0, 0.500000 MarketGood = commodity_diamonds, 0, -1, 0, 0, 1, 1.500000 MarketGood = commodity_food, 0, -1, 150, 500, 0, 0.862100 MarketGood = commodity_alien_artifacts, 0, -1, 0, 0, 1, 4.750000 MarketGood = commodity_luxury_food, 0, -1, 0, 0, 1, 7.500000 MarketGood = commodity_H_fuel, 0, -1, 150, 500, 0, 1.200000 MarketGood = commodity_construction_machinery, 0, -1, 0, 0, 1, 1.300000 MarketGood = commodity_pharm, 0, -1, 150, 500, 0, 0.789500 MarketGood = commodity_consumer_goods, 0, -1, 150, 500, 0, 1.100000 MarketGood = commodity_luxury_consumer_goods, 0, -1, 150, 500, 0, 1 MarketGood = commodity_cardamine, 0, -1, 0, 0, 1, 2 MarketGood = commodity_sidearms, 0, -1, 0, 0, 1, 0.550000 Здесь первое значение показывает, в каких взаимоотношениях вы должны быть к обитателям станции, чтобы купить данное оборудование (0 = нейтральное; 1 = дружеское; -1 = враждебное). Последнее число — цена оборудования (ее можно найти в goods.ini). В EQUIPMENT/market_ships.ini добавьте: [BaseGood] base = Da01_01_base marketgood = gf1_package, 0, -1, 0, 0, 1, 1, 1 marketgood = gf2_package, 4, -1, 0, 0, 0, 1, 1 marketgood = gf4_package, 13, -1, 0, 0, 1, 1, 1 marketgood = gf5_package, 24, -1, 0, 0, 1, 1, 1 marketgood = gf6_package, 30, -1, 0, 0, 1, 1, 1 marketgood = bwf_package, 4, -1, 0, 0, 1, 1, 1 marketgood = bwe_package, 20, -1, 0, 0, 1, 1, 1 marketgood = bwe2_package, 30, -1, 0, 0, 1, 1, 1 marketgood = bwfr_package, 10, -1, 0, 0, 1, 1, 1 marketgood = cof_package, 8, -1, 0, 0, 1, 1, 1 marketgood = coe_package, 28, -1, 0, 0, 1, 1, 1 marketgood = coe2_package, 32, -1, 0, 0, 1, 1, 1 marketgood = lf_package, 1, -1, 0, 0, 0, 1, 1 marketgood = le_package, 2, -1, 0, 0, 1, 1, 1 marketgood = lfr_package, 1, -1, 0, 0, 0, 1, 1 marketgood = bf_package, 6, -1, 0, 0, 1, 1, 1 marketgood = be_package, 8, -1, 0, 0, 1, 1, 1 marketgood = bfr_package, 4, -1, 0, 0, 1, 1, 1 marketgood = kf_package, 10, -1, 0, 0, 1, 1, 1 marketgood = ke_package, 13, -1, 0, 0, 1, 1, 1 marketgood = kfr_package, 10, -1, 0, 0, 1, 1, 1 marketgood = rf_package, 20, -1, 0, 0, 1, 1, 1 marketgood = re_package, 22, -1, 0, 0, 1, 1, 1 marketgood = rfr_package, 1, -1, 1, 1, 0, 1, 1 marketgood = pf_package, 2, -1, 0, 0, 1, 1, 1 marketgood = pe_package, 13, -1, 0, 0, 1, 1, 1 marketgood = pfr_package, 4, -1, 0, 0, 1, 1, 1 marketgood = bhf_package, 1, -1, 1, 1, 0, 1, 1 marketgood = bhe_package, 13, -1, 0, 0, 1, 1, 1 marketgood = bhe2_package, 1, -1, 1, 1, 0, 1, 1 marketgood = oe_package, 16, -1, 0, 0, 1, 1, 1 Эти строчки служат для возможности приобретать корабли, но вы можете выбирать для покупки только из трех. Так что выберите свои любимые. Пример: rfr = Rheinland FReighter lf = Liberty Fighter (не уверен, но кажется это так) Первое число — необходимый для покупки уровень. Второе — не знаю. Если вы хотите сделать корабль доступным для покупки, поменяйте следующие два номера на 1 и третье на 0, но можно купить только три корабля! Комментарий Это я не проверяла, на форуме пишут, что впихивают всякие корабли в любом количестве, не знаю. Пример: marketgood = lf_package, 1, -1, 1, 1, 0, 1, 1 IВ EQUIPMENT/market_misc.ini Добавьте (это взято из weapons/equipment Манхеттена): [BaseGood] base = Da01_01_base MarketGood = li_gun01_mark01, 0, -1, 10, 10, 0, 1 MarketGood = li_gun01_mark02, 0, -0.200000, 10, 10, 0, 1 MarketGood = li_gun01_mark03, 2, 0.100000, 10, 10, 0, 1 MarketGood = li_gun01_mark04, 6, 0.300000, 10, 10, 0, 1 MarketGood = li_gun02_mark01, 0, -1, 10, 10, 0, 1 MarketGood = li_gun02_mark02, 0, -0.200000, 10, 10, 0, 1 MarketGood = li_gun02_mark03, 2, 0.100000, 10, 10, 0, 1 MarketGood = li_gun02_mark04, 6, 0.300000, 10, 10, 0, 1 MarketGood = li_turret02_mark01, 0, -1, 10, 10, 0, 1 MarketGood = li_turret02_mark02, 2, -0.200000, 10, 10, 0, 1 MarketGood = ge_s_thruster_01, 0, -1, 10, 10, 0, 1 MarketGood = missile01_mark01, 0, -1, 10, 10, 0, 1 MarketGood = missile01_mark01_ammo, 0, -1, 50, 50, 0, 1 MarketGood = missile01_mark02_ammo, 2, -1, 50, 50, 0, 1 MarketGood = missile01_mark03_ammo, 10, -1, 50, 50, 0, 1 MarketGood = missile01_mark04_ammo, 22, -1, 50, 50, 0, 1 MarketGood = missile01_mark05_ammo, 30, -1, 50, 50, 0, 1 MarketGood = missile02_mark01, 0, -1, 10, 10, 0, 1 MarketGood = missile02_mark01_ammo, 0, -1, 50, 50, 0, 1 MarketGood = missile02_mark02_ammo, 2, -0.200000, 50, 50, 0, 1 MarketGood = missile02_mark03_ammo, 10, 0.200000, 50, 50, 0, 1 MarketGood = missile02_mark04_ammo, 22, 0.400000, 50, 50, 0, 1 MarketGood = missile02_mark05_ammo, 30, 0.750000, 50, 50, 0, 1 MarketGood = missile03_mark01, 0, -1, 10, 10, 0, 1 MarketGood = missile03_mark01_ammo, 0, -1, 50, 50, 0, 1 MarketGood = missile03_mark02_ammo, 6, -1, 50, 50, 0, 1 MarketGood = missile03_mark03_ammo, 22, -1, 50, 50, 0, 1 MarketGood = missile03_mark04_ammo, 30, -1, 50, 50, 0, 1 MarketGood = cruise_disruptor01_mark01_ammo, 2, -1, 50, 50, 0, 1 MarketGood = cruise_disruptor01_mark02_ammo, 26, -1, 50, 50, 0, 1 MarketGood = torpedo01_mark01_ammo, 10, -1, 50, 50, 0, 1 MarketGood = torpedo01_mark02_ammo, 30, -1, 50, 50, 0, 1 MarketGood = mine01_mark01, 0, -1, 10, 10, 0, 1 MarketGood = mine01_mark01_ammo, 0, -1, 50, 50, 0, 1 MarketGood = mine01_mark02_ammo, 2, -1, 50, 50, 0, 1 MarketGood = mine01_mark03_ammo, 10, -1, 50, 50, 0, 1 MarketGood = mine01_mark04_ammo, 22, -1, 50, 50, 0, 1 MarketGood = mine01_mark05_ammo, 30, -1, 50, 50, 0, 1 MarketGood = mine02_mark01, 0, -1, 10, 10, 0, 1 MarketGood = mine02_mark01_ammo, 0, -1, 50, 50, 0, 1 MarketGood = mine02_mark02_ammo, 6, -1, 50, 50, 0, 1 MarketGood = mine02_mark03_ammo, 16, -1, 50, 50, 0, 1 MarketGood = mine02_mark04_ammo, 26, -1, 50, 50, 0, 1 MarketGood = mine02_mark05_ammo, 30, -1, 50, 50, 0, 1 MarketGood = ge_s_repair_01, 0, -1, 100, 100, 0, 1 MarketGood = ge_s_cm_01, 0, -1, 10, 10, 0, 1 MarketGood = ge_s_cm_01_ammo, 0, -1, 50, 50, 0, 1 MarketGood = ge_s_cm_02_ammo, 2, -1, 50, 50, 0, 1 MarketGood = ge_s_cm_03_ammo, 6, -1, 50, 50, 0, 1 MarketGood = shield01_mark01_lf, 0, -1, 10, 10, 0, 1 MarketGood = shield01_mark02_lf, 0, -1, 10, 10, 0, 1 MarketGood = shield01_mark01_hf, 0, -1, 10, 10, 0, 1 MarketGood = shield01_mark02_hf, 0, -1, 10, 10, 0, 1 MarketGood = shield01_mark01_fr, 0, -1, 10, 10, 0, 1 MarketGood = shield01_mark02_fr, 0, -1, 10, 10, 0, 1 MarketGood = ge_s_battery_01, 0, -1, 100, 100, 0, 1 5. Напоследок: информация для дальнейшего творчества. Package Name Корабль gf1_package Starflyer gf2_package StarTracker gf4_package Hawk gf5_package Falcon gf6_package Eagle bwf_package Dagger bwe_package Stilleto bwe2_package Sabre bwfr_package Dromedary cof_package Legion coe_package Centurion coe2_package Titan lf_package Patriot le_package Defender lfr_package Rhino bf_package Cavalier be_package Crusader bfr_package Clydesdale kf_package Drake ke_package Dragon kfr_package Drone rf_package Banshee re_package Valkyrie rfr_package Humpback pf_package Bloodhound pe_package Wolfhound pfr_package Mule bhf_package Piranha bhe_package Barracuda bhe2_package Hammerhead oe_package Anubis Добавьте, если хотите, больше ini-файлов, чтобы в вашей системе появились базы, планеты или другие объекты. Типы Станций: Archetype Model Type System Base # ID # outpost West Point Liberty 09 196774 Smallstation1 Ft. Bush Liberty 11 largestation1 Newark Station Liberty 08 196773 miningbase_badlands ?asteroid mining station? depot Detroit Munitions Liberty 10 196775 shipyard space_shipping02 space_factory01 space_industrial space_port_dmg Rochester Liberty 13 docking_fixture Ithaca_station Комментарий Можно ведь и скопировать целую систему, а потом потихонечку поменять там все по своему вкусу. Теперь, когда становится понятнее что к чему, додумать уже не составляет труда. Давайте обратим внимание на файл Li01.ini. Мы его уже распаковывали. Это полная схема что где и как. Проще сразу скопировать такой файл и потом изменять что-то в нем, потому что всякие описания полей для планет и светил замучаешься сам составлять или текстуры искать. Вот небольшой кусочек: [Object] nickname = Sun_Li01 ids_name = 261008 pos = 0, 0, 0 ambient_color = 255, 255, 255 Archetype = sun_2000 ids_info = 66162 star = med_white_sun atmosphere_range = 11000 burn_color = 160, 222, 245 Это солнце. Видно, что его координаты точно посредине системы [0,0,0]. [LightSource] nickname = System_LIGHT pos = 642, 0, 198 color = 255, 255, 255 range = 120000 type = DIRECTIONAL atten_curve = DYNAMIC_DIRECTION Свечение солнца [Object] nickname = Li01_01 ids_name = 196766 pos = -33270, 0, -33039 rotate = 0, -10, -10 ambient_color = 255, 0, 0 Archetype = planet_earthgrncld_4000 ids_info = 65759 spin = 0, 0.001000, 0 atmosphere_range = 4200 burn_color = 160, 222, 245 base = Li01_01_Base reputation = li_p_grp visit = 1 Это уже планета. В данном случае Манхеттен. Ее координаты отрицательны, но находится она в верхней половине, не забудьте про направление оси. Приведены ее параметры, тут можно не задумываться и скопировать все для себя. На ней есть база Li01 и планета (посещена, visit = 1). [zone] nickname = Zone_Li01_Manhattan_death pos = -33270, 0, -33039 shape = SPHERE size = 4100 damage = 2000000 sort = 99.500000 density = 0 relief_time = 0 population_additive = false Опасность приближения к планете (никогда не отправляли противников сгорать в плотных слоях?) Дальше разбирать можно самостоятельно. Всем удачи.
|
|||||||||||||||
Дизайн Elite Games V5 beta.18 EGM Elite Games Manager v5.17 02.05.2010 |