В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
ТЧ Подскажите функцию отнимания вещей у актора и спавн их в ящик(тайник) со стори идом - в гугле пока не нашёл использовал просто отнимание вещей, но одно работает не так, как хотелось бы, а второе, видимо, для ЗП:
--Отбираем предметы у актора --function borov_suka() -- local cnt = db.actor:object_count() -- for i=0, cnt-1 do -- local item = db.actor:object(i) -- local sobj = alife():object(item:id()) -- if sobj then -- alife():release(sobj,true) -- end -- end --end
function borov_suka(actor, npc, p) local item = 0 for i, v in pairs(p) do item = npc:object(v) if item then npc:drop_item(item) end end end
Сообщение отредактировал Uyman358 - Понедельник, 22.04.2013, 16:05
Uyman358, а зачем искать в гугле то, что лежит, извиняюсь, под носом? То, что тебе нужно есть в ЧН и ЗП. В ЧН - это момент, когда игрока грабят в подвальчике на Свалке. В ЗП - это момент ограбления личного ящика игрока на станции Янов. Открой любой из вариантов и посмотри функцию "переноса" вещей из одного места в другое.
Сталкер Зов Припяти: Подскажите, пожалуйста, где прописан файл gamedata\configs\text\rus >>> st_dialogs_jupiter.xml Я знаю, что файлы gameplay'я прописаны в system.ltx, но файла, которого мне надо, там нет. Я пробовал самим прописать - не работает, поэтому я пришёл к выводу, что st_dialogs_jupiter.xml, где-то прописан, но вот... Где?..
Читал, что вылет распространенный. Пока заблокировал его с помощью изменения _g.script. Без этой правки вылетает при старте новой игры. С измененным г-скриптом на локации вылетов нет.
function name() local inv_box_1 = level_object_by_sid(number) -- сид тайника out_object = db.actor in_object = inv_box_1 db.actor:inventory_for_each(transfer_object_items) end
local out_object local in_object
function transfer_object_items(item) local sect = item:section() if sect == "исключение" or sect == "исключение" then return end out_object:transfer_item(item, in_object) end
сделать сквад из 7 снорков все есть написал свою функцию спавна но спавнится один снорк, а остальные 6 непоявляются вот что я писал в скрипте xr_effect
function spawn_monstr(actor, obj, p) --' p[1] --' p[2] local spawn_sect = p[1] if spawn_sect == nil then abort("Wrong spawn section for 'spawn_monstr' 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_monstr' 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_monstr' for object %s ", tostring(path_name), obj:name()) end local ptr = patrol(path_name) local index = p[3] or 0
local se_obj = alife():create(spawn_sect, ptr:point(index), ptr:level_vertex_id(0), ptr:game_vertex_id(0))
ins33 Функцию желательно сделать универсальной. Показанная тобой одноразовая. Не так ли? Знать бы побольше условий...но исходя из тех что есть можно оформить как-то так :
Код
function name(in_object, out_object, ...) in_object = type(in_object) =='number' and level_object_by_sid(in_object) out_object = type(out_object)=='number' and level_object_by_sid(out_object)
if type(in_object)~='userdata' or type(out_object)~='userdata' then return end
local exclude={...} for i = 1, #exclude do exclude[ exclude[i] ] = true end
local function transfer_object_items(item) local sect = item:section() if exclude[sect] then return end out_object:transfer_item(item, in_object) end
out_object:inventory_for_each(transfer_object_items) end
При вызове функции name аргументы in_object и out_object могут быть как числами(sid-ами), так и объектами(userdata). Функция сама разберётся что на входе. Заодно и не допустит выполнения при отсутствии объекта. В переменном числе аргументов (...) передаются названия исключаемых вещей.
Возможно ли сделать так, чтобы патроны не сгруппировывались в инвентаре (или другие предметы)?
Добавлено (23.04.2013, 16:56) --------------------------------------------- mmihaill, Писать ему вейпоинты по которым он будет идти. Или же добавить скриптовую функцию в диалог, которая будет перекидывать ГГ подобно телепорту.