nuklia 0 Опубликовано 10 Сентября 2010 Поделиться Опубликовано 10 Сентября 2010 (изменено) Народ, а кто знает, как сделать ANM файл движения камеры над каким-либо местом локации, такие как в папке scenario_cam. Хочу сделать сценку застолья на пенечке с анимациями выпивки и закуски по типу клипа с отключением UI. В левел-эдиторе нашел какой-то редактор ANM - но разобраться не могу, записывает всег один кадр. MustaNG, вот посмотри - здесь при разговоре будет держать оружие в руках [logic@val_freedom_trader] active = walker@freedom ; активируем первую схему - патруль между двумя точками suitable = {=check_npc_name(val_freedom_trader)} ; проверяем - наш ли этот чувак prior = 100 on_hit = hit on_death = death [walker@freedom] path_look = guard_1_look ;вейпоинты в way_zaton.ltx - куда смотрит path_walk = guard_1_walk ;вейпоинты в way_zaton.ltx - где ходит def_state_standing = guard_na ;анимация с оружием в руках meet = meet ;разговаривать будет [meet] close_snd_hello = zat_a2_stalker_barmen_greeting ; озвучка - приветствие, без звука - nil close_snd_bye = zat_a2_stalker_barmen_farewell ; озвучка - прощание, без звука - nil close_anim = guard_na ;при разговоре оружие в руках close_victim = actor far_anim = hello ;анимация на расстоянии far_distance far_victim = actor close_distance = 3 far_distance = 5 close_snd_distance = 2 ;расстояние отыгрывания озвучки приветствия-прощания при подходе-отходе abuse = false use = true allow_break = false meet_on_talking = false [wounded] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false [danger] ignore_distance = 0 ignore_distance_grenade = 0 ignore_distance_corpse = 0 ignore_distance_hit = 0 ignore_distance_sound = 0 [hit] [death] Изменено 10 Сентября 2010 пользователем nuklia Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-491877
stalker.odinochka 0 Опубликовано 10 Сентября 2010 Поделиться Опубликовано 10 Сентября 2010 (изменено) Люди, кто знает, как сделать подствольный дробовик? Ну чтоб дробь вылетала, а не балончик подствольной гранаты. Заранее благодарен. Изменено 10 Сентября 2010 пользователем stalker.odinochka Срочно ищу опытного скриптёра и модельера, нужна помощь в создании мода. Готовность мода Новый мир 85%. Мод Огнемёт для ЗП v1.0 Скачать Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492044
Гость БолотныйДоктор Опубликовано 10 Сентября 2010 Поделиться Опубликовано 10 Сентября 2010 Вот бы кто помог... Создавал смарты на новой локации и все получилось кроме того что в определенном месте через каждые несколько секунды спавнются копии смартов и при том бесконечное количество раз.... Помогите как исправить... Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492086
Z.I.R.D. 3 Опубликовано 10 Сентября 2010 Поделиться Опубликовано 10 Сентября 2010 Скажите, кто в курсе, а как сделать так, чтобы выброс не убивал сталкеров а зомбировал их? Наёмники - лучшие убивцы в Зоне! По заказам обращаться на сайт www.vsehporeshimzadengi.org Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492303
nuklia 0 Опубликовано 11 Сентября 2010 Поделиться Опубликовано 11 Сентября 2010 stalker.odinochk..., лучше пропиши патрон дробовика стволу и в энциклопедию - типа ствол рассверлен умельцами под охотничий патрон и имеет в наличии ствольные вкладыши под различные патроны, чем гранатомет уродовать. БолотныйДоктор, подробно опиши метод создания, на кофейной гуще трудно гадать. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492408
stalker.odinochka 0 Опубликовано 11 Сентября 2010 Поделиться Опубликовано 11 Сентября 2010 nuklia То то и оно, что стволу легко прописать дробь. А я хочу сделать именно подствольный дробовик. Срочно ищу опытного скриптёра и модельера, нужна помощь в создании мода. Готовность мода Новый мир 85%. Мод Огнемёт для ЗП v1.0 Скачать Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492418
Серый Волк 841 Опубликовано 11 Сентября 2010 Поделиться Опубликовано 11 Сентября 2010 (изменено) Подскажите, чем и как редактировать xrGame.dll ? Изменено 11 Сентября 2010 пользователем Серый Волк Новое меню и интерфейс для ЗП, Наличные деньги для SGM 1.7, Новый инвентарь для ЗП, Новые меню для Солянки и Солянки+ООП+К+МА Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492506
DiXares 1 Опубликовано 11 Сентября 2010 Поделиться Опубликовано 11 Сентября 2010 Серый Волк, hex редактор в руки и в перёд! Нет такой утилиты... Библиотеки движка - скрытая ф****. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492523
goroskob 7 Опубликовано 11 Сентября 2010 Поделиться Опубликовано 11 Сентября 2010 (изменено) Как лечится этот вылет? Вылетает при взятии нового оружия в руки. Expression : error handler is invoked! Function : handler_base File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp Line : 764 Description : application is aborting Поиск выдал несколько подобных логов, но они были связаны с костюмами. На них внятного ответа не было. Изменено 11 Сентября 2010 пользователем goroskob Моё новое оружие здесь. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492749
Гость БолотныйДоктор Опубликовано 12 Сентября 2010 Поделиться Опубликовано 12 Сентября 2010 (изменено) andref function level_changer() if not has_alife_info("info_new_level") then put_spots() db.actor:give_info_portion("info_new_level") end end function put_spots() for i=1,65534 do local obj = alife():object(i) if obj then if obj:name() == "Название 1-го левел чэнджера" then level.map_add_object_spot_ser(obj.id,"level_changer_up","Подпись 1") elseif obj:name() == "Название 2-го левел чэнджера" then level.map_add_object_spot_ser(obj.id,"level_changer_up","Подпись 2") elseif ..... end end end С обозначением переходов получилось вот только в этой функции упущен один завершающий оператор END, а также допущена ошибка в условии "elseif ....." должно быть "elseif твоё условие then" или просто "else". А так большое спасибо) ---------------------------------------- nuklia создавал смарты так же как и ты в твоем туторе про созданию смартов... Изменено 12 Сентября 2010 пользователем БолотныйДоктор Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492870
nuklia 0 Опубликовано 12 Сентября 2010 Поделиться Опубликовано 12 Сентября 2010 Что-то я не понял - что плодится, смарт-террейн не может - он в алл.спавне создается. А если сквады(неписи) - то может что в респавне не то или скрипты респавна изменены. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-492935
Гость БолотныйДоктор Опубликовано 12 Сентября 2010 Поделиться Опубликовано 12 Сентября 2010 (изменено) копии моих всех моих новых сквадов помимо положенных мест спавнятся все ещё в одной точке притом очень часто буквально каждые 5 секунд... И все эти копии бегут на свои положенные места хотя там уже оригеналы есть.... Изменено 12 Сентября 2010 пользователем БолотныйДоктор Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-493040
nuklia 0 Опубликовано 12 Сентября 2010 Поделиться Опубликовано 12 Сентября 2010 (изменено) Похоже, что эксклюзивные сквады (у которых прописаны таргет_смарт и спавн_поинт) записаны в респавн. Просмотри, есть-ли подобные сквады в файлах configs/scripts/..../smart/ в секциях респавна. Респавнить нужно только сквады симулянтов из squad_descr.ltx , а эксклюзивные сквады спавнить путем записи их в секцию [start_position_...] в simulation.ltx или функцией сreate_squad в логике рестриктора(или еще чего) к примеру zat_b14_spawner.ltx . А вот почему такой частый респавн - наверное в скриптах где-то частота респавна изменена. Изменено 12 Сентября 2010 пользователем nuklia Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-493081
Гость БолотныйДоктор Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 nuklia глянь пожалуйста мою логику смартов http://narod.ru/disk/24826949000/smart.rar.html Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-493543
nuklia 0 Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 В респавнах сквады симулянтов - это правильно, но зачем респавнить в каждом смарте - это будет бесконечная бойня и горы трупов. Лучше убрать большую часть респавнов, оставить немного, да и еще условия для респавна попрописывать, а изначально расставить в нужных смартах эксклюзивные сквады. Посмотри стандартные смарты того-же Затона - там большая часть пустых. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-493597
Серый Волк 841 Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 (изменено) Подскажет кто? ситуация: Вылет происходит изредка, выдает "Submit bug", на этом зависает и всё (но лог не выдает). Изменено 13 Сентября 2010 пользователем Серый Волк Новое меню и интерфейс для ЗП, Наличные деньги для SGM 1.7, Новый инвентарь для ЗП, Новые меню для Солянки и Солянки+ООП+К+МА Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-493616
Гость БолотныйДоктор Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 nuklia Можешь по подробнее пожалуйста) на примере) Пожалуйста буду очень благодарен) Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-493699
nuklia 0 Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 (изменено) В этой теме вопросы создания сквадов тесно обсуждались в мае-июне. Вот нашел свою старую статью: Спавн эксклюзивных сквадов (буду делать для Затона - иначе запутаемся в террейнах и путях): Создадим сквад из имеющегося уже специфик характера первого попавшегося к примеру долговца - sim_default_duty_4, определим его в ближайший от начала игры смарт-террейн - это zat_a1 , а так-же определим точку его спавна из этого смарта - zat_a1_guard_1_walk (смотрим way_zaton.ltx) - точка двойная, будет ходить по ней и смотреть в точки zat_a1_guard_1_look ; Здесь содержатся дескрипшены сквадов, которые потом можно создавать используя спец функции. [zat_bolvan_1_squad]:online_offline_group faction = stalker npc = sim_default_duty_4 target_smart = zat_a1 spawn_point = zat_a1_guard_1_walk story_id = zat_bolvan_1_squad Теперь добавим этот сквад в стартовую позицию Затона ;;;;;;;;;;;;;;;;;;;;;; FINAL ZATON ;;;;;;;;;;;;;;;;;;;;;;;;; [start_position_zaton] zat_bolvan_1_squad = zat_a1 и в уникальные сквады Затона ;--------- ZATON UNIQUE SQUADS -------- [zat_bolvan_1_squad]:default_squad sim_avail = false Все - сквад готов, команда на спавн получена, начинайте новую игру и встретите его у камней. У нас получился одиночный дефолтный сквад Теперь пойдем дальше - создадим настоящего эксклюзива с индивидуальной логикой. Прежде всего создаем специфик характер: <specific_character id="val_freedom_trader" team_default = "1"> <name>val_freedom_trader_name</name> <icon>ui_npc_u_freedom_2_mask</icon> <map_icon x="1" y="0"></map_icon> <bio></bio> <class>val_freedom_trader</class> <community>freedom</community> <terrain_sect>stalker_terrain</terrain_sect> <rank>450</rank> <reputation>0</reputation> <money min="10000" max="27500" infinitive="1"/> <visual>actors\stalker_freedom\stalker_freedom_2_mask</visual> <snd_config>characters_voice\human_01\freedom\</snd_config> <supplies> [spawn] \n device_torch \n wpn_lr300 \n ammo_5.56x45_ss190 = 5 \n wpn_hpsa \n ammo_9x19_fmj = 5 \n grenade_f1 = 10 \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_1.xml" <start_dialog>zat_a2_stalker_barmen_start_dialog</start_dialog> <actor_dialog>zat_a2_linker_b14_quest_init</actor_dialog> <actor_dialog>zat_a2_linker_b14_quest_done</actor_dialog> <actor_dialog>zat_a2_linker_b14_quest_strange_item</actor_dialog> <actor_dialog>zat_a2_linker_b14_quest_sell_artefact</actor_dialog> <actor_dialog>zat_a2_linker_b14_quest_wrong</actor_dialog> <actor_dialog>zat_b57_barmen_about_bloodsucker_lair_dialog</actor_dialog> <actor_dialog>zat_b57_barman_reward_dialog</actor_dialog> <actor_dialog>zat_b22_barmen_about_vampire_actor1</actor_dialog> <actor_dialog>zat_b22_barmen_about_vampire_actor2</actor_dialog> <actor_dialog>zat_b22_barmen_about_vampire_actor3</actor_dialog> <actor_dialog>zat_b22_barmen_about_vampire_actor4</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b7_actor_start</actor_dialog> <actor_dialog>zat_b22_barmen_b5_daring_quest_stalkers</actor_dialog> <actor_dialog>zat_b22_barmen_about_after_quest_b5_dealer_actor4</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b30_about_new_detector</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b30_about_compass</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b30_compass_give_dialog</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b30_compass_double_dialog</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b30_compass_revert_dialog</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b30_take_business_actor_dialog</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_army</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_about_sci_guards</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_about_sci_helpers</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b30_about_halfart_jup_b1</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_oasis_art_sell</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b52_about_snag</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b52_about_nimble</actor_dialog> <actor_dialog>zat_a2_linker_b29_actor_info</actor_dialog> <actor_dialog>zat_a2_linker_b29_actor_get_adv_task</actor_dialog> <actor_dialog>zat_a2_linker_b29_actor_give_adv_task</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_b30_take_money_actor_dialog</actor_dialog> <actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog> <actor_dialog>actor_break_dialog</actor_dialog> </specific_character> <character id="val_freedom_trader"> <class>val_freedom_trader</class> </character> ;-------------------------наш свободовец------------------ [val_freedom_trader]:stalker $spawn = "respawn\val_freedom_trader" character_profile = val_freedom_trader spec_rank = regular community = freedom story_id = val_freedom_trader Создаем сквад ; Здесь содержатся дескрипшены сквадов, которые потом можно создавать используя спец функции. [val_freedom_trader_squad]:online_offline_group ; наш свободовец faction = freedom npc = val_freedom_trader target_smart = zat_a1 spawn_point = zat_a1_walker_1_walk story_id = val_freedom_trader_squad ;;;;;;;;;;;;;;;;;;;;;; FINAL ZATON ;;;;;;;;;;;;;;;;;;;;;;;;; [start_position_zaton] val_freedom_trader_squad = zat_a1 ;--------- ZATON UNIQUE SQUADS -------- [val_freedom_trader_squad]:default_squad sim_avail = false Пропишем в смарт-террейне путь к файлу логики чувака [smart_terrain];zat_a1 squad_id = 54 max_population = 3 [exclusive] ; пропишем нашего свободовца в эксклюзивы val_freedom_trader = zaton\val_freedom_trader.ltx ; где лежит файл логики И в заключение сам файл логики [logic@val_freedom_trader] active = walker@freedom ; активируем первую схему - патруль между двумя точками suitable = {=check_npc_name(val_freedom_trader)} ; проверяем - наш ли этот чувак prior = 100 on_hit = hit on_death = death [walker@freedom] path_look = guard_1_look ;вейпоинты в way_zaton.ltx - куда смотрит path_walk = guard_1_walk ;вейпоинты в way_zaton.ltx - где ходит def_state_standing = guard_na on_actor_dist_le_nvis = 10 | walker@freedom_1 ;дистанция до игрока <= 10 без проверки на видимость | переход на др схему ;on_info = {=actor_has_item(detector_advanced)} %=teleport_npc(esc_a1_freedom_guard_1_walk)% meet = no_meet [walker@freedom_1]:walker@freedom ; производная от первой схемы с изменениями path_walk = guard_2_walk path_look = guard_2_look on_actor_dist_ge_nvis = 10 | walker@freedom ;если дистанция до игрока > 8 без проверки на видимость | возврат в первую схему meet = meet [meet] close_snd_hello = zat_a2_stalker_barmen_greeting ; озвучка - приветствие, без звука - nil close_snd_bye = zat_a2_stalker_barmen_farewell ; озвучка - прощание, без звука - nil close_anim = guard_na close_victim = actor far_anim = nil far_victim = nil close_distance = 2 far_distance = 0 close_snd_distance = 3 abuse = false ;use = {=actor_has_item(detector_advanced)} true, false ;условие диалога -есть детектор"медведь" -говорит use = true allow_break = false meet_on_talking = false [wounded] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false [danger] ignore_distance = 0 ignore_distance_grenade = 0 ignore_distance_corpse = 0 ignore_distance_hit = 0 ignore_distance_sound = 0 [hit] [death] Сами понимаете, что если сразу двоих сделаете - передерутся и долговец скорее всего победит - надо кому-нибудь группировку сменить. Создание эксклюзивного сквада из трех человек. Сперва создадим три специфик-характера для нашего сквада; <specific_character id="zat_a1_stalker_cop" team_default="1"> <name>st_zat_a1_stalker_cop_name</name> <icon>ui_inGame2_Gluhar</icon> <map_icon x="1" y="0"> </map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>zat_a1_stalker_cop</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_02\stalker\</snd_config> <rank>55</rank> <reputation>0</reputation> <money min="8000" max="8000" infinitive="0" /> <visual>actors\stalker_neutral\stalker_neutral_2_face_2</visual> <supplies> [spawn] \n wpn_ak74u \n ammo_5.45x39_fmj = 1 \n wpn_pm \n ammo_9x18_pmm = 1 \n #include "gameplay\character_items_nd.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs_2.xml" </supplies> #include "gameplay\character_criticals_4.xml" <start_dialog>zat_b38_stalker_cop_start_dialog</start_dialog> <actor_dialog>zat_a2_stalker_barmen_b7_actor_start</actor_dialog> <actor_dialog>zat_b38_stalker_cop_task_dialog</actor_dialog> <actor_dialog>zat_b38_cop_about_himself_dialog</actor_dialog> <actor_dialog>zat_b38_stalker_cop_b52_about_nimble</actor_dialog> <actor_dialog>zat_b38_stalker_cop_b52_about_snag</actor_dialog> <actor_dialog>zat_b38_stalker_cop_about_sci_guards</actor_dialog> <actor_dialog>zat_b38_stalker_cop_about_sci_helpers</actor_dialog> <actor_dialog>actor_break_dialog</actor_dialog> </specific_character> <!----------------------------------------------------------------------------------------------------> <specific_character id="zat_a1_helper_1" team_default="1"> <name>zat_a1_helper_1_name</name> <icon>ui_inGame2_neutral_2</icon> <map_icon x="1" y="0"> </map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>zat_a1_helper_1</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_03\stalker\</snd_config> <rank>35</rank> <reputation>0</reputation> <visual>actors\stalker_neutral\stalker_neutral_2</visual> <supplies> [spawn] \n wpn_binoc \n detector_advanced = 1 \n device_torch \n wpn_mp5 \n wpn_beretta = 1 \n ammo_9x19_fmj = 1 \n af_fireball = 1 \n </supplies> <start_dialog>zat_b53_artefact_hunter_1_gathering_artefacts</start_dialog> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs_no_guide.xml" </specific_character> <!---------------------------------------------------------------------------------------------------> <specific_character id="zat_a1_helper_2" team_default="1"> <name>zat_a1_helper_2_name</name> <icon>ui_inGame2_neutral_1</icon> <map_icon x="1" y="0"> </map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>zat_a1_helper_2</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_02\stalker\</snd_config> <rank>20</rank> <reputation>0</reputation> <visual>actors\stalker_neutral\stalker_neutral_1</visual> <supplies> [spawn] \n wpn_toz34 \n ammo_12x70_buck = 1 \n wpn_pm \n ammo_9x19_fmj = 1 \n medkit = 1 \n #include "gameplay\character_items_nd.xml" #include "gameplay\character_food.xml" </supplies> <start_dialog>zat_b53_artefact_hunter_2_gathering_artefacts</start_dialog> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs.xml" </specific_character> <!-----------------------------------------------------------------------------------------------------> <character id="zat_a1_stalker_cop"> <class>zat_a1_stalker_cop</class> </character> <character id="zat_a1_helper_1"> <class>zat_a1_helper_1</class> </character> <character id="zat_a1_helper_2"> <class>zat_a1_helper_2</class> </character> ;------------------трое из ларца--------------------- [zat_a1_stalker_cop]:stalker $spawn = "respawn\zat_a1_stalker_cop" character_profile = zat_a1_stalker_cop spec_rank = regular community = stalker story_id = zat_a1_stalker_cop [zat_a1_helper_1]:stalker $spawn = "respawn\zat_a1_helper_1" character_profile = zat_a1_helper_1 spec_rank = regular community = stalker story_id = zat_a1_helper_1 [zat_a1_helper_2]:stalker $spawn = "respawn\zat_a1_helper_2" character_profile = zat_a1_helper_2 spec_rank = regular community = stalker story_id = zat_a1_helper_2 Создаем сквад ; Здесь содержатся дескрипшены сквадов, которые потом можно создавать используя спец функции. [zat_a1_brigada_squad]:online_offline_group faction = stalker target_smart = zat_a1 spawn_point = zat_a1_walker_3_walk npc = zat_a1_stalker_cop, zat_a1_helper_1, zat_a1_helper_2 ;--------- ZATON UNIQUE SQUADS -------- [zat_a1_brigada_squad]:default_squad sim_avail = false А теперь внимание! Мы не будем прописывать наш сквад в стартовую позицию Затона т.к. спавнить будем функцией "create_squad" которую поместим в логику спейс-рестриктора. Это будет альтернативой всеми нами любимого скрипта alife():create(".....") Для этого создадим спейс-рестриктор в олл.спавне [20000] ; cse_abstract properties section_name = space_restrictor name = zat_a1_spawner position = 244.724090576172,18.1142883300781,530.155517578125 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 292 distance = 0 level_vertex_id = 1385170 object_flags = 0xffffff3e custom_data = <<END [logic] cfg = scripts\zaton\zat_a1_spawner.ltx END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1 ; cse_alife_space_restrictor properties restrictor_type = 3 Секцию можно воткнуть и в начало файла. Место расположения рестриктора чуть вперед от начальной точки спавна актора в начале игры между наклоненным сухим деревом и камнем, чтобы сработала логика, надо пройти между ними. Создаем логику рестриктора: [logic] active = sr_idle@spawn_stalker [sr_idle@spawn_stalker] on_info = {=actor_in_zone(zat_a1_spawner)} sr_idle@item_spawn %=create_squad(zat_a1_brigada_squad:zat_a1)% [sr_idle@item_spawn] on_game_timer = 150 | sr_idle@nil %=spawn_object(disel_generator:zat_a1_walker_4_walk)% [sr_idle@nil] В логику рестриктора добавил еще функцию "spawn_object" для спавна предметов (кому-то на голову свалится дизель-генератор через 15 секунд после спавна сквада) Так-же обратите внимание на то что в логике рестриктора можно указать или смарт-террейн для спавна(zat_a1_brigada_squad:zat_a1) или точку пути (disel_generator:zat_a1_walker_4_walk). Пока все. Собираем - запускаем - наблюдаем. Логику чувакам пока не подключал - делается так-же как и для одиночного эксклюзива. Но пока стоит обратить внимание на то, что и без логики, если у командира сквада нормальные диалоги с инфопоршнями и прочим для выдачи квестов, то и дефолтная пойдет для простых сцен. Смарт-каверы в ЗП. Применяются в основном в двух случаях: 1.- вместо точек путей в логике эксклюзивов. 2.- для кампов - посиделки у костра. Начнем с посиделок.Добавим в олл.спавн в зону нужного нам смарт-террейна несколько смарт-каверов и камп-зону [20001] ; cse_abstract properties section_name = camp_zone name = zat_a1_camp position = 241.788421630859,14.009066619873,467.594360351563 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 6 distance = 0 level_vertex_id = 1382565 object_flags = 0xffffff3e custom_data = <<END [camp] cfg = scripts\camp.ltx END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 5.84479999542236 ; cse_alife_space_restrictor properties restrictor_type = 3 [20002] ; cse_abstract properties section_name = smart_cover name = zat_a1_animpoint_1 position = 241.788421630859,14.009066619873,466.594360351563 direction = 0,3.13,0 ; cse_alife_object properties game_vertex_id = 6 distance = 0 level_vertex_id = 1382565 object_flags = 0xffffffbf ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_smart_cover properties cse_smart_cover__unk1_sz = animpoint_sit_low cse_smart_cover__unk2_f32 = 0 enter_min_enemy_distance = 15 exit_min_enemy_distance = 10 ; se_smart_cover properties last_description = animpoint_sit_low loopholes = animpoint_sit_low,1 [20003] ; cse_abstract properties section_name = smart_cover name = zat_a1_animpoint_2 position = 240.788421630859,14.009066619873,468.594360351563 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 6 distance = 0 level_vertex_id = 1382565 object_flags = 0xffffffbf ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_smart_cover properties cse_smart_cover__unk1_sz = animpoint_sit_low cse_smart_cover__unk2_f32 = 0 enter_min_enemy_distance = 15 exit_min_enemy_distance = 10 ; se_smart_cover properties last_description = animpoint_sit_low loopholes = animpoint_sit_low,1 [20004] ; cse_abstract properties section_name = smart_cover name = zat_a1_animpoint_3 position = 242.788421630859,14.009066619873,468.594360351563 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 6 distance = 0 level_vertex_id = 1382565 object_flags = 0xffffffbf ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_smart_cover properties cse_smart_cover__unk1_sz = animpoint_sit_low cse_smart_cover__unk2_f32 = 0 enter_min_enemy_distance = 15 exit_min_enemy_distance = 10 ; se_smart_cover properties last_description = animpoint_sit_low loopholes = animpoint_sit_low,1 Все - лагерь для посиделок готов, собираем все с предыдущими наработками. Важный момент - шейп камп-зоны должен покрывать смарт-каверы, иначе получатся слишком скучные посиделки - не будут травить анекдоты и прочее. За направление взгляда отвечает дирекшн смарт-кавера. p.s. Вот еще кое-что нашел: Создание места для сна в ЗП на добавленных локациях. Разместим секцию спейс-рестриктора в олл.спавне(привязка имени к определенному смарт-террейну(esc_b1) не обязательна но желательна для ясности) [15001] ; cse_abstract properties section_name = space_restrictor name = bar_dolg_bunker_sr_sleep position = 219.5344470977783,-5.39998846054077,123.680816650391 direction = 0,0,0 version = 0x7c script_version = 8 ; cse_alife_object properties game_vertex_id = 2746 distance = 0 level_vertex_id = 54650 object_flags = 0xffffff3e custom_data = <<END [story_object] story_id = bar_dolg_bunker_sr_sleep_id [logic] cfg = scripts\sr_sleep.ltx END ; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 5.02119588851929,0,0 shape0:axis_y = 0,5.0482006072998,0 shape0:axis_z = 0,0,2.23479747772217 shape0:offset = 0,0,0 ; cse_alife_space_restrictor properties restrictor_type = 3 Регистрируем наше койкоместо в скриптах. ;стр.-288 local sleep_zones_tbl = { {target = "marsh_baza_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, {target = "marsh_baza_sr_sleep_kazarm_id", hint = "st_ui_pda_sleep_place"}, {target = "zat_a2_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, {target = "jup_a6_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, {target = "pri_a16_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, {target = "esc_b1_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, {target = "bar_dolg_bunker_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, } function fill_primary_objects() ;стр.-2846 function sleep(actor, npc) local sleep_zones = { "zat_a2_sr_sleep", "jup_a6_sr_sleep", "pri_a16_sr_sleep", "esc_b1_sr_sleep", "marsh_baza_sr_sleep", "marsh_baza_sr_sleep_kazarm", "bar_dolg_bunker_sr_sleep", "actor_surge_hide_2" } for k,v in pairs(sleep_zones) do Создание укрытия от выброса - surge_hide : Пропишем нужному нам смарт-терейну укрытие [esc_sim_13]:default surge = 1 ; прописали возможность укрытия territory = 1 sim_avail = true Регистрируем наше укрытие ;escape esc_surge_hide_sim_13 Зарегистрируем нашу локацию в скриптах --'****************************************************** --'* Реестр смарт-террейнов. Игровое поле симуляции. --'****************************************************** --' В этом ltx хранятся дескрипторы сквадов. squad_ltx = system_ini() setting_ini = ini_file("misc\\simulation.ltx") local group_id_by_levels = {zaton = 1, pripyat = 2, jupiter = 3, labx8 = 4, jupiter_underground = 5, escape = 6} строка 1196 function surge_stats() local sim_obj_registry = simulation_objects.get_sim_obj_registry().objects local sim_squads = { ["zaton"] = {}, ["jupiter"] = {}, ["pripyat"] = {}, ["escape"] = {} } local sim_smarts = { ["zaton"] = {}, ["jupiter"] = {}, ["pripyat"] = {}, ["escape"] = {} } строка 1241 print_smarts_and_squads_by_level("zaton") print_smarts_and_squads_by_level("jupiter") print_smarts_and_squads_by_level("pripyat") print_smarts_and_squads_by_level("escape") строка 38 self.levels_respawn = {zaton = false, jupiter = false, pripyat = false, escape = false} строка 194 xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_after_surge") elseif(level.name()=="jupiter") then xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_after_surge") elseif not has_alife_info("pri_b305_fifth_cam_end") then xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_after_surge") elseif(level.name()=="escape") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_after_surge") строка 249 if(level.name()=="zaton") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_2") elseif(level.name()=="jupiter") then xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_phase_2") elseif not has_alife_info("pri_b305_fifth_cam_end") then xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_surge_phase_2") elseif(level.name()=="escape") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_2") строка 273 if(level.name()=="zaton") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_1") elseif(level.name()=="jupiter") then xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_phase_1") elseif not has_alife_info("pri_b305_fifth_cam_end") then xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_surge_phase_1") elseif(level.name()=="escape") then xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_1") строка 329 self.levels_respawn = {zaton = true, jupiter = true, pripyat = true, escape = true} строка 352 self.levels_respawn = {zaton = true, jupiter = true, pripyat = true, escape = true} строка 638 packet:w_bool(self.levels_respawn.zaton) packet:w_bool(self.levels_respawn.jupiter) packet:w_bool(self.levels_respawn.pripyat) packet:w_bool(self.levels_respawn.escape) строка 665 self.levels_respawn.zaton = packet:r_bool() self.levels_respawn.jupiter = packet:r_bool() self.levels_respawn.pripyat = packet:r_bool() self.levels_respawn.escape = packet:r_bool() переходим к олл.спавн - создаем секцию укрытия [xxxx] ; cse_abstract properties section_name = space_restrictor name = esc_surge_hide_sim_13 position = -11.2279901504517,2.46390247344971,57.3380393981934 direction = 0,0,0 version = 0x7c script_version = 8 ; cse_alife_object properties game_vertex_id = 934 distance = 0 level_vertex_id = 3366 object_flags = 0xffffff3e ; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 3.27519989013672,0,0 shape0:axis_y = 0,5.44060039520264,0 shape0:axis_z = 0,0,7.41159915924072 shape0:offset = 0,0,0 ; cse_alife_space_restrictor properties restrictor_type = 0 Создаем точки пути по колличеству мест в укрытии [esc_sim_13_surge_1_look] points = p0 p0:name = name00 p0:position = -11.0934257507324,2.45600557327271,56.0012626647949 p0:game_vertex_id = 1051 p0:level_vertex_id = 286804 [esc_sim_13_surge_1_walk] points = p0 p0:name = name00 p0:position = -12.587254524231,2.45982217788696,54.6062545776367 p0:game_vertex_id = 1051 p0:level_vertex_id = 284937 [esc_sim_13_surge_2_look] points = p0 p0:name = name00 p0:position = -11.7026491165161,2.45731353759766,55.4043731689453 p0:game_vertex_id = 1051 p0:level_vertex_id = 285862 [esc_sim_13_surge_2_walk] points = p0 p0:name = name00 p0:position = -11.7085494995117,2.45401954650879,54.6906051635742 p0:game_vertex_id = 1051 p0:level_vertex_id = 285861 [esc_sim_13_surge_3_look] points = p0 p0:name = name00 p0:position = -11.700403213501,2.46191310882568,55.9261016845703 p0:game_vertex_id = 1051 p0:level_vertex_id = 285863 [esc_sim_13_surge_3_walk] points = p0 p0:name = name00 p0:position = -10.5211238861084,2.45401906967163,54.5706977844238 p0:game_vertex_id = 1051 p0:level_vertex_id = 287736 [esc_sim_13_surge_4_look] points = p0 p0:name = name00 p0:position = -12.1378507614136,2.46710777282715,55.9775772094727 p0:game_vertex_id = 1051 p0:level_vertex_id = 285863 [esc_sim_13_surge_4_walk] points = p0 p0:name = name00 p0:position = -12.5659475326538,2.4704270362854,55.9364585876465 p0:game_vertex_id = 1051 p0:level_vertex_id = 284939 [esc_sim_13_surge_5_look] points = p0 p0:name = name00 p0:position = -11.3268537521362,2.45915699005127,56.0716171264648 p0:game_vertex_id = 1051 p0:level_vertex_id = 286804 [esc_sim_13_surge_5_walk] points = p0 p0:name = name00 p0:position = -11.4233283996582,2.45504951477051,55.4901466369629 p0:game_vertex_id = 1051 p0:level_vertex_id = 286803 [esc_sim_13_surge_6_look] points = p0 p0:name = name00 p0:position = -11.951548576355,2.46743059158325,56.5034790039063 p0:game_vertex_id = 1051 p0:level_vertex_id = 285864 [esc_sim_13_surge_6_walk] points = p0 p0:name = name00 p0:position = -10.5399560928345,2.45401906967163,55.9832763671875 p0:game_vertex_id = 1051 p0:level_vertex_id = 287738 [esc_sim_13_surge_7_look] points = p0 p0:name = name00 p0:position = -11.060601234436,2.46146583557129,56.6575355529785 p0:game_vertex_id = 1051 p0:level_vertex_id = 286805 [esc_sim_13_surge_7_walk] points = p0 p0:name = name00 p0:position = -12.5727767944336,2.47284889221191,57.334114074707 p0:game_vertex_id = 1051 p0:level_vertex_id = 284941 [esc_sim_13_surge_8_look] points = p0 p0:name = name00 p0:position = -11.7709636688232,2.46654939651489,57.2202682495117 p0:game_vertex_id = 1051 p0:level_vertex_id = 285865 [esc_sim_13_surge_8_walk] points = p0 p0:name = name00 p0:position = -11.6660528182983,2.4660382270813,56.7951736450195 p0:game_vertex_id = 1051 p0:level_vertex_id = 285864 [esc_sim_13_surge_9_look] points = p0 p0:name = name00 p0:position = -11.4014568328857,2.4647479057312,57.3022918701172 p0:game_vertex_id = 1051 p0:level_vertex_id = 286806 [esc_sim_13_surge_9_walk] points = p0 p0:name = name00 p0:position = -10.5875377655029,2.46077871322632,57.3240737915039 p0:game_vertex_id = 1051 p0:level_vertex_id = 287740 [esc_sim_13_surge_10_look] points = p0 p0:name = name00 p0:position = -12.009449005127,2.47024631500244,58.7685432434082 p0:game_vertex_id = 1051 p0:level_vertex_id = 285867 [esc_sim_13_surge_10_walk] points = p0 p0:name = name00 p0:position = -12.5359506607056,2.47053003311157,58.6904754638672 p0:game_vertex_id = 1051 p0:level_vertex_id = 284943 [esc_sim_13_surge_11_look] points = p0 p0:name = name00 p0:position = -11.6696643829346,2.47010707855225,58.7928047180176 p0:game_vertex_id = 1051 p0:level_vertex_id = 285867 [esc_sim_13_surge_11_walk] points = p0 p0:name = name00 p0:position = -11.7617807388306,2.47143888473511,58.0255508422852 p0:game_vertex_id = 1051 p0:level_vertex_id = 285866 [esc_sim_13_surge_12_look] points = p0 p0:name = name00 p0:position = -11.1556959152222,2.46973323822021,58.9260101318359 p0:game_vertex_id = 1051 p0:level_vertex_id = 286808 [esc_sim_13_surge_12_walk] points = p0 p0:name = name00 p0:position = -10.5822420120239,2.46985769271851,58.7564964294434 p0:game_vertex_id = 1051 p0:level_vertex_id = 287742 Изменено 13 Сентября 2010 пользователем nuklia Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-493938
Гость БолотныйДоктор Опубликовано 14 Сентября 2010 Поделиться Опубликовано 14 Сентября 2010 (изменено) Да вроде все так делаю ну из одной точки у меня все равно лезут копии сквадов и получется месиво большое Изменено 14 Сентября 2010 пользователем БолотныйДоктор Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-494099
nuklia 0 Опубликовано 14 Сентября 2010 Поделиться Опубликовано 14 Сентября 2010 (изменено) Попробуй удалить все секции респавнов во всех смартах в тех файлах, что выкладывал - с твоими смартами сплошная бойня на кордоне - одних убивают, вместо них новые респавнятся, у них и времени то нет до работ в гулагах дойти. Да еще и тормозит из-за столпотворения. Так не стоит заселять локации, не получится мало-мальский сюжетец создать. Заселяй эксклюзивными сквадами, а респавн делай с условием, чтобы не плодились бесконтрольно. Кстати у меня тоже на кордоне половина спавнится в тоннеле возле блокпоста, хотя им прописаны конкретные точки спавна - почему так происходит, я так и не понял, потому некоторых ответственных товарищей спавнил через олл.спавн. Изменено 14 Сентября 2010 пользователем nuklia Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/107/#findComment-494215
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти