Overf1rst 1 503 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
stalker032 5 Опубликовано 23 февраля, 2022 Boomer забыл. Сделай переход в пустую секцию, иначе спам будет бесконечный. on_info = {=actor_in_zone(название_рестриктора)} sr_idle@nil %=send_tip(название_сообщения_text)% [ sr_idle@nil] 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 23 февраля, 2022 stalker032 Вообще без разницы в какой .xml файл записывать по пути configs\text, ведь игра найдёт стринг сама. Но всё же, порядок лучше соблюдать, и лучше в данном случае создать строку в st_screen.xml. Дополнено 4 минуты спустя В 22.02.2022 в 04:33, Seraph сказал: Проверил, есть remove_npc. Ну комон, разве это сложно найти?) Для новичков в моддинге простительно. Нужно научиться Notepad++ и гуглом например, а не лениться потратить своё время. У меня на то, чтобы научить себя моддингу ушло около трёх лет. И не зря. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
stalker032 5 Опубликовано 23 февраля, 2022 Ребят, нужна помощь. Как сделать так, чтобы сквад мутантов спавнился в определённом террейне, а в случае смерти этого сквада он респавнился? Ну, как в оригинале, мутанты спавнятся на определённых смартах, а после убийства, через некоторое время респавнятся. Симуляция, типа. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 23 февраля, 2022 (изменено) stalker032 Вот пример из оригинала: [smart_terrain] squad_id = 43 max_population = 1 respawn_only_smart = true respawn_params = respawn@simulation_snork [respawn@simulation_snork] spawn_snork [spawn_snork] spawn_squads = simulation_snork spawn_num = 1 Изменено 23 февраля, 2022 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
stalker032 5 Опубликовано 23 февраля, 2022 Что нужно прописать в кастом дате определённого ковера, чтобы нпс не садился на этот ковер? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 799 Опубликовано 23 февраля, 2022 (изменено) У всех НПС в определенном смарт-террейне все поломалось к херам. То есть, практически все попросту стоят на месте и ничего не делают, не выполняют логику. Просто впервые с подобным сталкиваюсь. Пожалуйста, подскажите, в чем проблема? Умоляю. Изменено 23 февраля, 2022 пользователем Крим Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Seraph 20 Опубликовано 23 февраля, 2022 Крим А после чего это произошло? Раньше работало ведь? Дополнено 2 минуты спустя stalker032 А у каверов есть кастом-дата, в которой можно что-то прописать? Интересно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 799 Опубликовано 23 февраля, 2022 23 минуты назад, Seraph сказал: А после чего это произошло? Раньше работало ведь? По мелочи - добавил новые рестрикторы для квестов, вейпоинты и все. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Seraph 20 Опубликовано 23 февраля, 2022 Крим Так. Неписи именно стоят или садятся на графпойнтах, как будто работ в смарте в принципе нет? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 799 Опубликовано 23 февраля, 2022 Seraph я же написал - стоят. Большинство просто стоит на месте, лишь малая часть действительно выполняют логику, стоят, где надо, делает, что нужно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 23 февраля, 2022 Крим откатись назад, если делал копии gamedata и вноси правки постепенно, и найдёшь ошибки. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Seraph 20 Опубликовано 23 февраля, 2022 Крим Если они стоят - значит они выполняют какую-то другую логику, либо что-то мешает им из неё переключиться. Что за рестрикторы и вэйпойнты ты ставил? Могли они повлиять? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
stalker032 5 Опубликовано 23 февраля, 2022 Крим слухай, если ещё не исправил ошибку. У меня подобная тема была с коверами. Я их называл как хотел, и нпс ничего не делали. Потом я взял название смарт террейна и добавил через нижнее подчеркивание что хотел - всё заработало. По типу: название_смарт_терейна_animpoint_11. Если не то ответил, или ляпнул чушь, то извиняюсь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Boomer 470 Опубликовано 27 февраля, 2022 Как сделать функцию, чтобы у актера забрали все имеющиеся деньги? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 27 февраля, 2022 Boomer function ??? () db.actor:give_money(-db.actor:money()) end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 27 февраля, 2022 Игре не будет плохо если не забрать инфопорцию от квеста? То есть я выдаю поршень, который активирует квест, и по его окончанию не заберу поршень, и он будет так висеть с игроком всегда. Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 27 февраля, 2022 Добрый вечер. Добавил в игру вертолет. Спойлер [170] ; cse_abstract properties section_name = helicopter name = mar_a4_heli_1 position = 710.799987792969, 120, -960.900024414063 direction = 0, 0.785398185253143, 0 id = 65535 version = 128 script_version = 12 spawn_id = 167 ; cse_alife_object properties game_vertex_id = 0 level_vertex_id = 115941 object_flags = 0xffffffb2 custom_data = <<END [story_object] story_id = mar_a4_heli_1 [logic] cfg = scripts\marsh\mar_a4_heli_1.ltx END ; cse_visual properties visual_name = dynamics\vehicles\mi24\veh_mi24_u_02 ; cse_motion properties ; cse_ph_skeleton properties skeleton_name = idle ; cse_alife_helicopter properties cse_alife_helicopter__unk1_sz = idle engine_sound = vehicles\helicopter\helicopter ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [mar_a4_heli_1_start] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = 700,120,-940.099975585938 p0:game_vertex_id = 10320 p0:level_vertex_id = 4294967295 [mar_a4_heli_1_task] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = 349.630004882813,122,-137.449996948242 p0:game_vertex_id = 7 p0:level_vertex_id = 363400 [mar_a4_heli_1_way_1] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = 650,120,-900 p0:game_vertex_id = 10320 p0:level_vertex_id = 4294967295 [mar_a4_heli_1_way_2] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = 334.690002441406,122,-96.9800033569336 p0:game_vertex_id = 7 p0:level_vertex_id = 352390 Спойлер [logic] active = heli_move [heli_move] path_move = mar_a4_heli_1_start path_look = mar_a4_heli_1_way_1 max_velocity = 100 combat_ignore_cond = true combat_ignore_keep_when_attacked = true engine_sound = false on_info = {+mar_a4_heli_1_start_task} heli_move@1 [heli_move@1] path_move = mar_a4_heli_1_task path_look = mar_a4_heli_1_way_2 max_velocity = 100 combat_ignore_cond = true combat_ignore_keep_when_attacked = true При заходе на локацию с вертолетом имею жука stack trace: [error][ 87] : Параметр задан неверно. В чем может быть причина? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Seraph 20 Опубликовано 28 февраля, 2022 Сергей Шубин Привет. Для начала неплохо бы проверить, спавнится ли вертолёт, а потом уже подключать к нему логику. Если спавнится - будет хотя бы ясно, что проблема в логике. Если нет... Ну, могу посоветовать не заниматься некрофилией и установить СДК) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 885 Опубликовано 28 февраля, 2022 Добро. А можно скриптом поставить игру на паузу? А также выйти из паузы скриптом? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 28 февраля, 2022 Neptun if not device():is_paused() then device():pause(true) --true - поставить игру на паузу, false - выйти из паузы end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 676 Опубликовано 28 февраля, 2022 8 часов назад, Seraph сказал: Ну, могу посоветовать не заниматься некрофилией и установить СДК У меня установлен SDK. Но я не спавню вертушку через него. Зачем? Чтобы сидел где-то под локацией и "жрал" ресурсы на обработку его логики? Все делается скриптом. В логике рестриктора в нужный момент вызываем спавн вертушки. function spawn_esc_heli( actor, npc ) spawn_net_objects.spawn_helicopter("esc_a5_heli_dawn", "[logic]\ncfg = scripts\\escape\\esc_helicopter_1.ltx") end В файле spawn_net_objects. script пишем функцию спавна Спойлер function spawn_helicopter( path, logic ) if not level.patrol_path_exists( path ) then return end local logic_helicopter = logic local ptr = patrol( path ) local position = ptr:point( 0 ) local lv_id = ptr:level_vertex_id( 0 ) local gv_id = ptr:game_vertex_id( 0 ) local section = "helicopter" local s_obj = alife():create( section, position, lv_id, gv_id ) local packet = net_packet() packet:w_begin( 0 ) s_obj:STATE_Write( packet ) packet:r_seek( 2 ) local game_vertex_id = packet:r_u16() local distance = packet:r_float() local direct_control = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local spawn_story_id = packet:r_s32() local visual_name = packet:r_stringZ() local visual_flags = packet:r_u8() local motion_name = packet:r_stringZ() local skeleton_name = packet:r_stringZ() local skeleton_flags = packet:r_u8() local source_id = packet:r_u16() local startup_animation = packet:r_stringZ() local engine_sound = packet:r_stringZ() custom_data = logic_helicopter motion_name = "idle" skeleton_name = "idle" startup_animation = "idle" visual_name = "dynamics\\vehicles\\mi24\\veh_mi24_u_01" engine_sound = "vehicles\\helicopter\\helicopter" packet:w_begin( 0 ) packet:w_u16( game_vertex_id ) packet:w_float( distance ) packet:w_s32( direct_control ) packet:w_s32( level_vertex_id ) packet:w_s32( object_flags ) packet:w_stringZ( custom_data ) packet:w_s32( story_id ) packet:w_s32( spawn_story_id ) packet:w_stringZ( visual_name ) packet:w_u8( visual_flags ) packet:w_stringZ( motion_name ) packet:w_stringZ( skeleton_name ) packet:w_u8( skeleton_flags ) packet:w_u16( source_id ) packet:w_stringZ( startup_animation ) packet:w_stringZ( engine_sound ) packet:r_seek( 2 ) s_obj:STATE_Read( packet, packet:w_tell() ) end Ну и логика вертушки , как видно из вызова функции, в файле scripts\escape\esc_helicopter_1.ltx Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 28 февраля, 2022 С вертушкой разобрался. Сначала взял не ту модель. Теперь она красиво гудит и летает. Встала задача - НПС должен завалить её из РПГ. Выдал НПС РПГ. Вертушка у него над головой висит. И НПС палит не по вертушке, а куда то вдаль. Спойлер [logic] active = remark [remark] anim = threat_fire target = story | mar_a4_heli_1 invulnerable = true gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false on_info = {=dist_to_actor_ge(90)} nil %=destroy_object% on_info2 = {!actor_friend} %=actor_friend% Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 676 Опубликовано 28 февраля, 2022 В ЗП для этого нужно использовать схему в файле xr_heli_hunter.script 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Seraph 20 Опубликовано 1 марта, 2022 makdm Ну так скриптом спавнить - это уже не препарировать спавн. Тут я только поддержать могу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 885 Опубликовано 1 марта, 2022 17 часов назад, liner сказал: Neptun if not device():is_paused() then device():pause(true) --true - поставить игру на паузу, false - выйти из паузы end Чтобы принудительно выйти из паузы, надо функцию вызвать из скрипта, который работает онлайн даже во время паузы. Какой же это скрипт и метод? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты