Overf1rst 1 546 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 7 4 1 3 1 4 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 34 Опубликовано вчера в 15:40 (изменено) Лютый Бюрер 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 не при чём Изменено вчера в 15:46 пользователем Сергей Андронов Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано вчера в 21:04 Сергей Андронов 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! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 34 Опубликовано 23 часа назад (изменено) Лютый Бюрер в биндер сталкер нужно после всего названия функции с красной строки написать "файл, где расположен скрипт.check_used_item(obj)" А вылет когда возникает? Изменено 23 часа назад пользователем Сергей Андронов Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 23 часа назад Сергей Андронов Типа так? function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) xr_effects.check_used_item(self.object) end А вызывать откуда? Из bind_sralker или из скрипта, где прописана функция? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 34 Опубликовано 23 часа назад (изменено) Лютый Бюрер нет, где "(self.object)" замените на "(obj)". В биндер прописали и та функция сама будет проверять наличие предметов и выдавать инфо. Изменено 23 часа назад пользователем Сергей Андронов Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 22 часа назад Сергей Андронов Хорошо, я прописал, при старте новой игры получаю вылет 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 748 Опубликовано 22 часа назад Лютый Бюрер в бинд сталкере нет твоей строчки теперь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 22 часа назад 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 Что, собственно, не так? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 34 Опубликовано 22 часа назад Лютый Бюрер может скинете пару этих файлов тогда уж 😁. Место скрипта и бинд сталкер. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 22 часа назад Сергей Андронов xr_effects.scriptbind_stalker.script Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 34 Опубликовано 22 часа назад Лютый Бюрер У меня на ТЧ 1.0006 даже твои файлы работают, только я прописал водку предмет и инфо о выключении выжигателя. Может в другом месте накосячил. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 20 часов назад Сергей Андронов Да, всё заработало, видать я накосячл в другом файле Дополнено 1 минуту спустя И ещё такой вопрос, народ, как сделать, чтобы текст нормально переносился на другую строчку? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Андронов 34 Опубликовано 11 часов назад Лютый Бюрер "Как я сюда попал?\n бла бла бла". Вот эта штука "\n" делает с красной строки текст. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Лютый Бюрер 4 Опубликовано 11 часов назад Сергей Андронов Уже пытался, это работает только для текста НПС Дополнено 7 минуты спустя Сергей Андронов Да и нужно чтобы он автоматически переносился, а не уходил за границу диалогового окна Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Купер 97 Опубликовано 8 часов назад (изменено) 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 ... /> Изменено 8 часов назад пользователем Купер 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 848 Опубликовано 7 часов назад (изменено) Есть ли где-нибудь нормальное, полноценное описание ТЧ параметров для погоды? Смотрю тут и в половине случаев идет какое-то гадание на чайных крошках, "кажется этот параметр делает вот это, но хз", "значение не в секундах (А В ЧЕМ???)", "про r1 говорить нет смысла"... https://sdk.stalker-game.com/ru/index.php?title=Настройка_погоды_и_освещения Изменено 7 часов назад пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yara 149 Опубликовано 6 часов назад 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 = 2 1 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sumrak6835 251 Опубликовано 6 часов назад Yara Ты первый человек, который полностью описал все параметры погоды. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 848 Опубликовано 5 часов назад Yara вот да, серьзено, кратко и по делу. Лучше любого гайда, который я видел. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Optimus_Prime 0 Опубликовано 3 часа назад (изменено) Привет сталкеры, помогите разобратья с проблемой, хочу чуть модифицировать один файл, но чёт навыка не хватает ) Мне надо чтоб по заданиям 'найти предмет', вещи удалялись, а не передавались заказчику. По этому в 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 --... Не работает, задание сдаю, получаю награду, но предмет остаётся у меня в инвентаре. Изменено 2 часа назад пользователем Optimus_Prime Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты