Overf1rst 1 559 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 7 4 1 3 1 4 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 58 Опубликовано 24 июля (изменено) Лютый Бюрер function check_used_item(obj) on_item_take(obj) local info=nil local sect=obj:section() if sect=="твой предмет" then db.actor:give_info_portion("твой инфопорш") end end function on_item_take(item) if item:section() == separator then return end if (inventory_open == false) then if (separator_spawned == true) then db.actor:inventory_for_each(del_separator) separator_spawned = false end belt_need_update = true end end Функцию check_used_item(obj) надо прописать в binder_stalker.script в функции actor_binder:on_item_take (obj) После if sect == .... можно с новой строки написать "elseif sect==..." и так много предметов, всё в одной функции. Дополнено 48 минуты спустя Здесь кто-то знает, как НПС присвоить story id, которого спавнит через скрипт? all.spawn не при чём Изменено 24 июля пользователем Сергей Андронов Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 24 июля Сергей Андронов Expression : fatal error Function : CScriptStorage::namespace_loaded File : E:\stalker\sources\trunk\xr_3da\xrGame\script_storage.cpp Line : 445 Description : <no expression> Arguments : Error : the namespace name is already being used by the non-table object! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 58 Опубликовано 24 июля (изменено) Лютый Бюрер в биндер сталкер нужно после всего названия функции с красной строки написать "файл, где расположен скрипт.check_used_item(obj)" А вылет когда возникает? Изменено 24 июля пользователем Сергей Андронов Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 24 июля Сергей Андронов Типа так? function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) xr_effects.check_used_item(self.object) end А вызывать откуда? Из bind_sralker или из скрипта, где прописана функция? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 58 Опубликовано 24 июля (изменено) Лютый Бюрер нет, где "(self.object)" замените на "(obj)". В биндер прописали и та функция сама будет проверять наличие предметов и выдавать инфо. Изменено 24 июля пользователем Сергей Андронов Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 24 июля Сергей Андронов Хорошо, я прописал, при старте новой игры получаю вылет Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:194: attempt to call field 'check_used_item' (a nil value) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hunter 2 763 Опубликовано 24 июля Лютый Бюрер в бинд сталкере нет твоей строчки теперь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 24 июля Hunter Вот функция из бинд сталкер function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) --game_stats.update_take_item (obj, self.object) xr_effects.check_used_item(obj) end Вот функция на проверку предмета function check_used_item(obj) on_item_take(obj) local info=nil local sect=obj:section() if sect=="z1" then db.actor:give_info_portion("have_a_pda") end end function on_item_take(item) if item:section() == separator then return end if (inventory_open == false) then if (separator_spawned == true) then db.actor:inventory_for_each(del_separator) separator_spawned = false end belt_need_update = true end end Что, собственно, не так? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 58 Опубликовано 24 июля Лютый Бюрер может скинете пару этих файлов тогда уж 😁. Место скрипта и бинд сталкер. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 24 июля Сергей Андронов xr_effects.scriptbind_stalker.script Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 58 Опубликовано 24 июля Лютый Бюрер У меня на ТЧ 1.0006 даже твои файлы работают, только я прописал водку предмет и инфо о выключении выжигателя. Может в другом месте накосячил. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 25 июля Сергей Андронов Да, всё заработало, видать я накосячл в другом файле Дополнено 1 минуту спустя И ещё такой вопрос, народ, как сделать, чтобы текст нормально переносился на другую строчку? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 58 Опубликовано 25 июля Лютый Бюрер "Как я сюда попал?\n бла бла бла". Вот эта штука "\n" делает с красной строки текст. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 25 июля Сергей Андронов Уже пытался, это работает только для текста НПС Дополнено 7 минуты спустя Сергей Андронов Да и нужно чтобы он автоматически переносился, а не уходил за границу диалогового окна Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Купер 122 Опубликовано 25 июля (изменено) talk.xml / talk_16.xml <question_item x="0" y="0" width="527" height="20" min_height="13"> <content_text x="0" y="0" width="520" height="20"> <!-- здесь для complex_mode="..." выставить значение 1> --> <text font="letterica18" r="255" g="232" b="208" align="l" complex_mode="1"/> <text_color> <t r="231" g="168" b="12"/> <e r="255" g="232" b="208"/> <h r="255" g="255" b="255"/> </text_color> </content_text> </question_item> Плюс размеры самих фреймов <questions_list ... /> <question_item ... /> <content_text ... /> Изменено 25 июля пользователем Купер 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 867 Опубликовано 25 июля (изменено) Есть ли где-нибудь нормальное, полноценное описание ТЧ параметров для погоды? Смотрю тут и в половине случаев идет какое-то гадание на чайных крошках, "кажется этот параметр делает вот это, но хз", "значение не в секундах (А В ЧЕМ???)", "про r1 говорить нет смысла"... https://sdk.stalker-game.com/ru/index.php?title=Настройка_погоды_и_освещения Изменено 25 июля пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yara 164 Опубликовано 25 июля Mawrak [weather_name_00] flares = flares_default ; секция светила из flares.ltx (удалить, если не нужно) sky_texture = sky\sky_2_cube ; имя текстуры скайкуба sky_rotation = 0 ; его вращение sky_color = 0.41, 0.41, 0.41 ; и цвет (яркость), на р2 влияет на освещение clouds_texture = sky\sky_oblaka ; имя текстуры облаков clouds_color = 0.81, 0.81, 0.81, 0.4, 1.0 ; их цвет, 4-й параметр - прозрачность (0 - отключает облака), 5-й параметр - множитель на цвет (max 2.5) far_plane = 350 ; дальность видимости fog_distance = 300 ; дистанция, с которой начинается туман (fog_distance < far_plane) fog_color = 0.12, 0.12, 0.12 ; цвет тумана fog_density = 0.9 ; его плотность rain_density = 0.0 ; плотность дождя (0 - выключает его) rain_color = 0.3, 0.3, 0.3 ; и его цвет thunderbolt = thunderbolt_collection_default ; секция грозы из thunderbolt.ltx (удалить, если не нужно) bolt_period = 3.f ; таймаут между вспышками bolt_duration = 0.25f ; их продолжительность wind_velocity = 20 ; сила ветра wind_direction = 0 ; и его направление (оба параметра влияют на дождь) ambient = 0.08, 0.08, 0.08 ; цвет окружающего света (снаружи и в помещениях) lmap_color = 1.0, 1.0, 1.0 ; цвет лайтмап hemi_color = 0.35, 0.35, 0.35, 1.0 ; цвет окружающего света на р1 (только снаружи), на р2 влияет на прозрачные объекты (вода, стекло) sun_color = 0.50, 0.47, 0.415 ; цвет света от светила, на р2 при нулевых значениях - отключаются тени объектов от солнца sun_dir = -22, 292.0 ; 1-й параметр - высота светила над горизонтом (min/max: -0.01/-179, зенит: -90) ; 2-й параметр - и положение относительно его сторон: 0 - юг, 90 - восток, 180 - север, 270 - запад, 360 - юг env_ambient = ambient_env_day ; секция фоновых звуков из env_ambient.ltx (удалить, если не нужно) ##################################################################### Соответствие параметров: ТЧ ЧН / ЗП flares -> sun thunderbolt -> thunderbolt_collection bolt_period -> thunderbolt_duration bolt_duration -> thunderbolt_period ambient -> ambient_color hemi_color -> hemisphere_color sun_dir (y, x) -> sun_longitude = y, sun_altitude = x env_ambient -> ambient flares.ltx: flare_opacity - непрозрачность каждого отражения, в порядке от дальнего к ближнему flare_position - позиция каждого отражения на оси, порядок соотв. верхнему flare_radius - радиус каждого отражения, порядок соотв. верхнему flare_textures - имена текстур, использованных на каждое отражение, порядок аналогичен flare_shader - шейдер текстур flares - параметр включает или выключает блики, например, для луны - они не уместны gradient - параметр, включающий / выключающий ореол вокруг светила, дающий эффект ослепления gradient_opacity - непрозрачность ореола gradient_radius - радиус ореола gradient_texture - имя текстуры ореола gradient_shader - шейдер текстуры ореола source - параметр, включающий / выключающий отображение светила, то есть самого солнца или луны source_radius - радиус светила source_texture - имя используемой текстуры source_shader - шейдер текстуры source_ignore_color - игнорирование цвета светила (sun_color в конфиге погоды) blend_time - скорость перехода одной текстуры в другую, например из flares = flares_sun_rise во flares = flares_default10 blend_rise_time - скорость появления, если в предыдущей погодной секции был пустой flares = blend_down_time - скорость исчезновения, если в последующей погодной секции пустой flares = 3 1 1 2 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sumrak6835 260 Опубликовано 25 июля Yara Ты первый человек, который полностью описал все параметры погоды. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 867 Опубликовано 25 июля Yara вот да, серьзено, кратко и по делу. Лучше любого гайда, который я видел. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Optimus_Prime 0 Опубликовано 25 июля (изменено) Привет сталкеры, помогите разобратья с проблемой, хочу чуть модифицировать один файл, но чёт навыка не хватает ) Мне надо чтоб по заданиям 'найти предмет', вещи удалялись, а не передавались заказчику. По этому в task_manager.script вставляю такую конструкцию: --... --' Забираем у игрока квестовый предмет. local can_finish = true if task_desc.type == "artefact" then if db.actor:object(task_desc.target) == nil then can_finish = false else dialogs.relocate_item_section(npc, task_desc.target, "out") end elseif task_desc.type == "monster_part" then if db.actor:object(task_desc.target) == nil then can_finish = false else dialogs.relocate_item_section(npc, task_desc.target, "out") end elseif task_desc.type == "find_item" then if db.actor:object(task_desc.target) == nil then can_finish = false else -- dialogs.relocate_item_section(npc, task_desc.target, "out") -->> local se_obj = alife():object(task_desc.target) if se_obj then alife():release(se_obj, true) end -->> end end --... Не работает, задание сдаю, получаю награду, но предмет остаётся у меня в инвентаре. Изменено 25 июля пользователем Optimus_Prime Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorHICHnik 0 Опубликовано 26 июля Всем хай! Возник вопрос по солянке 2016 (обычной), подошёл к насосной станции на болотах и вылетело, теперь вобще не могу с места сохранения уйти (отхожу метров на 10-20 и вылет)... Лог прикрепил... xray_slavg_07-26-25_15-40-08.mdmp.log Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 58 Опубликовано 26 июля Кто-нибудь понимает что-то в вылетах, когда игра жалуется на xr.gulag 'calculatestates' в логе? При чём вылет этот только после Х16, когда прыгаешь в трубу, ходишь там минуты две и стабильно вылетает. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neimeks 1 Опубликовано 28 июля (изменено) День добрый. У меня возникло пару вопросов, я только начинаю делать свой мод. 1) Как изменить место спавна главного героя? 2) Как вырезать сцену с Сидровичем (Обучение по ПДА, которое) 3) Как вырезать НПС? Можно ли эти 3 пункта сделать через SDK 0.4? Изменено 28 июля пользователем Neimeks Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Flicker652 49 Опубликовано 28 июля Всем привет. Во время создания мода возникла ошибка. Все новые изменения убирал, файлы пересмотрел, всё возможное убрал. Всё равно вылет один и тот же. Я уже не знаю, что делать. В сдк тоже удалял нововведения. Прошу помощи. FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ....e.r. shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) stack trace: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
naxac 68 Опубликовано 29 июля Optimus_Prime , попробуй так: Спойлер local can_finish = true if task_desc.type == "artefact" or task_desc.type == "monster_part" or task_desc.type == "find_item" then local rem_item = db.actor:object(task_desc.target) if rem_item == nil then can_finish = false else local se_obj = alife():object( rem_item:id() ) if se_obj then alife():release(se_obj, true) news_manager.relocate_item(db.actor, "out", task_desc.target) else can_finish = false end end end Дополнено 2 минуты спустя Flicker652 , по всей видимости, срабатывает функция abort в _g.script. Нужен рабочий вывод в лог, чтобы найти причину. Дополнено 17 минуты спустя Сергей Андронов , смотри в скриптах настройки гулагов на Янтаре. Конкретно - поле state. Оно должно быть функцией, возвращающей номер стейта лагеря. 1 Аддон для ОП-2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты