В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга
• Не флудить • Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там • В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти
1. Какая стоит игра, с каким патчем? 2. Какой мод, версия мода? 3. Что правили своими ручками? 4. Лог вылета и последние 25 строк (помещать под спойлер).
Структура папок и файлов в корневом каталоге игры:
...\S.T.A.L.K.E.R\gamedata\anims – папка содержит исполнительные файлы эффектов (например от ПНВ).
...\S.T.A.L.K.E.R\gamedata\config – папка содержит основные конфигурационные файлы (т. е. большинство настроек игры)
...\S.T.A.L.K.E.R\gamedata\meshes – содержит модели игровых предметов и персонажей...
...\S.T.A.L.K.E.R\gamedata\scripts – папка со скриптами (рабочими файлами содержащими в себе наборы функций) – основная папка, отвечающая за ответные действия игры и действия производимых игроком в игре.
...\S.T.A.L.K.E.R\gamedata\shaders – папка содержит в себе конфигурационные файлы шейдеров.
...\S.T.A.L.K.E.R\gamedata\sounds – здесь находятся все звуки игры (разложены по своим каталогам и папкам)
...\S.T.A.L.K.E.R\gamedata\spawns – содержит файл спавна – очень важный файл – не трогать без нужды!!!
...\S.T.A.L.K.E.R\gamedata\textures – содержит разложенные по каталогам и папкам текстуры используемые в игре.
Теперь разберем папки в каталоге «config»
...\S.T.A.L.K.E.R\gamedata\config\creatures - содержит массу конфигурационных файлов, в основном отвечающих за взаимодействие Главного героя игры (в дальнейшем ГГ) и прочего окружения в игре и ТТХ самого ГГ.
...\S.T.A.L.K.E.R\gamedata\config\gameplay – содержит конфиг. файлы персонажей игры (НПС) отвечающие за внешний вид, статус, снаряжение. Файлы: character_desc_ххх (где ххх – название локации) и character_desc_general (отвечает за зомбированного персонажа). Также содержит файлы диалогов и профилей НПС.
…\S.T.A.L.K.E.R\gamedata\config\misc – конфиг.файлы торговцев (папки с именами торговцев), артефактов, брони, квестовых предметов, уникальных предметов, файл отвечающий за награды за автозадания, файл эффектов (алкоголизма, ранения, ПНВ и прочих)...
…\S.T.A.L.K.E.R\gamedata\config\mp – среди прочих содержит важный файл mp_ranks – отвечающий за выпадение оружия и патронов из рук ГГ и НПС – без прописывания добавляемого в игру оружия в этот файл при выпадении нового оружия из рук ГГ\НПС будут следовать вылеты.
…\S.T.A.L.K.E.R\gamedata\config\text\rus – содержит файлы описаний всего и вся находящегося в игре (брони, артефактов, оружия, предметов и прочего).
…\S.T.A.L.K.E.R\gamedata\config\weapons – содержит конфиг.файлы оружия и боеприпасов используемых в игре.
…\S.T.A.L.K.E.R\gamedata\config\weathers – содержит конфиг.файлы настройки погоды на локациях.
Теперь немного подробнее о файлах.
...\S.T.A.L.K.E.R\gamedata\config\misc:
Папка shop_ххх (ххх – имя торговца) – содержит конфиг.файлы ассортимента торговца.
outfits – содержит секции конфигов костюмов.
artefacts - содержит секции конфигов артефактов.
items - содержит секции конфигов предметов.
monster_items - содержит секции конфигов частей монстров
postprocess - содержит секции конфигов пост. процессов (например: ПНВ).
quest_items - содержит секции конфигов квестовых предметов.
task_manager - содержит секции наград за автоквесты.
unique_items - содержит секции конфигов уникального оружия и костюмов.
мне нужно удалить все аномалии из заданного рестриктора,
А зачем вы их туда прописывали, если вам их нужно удалить?
Цитатаyobakun ()
но ведь у аномалий нет story_id.
Аномалиям не то что story_id, но можно прописать и логику и они будут работать, как обычные рестрикторы.
Если удаление по сюжету, то пропишите им story_id и удаляйте традиционным способом для ЗП. Если вы "ломаете" чью- то игру, то придется сделать несколько непростых телодвижений. Вам какой вариант нужен?
Сообщение отредактировал makdm - Пятница, 15.12.2017, 23:35
А зачем вы их туда прописывали, если вам их нужно удалить?
Динамические аномалии спавнятся там где это не нужно. Изменение настроек конфигов в данном случае не решает проблем. Сейчас я сделал вот так
Код
local t = db.zone_by_name["yan_smart_terrain_6_4_att"] if t and obj then if t:inside(obj:position()) then news_manager.send_tip(db.actor, "delete anomaly", 0, "default", 8000) alife():release(alife():object(obj), true) end end
Аномалии вроде бы удаляются, но только одна из, после чего скрипт зависает и при перезагрузке игры идет краш с логом "Параметр задан не верно".
yobakun, вот с этого бы и начинали. Скажу вам без лишней скромности. Динамический спавн аномалий и их рассасывание при выбросе мною реализован в ПТО. Там аномалии при спавне "обходят" те места, в которых их присутствие нежелательно. Смотрите скрипт xrs_random_anomaly.script Таблица zone_off содержит имена рестрикторов, спавн аномалий внутри которых невозможен.
makdm, интересно выглядит, но как спавнить аномалии не понятно. Пробовал для теста повесить функцию control_random_anomaly( spawn ) на предмет, но ничего не происходит.
Сообщение отредактировал yobakun - Суббота, 16.12.2017, 01:31
Чудес не бывает. Первое - прописываете сквад simulation_boar, как симуляционный. Второе - прописываете смарт, как симуляционный. Результат - спавн сквада. Ищите ошибку.
makdm , а как же правка ошибки 12, -- alife():release(alife():object(item:id()), true) --ошибка 12 local obj = item and item:id()and alife():object(item:id()) --правка ошибки 12 if obj then alife():release( obj, true ) end --правка ошибки 12
вот этот код - alife():release(alife():object( k ), true) разве тут не действует такая же ошибка?
посмотрел так же у Камикадзе, у него вместо - alife():release(alife():object(id), true)
при удалении оружия или артефакта - local obj = alife():object(i) if obj then alife():release(obj, true) end
итого функция выглядит вот так -
function remove_heli_by_name( name ) for k,v in pairs( db.heli ) do if string.find( v:name(), name ) ~= nil then local obj = alife():object( k ) if obj then alife():release(obj, true) end break end end end
это правильно?
Сообщение отредактировал YTroll - Суббота, 16.12.2017, 04:28
Как писать скрипты, не приводящие к вылетам и бою сейвов (часть 2)
Вылеты при удалении объектов из игры
При использовании для удаления объектов родной движковой функции alife():release(alife():object(id), true) возможен целый ворох разнообразнейших вылетов, обычно - безлоговых, что сильно затрудняет их отладку. Вот из-за чего они возникают:
2) Вылет при удалении оружия или артефакта. Решение: такая проблема часто встречается в случае если объект неудачно расположен или находится в руках у непися. Для того чтобы не произошло вылета, убедитесь что объект доступен как серверный перед удалением. Вот так: local obj = alife():object(i) if obj then alife():release(obj, true) end Эту конструкцию вообще желательно использовать всегда, когда вы так удаляете объекты.
вроде бы вертолеты не артефакты или оружие, но они могут использоваться в этот момент скриптовой схемой, на ЧАЭС1 - это атака вертолетов на станцию, на монолитовцев и ГГ, или тут есть какая-то особенность?
Тогда почему в DoctorX Dynamic Anomalies такого нет?
P.S. я не пытаюсь критиковать или что-то в этом роде. Ваш скрипт действительно хорош и даже лучше чем вышеприведенный, но эта система спавна не дает мне покоя.
Здравствуйте! Хотелось бы узнать как реализовать интерфейс на 3d модели. Допустим, как ПДА в gunslinger mod. Либо например реализация цифровых часов, и на экране выводить игровое время на руке у главного героя (как в игре Метро 2033). Спасибо.
Модераторам: я задаю этот вопрос второй раз но уже в этой теме (Кросспостинг). Прошу не удалять его, так как отсутсвует какая либо возможность удалить предыдущий вопрос. Спасибо.
Сообщение отредактировал AngryWolf - Суббота, 16.12.2017, 17:24