В данной теме вы можете задавать любые вопросы касательно 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 - содержит секции конфигов уникального оружия и костюмов.
antonnkz76, Не совсем корректный вопрос, дело в том что объекты изначально не привязаны к аи-сетке. При расстановке в SDK есть возможность многим объектам включить эту привязку указанным флагом, но проверяется он на этапе компиляции спавна программой xrAI, которая передвинет координаты предмета если он не на сетке, а флаг при этом установлен (о чем в логе и сообщит). Если флаг не установлен, а спавн настроен в SDK (или напрямую в all.spawn) есть возможность предмету указать зафиксированную кость, в этом случае предмет нельзя будет сдвинуть при коллизии и он не должен проваливаться в текстуры. Другой вопрос если спавн поднимаемого предмета произведен скриптом, на какой либо поверхности, тогда можно попытаться указать параметр fixed_bones в секции предмета или попробовать сделать фейковую поверхность поверх текстуры, для корректной работы физики.
Сообщение отредактировал denis2000 - Понедельник, 11.04.2016, 13:39
Добрый день. Возникла проблема, не пойму в чем дело - создал модель нового летательного аппарата с костями от Ми-24 (чтоб не заморачиваться) за вычетом пропеллеров. Он совершенно спокойно спаунится, но вместо того, чтобы лететь по пути от вертолёта, он просто пересекает наискось локацию и улетает за нее с концами. В чем именно мог накосячить?
В configs\models\vehicles прописал следующим образом:
[helicopter_definition] default_hit_factor = 0.01 ; default hit factor (0..1) hit_section = hit_bones ; hit section name wpn_rotate_x_bone = front_gun ; rotate X-axis(pitch) bone name wpn_rotate_y_bone = front_gun_tower ; rotate Y-axis(head) bone name wpn_fire_bone = front_gun_fire ; weapon axis (fire) bone name left_rocket_bone = left_gun ; left_rocket2_bone = left_gun2 ; right_rocket_bone = right_gun ; right_rocket2_bone = right_gun2 ;
[hit_bones] ; per bones hit factor
[on_death_mode] ;------------------------------------------------------------------------------- ;------ destroyed part ---------------------------------------------------------
[destroyed]
[autoremove_parts] time = 60
;------------------------------------------------------------------------------- ;--- part impulse_transition ---------------------------------------------------
[impulse_transition_to_parts] random_min = 20.0 ; величина случайно направленного импульса пропорционально массе нового объекта random_hit_imp = 30.0 ; величина случайно направленного импульса пропорционально разрушающему хиту ;ref_bone = ; кость из по которой определяется скорость для частей у который связь не задана, по умолчанию рут imp_transition_factor = 1.0 ; фактор с которым прикладывается хит по исходному объекту ко всем частям lv_transition_factor = 2.0 ; коэффициент передачи линейной скорости av_transition_factor = 2.0 ; коэффициент передачи угловой скорости
Насчет можно соврал, у меня при прописывании нескольких <start_dialog>...</start_dialog> они не все работали. Но было это давно и не исключено, что я ставил неправильные условия, так что требует проверки.
Сообщение отредактировал antonnkz76 - Понедельник, 11.04.2016, 17:30
_S_k_i_F_, Стартовые диалоги: 1) Из логики в секции meet_dialog = {первое условие} имя_диалога_1, {второе условие} имя_диалога_2 Постарайся избежать затыков по условиям. 2) В стартовом диалоге
Дело в том, что пока сохранялась модель собственно ми-24, все шло нормально даже по старой логике. Когда заменил модель - пошла такая байда. Поэтому я то ли модель эту где-то не зарегистрировал, то ли что - не пойму.
svi, никаких sr_idle не может быть в логике вертолёта! От самой модели это теоретически зависеть не может. Хотя фиг знает этот движок, иногда я сам поражаюсь.
Сообщение отредактировал DеXter - Понедельник, 11.04.2016, 19:58
DеXter, и тем не менее, будучи "крокодилом" он с этим idle спокойно летал . Я правда не знаю - возможно, где-нибудь не прописал какие-нибудь ссылки на модель все же. Что-нибудь там не привязывается к главной кости или еще что, не знаю.
Возвращаясь к смене визуала НПС. После долгих проб и ошибок получилось это:
function test_visual_clear() local ltx = system_ini() -- Указали конфиги if ltx then local outfit = db.actor:item_in_slot(6) -- Как выглядит ГГ if outfit then local osect = outfit:section() local visual = ltx:r_string(osect, "actor_visual") -- Получили visual_name = actors\svoboda\stalker_sv_nauchniy.ogf local sim = alife() local obj = sim:story_object(9700) -- Вот и жертва. local pk = m_netpk.net_cse_visual(obj,nil) -- Запишем в пакет его visual_name if pk:isOk() then -- Если пакет записан верно local data = pk:get() -- получаем таблицу if data ~= nil then if visual ~= nil then data.visual_name = visual -- присвоим нужный визуал ; cse_visual properties pk:set(data) -- и наконец то присвоим изменение. local description = pk:dumpDesc() -- возвращает строку, содержащую читабельное описание пакета (его можно, например, вывести в лог) end end end end end end
Вставлял в код проверки, всё проходит до data.visual_name = visual, а pk:set(data) уже не срабатывает. Как впрочем и смена визуала.
В se_stalker.script добавил
if self.cb_netpk then self.cb_netpk(self, packet) end -- коллбэк для изменения свойств пакета cse_alife_human_stalker.STATE_Write (self, packet)
Не понятно почему, но у меня вообще не получается скриптово создать CUIScrollView(), в то время как CUIListBox() дочерний от скрола успешно создаётся...
Собственно не суть, могу и его использовать.
Сам вопрос: у меня есть поля с текстом(заполняется автоматически разной длины текста), при большом объёме текст вылазиет, а размер окна с текстом остаётся таким же, и когда появляется новое окно ниже, верхнее залезает на нижнее.
Как можно увеличивать размер окна с текстом по мере того как увеличивается объём текста(чтобы начало следущего окна было там, где уже нет текста), или же какой-то другой способ побороть это есть? Ну и при смене разрешения так же может залезать.
Сообщение отредактировал FonSwong - Вторник, 12.04.2016, 00:36