Overf1rst 1 499 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 14 февраля, 2022 (изменено) 11 минут назад, Paradox27kms сказал: в студию если не сложно function actor_active_weapon(actor, npc, p) local weapon_section = p and p[1] if weapon_section == nil then abort("Wrong parameters in function 'actor_active_weapon'") end local active_item = db.actor:active_item() return (active_item ~= nil) and active_item:section() == weapon_section end В xr_conditions. Проверяй через death нужного НПС {=hit_by_actor =actor_active_weapon(оружие)} Изменено 14 февраля, 2022 пользователем Neptun 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 14 февраля, 2022 Пытаюсь переименовать текст из GUI данным способом self.caption_rang:TextControl():SetText(game.translate_string("ui_mm_pve_rang_2")) В итоге новый текст накладывается на старый Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 953 Опубликовано 14 февраля, 2022 1 час назад, Paradox27kms сказал: Зачем? Я нашел в mp_actor.ltx Хозяин-барин, только не каждая кость имеет шейп и как по мне визуально удобнее отследить области попадания нежели по скудному тексту. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
shadept 11 Опубликовано 14 февраля, 2022 (изменено) Можно ли в скриптах выдавать инфопоршни? Я вот попытался, но не работает такое. Спойлер function has_item_task(first_speaker, second_speaker) -- проверка если у игрока есть предмет if db.actor:object("vodka") ~= nil then db.actor.give_infoportion("plateau_quest_autobus_has_item") end end В диалоге есть <has_info>plateau_quest_autobus_has_item</has_info> но той ветки диалога куда я этот тег вписал не появляется. Спойлер <dialog id="plateau_debil_autobus_end"> <dont_has_info>plateau_quest_autobus_end</dont_has_info> <has_info>plateau_quest_autobus_has_item</has_info> <action>plateau_quest_autobus.has_item_task</action> <phrase_list> <!-- квест на автобус конец --> <phrase id="0"> <text>Насчет водки...</text> <next>1</next> </phrase> <phrase id="1"> <text>Чё там?</text> <next>2</next> </phrase> <precondition>plateau_quest_autobus.has_item_task</precondition> <phrase id="2"> <text>Вот он.</text> <next>3</next> </phrase> <phrase id="3"> <give_info>plateau_quest_autobus_end</give_info> <text>Хорошо. Вот, держи за работу.</text> <action>plateau_quest_autobus.quest_reward</action> </phrase> <phrase id="4"> <text>Ещё занимаюсь этим делом...</text> </phrase> </phrase_list> </dialog> Я убирал <dont_has_info>plateau_quest_autobus_end</dont_has_info> и <action>plateau_quest_autobus.has_item_task</action> но ничего не менялось. Ветки диалога не было. Вот ещё и task manager файл. Спойлер [find_bus_quest] icon = ui_inGame2_Dolgi prior = 99 storyline = false title = plateau_test_bus_quest_title descr = {=actor_has_item(vodka)} plateau_test_bus_quest_title, plateau_test_bus_quest_desc, nil target = plateau_stalker_exclusive_questnpc condlist_0 = {+plateau_quest_autobus_end} complete Изменено 14 февраля, 2022 пользователем shadept Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 15 февраля, 2022 5 часов назад, shadept сказал: Можно ли в скриптах выдавать инфопоршни? выдача инфопорции скриптом: db.actor:give_info_portion("инфопорция") Выдача инфопорции диалогом: <give_info>инфопорция</give_info> Дополнено 2 минуты спустя 13 часов назад, Paradox27kms сказал: В итоге новый текст накладывается на старый А где прописан старый текст? Если в .xml написано типа такого: <text align="l" vert_align="c" font="letterica18">Текст</text> То сделай так: <text align="l" vert_align="c" font="letterica18"></text> 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
shadept 11 Опубликовано 15 февраля, 2022 11 часов назад, Neptun сказал: выдача инфопорции скриптом: db.actor:give_info_portion("инфопорция") Выдача инфопорции диалогом: <give_info>инфопорция</give_info> Дополнено 2 минуты спустя А где прописан старый текст? Если в .xml написано типа такого: <text align="l" vert_align="c" font="letterica18">Текст</text> То сделай так: <text align="l" vert_align="c" font="letterica18"></text> Не работает через скрипт. В игре диалог не появляется. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
stalker032 5 Опубликовано 15 февраля, 2022 Ребят. Мне нужно чтобы сквад спавнился в начале игры( симуляционный или нет без разницы), я прописал его для этого в симулятион. Всё работает, норм. А как только ГГ отходит от сквада на расстояние, они пропадают, а когда подходит к месту спавна за какое-то расстояние они спавнятся снова. Как сделать так, чтобы они постоянно были, не респавнились, когда ГГ отходит от них? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Seraph 20 Опубликовано 15 февраля, 2022 stalker032 Они не респавнятся, а уходят в оффлайн. Продолжают существовать в игре, но визуально ничего не отрабатывают и не нагружают железо. Если зачем-то нужно, чтоб они в оффлайн не уходили, то где-то видел описание, как такое делается, но сейчас что-то не могу найти. Может, кто ещё подскажет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
stalker032 5 Опубликовано 15 февраля, 2022 Seraph Может в скваде прописать только online. Ну типо там дефолтное online_offline_group, а если оставить online_group? Что -то измениться? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 15 февраля, 2022 1 час назад, stalker032 сказал: Как сделать так, чтобы они постоянно были Попробуй так ( сам не проверял ). Пусть есть сквад с секцией [bandit_squad]:online_offline_group В файле se_squad_group.script меняешь метод. Вместо function se_squad:can_switch_offline() return cse_alife_online_offline_group.can_switch_offline(self) end Пишешь function se_squad:can_switch_offline() if self:section_name() == "bandit_squad" then return false end return cse_alife_online_offline_group.can_switch_offline(self) end Потом расскажешь что получилось. Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
shadept 11 Опубликовано 15 февраля, 2022 У меня не появляется опция диалога с определенным инфопоршнем, хоть я его и выдаю через скрипт. Вот сам диалог и скрипт. Спойлер function item_task_give() -- даем игроку квест task_manager.get_task_manager():give_task("find_bus_quest") end function quest_reward() -- отдаем бабло игроку dialogs.relocate_money_to_actor(first_speaker, second_speaker, 4000) end function has_item_task(first_speaker, second_speaker) -- проверка если у игрока есть предмет if db.actor:object("vodka") ~= nil then db.actor:give_info_portion("plateau_quest_autobus_has_item") end end Спойлер <?xml version="1.0" encoding="windows-1251" ?> <game_dialogs> <dialog id="plateau_debil_autobus_start"> <dont_has_info>plateau_quest_autobus_started</dont_has_info> <dont_has_info>plateau_quest_autobus_smth</dont_has_info> <phrase_list> <!-- квест на водку начало --> <phrase id="0"> <text>Есть дело для меня?</text> <next>1</next> </phrase> <phrase id="1"> <text>Конечно. Принеси мне водку.</text> <next>2</next> <next>3</next> </phrase> <phrase id="2"> <text>Ну нахер.</text> </phrase> <phrase id="3"> <text>Хорошо.</text> <give_info>plateau_quest_autobus_started</give_info> <action>plateau_quest_autobus.item_task_give</action> </phrase> </phrase_list> </dialog> <dialog id="plateau_debil_autobus_end"> <dont_has_info>plateau_quest_autobus_end</dont_has_info> <has_info>plateau_quest_autobus_has_item</has_info> <phrase_list> <!-- квест на автобус конец --> <phrase id="0"> <text>Насчет водки...</text> <next>1</next> </phrase> <phrase id="1"> <text>Чё там?</text> <next>2</next> </phrase> <precondition>plateau_quest_autobus.has_item_task</precondition> <phrase id="2"> <text>Вот он.</text> <next>3</next> </phrase> <phrase id="3"> <give_info>plateau_quest_autobus_end</give_info> <text>Хорошо. Вот, держи за работу.</text> <action>plateau_quest_autobus.quest_reward</action> </phrase> <phrase id="4"> <text>Ещё занимаюсь этим делом...</text> </phrase> </phrase_list> </dialog> Что я прописал не так? Смотрел вот это видео и читал STALKER IN, хоть он для Тень Чернобыля. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Contentic 11 Опубликовано 15 февраля, 2022 Подскажите пожалуйста, как в обычный скрипт спавна добавить информацию orientation и distance? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
stalker032 5 Опубликовано 15 февраля, 2022 (изменено) makdm Пропадает сквад, как только актёр отходит далеко, а когда подходишь, сквад появляется в том месте, где пропал. Не помогает. Изменено 15 февраля, 2022 пользователем stalker032 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Seraph 20 Опубликовано 15 февраля, 2022 stalker032 Немного покурил старые форумы: в ЗП нет изначально функций для постоянного онлайна (либо не то курил). Если тебя это устроит - можешь просто общий радиус алайфа (вроде 150 метров) в alife.ltx увеличить, но вообще - затея условно сомнительная, он там не от балды проставлен. Но с увеличенным параметром смарты будут переходить в онлайн на куда более дальнем расстоянии. Дополнено 2 минуты спустя Contentic Что за параметры такие? У спавн-элементов есть position и rotation. 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Contentic 11 Опубликовано 16 февраля, 2022 Seraph ну подскажи хотя бы это) в all.spawn видел такие параметры, первое это направление взгляда, а второе не знаю) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 16 февраля, 2022 10 часов назад, shadept сказал: Что я прописал не так? Скачай СДК, в нём есть dialog_editor, он автоматически конструирует диалоги, тебе остаётся только вписывать условия и текст. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 16 февраля, 2022 shadept Если надумаешь использовать dialog_editor будь осторожней. Всегда старайся делать резервные файлы диалогов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Bespredelschik 80 Опубликовано 16 февраля, 2022 Если вопрос нубский, но в вопросах моддинга я совсем не шарю. Сам вопрос: оружейный мод OWR 2.1 Lite. Каким образом возможно сделать так, чтобы помповый дробовик остался из оригинала, а всё остальное оружие как в моде? Извлекал различные данные, но всё приводит обычно к вылету. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
shadept 11 Опубликовано 16 февраля, 2022 12 часов назад, Neptun сказал: Скачай СДК, в нём есть dialog_editor, он автоматически конструирует диалоги, тебе остаётся только вписывать условия и текст. Чем мне это поможет, если я не знаю работают ли инфопоршни или нет? Я же вроде бы создал рабочий диалог. Дополнено 30 минуты спустя 1 час назад, shadept сказал: Чем мне это поможет, если я не знаю работают ли инфопоршни или нет? Я же вроде бы создал рабочий диалог. Я чуть разобрался. Короче, дело такое - поршень может выдастся, но почему-то в моем коде он не выдается, то есть весть код внутри части function has_item_task(first_speaker, second_speaker) не функционирует кроме части if db.actor:object("vodka") ~= nil then, а именно код внутри того ифа не работает. Пробовал printf туда ставить тоже, но не работает, значит всё в порядке с кодом который выдает сам инфопоршень. Сама проблема в том, что код внутри if-а не работает и я пробовал убрать часть ~= nil но ничего из этого не вышло. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 16 февраля, 2022 В 15.02.2022 в 21:01, shadept сказал: Что я прописал не так? Для начала. Во втором диалоге на передачу водки предусмотрено разветвление. Водка есть - водки нет А вот перехода на 4 фразу с первой нет. <phrase id="0"> <text>Насчет водки...</text> <next>1</next> </phrase> Должно быть что то вроде. <phrase id="0"> <text>Насчет водки...</text> <next>1</next> <next>4</next> </phrase> Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 244 Опубликовано 16 февраля, 2022 Bespredelschik total commander найди всякое упоминание этого дробовика(что-то типа wpn_shotgun) и удали/замени на стандартную помпу 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
shadept 11 Опубликовано 16 февраля, 2022 1 час назад, Сергей Шубин сказал: Для начала. Во втором диалоге на передачу водки предусмотрено разветвление. Водка есть - водки нет А вот перехода на 4 фразу с первой нет. <phrase id="0"> <text>Насчет водки...</text> <next>1</next> </phrase> Должно быть что то вроде. <phrase id="0"> <text>Насчет водки...</text> <next>1</next> <next>4</next> </phrase> Ну тут может быть, но какой толк от того диалога если он не может появится из-за скрипта, который не дает инфопоршень. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
.D1mk4. 55 Опубликовано 16 февраля, 2022 (изменено) Текстуры насобирал для себя на замену. Очень-очень строго отбираю их. НОРМ? Спойлер Спойлер Спойлер Спойлер Изменено 16 февраля, 2022 пользователем .D1mk4. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 16 февраля, 2022 В 15.02.2022 в 21:01, shadept сказал: function has_item_task(first_speaker, second_speaker) -- проверка если у игрока есть предмет if db.actor:object("vodka") ~= nil then db.actor:give_info_portion("plateau_quest_autobus_has_item") end end В таком виде проверка не сработает. Надо разделить. Как то так. function has_item_task(first_speaker, second_speaker) -- проверка если у игрока есть предмет return db.actor:object("vodka") ~= nil end А поршень выдать отдельно. function has_item_task_1(first_speaker, second_speaker) db.actor:give_info_portion("plateau_quest_autobus_has_item") end Через рестриктор, например. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
.D1mk4. 55 Опубликовано 16 февраля, 2022 Спойлер Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты