Grif_on 9 Опубликовано 24 Апреля 2014 Всем доброго времени суток! перенёс в ЗП из ЧН Лиманск и хочу там добавить "водную преграду под напряжением" (как было в ЧН). Логику взял из ЧН (немного переделал): [logic] active = sr_idle[sr_idle]on_actor_inside = %=hit_actor(0.5)% sr_idle@pauseon_info = {+lim_electro_fence_off} sr_idle@nil[sr_idle@pause]on_timer = 250 | sr_idleon_info = {+lim_electro_fence_off} sr_idle@nil[sr_idle@nil] Получаю вылет из-за %=hit_actor(0.5)%, может кто подскажет, есть ли в ЗП этому альтернатива? Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 18 Мая 2014 (изменено) Всех приветствую! Подскажите по такому вопросу: подключил через программу от AMK подземку агропрома к ЗП, заспавнил там полтергейста при вхождении в рестриктор [logic] active = sr_idle@line_0[sr_idle@line_0]on_info = {=actor_in_zone(agru_poltergeist_end_spawns)} sr_idle@line_1 %=spawn_object(agru_end_poltergeist_1:agru_poltergeist_end_1_walk:0)%[sr_idle@line_1] прописал ему пути движения [agru_poltergeist_end_1_walk]points = p0,p1,p2,p3,p4,p5p0:name = name00p0:position = 32.048828125,2.817538022995,34.4098777770996p0:game_vertex_id = 2445p0:level_vertex_id = 881p0:links = p1(1)p1:name = name01p1:position = 32.0403099060059,2.72568011283875,30.8439044952393p1:game_vertex_id = 2445p1:level_vertex_id = 861p1:links = p2(1)p2:name = name02p2:position = 29.9009552001953,2.75595903396606,29.1305198669434p2:game_vertex_id = 2445p2:level_vertex_id = 735p2:links = p3(1)p3:name = name03p3:position = 26.9271583557129,2.88915205001831,30.27414894104p3:game_vertex_id = 2445p3:level_vertex_id = 532p3:links = p4(1) p4:name = name04p4:position = 26.8617248535156,2.98077797889709,33.7313804626465p4:game_vertex_id = 2445p4:level_vertex_id = 552p4:links = p5(1)p5:name = name05p5:position = 29.6680488586426,2.93270897865295,35.6558265686035p5:game_vertex_id = 2445p5:level_vertex_id = 719p5:links = p0(1) но он всё равно гоняется за ГГ по всей локации (то есть, не "соблюдает" свои пути движения). Как это можно испраить? (или я может чего не правильно делаю?). Логика полтергейста [logic]active = mob_walker [mob_walker]path_walk = agru_poltergeist_end_1_walkbraindead = trueactor_friendly = truenpc_friendly = trueon_actor_dist_le = 3 | mob_walker@attack [mob_walker@attack]path_walk = agru_poltergeist_end_1_walkon_actor_dist_ge = 3 | mob_walker Изменено 18 Мая 2014 пользователем Grif_on Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 18 Мая 2014 (изменено) Спасибо за подсказки, сделал такую логику полтер-у, вроде работает как мне и нужно. [logic] active = mob_home[mob_home]path_home = agru_poltergeist_end_1_walkbraindead = trueactor_friendly = truenpc_friendly = truehome_min_radius = 4home_max_radius = 5on_actor_not_in_zone = agru_poltergeist_attak | %=polter_actor_ignore(true)%on_info = {=actor_in_zone(agru_poltergeist_attak)} %=polter_actor_ignore(false)%on_actor_dist_le = 3 | mob_home@attack[mob_home@attack]path_home = agru_poltergeist_end_1_walkhome_min_radius = 4home_max_radius = 5on_actor_dist_ge = 3 | mob_home Подскажите ещё по такому вопросу: на одном из форумов вычитал, что при подключении новых локаций на старых сбивается сетка кординат, правда ли это или нет? (я подключал локи через прогу от AMK) Изменено 18 Мая 2014 пользователем Grif_on Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 29 Августа 2014 Всех приветствую! Подскажите как "работать" с enable/disable_level_changer (я так понял с помощью enable/disable_level_changer можно "разрешать/запрещать" переход (Подключил тёмную долину и даркскейп к ЗП, в скриптах локи зарегистрировал)). Сделал так: [10997]; cse_abstract propertiessection_name = level_changername = val_to_desc_1position = -44.5999984741211,1.79999995231628,-547.499877929688direction = 0,0,0; cse_alife_object propertiesgame_vertex_id = 1823distance = 4.90000009536743level_vertex_id = 119640object_flags = 0xffffff3ecustom_data = <<<END[story_object]story_id = val_to_desc_1END; cse_shape propertiesshapes = shape0shape0:type = boxshape0:axis_x = 12.9620018005371,0,0shape0:axis_y = 0,5.50719976425171,0shape0:axis_z = 0,0,4.48839998245239shape0:offset = 0,0,0; cse_alife_space_restrictor propertiesrestrictor_type = 3; cse_alife_level_changer propertiesdest_game_vertex_id = 3763dest_level_vertex_id = 47755dest_position = -404.020355224609,1.17996001243591,624.253295898438dest_direction = 0.00435000006109476,-2.5,0.00658199982717633dest_level_name = darkscapedest_graph_point = desc_graph_point_actor_spawn_3silent_mode = 1; se_level_changer properties [10998]; cse_abstract propertiessection_name = space_restrictorname = close_level_changerposition = 140.048614501953,-1.00104403495789,48.9994010925293direction = 0,0,0 ; cse_alife_object propertiesgame_vertex_id = 1677distance = 0level_vertex_id = 309793object_flags = 0xffffff3ecustom_data = <<END [logic]active = sr_idle@start [sr_idle@start]on_info = sr_idle@close1 %=disable_level_changer(val_to_desc_1)%[sr_idle@close1]on_info = {+svoboda_leader_task_complete} sr_idle@end %=enable_level_changer(val_to_desc_1)%[sr_idle@end]END; cse_shape propertiesshapes = shape0shape0:type = sphereshape0:offset = 0,0,0shape0:radius = 2.5191171169281; cse_alife_space_restrictor propertiesrestrictor_type = 3 Но переход работает в любом случае, скажите, что я делаю не так. (В xr_effects.script функции раскомментировал). Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 30 Августа 2014 makdm, всё равно переход работает в любом случае Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 30 Августа 2014 @makdm, там так и написано, просто, когда сюда писал - интернет глючил, вот и вышло <<< вместо << @Charsi, делел так - бесполезно. Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 10 Сентября 2014 (изменено) Всех приветствую! Я решил попробовать в тестовом варианте начать заселять подключенные к ЗП болота, и сразу появились несколько глупых вопросов. 1. Как заставить нпс озвучивать приветствие: заспавнил проводника с такой логикой: [logic@mar_intro_guide] active = walker@guiderprior = 200suitable = {=check_npc_name(mar_intro_guide)} truelevel_spot = guider[walker@guider]path_walk = guide_intro_walkpath_look = guide_intro_lookdef_state_standing = guard_naon_actor_dist_le = 10 | walker@guider_hello meet = no_meetcombat_ignore_cond = truecombat_ignore_keep_when_attacked = trueinvulnerable = trueuse_camp = falsegather_items_enabled = falsehelp_wounded_enabled = falsecorpse_detection_enabled = false[walker@guider_hello]path_walk = guide_intro_walkpath_look = guide_intro_lookdef_state_standing = hello_wpnmeet = meet@guideon_actor_dist_ge = 10 | walker@guidercombat_ignore_cond = truecombat_ignore_keep_when_attacked = trueinvulnerable = trueuse_camp = falsegather_items_enabled = falsehelp_wounded_enabled = falsecorpse_detection_enabled = false[meet@guide]close_snd_hello = mar_csky_guider_meet_helloclose_snd_bye = nilclose_anim = nilclose_victim = actorfar_anim = guard_nafar_victim = actorclose_distance = 0far_distance = 10trade_enable = falseallow_break = falseclose_snd_distance = 3use = {=actor_enemy} false, truemeet_on_talking = falsemeet_dialog = mar_csky_guider_intro_dialog но он молчит как партизан и не воспроизводит mar_csky_guider_meet_hello, хотя в script_sound_marsh звуки прописаны, что я делаю не так? 2. Насчёт посиделок у костра. Можно ли как-нибудь сделать, чтоб сталкерки не только играли на гитаре, травили анекдоты, но и в это же время ели колбаску и пили водку у костра (как в ЧН). Как я понял в ЗП нет анимпойнта sit_ass? (sit_low беру, но сталкерки сидят как бы в воздухе, смотрится некрасиво)Как я понял для посиделок у костра можно не прописывать логику нпс? И ещё вопрос по скавадм: хочу у костра посадить 8 нпс, как лучше сделать, всех восмирых спавнить 1 сквадом или несколькими? (я новичок в этом деле, пожалуйста, не пинайте особо за тупые вопросы ) Изменено 10 Сентября 2014 пользователем BFG Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 3 Апреля 2015 (изменено) Опишу как я добавил мост в Лиманск из ЧН в ЗП. (все манипуляции проводил на стимовской лицензии ЗП!) Понадобятся файлы из чн: configs\misc\bridge.ltx - можно сразу скопировать по аналогичному пути в ЗП (секцию agru_door, если не иползуется, можно удалить); далее понадобятся фйлы bind_red_forest_bridge.script, db.script и xr_effects.script из папки scripts. Теперь переходим в ЗП. Копируем bind_red_forest_bridge.script в папку gamedata\scripts, Далее правим аналогичные ЧН-овским скрипты ЗП: в db.script переносим аналогично из ЧН-овского: bridge_by_name = {}и вниз пишем функцииfunction add_bridge( bridge, binder )printf("adding bridge %s",bridge:name())bridge_by_name[bridge:name()] = binderadd_obj( bridge )endfunction del_bridge( bridge )bridge_by_name[bridge:name()] = nildel_obj( bridge )end Теперь правим xr_effects.script: -- Функции для управления мостом.function bridge_down()db.bridge_by_name["red_bridge"]:anim_forward()endfunction bridge_up()db.bridge_by_name["red_bridge"]:anim_backward()endfunction bridge_stop()db.bridge_by_name["red_bridge"]:anim_stop()endfunction anim_obj_down(actor, npc, p)if p[1] ~= nil thendb.anim_obj_by_name[p[1]]:anim_forward()endendfunction anim_obj_up(actor, npc, p)if p[1] ~= nil thendb.anim_obj_by_name[p[1]]:anim_backward()endendfunction anim_obj_stop(actor, npc, p)if p[1] ~= nil thendb.anim_obj_by_name[p[1]]:anim_stop()endend Спавним сам мост: ; cse_abstract propertiessection_name = red_forest_bridgename = red_bridgeposition = -144.884460449219,10.0784387588501,-270.569519042969direction = 0,0,0; cse_alife_object propertiesgame_vertex_id = ваш вертексdistance = 0level_vertex_id = ваш левел вертексobject_flags = 0xffffff3acustom_data = <[collide]ignore_static[animated_object]END; cse_visual propertiesvisual_name = dynamics\scene_objects\red_forest\red_forest_bridge_01_dynamic; cse_ph_skeleton propertiesskeleton_name = bridge_downskeleton_flags = 1; cse_alife_object_physic propertiesphysic_type = 0x3mass = 10 ну и прописываем в acdc (если нету) red_forest_bridge => 'cse_alife_object_physic', чтоб запаковать спавн. Запускаем игру и видим наш мост: http://pixic.ru/i/x000U7Z5f7I6C4Y5.jpg Для управления мостом используем для примера логику из ЧН (это пока лично не проверял, т.к. ещё руки недошли): [logic]active = sr_idle[sr_idle]on_info = sr_idle@1 %=bridge_up()% ; =turn_off(513)%[sr_idle@1]on_info = {+red_bridge_bridge_move -red_bridge_down_done} sr_idle@2 %=bridge_down()% ; =turn_on(513)%[sr_idle@2]on_info = {-red_bridge_bridge_move -red_bridge_down_done} sr_idle@1 %=bridge_stop()% ; =turn_off(513)% Вроде ничего не упустил. Извините, что пишу не по теме, но тут человек спрашивает, я его понимаю, т.к сам довольно долго бился с этим мостом, да и может ещё кому пригодится мой пост. Изменено 3 Апреля 2015 пользователем Grif_on 1 Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 3 Апреля 2015 (изменено) Не за что, рад, что помог . Забыл указать зарегистрировать bridge.ltx в system.ltx - #include "misc\bridge.ltx". Сразу не посмотрел на предыдущей странице, что @Сталкер Лом то же самое подсказал, но всё же... Изменено 3 Апреля 2015 пользователем Grif_on 1 Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 6 Апреля 2015 Доброго времени суток! Подключил кордон к ЗП, заспавнил сквад сталкеров, но хочу, чтоб они днём стояли у Ж/Д моста, а ночью уходили в лагерь. Прописал им таргет смарт так: target_smart = {=is_day} esc_smart_terrain_6_8, esc_smart_terrain_5_7, но почему-то сквад не идёт на указанный смарт (и не возвращается на прежний), а прётся к переходу на болота. Подскажите, в чём может быть проблема? Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 6 Апреля 2015 @UnLoaded, делал так: [smart_terrain] squad_id = 1max_population = 1 [smart_terrain]squad_id = 2max_population = 1 [start_position_escape]esc_smart_terrain_5_7_stalker_1_squad = esc_smart_terrain_5_7 [esc_smart_terrain_5_7_stalker_1_squad]:default_squadsim_avail = true [esc_smart_terrain_5_7_stalker_1_squad]:online_offline_groupfaction = stalkernpc = sim_default_stalker_2, sim_default_stalker_1, sim_default_stalker_1, sim_default_stalker_1target_smart = {=is_day} esc_smart_terrain_6_8, esc_smart_terrain_5_7 Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 6 Апреля 2015 @Clayman, локацию зарегистрировал в sim_board.script, smart_terrain.script, surge_manager.script. Сматры в simulation_objects_props тоже прописаны так: [esc_smart_terrain_5_7]:default_basesurge = 1sim_avail = true [esc_smart_terrain_6_8]:defaultsim_avail = true Заодно смарты прописал и в game_graphs.ltx Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 7 Апреля 2015 (изменено) @Clayman, для пробы заспавнил сквад на Затоне у портовых кранов, а на ночь ему поставил смарт на "Шевченко", и сквад ночью без проблем побрёл на Шевченко. Значит, похоже, косяк нужно искать где-то на поключенной локации. Ничего понять не могу (я всё разбраюсь насчёт target_smart = {=is_day} esc_smart_terrain_6_8, esc_smart_terrain_5_7) Заспавнил ГГ на блокпосту военных, после чего пошёл на смарт под Ж/Д мостом (esc_smart_terrain_6_8) - сквад на месте, где надо. Вернулся на блокпост и поспал до ночи. Снова пошёл к Ж/Д мосту - сквада нет, добежал до смарта esc_smart_terrain_5_7 - там сквада тоже нет (хотя по логике ночью должен быть там). Пробегал какое-то время по всему кордону - сквада нигде нет. Вернулся на esc_smart_terrain_5_7 - сквад там. Дождался дня. Сквад выдвинулся на выход (на смарт esc_smart_terrain_6_8, подумал я, но решил за ним проследить) - сквад на esc_smart_terrain_6_8 не пошёл, а пошёл тыняться по кордону. Я решил вернуться на военный блокпост и словил вылет: Expression : !m_error_codeFunction : raii_guard::~raii_guardFile : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cppLine : 748Description : ...\stalker call of pripyat\gamedata\scripts\_g.script:479: bad argument #2 to 'format' (string expected, got nil) (Хотя до этого 2 раза там был и вылета не было). Что я всем этим хочу сказать: почему-то, когда ГГ рядом сквад на нужный смарт не идёт, но когда ГГ "отходит подальше", то через время сквад как бы телепортируется на нужный смарт. Может быть, кто подскажет в чём может быть косяк? Просто хочу разобраться... Изменено 7 Апреля 2015 пользователем Grif_on Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 8 Апреля 2015 @Clayman, @warwer, спасибо за ответы. Я для теста спавнил сквады, состоящие из sim_default_military_ , словил тот вылет. Сейчас прописал им "индивидуальные характеры" - вылета не стало. Буду пробовать разобраться со смартами. Если что, извиняйте за глупые вопросы, я ведь только учусь . Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 30 Ноября 2015 @MOnC9lTuHA, Как создается источник звука в определенной точке? Можно через спейс рестриктор, например в ЧН включение и выключение звука трансформатора: [logic]active = sr_idle[sr_idle]on_info = sr_idle@2 %=play_sound_looped(lim_electro_fience_transformer)%[sr_idle@2]on_info = {+lim_electro_fence_off} nil %=stop_sound_looped(lim_electro_fience_transformer)% Если при входе ГГ в рестриктор, то что-то такое: [logic]active = sr_idle[sr_idle]on_actor_inside = sr_idle@line_2 %=play_sound_looped(steam) % [sr_idle@line_2]on_actor_outside = sr_idle %=stop_sound_looped(steam)% Если в зависимости от неких инфопоршней, то что-то такое: [logic]active = sr_idle@sound[sr_idle@sound]on_info = {+agru_leader_dolg_task_complete} sr_idle@warning %=play_sound_looped(agru_waterfall)%[sr_idle@warning]on_info = {+agru_stop_siren} sr_idle@end %=stop_sound_looped()%[sr_idle@end] Сам звук нужно вписать в script_sound_локация. Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 30 Ноября 2015 (изменено) Можно поподробнее про спейс рестриктор? В секции спавна локации создаёшь рестриктор: [8076] ; cse_abstract properties section_name = space_restrictor name = lim_electro_transformer_restr position = 71.1540069580078,18.6341781616211,324.265960693359 direction = 0,-1.57079601287842,1.57079601287842 ; cse_alife_object properties game_vertex_id = гейм вертекс локации distance = 0 level_vertex_id = левел вертекс локации object_flags = 0xffffff3e custom_data = <<END [logic] cfg = scripts\limansk\lim_electro_transformer.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 Логику рестриктора можно вписать прямо в спавне, или вынести в отдельный файл (что удобней для последующего редактирования). play_sound_looped(lim_electro_fience_transformer) - воспроизводимый звук указан в скобках (то есть - lim_electro_fience_transformer), looped - значит звук будет постоянно повторяться. (Название берётся из script_sound_локация.ltx) Сам звук регистрируется в script_sound_локация.ltx (например, script_sound_limansk) по пути configs\misc\ примерно так: [list_lim] lim_electro_fience_transformer [lim_electro_fience_transformer] type = looped - повторяющийся path = ambient\special\lim_transformer - путь к самому звуку без расширения из папки sounds. (эти характеристики можно посмотреть в какой-нибудь статье по модингу.) Если звук на новой (подключенной) локации, то сам script_sound_локация.ltx нужно внести в оригинальный script_sound.ltx по аналогии с остальными. Конечно, это всё можно провернуть с помощью SDK, но я, например, SDK знаю плохо, поэтому всё делаю вручную. Изменено 30 Ноября 2015 пользователем Grif_on 1 Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 22 Мая 2016 @BoBaH_671, знаешь в чём может быть причины вылета - в путях, а именно: в логике НПС не нужно в точках путей (walk и look) писать название смарта. То есть, в файле с путями название смарта пишется: ([zat_vovan_smart_zat_vovan_stalker_1_look]), а в файле логики НПС - нет: [walker@zat_vovan_stalker_1] path_walk = zat_vovan_stalker_1_walk path_look = zat_vovan_stalker_1_look Возможно причина вылета в этом. 1 Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 4 Сентября 2016 @Хемуль36рус, если я не ошибаюсь, то в конфигах эта дверь зовётся zat_b22_medic_door, а в спавне - zat_b22_medic_physic_door. 1 Поделиться этим сообщением Ссылка на сообщение
Grif_on 9 Опубликовано 11 Сентября 2016 @salat-production, погляди здесь: http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BE%D0%B2_%D0%B2_%D1%82%D1%80%D1%83%D0%BF%D0%B0%D1%85 1 Поделиться этим сообщением Ссылка на сообщение