В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга.
Не флудить
Предварительно просматривайте раздел. Ответ на ваш вопрос может быть там.
В своем вопросе указывайте платформу моддинга - Тень Чернобыля, Чистое небо или Зов Припяти.
1. Какая стоит игра, с каким патчем? 2. Какой мод, версия мода? 3. Что правили своими ручками? 4. Конфиг компа. 5. Лог вылета и последние 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 - содержит секции конфигов уникального оружия и костюмов.
У кого есть желание, создать FAQ по основным вопросам моддинга - обращаемся в ЛС.
Rezon, в configs/models/dynamic_objects.ltx добавь секцию. Вот, к примеру, сканнер со своей логикой, зафиксированной костью (т. е. жесткая привязка к локации, хоть и спавнится через логические скрипты):
Rezon, в configs/models/dynamic_objects.ltx добавь секцию. Вот, к примеру, сканнер со своей логикой, зафиксированной костью (т. е. жесткая привязка к локации, хоть и спавнится через логические скрипты): Код[jup_b209_ph_scanner]:physic_object $spawn = "dynamic_objects\scene_objects\jup_b209_ph_scanner" visual = dynamics\equipments\quest\scanner_anomaly.ogf custom_data = scripts\jupiter\jup_b209_scanner.ltx startup_animation = idle fixed_bones = link story_id = jup_b209_ph_scanner
Rezon, это просто секция объекта в конфиге. Там прописаны свойства, логика, стори_ид. Тебе нужно его заспавнить. Или логикой, или скриптом. В xr_effects.script есть шикарная функция spawn_object:
Код
function spawn_object(actor, obj, p) --' p[1] - секция кого спаунить --' p[2] - имя патрульного пути где спа унить. local spawn_sect = p[1] if spawn_sect == nil then abort("Wrong spawn section for 'spawn_object' function %s. For object %s", tostring(spawn_sect), obj:name()) end
local path_name = p[2] if path_name == nil then abort("Wrong path_name for 'spawn_object' function %s. For object %s", tostring(path_name), obj:name()) end
if not level.patrol_path_exists(path_name) then abort("Path %s doesnt exist. Function 'spawn_object' for object %s ", tostring(path_name), obj:name()) end local ptr = patrol(path_name) local index = p[3] or 0 local yaw = p[4] or 0
--' printf("Spawning %s at %s, %s", tostring(p[1]), tostring(p[2]), tostring(p[3])) local se_obj = alife():create(spawn_sect, ptr:point(index), ptr:level_vertex_id(0), ptr:game_vertex_id(0)) if IsStalker( nil, se_obj:clsid()) then se_obj:o_torso().yaw = yaw * math.pi / 180 elseif se_obj:clsid() == clsid.script_phys then se_obj:set_yaw(yaw * math.pi / 180) end end
Rezon, это просто секция объекта в конфиге. Там прописаны свойства, логика, стори_ид. Тебе нужно его заспавнить. Или логикой, или скриптом. В xr_effects.script есть шикарная функция spawn_object: Кодfunction spawn_object(actor, obj, p) --' p[1] - секция кого спаунить --' p[2] - имя патрульного пути где спа унить. local spawn_sect = p[1] if spawn_sect == nil then abort("Wrong spawn section for 'spawn_object' function %s. For object %s", tostring(spawn_sect), obj:name()) end local path_name = p[2] if path_name == nil then abort("Wrong path_name for 'spawn_object' function %s. For object %s", tostring(path_name), obj:name()) end if not level.patrol_path_exists(path_name) then abort("Path %s doesnt exist. Function 'spawn_object' for object %s ", tostring(path_name), obj:name()) end local ptr = patrol(path_name) local index = p[3] or 0 local yaw = p[4] or 0 --' printf("Spawning %s at %s, %s", tostring(p[1]), tostring(p[2]), tostring(p[3])) local se_obj = alife():create(spawn_sect, ptr:point(index), ptr:level_vertex_id(0), ptr:game_vertex_id(0)) if IsStalker( nil, se_obj:clsid()) then se_obj:o_torso().yaw = yaw * math.pi / 180 elseif se_obj:clsid() == clsid.script_phys then se_obj:set_yaw(yaw * math.pi / 180) end end Спавним функцией через скрипт: Кодxr_effects.spawn_object(nil, nil, {"название_объекта", "вейпоинт"}) Спавним функцией через логику: Код%=spawn_object(название_объекта:вейпоинт)% Вейпоинт добавляем в way_лока.ltx в алл.спавне. Новая игра при этом не понадобится.
Можно подробнее? Я этими скриптами первый раз занимаюсь. Что такое ВэйПоинты?
Добавлено (19.01.2014, 16:30) --------------------------------------------- Стоп, что-то понял. Кроме ВэйПоинтов.
Некая единица пути. В выше указанном типе файла прописывается секция пути. Либо одна точка (в нашем случае, такое и нужно), либо много (для пути перемещения НПС, к примеру). Вот, как выглядит схематично:
Код
[секция] points = p0 ;Перечисляем через запятую все поинты (здесь только один - p0)
;Особенности точки p0 p0:name = wp00 p0:flags = 0x1 ;Флаги (не столь важно, тоже нумерация задается начиная обычно с 0х1) p0:position = -175.93258666992,8.4784708023071,-283.93695068359 ;Координаты x,y,z p0:game_vertex_id = 1172 ;gvid p0:level_vertex_id = 53778 ;lvid
Добавлено (19.01.2014, 16:32) --------------------------------------------- stalker-MiX, Net Packet онли. И то, вроде только при спавне.
Сообщение отредактировал FantomICW - Воскресенье, 19.01.2014, 16:32
Ребят, такое дело. В общем добавил в свой мод на Зов Припяти новые стволы, теперь хочу чтобы при апгрейде была новая красивая иконка, сами иконки стволов есть, но как мне её выкрутить, чтобы она при апгрейде выглядела вот так...