В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Всем привет) В общем, имеется фонарь из Dream Reader и его скрипт (Чтобы нельзя было включить фонарь пока не возьмешь в руки), суть такова хочется сделать, чтобы он разряжался, как в Lost World: Origin. Нашел скрипт из LWO, но что и как надо сделать не знаю. Скрипты приложу под спойлером.
--[[ ----------------------------------------------------------------------------------------------- Автор скрипта;CON --]]----------------------------------------------------------------------------------------------- function torch_control() local actor = db.actor local activ_item = actor:active_item() local torch1 = actor:object("device_torch") if activ_item ~= nil then local activ_section = activ_item:section() if activ_section == "fonarik" then if not torch1 then htorch.inv("device_torch") end else --- active item - not torch --- delete torch if torch1 then delete_detector(torch1) end end else --- active item is nil --- delete torch if torch1 then delete_detector(torch1) end end end
--[[ Работа фонаря от батареек с постепенным ослаблением света и его мерцанием. Автор: Real Wolf. --]]
local status = false is_torch_allowed = true torch = nil local loss = 0 is_need_change_color = false local timer = 0 local ini local is_render_r2 = false
local range = 0 local color = vector() local omni_range = 0 local omni_color = vector() local glow_radius = 0 local spot_angle = 0 local color_animator = "" local cond_start_animator = 0 local sound_start local is_init = false
function switch(evt) torch = evt.obj if not torch then abort("ERROR! We have lost torch.") end
status = evt.flag if is_torch_allowed then if status then event("actor_torch_update"):register(update) else event("actor_torch_update"):unregister(update) end if sound_start then sound_start:play(db.actor, 0, sound_object.s2d) end end end
-- Она вызывается перед первым вызовом update. function init() ini = torch:get_visual_ini() or ini_file("models\\objects\\light_night.ltx") is_render_r2 = get_console():get_string("renderer") == "renderer_r2" is_torch_allowed = torch:condition() > 0.01 is_need_change_color = is_need_change_color and (ini ~= nil)
if is_need_change_color then local range_name = "range" local color_name = "color" if is_render_r2 then range_name = range_name.."_r2" color_name = color_name.."_r2" end
function update(evt) if (timer < time_global() ) then timer = time_global() + 1000
torch = evt.obj if not torch then abort("ERROR! We have lost torch.") end
if not is_init then init() end
local torch_cond = torch:condition() - loss * level.get_time_factor() torch:set_condition(torch_cond) db.condition_by_id[torch:id()] = torch_cond set_torch_light() if torch_cond < 0.01 then if is_torch_allowed then send_tip("Фонарь:", "Села батарея.") end
is_torch_allowed = false torch:switch_torch(false) status = false torch:set_torch_color_animator("empty") event("actor_torch_update"):unregister(update) end end end
function set_torch_light() if is_need_change_color then local torch_cond = torch:condition() local new_color = vector():set(color.x, color.y, color.z) new_color:mul(torch_cond) torch:set_torch_color(new_color)
1) Подскажите есть где нибудь справочник по object_flags? Или подскажите почему у спейсрестрикторов они разные и при этом он (рестриктор) может быть и аномалией и переходом и рестриктором, а главное имеет ли значение какой и object_flags присваивать тому или иному рестриктору (restrictor_type, shape0:type)
2) И есть ли разница в restrictor_type, если = 0 или = 3 надо прописать логику, то от чего отталкиваться при выборе restrictor_type
лучше game.graph и all.spawn через AIwrapper собрать
Лучше пользоваться нормальным СДК и официальным xrAI. KupuJLJL25, не обольщайся, одним скриптом здесь не обошлось. гаснущий фонарь в ЛВО сделан при помощи функций, которые были восстановлены/добавлены через движок. Поэтому без папки bin от ЛВО, тебе вряд ли получится сделать аналогичное.
Цитатаins33 ()
Подскажите есть где нибудь справочник по object_flags?
in - это понятное дело куда входить не надо. out - откуда не надо выходить, но таких в природе не встречается. Отличие default (0,1,2) от "просто" (3,4,5) понять сложно. Рестрикторы с default вроде где-то там регистрируются, но зачем - я не знаю. Может они действуют на всех, потому и default. 4 и 5 тоже нигде не встречаются.
Видно, что 0 и 3 - по идее одно и то же - просто зона, а не рестриктор (ограничитель). В игре они используются вроде как для одних и тех-же объектов. Однако, по моим ощущениям eRestrictorTypeNone (3) игнорируется игрой вообще, в то время как eDefaultRestrictorTypeNone (0) для чего-то может использоваться (что собственно и может вызывать проблемы). Как именно используется - этого я не знаю.
Ребят ,у меня что-то с логикой случилось.Короче я хочу сделать магнитофон который можно включить через кнопку.Логику кнопки я сделал ,а вот с магнитофоном проблемы.Так вот ,кто-нибудь может показать примерную логику для него.Чтоб музыка играла и если забрать инфопоршень она тут же выключится.
Добавлено (11.04.2014, 15:24) --------------------------------------------- Короче я хочу сделать магнитофон который можно включить через кнопку.Логику кнопки я сделал ,а вот с магнитофоном проблемы.Так вот ,кто-нибудь может показать примерную логику для него.Чтоб музыка играла и если забрать инфопоршень она тут же выключится.
От куда такое лентяйство? Неужели так трудно прочитать те несчастные четыре страницы по логике на вики, раз уже ей занялся? Есть параметр on_info, которые позволяет осуществить даже безусловный (!) переход на другую секцию.
Код
[logic] active = ph_idle
[ph_idle] on_info = {+music_play} ph_sound
[ph_sound] ... on_info = {-music_play} ph_idle
Сообщение отредактировал ColR_iT - Пятница, 11.04.2014, 15:37