Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WolfHeart 919 Опубликовано 26 ноября, 2021 (изменено) 1 час назад, AziatkaVictor сказал: Daauga (или как правильно пишется, не помню) DaaGuda 1 час назад, AziatkaVictor сказал: у меня он жаловался на кривые thm, но вылета не было. Вылет SDK с логом (Pos<=Size) && (Pos>=0), происходит если в бинарные поля THM были внесены правки текстовым редактором. Вылет 32 битного компилятора может быть если у текстуры одного размера, THM от текстуры другого, у 64 битного компилятора вылет происходит только после обработки всех текстур с указанием всех "не правильных" THM в логе. Но сам SDK с текстурами у которых такие THM не вылетает и в логе на них не ругается. Так же компиляторы вылетают и при недостающих THM. Изменено 26 ноября, 2021 пользователем WolfHeart AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb). Windows -10 PRO (х64) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BadTrip 2 Опубликовано 26 ноября, 2021 (изменено) AziatkaVictor Вроде же в configs\scripts\название локации\smart есть логика нпс, там может быть параметр gather_items_enabled и help_wounded_enabled - вот первое это подбор, а второе - это помощь нпс. Надо сделать так: gather_items_enabled = false и help_wounded_enabled = false А combat_ignore_cond = false или combat_ignore_keep_when_attacked = false это для стрельбы вроде (если игнорить надо стрельбу - то вместо false надо писать true) Изменено 26 ноября, 2021 пользователем BadTrip 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 26 ноября, 2021 (изменено) 1 час назад, AziatkaVictor сказал: Может кто подсказать, есть квест, где НПС занимает анимпоинт и должен игнорировать абсолютно ВСЁ, что происходит вокруг Вот читаю вопросы и удивляюсь. Вы как-будто первый раз Сталкер увидели. Возьмите Скадовск. Там ВСЕМ ключевым персонажам абсолютно ПЛЕВАТЬ на ВСЁ что происходит вокруг. Все они стоят или сидят в анимпоинтах. Неужели трудно подсмотреть их логику в оригинале игры? Изменено 26 ноября, 2021 пользователем makdm Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 27 ноября, 2021 Как добавить новые анимации перезарядки для новых оружий для НПС? Как это сделали в X-ray multiplayer extension. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xorda 2 Опубликовано 27 ноября, 2021 Как выдать игроку детектор "Велес" через скрипт? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Daniil1989 22 Опубликовано 27 ноября, 2021 2 часа назад, xorda сказал: Как выдать игроку детектор "Велес" через скрипт? В dialogs_имения локации.script нужно прописать во эту функцию function give_skotch_detector (first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "detector_elite", "in") end skotch- имя эсклюзивного нпса у тебя наверно дугое имя экс. нпса который выдаст тебе детектор любой который ты пропишеш. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hozar_2002 128 Опубликовано 27 ноября, 2021 (изменено) 4 часа назад, liner сказал: Как добавить Курите файлы ActorAnimations. Работа с анимациями ГГ там. В том файле и можно добавить неполную перезарядку, если речь о ней. У нпс уже по аналогичным текстам поиск ведем. Изменено 27 ноября, 2021 пользователем Hozar_2002 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Tolich 14 Опубликовано 28 ноября, 2021 (изменено) Siderous mod 2.2 +Atmosfear 3 (адаптация под SGM 2.2). Вопрос такой: При выбросе.. 1. Резко меняется небо. Происходит резкий переход на другой скайбокс, другой секции погоды, но не на скайбокс начала выброса (из Atmosfear 3). 2. Далее всё как обычно (как и в Atmosfear 3): звук сирены, предупреждение сталкеров... 3. Далее начинается выброс и идёт оранжево-красная волна (как и в Atmosfear 3). При этом скайбоксы секции погоды не меняются. Солнце или луна стоят на небе (в Atmosfear 3 они всегда "убегают" перед началом выброса). В итоге до конца выброса, скайбоксы из папки gamedata\textures\sky\af3_blowout\.. так и не подгружаются. В чём может быть причина и есть ли решение? Может кто нибудь сталкивался с подобным? Записал коротенький фрагмент. Там видно, как солнце начинает перемещаться (согласно Atmosfear 3) и потом резко оставливается чуть правее. В итоге скайбоксы выброса не подгружаются. Спойлер Изменено 28 ноября, 2021 пользователем Tolich Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Doloremque 527 Опубликовано 29 ноября, 2021 подскажите, как проиграть звук через какое-то время с помощью функции, которая запускается через диалог? function actor_pda1() local snd = sound_object([[new\pda_tip]]) snd:play_no_feedback(db.actor,sound_object.s2d, 0, vector():set(0, 0, 0), 2.0) end по идее, вот эта функция должна выполнять свою задачу, но когда я меняю число 0, на какое-либо другое, то звук просто не приходит ставил в милисекундах, например 0.02 (20 сек), ставил просто число 20 в обоих случаях звук не проигрывается когда там стоит 0, то звук приходит мгновенно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 30 ноября, 2021 (изменено) Как в GUI реализовать работоспособность такого компонента как SpinNum? Это компонент где вверх-вниз листаются числа Изменено 30 ноября, 2021 пользователем Paradox27kms Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 30 ноября, 2021 (изменено) detooxe у меня нормально в play_no_feedback проигрывался с задержкой (но пробовал только целые числа) Дополнено 1 минуту спустя Paradox27kms видел в файлах sgm 2 geonezis, но не помню где использовалось (и задействовано ли было в игре), там посмотрите для примера Изменено 30 ноября, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ScarletFox 1 Опубликовано 30 ноября, 2021 Всем привет! Можно ли создавать партиклы не только в SDK, есть что поудобнее? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 30 ноября, 2021 (изменено) vader_33 Благодарю, гляну. Дополнено 8 минуты спустя vader_33 Там встроен стандартный Повелитель Зоны но там главное значение в скрипет tonumber а это на сколько я знаю денюжка в инвентаре ГГ. function god_dialog:OnButton_load_clicked() local sec = self.file_data:GetText() local dis = tonumber(self.spin_spawn:GetText()) local dir local pos if tostring(sec)=="nil" or tostring(sec)=="" then return end if db.actor~=nil then dir = db.actor:direction() pos = db.actor:position() end if mode == "item" then if (db.actor ~= nil) then if tonumber(self.spin_spawn:GetText())==0 then alife():create(sec, db.actor:position(), 0, 0, db.actor:id()) else pos = pos:add(dir:mul(dis)) alife():create(sec, pos, db.actor:level_vertex_id(), db.actor:game_vertex_id()) end end end А мне нужно просто условие чтобы к примеру на значении 1 выдавался инфопоршень Изменено 1 декабря, 2021 пользователем Paradox27kms Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 1 декабря, 2021 Paradox27kms tonumber превращает строку в число, к деньгам актора отношения не имеет В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 2 декабря, 2021 vader_33 Пробовал таким способом - не сработало function ui_mm_mod:OnSpinWarmup() local num = tonumber(self.spin_warmup:GetText()) if tonumber(self.spin_warmup:GetText())==1 then self:HideDialog() end end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Emmis 493 Опубликовано 2 декабря, 2021 Привет всем. Такие проблемы: 1) Как узнать координаты экрана в игре, чтобы прописать их для ui? 2) Подскажите скрипт для чего-то по типу субтитров. Нужно чтобы текст появлялся снизу на нужное время. История Джона 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 2 декабря, 2021 (изменено) Emmis 1. Координаты? Ширину и высоту? device().width и device().height 2. Можно через AddCustomStatic добавлять текст, потом убирать (для примера - cs_radiation_danger в bind_stalker.script) Paradox27kms без понятия, спиннумом не пользовался никогда Изменено 2 декабря, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 3 декабря, 2021 vader_33 плохо( Дополнено 3 минуты спустя Emmis Насчет координат то на глаз пишешь и тестишь игру каждый раз Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 3 декабря, 2021 Paradox27kms спросите на амк в ковырялке, может кто использовал В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 3 декабря, 2021 vader_33 Да я уже сам разобрался... а как реализовать чтобы при сохранении сейв удалялся? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AziatkaVictor 3 923 Опубликовано 3 декабря, 2021 Emmis 1. Вообще всегда используется разрешение 1024х768, просто представь область такого размера и пиши, откуда начинать отчет и какой должен быть размер и определённого блока. Например, начать с х=10, у=10, то есть смещаешь начало на 10 пикселей относительно верхнего левого угла, а потом задаешь ширину и высоту. Ну и потом адаптируй под 16 на 9, но тут уже надо помучаться. 2. Я делал вот так: Спойлер Создал кастом в файле "ui_custom_msgs.xml": <subtitle_text x="400" y="720" width="209" height="18"> <text font="letterica16" align="c" vert_align="c" r="255" g="255" b="255"></text> </subtitle_text> <subtitle_name x="400" y="700" width="209" height="18"> <text font="letterica18" align="c" vert_align="c" color="ui_7"></text> </subtitle_name> Написал функцию в "xr_effects.script": function create_subtitles(actor, npc, p) if (p[1]) and (p[2]) then local hud = get_hud() if (hud:GetCustomStatic('subtitle_name') ~= nil) then hud:RemoveCustomStatic('subtitle_name', true) end if (hud:GetCustomStatic('subtitle_text') ~= nil) then hud:RemoveCustomStatic('subtitle_text', true) end hud:AddCustomStatic('subtitle_name', true) hud:AddCustomStatic('subtitle_text', true) local subtitle_name = hud:GetCustomStatic('subtitle_name') local subtitle_text = hud:GetCustomStatic('subtitle_text') local str_name = game.translate_string(p[1]) or "NameError" local str_text = game.translate_string(p[2]) or "TextError" subtitle_name:wnd():TextControl():SetText(str_name) subtitle_text:wnd():TextControl():SetText(str_text) end end function clear_subtitles() local hud = get_hud() if (hud:GetCustomStatic('subtitle_name') ~= nil) then hud:RemoveCustomStatic('subtitle_name', true) end if (hud:GetCustomStatic('subtitle_text') ~= nil) then hud:RemoveCustomStatic('subtitle_text', true) end end Ну и вызывал в логике через on_game_timer. Так как в функции уже прописана очистка, то можно делать так: [sr_idle@1] on_info = %create_subtitles(title:text)% sr_idle@2 [sr_idle@2] on_game_timer = 40 | %create_subtitles(title2:text2)% sr_idle@nil [sr_idle@nil] on_game_timer = 40 | %clear_subtitles()% nil А если ты делаешь озвучку, то еще проще, потому что модно использовать сигнал, когда звук заканчиваеться, как аналог для on_game_timer, точнее как более грамотное решение. Может конечно решение кривое, но у меня работает. Как оформить тему Правила форума Вопросы по сайту Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pepel 80 Опубликовано 3 декабря, 2021 Как создать телепорт в sdk? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 3 декабря, 2021 (изменено) Paradox27kms последний сейв? Так например. Если сразу после сохранения - наверно надо на таймер вешать Спойлер local fs = getFS() local flist = fs:file_list_open_ex("$game_saves$", bit_or(FS.FS_ListFiles, FS.FS_ClampExt), "*.scop") local f_cnt = flist:Size() flist:Sort(FS.FS_sort_by_modif_down) if f_cnt > 0 then local file = flist:GetAt(0) local sv_name = file:NameFull() local sav = fs:update_path("$game_saves$",sv_name..".scop") fs:file_delete(sav) local tx = fs:update_path("$game_saves$",sv_name..".dds") fs:file_delete(tx) end Изменено 3 декабря, 2021 пользователем vader_33 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 4 декабря, 2021 vader_33 Можно ли как-то по скрипту сделать бекап сохранений либо просто перенести их в другую папку которую например тоже по скрипту создаётся? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Daniil1989 22 Опубликовано 4 декабря, 2021 23 часа назад, Pepel сказал: Как создать телепорт в sdk? Вот как создать телепорт в sdk Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты