В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
сценку я сделать смогу мне имено код скрипта нужен мне нада сделать проверку что гг имеет какой то ствол и он бросил его в противном случае ждем 5 сек если гг все также со стволом растрелять к черту
makdm, неплохой вариант, только не решает поставленной задачи. Как ты определишь, что ГГ бросил оружие, которое у него в руках было? Это раз. Два - диалога как такового не будет, если я правильно понял автора, просто звуковое предупреждение, поэтому выдачу инфопорции нужно будет делать иначе. strchi, нужно в схему ph_sound дописать колбек на "юзание", его нет в релизах. АМК, к сожалению, не доступен, дал бы ссылку на урок, как это сделать...
strchi, под АМК я имел ввиду форум, а не мод. Сейчас он "очухался", вот ссылка: >>ClicK Me<<. Годится для любой версии игры, для любого мода, делал сам - проверял работает, говорю с уверенностью.
Как ты определишь, что ГГ бросил оружие, которое у него в руках было
Элементарно. Для этого в файле xr_conditions.script пропишу функцию и вызову её из логики рестпиктора function actor_active_weapon(actor, npc, p) local wpn_section = p and p[1] if wpn_section == nil then abort("Wrong parameters in function 'actor_active_weapon'") end local actor_weapon = db.actor:active_item () return (actor_weapon ~= nil) and actor_weapon:section() == wpn_section end Получив, true - дальше сделаю проверку был сброс true в false по active_item() или не был. Дальше писать не буду, ибо всё элементарно просто.
Если же название оружие ГГ в руках явно не задано, то функцию можно немного изменить. Например в ЗП все секции оружия начинаются с wpn. Тогда немного меняем скрипт function actor_active_weapon(actor, npc) local actor_weapon = db.actor:active_item () local section = actor_weapon:section() if string.find(section , "wpn_") then return true else return false end end
P.S. Чтобы не гадать на "кофейной гуще", нужна, четкая постановка вопроса для конкретной сцены , тогда и ответ будет конкретным. Программирование - всегда конкретная вещь.
Сообщение отредактировал makdm - Среда, 23.01.2013, 01:05
подходит под определение, но не под действительность. В твоём решении много "если": если в руках указанное оружие, если оружие начинается на "wpn_", если оружие наизготовку, а не просто в слоте... Что касается задачи, то она вполне конкретна - отследить, что ГГ в определённом месте выбросил оружие (любое), которое находится либо в слоте, либо в руках. В целом, если твою проверку использовать не по секции, а по классу, то выйдет относительно универсально.
Разбирался в конфигурациях оружия, там все понятно скорость пули и сила выстрела отвечают за мощность нанесенного хита по "нпс" и "мобу". Так вот, решил узнать, а у "нпс" и "мобов" есть расчет повреждений? Ну например в выстрел в головку отнимает (100ХП), а выстрел в ногу(20ХП) и т.д. Очень нужно узнать где это настраивается если такая конфигурация вообще существует. P.S.: Я думаю существует, так как не может же быть что расчет хита производится только из за мощности оружия! Буду очень благодарен если поможете с данным вопросом.
Подскажите, как при телепортации по локе повернуть ГГ например на юг или запад? 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,0.0,0.0 ) -- без этой строчки он смотрит зеркально относительно входа в телепорт, но любые эксперементы с осью х результатов не дают. local snd_obj = xr_sound.get_safe_sound_object([[anomaly\teleport_work_1]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end
ins33, Попробуй поработать с числами 2.5,2.7,2.3 пробуй ставить различный коэффициент, ну уверен что это поможет, но кажется где-то я уже это видел и правил...Попробуешь напишешь,ок?
Добавлено (23.01.2013, 03:58) --------------------------------------------- ins33, Спасибо огромное за пост! Просматривал функции, выбрал для себя нужную "расчет попадания в нпс", вот код:
Код
if bone_index > 0 and who then if who:id() == db.actor:id() then --/ для актора local oActiveItem = db.actor:object("wpn_svd") if oActiveItem then --/ у актера проверяемое оружие local kuda = "" if bone_index == 14 or bone_index == 15 then kuda = "Ранен в глаз" elseif bone_index == 13 then kuda = "Ранен в голову" elseif bone_index == 16 then kuda = "Ранен в челюсть" elseif bone_index == 17 then kuda = "Ранен в шею" elseif bone_index == 9 or bone_index == 10 or bone_index == 11 or bone_index == 18 then kuda = "Ранен в грудь" elseif bone_index >= 1 and bone_index <= 8 then kuda = "Ранен в ногу" elseif bone_index >= 19 and bone_index <= 42 then kuda = "Ранен в руку" end news_manager.send_tip(db.actor, kuda, nil, nil, 2000) end end end
Сразу говорю чтобы не говорили что это копи-пас:) Эта функция "Феникса". Так вот обнаружил данную строку: local oActiveItem = db.actor:object("wpn_svd") Как я понял, это тот объект из-за который будет выполнять данную функцию. То есть, если Гг к примеру возьмет Вал, то действия выполняться уже не будут. Вопрос, если я сделаю вот так: local oActiveItem = db.actor:object("wpn_svd") local oActiveItem = db.actor:object("wpn_ak74") local oActiveItem = db.actor:object("wpn_ak74u") и т.д перечислю все объекты из которых можно наносить хит, функция будет рабочей? Или есть какой-то способ сделать local oActiveItem = db.actor:object("wpn_svd") вместо wpn_svd проверку что есть у Гг в слотах.