В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
TomReeds, что за эффект критического ранения? Где он вызывается? ?
Платформа:ТЧ 1.0004
[spoiler]Эффект критического ранения 1. Создаем файл effect_blood.script и записываем туда следущее: Код Code lite_treshold = 0.05 -- насколько должно уменьшиться здоровье с предыдущего обновления чтоб экран окрасился в красный crit_treshold = 0.30 -- насколько должно уменьшиться здоровье с предыдущего обновления чтоб ГГ начало шатать drop_item_on_crit_prob = 0.20 -- вероятность того что ГГ выронит оружие effector_power_coeff = 0.7 prev_health = -1 chk_h_t = 0
function wounded_pp_update() if (chk_h_t or 0) < time_global() then chk_h_t = time_global()+1000 if prev_health > (db.actor.health + lite_treshold) then level.add_pp_effector("fire_hit.ppe", 2011, false) local effector_power = (prev_health - db.actor.health)*100*effector_power_coeff level.set_pp_effector_factor(2011, effector_power) if prev_health > db.actor.health + crit_treshold then level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "") local snd_obj = xr_sound.get_safe_sound_object([[actor\pain_3]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) if math.random() < drop_item_on_crit_prob then local active_item = db.actor:active_item() if active_item and active_item:section() ~= "bolt" and active_item:section()~= "wpn_knife" then db.actor:drop_item(active_item) end end end end prev_health = db.actor.health end end
2. Далее открываем bind_stalker.script: после строчек: Код Code function actor_binder:update(delta) object_binder.update(self, delta) local time = time_global() game_stats.update (delta, self.object)
пишем: effect_blood.wounded_pp_update()
[
Добавлено (02.07.2014, 20:41) --------------------------------------------- Как исправить вылет при разбивании металлического ящика?Платформа:ТЧ 1.0004 Лог вылета: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...- shadow of chernobyl\gamedata\scripts\xr_box.script:112: attempt to index field '?' (a nil value)
Сообщение отредактировал NGB_NaGiBaToR - Среда, 02.07.2014, 22:03
А можно чуть подробнее об этих наблюдениях? Потому как сейчас это просто слова. Имена любых переменных могут содержать латинские буквы любого регистра, цифры и знак подчёркивания, и должны начинаться на латинскую букву или знак подчёркивания. Это международный общепринятый формат именования переменных и не использовать в них цифры нет никакого основания.
local gameDefficulty = get_console():get_string("g_game_difficulty") if gameDefficulty == "gd_master" then --# Запускаем эффект end
А вообще, если захочется выполнить разное действие в зависимости от сложности игры, то у меня завалялся по этому поводу вот такой скриптик:
Код
local gameDefficultyes = { gd_novice = function ()--[[то, что произойдёт на уровне "новичок"]] end, gd_stalker = function ()--[[то, что произойдёт на уровне "сталкер"]] end, gd_veteran = function ()--[[то, что произойдёт на уровне "ветеран"]] end, gd_master = function ()--[[то, что произойдёт на уровне "мастер"]] end, } local gameDefficulty = get_console():get_string("g_game_difficulty") gameDefficultyes[gameDefficulty]()
Вот проверка на уровень сложности мастер:Кодlocal gameDefficulty = get_console():get_string("g_game_difficulty") if gameDefficulty == "gd_master" then --# Запускаем эффект end А вообще, если захочется выполнить разное действие в зависимости от сложности игры, то у меня завалялся по этому поводу вот такой скриптик:Кодlocal gameDefficultyes = { gd_novice = function ()--[[то, что произойдёт на уровне "новичок"]] end, gd_stalker = function ()--[[то, что произойдёт на уровне "сталкер"]] end, gd_veteran = function ()--[[то, что произойдёт на уровне "ветеран"]] end, gd_master = function ()--[[то, что произойдёт на уровне "мастер"]] end, } local gameDefficulty = get_console():get_string("g_game_difficulty") gameDefficultyes[gameDefficulty]()
Люди вы меня запутали конкретно Эта аномалия как бы "живая" ,ей можно управлять?
Вот то ,что вы мне дали: [5830] ; cse_abstract properties section_name = fireball_electric_zone name = lx8_fireball_electric_zone position = -50.2980766296387,-20.165922164917,67.9707717895508 direction = 0.000507000018842518,-0.010584999807179,-0.0224559996277094
saxar, аномалией нельзя управлять. Ей можно задать точки, по которым она будет как бы двигаться. Точки записываются в .anm файл. По сути, аномалия не двигается, а появляется в указанной точке на заданный промежуток времени. Если все сделать нормально, то в игре это будет выглядеть как будто аномалия летает.