В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
GunnerShadow, да, есть какой-то скрипт, то ли от erlik, то ли от кого.. не помню. Скрипт его юзается в скриптах для рюкзаков, слотов и т.п. и сей скрипт спавнит невидмые предметы, чтобы вышеуказанные моды работали корректно.
Всем привет, кто знает - в компиляторах ЗП стадия Build UV mapping что означает? Что компилятор на этой стадии делает, с чем работает. Кто что знает, расскажите плиз, очень важно
Сообщение отредактировал Винторез94 - Понедельник, 02.12.2013, 19:54
Всем привет, кто знает - в компиляторах ЗП стадия Build UV mapping что означает? Что компилятор на этой стадии делает, с чем работает. Кто что знает, расскажите плиз, очень важно
Точно сказать тебе не смогу, но похоже на этой стадии создается (а вернее конвертируется под формат игры) развертка текстур разных объектов локации. Возможно это связано с лодовой текстурой, где она применена. Возможно, с другими - с самими данными для моделей, что зашиты в геометрии, о наложении текстур на свои места - дабы они сидели на своих местах как в СДК или 3Д-редакторе. Причин судить тому у меня те, что UV mapping - название серии модификаторов в 3д-максе, связанные с работой над текстурами. Хотя что такое аббревиатура UV - сказать не могу.
GunnerShadow, да, есть какой-то скрипт, то ли от erlik, то ли от кого.. не помню. Скрипт его юзается в скриптах для рюкзаков, слотов и т.п. и сей скрипт спавнит невидмые предметы, чтобы вышеуказанные моды работали корректно.
А можешь припомнить сам скрипт? Или дай ссылку на сам мод.
Пытаюсь совместить 2 мода: ИИ твики от alundaio и" По одежке встречают"(то эсть нпс будут реагировать на вас в зависимости от вашего костюма).
Значит 2 вылета(пока)
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : .... - call of pripyat\gamedata\scripts\xr_logic.script:1308: attempt to index local 'obj' (a nil value)
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...ripyat\gamedata\scripts\smart_terrain_control.script:65: attempt to index field 'actor' (a nil value)
Вот собственно код второго мода.
local idOutfit = nil
function outfit_npc() local oActor = db.actor local oOutfit = oActor and oActor:get_current_outfit() local sCommunity = "actor" if oOutfit then if oOutfit:id() == idOutfit then return else idOutfit = oOutfit:id() --/ таблица соответствий группировок костюмам (секциям) local tCommunityByOutfit = { ["novice_outfit"] = "stalker", ["specops_outfit"] = "army", ["military_outfit"] = "army", ["stalker_outfit"] = "stalker", ["scientific_outfit"] = "ecolog", ["exo_outfit"] = "stalker", ["svoboda_light_outfit"] = "freedom", ["svoboda_heavy_outfit"] = "freedom", ["cs_heavy_outfit"] = "ecolog", ["dolg_outfit"] = "dolg", ["dolg_heavy_outfit"] = "dolg", ["reduce_dolg_heavy_outfit"] = "dolg", ["reduce_dolg_outfit"] = "dolg", ["reduce_cs_heavy_outfit"] = "ecolog", ["reduce_svoboda_heavy_outfit"] = "freedom", ["reduce_svoboda_light_outfit"] = "freedom", ["reduce_exo_outfit"] = "ecolog", ["reduce_scientific_outfit"] = "ecolog", ["reduce_stalker_outfit"] = "stalker", ["reduce_military_outfit"] = "army", ["reduce_specops_outfit"] = "army", ["reduce_novice_outfit"] = "bandit" } sCommunity = tCommunityByOutfit[oOutfit:section()] or sCommunity end elseif idOutfit then idOutfit = nil else return end if sCommunity ~= oActor:character_community() then oActor:set_character_community(sCommunity, 0, 0) end end
а вот функция в bind_stalker
if actor_outfit then actor_outfit.outfit_npc()
Собственно со вторым вылетом, проблема очевидна в db.script
actor = nil
на что надо изменить чтобы переменная "актор" не выдавала нил?
а вот со вторым мне непонятно. надеялся поможете.
вот строка кода
local npc_id = obj:id()
в функции
function pstor_retrieve(obj, varname, defval) local npc_id = obj:id()
if db.storage[npc_id].pstor ~= nil then local val = db.storage[npc_id].pstor[varname] if val ~= nil then return val end end if defval ~= nil then return defval end --abort("xr_logic: pstor_retrieve: variable '%s' does not exist", varname) return nil end
Сообщение отредактировал mwesten1 - Вторник, 03.12.2013, 00:49
ПРОВЕРКА НАЛИЧИЯ У АКТОРА ПРЕДМЕТА =========================================================================== Вариант первый function Название функции() if db.actor:object("название предмета") then return true end return false end
function название функции(first_speaker, second_speaker) return first_speaker:object("название предмета") ~= nil end
в диалог
имя скрипта.название функции =========================================================================== ПРОВЕРКА ВЕЩЕЙ У ГГ =========================================================================== function Название функции(first_speaker, second_speaker) return first_speaker:object("название предмета") ~= nil or first_speaker:object("название предмета") ~= nil or first_speaker:object("название предмета") ~= nil end
в диалог
имя скрипта.название функции
описание... если есть хотя бы одна вещь, то мы получим фразу, если нет всех нет разговора
GunnerShadow, значит с разверткой ТЕРРЕЙНА на этой стадии тоже происходит что-то?
Думаю да, если на этой стадии компилятор вылетает без лога (может у вас так), то тут возможно то, что или сам террейн (его текстура) слишком сложная для движка (как на меня - это бред), либо, что скорее всего, модель террейна имеет подтяжки и\или некоторые баги и недоработки до такой степени, что компилятор просто не в состоянии наложить на него текстуру правильно (к примеру очень-очень длинные полигоны или короткие, края локации очень закругленные из-за частого применения для них инструмента сглаживания, как у меня раз было, прочее). Возможно просто дело в том, что на карте слишком много сложных в плане развертки обьектов (в ним относятся высокополигоналки и деревья Абсолют натура). У меня из-за самых деревьев потом освещение и развертку (там оно кажется тоже связано) растянуло на 92 лайтмапа на максе.
Думаю да, если на этой стадии компилятор вылетает без лога
именно!
ЦитатаGunnerShadow ()
либо, что скорее всего, модель террейна имеет подтяжки и\или некоторые баги и недоработки до такой степени, что компилятор просто не в состоянии наложить на него текстуру правильно
но этот же террейн компилится на других (менее мощных чем у меня) компах без проблем почему то.
ЦитатаGunnerShadow ()
Возможно просто дело в том, что на карте слишком много сложных в плане развертки обьектов
чисто голый террейн - ничего кроме него нет, не желает компилить. В целом он немудренный как бы, пара впадин, края приподняты, есть 2 места где что-то наподобие обрыва сделано (почти вертикально террейн опущен). Никаких длинных полигонов нет, модификатор Subdivision применял. Думаешь стоит мне пошаманить с террейном, покрутить еще рельеф да глянуть как будет?
Добавлено (03.12.2013, 16:15) --------------------------------------------- Пошаманил) Оказывается забыл модификатор HSDS (вроде так называется) применить, ну и заодно острые углы поправил - теперь все за милую душу, тьфу тьфу тьфу, компилит. Спасибо что натолкнул на решение проблемы
Пошаманил) Оказывается забыл модификатор HSDS (вроде так называется) применить, ну и заодно острые углы поправил - теперь все за милую душу, тьфу тьфу тьфу, компилит. Спасибо что натолкнул на решение проблемы
Добавлено (03.12.2013, 18:14) --------------------------------------------- Да ещё как отключать(или можно просто удалить конфиг логики или как или можно по иному?)