В данной теме вы можете задавать любые вопросы касательно 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 - содержит секции конфигов уникального оружия и костюмов.
Пацаны, пацаны, пацаны! Тут это! короче, над оружие нормально в руки поставить XD Руки сами по себе нормально отображаются, все анимки есть, но оружие лежит боком сверху, повернуто по оси ствола на 90 градусов так, что рукоять слева лежит. Чо де смотреть?
[wpn_g36c]:identity_immunities,weapon_probability,default_weapon_params - что значат все эти строки?
Сообщение отредактировал Tankodrom - Суббота, 09.12.2017, 23:16
Пацаны, пацаны, пацаны! Тут это! короче, над оружие нормально в руки поставить XD Руки сами по себе нормально отображаются, все анимки есть, но оружие лежит боком сверху, повернуто по оси ствола на 90 градусов так, что рукоять слева лежит. Чо де смотреть?
Цитатаalex5773 ()
Настроить прогой configurator_290711.
Или воспользоваться движковой фичей hud_adj_mode
Сообщение отредактировал Jargon - Воскресенье, 10.12.2017, 12:51
Родители. Цитата NEO () Пацаны, пацаны, пацаны! Тут это! короче, над оружие нормально в руки поставить XD Руки сами по себе нормально отображаются, все анимки есть, но оружие лежит боком сверху, повернуто по оси ствола на 90 градусов так, что рукоять слева лежит. Чо де смотреть?
Как ни странно - это именно то, что я и хотел до вас донести.
ЦитатаNEO ()
ЧН 1.5.10 разумеется
В этой версии, судя по исходникам, эти параметры материала тоже работают.
ЦитатаGrelka ()
простите, я ничего не понял
Ну а что тут не понятно? Вы создали звуковой объект, запустили его воспроизведение, а потом в любое время можете проверить проигрывается он или уже нет.
local sound_obj = nil function actor_on_weapon_jammed() if (sound_obj ~= nil) and (not sound_obj:playing()) then if (math.random(1,100) > 50 and db.actor:character_community() == "actor_stalker") then sound_obj = sound_object("cutscenes\\stalker_"..math.random(1,7)) elseif db.actor:character_community() == "actor_bandit" then ... end sound_obj:play(db.actor,0,sound_object.s2d) end end
ЦитатаGrelka ()
нет, мне нужны подобные интервали не только для этого скрипта, к примеру нужны интервалы в 5 минут, лучше подскажите как вы хотели сделать до этого
В этом случае нет необходимости придумывать новые таймеры их уже достаточно придумано в разнообразных модах: AMK, SGM, etc.
Сообщение отредактировал denis2000 - Воскресенье, 10.12.2017, 12:43
В этом случае нет необходимости придумывать новые таймеры их уже достаточно придумано в разнообразных модах: AMK, SGM, etc.
так а как сделать ?
как наложить ваш код
Код
if (s_time ~= nil and game.get_game_time():diffSec(s_time) > 2.6*level.get_time_factor()) or (s_time == nil) then s_time = game.get_game_time() ****основной код**** end
на мой
Код
function actor_on_weapon_jammed() if (math.random(1,100) > 50 and db.actor:character_community() == "actor_stalker") then sound_object("cutscenes\\stalker_"..math.random(1,7)):play(db.actor,0,sound_object.s2d) elseif db.actor:character_community() == "actor_bandit" then sound_object("cutscenes\\bandit_"..math.random(1,7)):play(db.actor,0,sound_object.s2d) elseif db.actor:character_community() == "actor_dolg" then sound_object("cutscenes\\dolg_"..math.random(1,6)):play(db.actor,0,sound_object.s2d) elseif db.actor:character_community() == "actor_freedom" then sound_object("cutscenes\\freedom_"..math.random(1,5)):play(db.actor,0,sound_object.s2d) elseif db.actor:character_community() == "actor_csky" then sound_object("cutscenes\\csky_"..math.random(1,4)):play(db.actor,0,sound_object.s2d) elseif db.actor:character_community() == "actor_ecolog" then sound_object("cutscenes\\ecolog_"..math.random(1,5)):play(db.actor,0,sound_object.s2d) elseif db.actor:character_community() == "actor_killer" then sound_object("cutscenes\\killer_"..math.random(1,4)):play(db.actor,0,sound_object.s2d) elseif db.actor:character_community() == "actor_army" then sound_object("cutscenes\\army_"..math.random(1,4)):play(db.actor,0,sound_object.s2d) end end
function on_game_start() RegisterScriptCallback("actor_on_weapon_jammed", actor_on_weapon_jammed) end
Подскажите пожалуйста, в OGF Viewer'е при загрузке модели в строке состояния пишет вот это
И на этом прога зависает, и так со многими. Модель битая?
Полагаю полигонаж запредельный, либо ошибки в геометрии которые прога не умеет переваривать Советую не пользоваться кустарными прогами, а поставить сдк и установить какой-либо 3д редактор начиная с milkshape заканчивая Autodesk Maya и Max'ом...
Вставить вместо строки "****основной код****" свой.
у меня вылетает при запуске когда так делаю
Цитатаdenis2000 ()
Вытащить скрипты таймеров из них и вставить в свой мод. Ну или найти уже адаптированные таймеры.
нашёл, не знаю как адаптировать
Код
local timer = time_global() local use_cooking = false local item = nil local pre_timer = nil
function on_game_start() RegisterScriptCallback("actor_on_item_use",item_use) end
function item_use(obj) if (obj:section() == "matches") then obj:set_remaining_uses(obj:get_remaining_uses()+1) campfire_on(obj) end end
-- Chance function rainy_is() local rain = level.rain_factor() if (rain ~= nil) and (rain > 0 and rain < 0.5) then local chance = math.random(1,2) return chance elseif (rain > 0.5) then local chance = math.random(1,3) -- Chance of turning on 1\3 return chance else local chance = 1 return chance end end
function a_timer() pre_timer = nil end
function s_timer() pre_timer = 1 local iTimer = time_global() + 30000 -- timer for save-scam blocking
local function chk_timer() return time_global() > iTimer end
level.add_call(chk_timer, a_timer) end
function campfire_on(matches) for i=1,65534 do local s = alife():object(i) if s then local o = level.object_by_id(s.id) if o then local cf = o:get_campfire() if cf and o:position():distance_to(db.actor:position()) < 1.5 then
local flist = getFS():file_list_open_ex("$game_saves$", bit_or(FS.FS_ListFiles,FS.FS_RootOnly),"*".. ui_load_dialog.saved_game_extension) local f_cnt = flist and flist:Size() or 0
local inc = 0 if (f_cnt > 0) then flist:Sort(FS.FS_sort_by_modif_down)
for it=0, f_cnt-1 do local file_name = flist:GetAt(it):NameFull():sub(0,-6):lower()
-- grab last modified quicksave increment count local d = tonumber( string.match(file_name,"campfire_autosave(%d+)") ) if (d) then inc = d break end end end
inc = inc >= axr_main.config:r_value("mm_options","quicksave_cnt",2,5) and 1 or inc + 1 if (pre_timer == nil) then get_console():execute("save campfire_autosave"..inc) s_timer() end
if not (cf:is_on()) then if (rainy_is() == 1) then level.add_pp_effector("surge_fade.ppe", 11, false) local snd_obj = sound_object("interface\\inv_matches") snd_obj:play(db.actor,0,sound_object.s2d) xr_sound.set_sound_play(db.actor:id(),"inv_matches") matches:set_remaining_uses(matches:get_remaining_uses()-1) cf:turn_on() level.change_game_time(0,0,5) break else matches:set_remaining_uses(matches:get_remaining_uses()-1) local text = game.translate_string("st_fail") SetHudMsg(text,3) end end end end end end end
в параметрах каждого предмета который игрок может взять в инвентарь есть 4 параметра отвечающие за иконку: inv_grid_width = 3 ;количество клеток по горизонтали которые будет занимать предмет в инвентаре inv_grid_height = 1 ;количество клеток по вертикали которые будет занимать предмет в инвентаре ;далее идут параметры вычисления нулевого пикселя иконки из файла текстуры. inv_grid_x = 6 ;координата по горизонтали в gamedata\textures\ui\ui_icon_equipment.dds inv_grid_y = 1 ;координата по вертикали в gamedata\textures\ui\ui_icon_equipment.dds для упрощения работы с иконками есть отличная программа S.T.A.L.K.E.R. Icon Editor, так же можно вычислить эту координату в любом графическом редакторе выставив сетку на пиксели так как вычисление идет по пикселям.