В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
ColR_iT, Кстати секция no_move = true работает на Чистом Небе это точно. Сам лично проверял, если у непися в логике нет данной секции от идет, но если ставишь стоит. Так что возможно данная секция не работоспособна в ТЧ и ЗП. Это я так для сверки...
Добавлено (24.01.2013, 16:01) --------------------------------------------- Тут задался вопросом, если есть аддоны для оружия такие как оптический прицел, подствольник и т.д. То можно же сделать и свой по образцу. Ну это всем понятно. Вся соль вопроса не в том, дела в том, что хочу реализовать адон магазин для оружия. Например для АК74 магизин сделать, а если его не поставить то оружие не будет стрелять. Как это реализовать? Знаю что для ЗП есть оружейный мод с данными аддонами, но попросту времени нету сказать, вот решил сам попробовать сделать.
BadQvik, не работает. Можешь не напрягаться с доказательствами - не докажешь всё равно. А вот проверить то, что он не работает - очень просто. Возьми и пропиши для параметра несуществующее значение, например так:
Код
no_move = lkjsakljf
Если будет вылет, то работает. Но могу тебя заверить вылета не будет. Рука-лицо (LaRento), если тебе всё равно, то чего ты кипятишься?
ins33, в общем, как и обещал, я разобрался с поворотом актора, к сожалению не математически, а экспериментально. Вот код: Код local dir = vector():set(X,Y,Z) db.actor:set_actor_direction(dir:getH()) Удалось выясни следующее: При значении координат: 0,0,0 - происходит разворот игрока строго на север; 1,0,0 - на запад; -1,0,0 - на восток; 0,0,-1 - на юг; 1,0,-1 - на юго-запад; -1,0,1 - северо-восток; 1,0,1 - северо-запад; -1,0,-1 - юго-восток.
Ты не совсем точен. Диапазон значений угла в радианах от -ПИ до +ПИ. ПИ - это 180 градусов. 90 градусов - это ПИ/2 или 1.57. Ad = Ar * 180 / пи Где Ad — угол в градусах, Ar — угол в радианах. То получается подставляя параметры взгляда получаемые при снятии координат согласно данной формуле можно понять направление в градусах? Получается, что если поставить параметры direction и upd:o_torso по нулям то ГГ смотрит строго на север, а если поставить в параметре upd:o_torso = 1,57, 0, 0 то ГГ повернется на 90-то градусов налево, = -1,57, 0, 0 то направо, параметр direction ни за что не отвечает.
ColR_iT, Я могу доказать легко. В S.T.A.L.K.E.R. CS я создал непися, который просто должен стоять возле стола и проигрывать анимации(допустим их две bar_head и bar_fas не важно) по идее после спавна непись должен идти куда ему захочется(гулять короче), но увы чудо я дописываю параметр no_move = true и он стоит на месте и играет анимации. Для примера привожу логику которую написал для нпс:
[logic] active = remark no_move = true
[remark] anim = bar_head on_timer = 30000|remark2
[remark2] anim = bar_fas on_timer = 30000|remark
Пишу от руки по памяти, так как не дома...Но все именно так! Что скажешь по этому поводу? Возможно, я и не отрицаю в ТЧ данная функция и не работает, а вот в ЧН работает еще как.
! Unknown command: *INFO:ВНИМАНИЕ! Ошибка! Информация по ошибке в строках ниже ! * Log file has been saved successfully! ! Unknown command: *INFO:ERROR!: Statistic ERROR: required section [psy_dog] not present, based [psy_dog_strong] * Log file has been saved successfully!
FATAL ERROR
[error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ... publishing\s.t.a.l.k.e.r\gamedata\scripts\_g.script:95: ВНИМАНИЕ! Игра прервана! Информация в строках выше.
function printf(fmt,...) get_console():execute("load "..fmt) log(string.format(fmt,...)) end
! Cannot find saved game error: statistic error: required section [psy_dog] not present, based [psy_dog_strong] ! Cannot find saved game %s
dmitry778, я бы не говорил, если бы не знал или не проверил на личном опыте. Я не отрицаю, что параметр direction в спавн секции задаётся в радианах (об этом я писал здесь: Сообщение # 2613) поэтому поворот на 90° это действительно 1.57 (90*0.01745). Я же писал о параметре передаваемом в функцию set_actor_direction. Функция принимат азимутальный угол в радианах (угол в плоскости XZ между проекцией вектора (координаты которого я приводил) на эту плоскость и осью Z). Азимутальный угол вычисляет функция getH класса vector. Так что всё так как я написал. BadQvik, ты сейчас мне ничего не доказал, а лишь на словах пытаешься убедить меня в чём-то, что тебе кажется рабочим. Повторюсь ещё раз - это очень легко проверяется: пропиши в качестве значения для параметра какую-нибудь белиберду, например так:
Код
no_move = lkjsakljf
И посмотришь, что игра не вылетит, т.к. игра не считывает данный параметр, тем более в секции logic. ins33, у тебя где-то для секции psy_dog_strong отсутствует родительская секция psy_dog, от которой она наследуется. Вылет происходит при убийстве моба? LaRento, слишком ты мал и глуп, чтобы понять сейчас хоть что-то...
Сообщение отредактировал ColR_iT - Четверг, 24.01.2013, 18:02
ColR_iT, Да зачем мне доказывать если у меня так и написано, я проверял не однократно. Ладно забудем, сочтем на недоразумение, которое никто толком и не понял
BadQvik, в таком случае, будь любезен, не вводи в заблуждение других, предлагая использовать НЕРАБОЧИЙ параметр! Возьми и проверь, ведь это не займёт много времени. Или ты боишься разочароваться в игре?
Добавлено (24.01.2013, 18:12) --------------------------------------------- dmitry778, забыл написать... Параметр direction работает, игра считывает угол поворота изначально с него, но вот когда НПС переходит в онлайн происходит считывание данных из параметра upd:o_torso.
ColR_iT, Врать мне нету смысла, это вранье мне здесь не придаст репутации и уважения, поэтому повторяюсь "Я проверял на личном опыте". Прошу объяснить что это за функции и для чего их можно использовать:
[6479] ; cse_abstract properties section_name = camp_zone name = pr_stalker_smart_camp_zone_0000 position = -44.240295410156,-1.865899682045,-83.328773498535 direction = 0.99879783391953,0,-0.049018748104572
У меня такой вопрос: Можно ли данные секции использовать по образцу для сталкера ЧН? Как я понял это выше указывается точка кемпа cemp_zone, а что такое smart_cover? И еще понял что smart_terrein это точка куда будут подходить нпс и выполнять кемп (если я не ошибаюсь?). Вопрос остается тот же можно ли использовать в ЧН и что нужно заменить для работоспособности? Прошу помочь, ибо в этом я не совсем сильно разбираюсь.
BadQvik, ты понимаешь, что твоё доказательство, в данном случае лишь слова, которые только по твоему мнению, являются истинными. Доказывать мне ничего и не нужно, я и сам знаю то, что мне нужно, в частности то, что данный параметр не читается игрой не в какой версии игры, ни с каким патчем. Как это проверить - я уже написал и пишу об этом в третий раз. Ты хотя бы для себя проверь данный факт, ведь ты сам заблуждаешься говоря себе, что параметр рабочий. Проверь - ты убедишься, что no_move бесполезен и тот факт, что у тебя НПС стоял на месте абсолютно ни о чём не говорит, т.к. схема remark сама по себе подразумевает данное действие - проигрывать указанную анимацию стоя в какой-то точке.
Добавлено (24.01.2013, 18:29) --------------------------------------------- ins33, да - она конкретно указывает, какая строчка была выведена в лог последней перед тем как была прервана игра. Вероятно данный пример был несколько не нагляден. Если тебя смущают тормоза, то это можно поправить. За комментируй вот эту строчку:
Код
console:execute("flush") --/ команда записи буфера лога в файл (в игре можно закомментиировать!)
Это строка сохраняет лог-файл каждый раз - очень полезно, когда ошибка не проявляется в вылете, либо вылет весьма не однозначен, к тому же с этой строкой в логе будет хоть что-то даже во время вылета при котором обычно лога нет.
Сообщение отредактировал ColR_iT - Четверг, 24.01.2013, 18:30
ColR_iT, Много у тебя в словах "я" и "я знаю сам", я конечно несомненно поздравляю тебя, что ты считаешь себя таким умным. Но увы, это только твое убеждение.
function na_upiter() level.add_pp_effector ("teleport.ppe", 20022, false) db.actor:set_actor_position(vector():set(-452.388763, 0.1002, -378.2321777), 242, 3702) db.actor:set_actor_direction(vector():set(0,0,-1)) end
и
Код
function na_upiter() level.add_pp_effector ("teleport.ppe", 20022, false) db.actor:set_actor_position(vector():set(-452.388763, 0.1002, -378.2321777), 242, 3702) local dir = vector():set(0,0,-1) db.actor:set_actor_direction(dir:getH()) end
Не поворачивает ГГ.
Добавлено (24.01.2013, 18:39) --------------------------------------------- Как вывести сообщение на верх экрана? Как когда получаешь или сдаёшь квест.