В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Люди добрые, объясните мне тупому как создать таймер в ТЧ, по истечении которого происходит переключение функции? 3 день мучаюсь над вопросом, ничего не получается, таймер не работает.
Mel, Покажи, что у тебя получилось написать на данный момент.
ColR_iT, Там где их считает se_respavn.script У меня трабла с респавном, вместо новичков спавнятся чновциы, вот и решил, что это из-за stalker_novich = number.
local hud = get_hud() local t = 0 local time = time_global() function uron_weak() db.actor.health = -0.0001 if hud:GetCustomStatic("uron") == nil then hud:AddCustomStatic("uron", true):wnd():SetColor(GetARGB(255,0,255,0)) if t < time then t = time + 10 uron_average() end end end
function uron_average() db.actor.health = -0.0003 if hud == nil then hud:RemoveCustomStatic("uron") hud:AddCustomStatic("uron", true):wnd():SetColor(GetARGB(255,255,255,0)) end end
Добавлено (17.03.2014, 18:26) --------------------------------------------- Статик выводится, здоровье убавляется. А с таймером никак.
Mel, У тебя трабла в том, что ты не там поставил end: *(GetARGB(255,0,255,0)) end if t < time then Но даже это не будет работать, как ты планировал. Тебе надо из таймера вызывать ф-ию, где будет наноситься хит и смена худа.
Код
function uron_weak() local t = 0 local time = time_global() if t < time then t = time + 10 this.uron_average() end end
Кто знает, подскажите пожалуйста, в каких единицах измеряется direction (направление взгляда) в ТЧ?
Добавлено (17.03.2014, 23:18) --------------------------------------------- Я вообще не пойму, три значения для дирекции!? Кто может описать как в сталкере вообще эта дирекция расчитывается и можно ли каким нибудь образов преобразовать дирекцию в градусы?
Сообщение отредактировал Graff46 - Понедельник, 17.03.2014, 23:08
Подскажите, какой функцией можно получить сытость ГГ?
В ТЧ никак.
ЦитатаGraff46 ()
Кто знает, подскажите пожалуйста, в каких единицах измеряется direction (направление взгляда) в ТЧ?
Параметр direction в all.spawn он задаётся в радианах для каждой коориднаты в отдельности. 1 градус = ≈ 0.01745329 радиан. Если ты говоришь о параметре set_actor_direction, то он принимает азимутальный угол в тех же радианах, вычисляется он при помощи функции getH класса vector, т.е. применяется он для векторов. Применять следующим образом:
Код
local dir = vector():set(X,Y,Z) db.actor:set_actor_direction(dir:getH())
Где X, Y, Z: 0,0,0 - происходит разворот игрока строго на север; 1,0,0 - на запад; -1,0,0 - на восток; 0,0,-1 - на юг; 1,0,-1 - на юго-запад; -1,0,1 - северо-восток; 1,0,1 - северо-запад; -1,0,-1 - юго-восток.
Сообщение отредактировал ColR_iT - Вторник, 18.03.2014, 01:02
ins33, благодарю. Осталось понять, почему таймер при запуске срабатывает мгновенно. Сначала думал, что время указывается в миллисекундах и пробовал также
Код
t = time + 10000
но все равно срабатывает мгновенно.
Сообщение отредактировал Mel - Вторник, 18.03.2014, 09:42
Mel, Да в миллисекундах. local time = time_global() -- получаем игровое время if t < time then -- если t меньше игрового времени то t = time + 10 -- t -- = игровое время +10И this.uron_average() -- действие. Как видишь, при старте таймера, в любом случае 0 < time_global() Если нужна задержка, почитай >>это<< Тебе нужны первые 3 ф-ии:
local time_a -- Время таймера local rest_time_a = 0 -- Остаток local time = time_global()
function update() -- на апдейт дельта. this.timer() end
function start_timer() --/ запускаем таймер из диалога, поршня или, как угодно. time_a = time_global() + 6*100 --/ взводим таймер 1000 = 1 сек. 60000 = 1 мин end
function timer() -- update if time_a == nil then if rest_time_a ~= 0 then time_a = time_global() + rest_time_a -- прибавляем к глобальному остаток end else rest_time_a = time_a-time_global() -- определяем остаток? не понял зачем, вроде эта инфа уже есть! if time_a < time_global() then -- если таймер меньше глобального то действие time_a = time + number -- перезапустим таймер rest_time_a = 0 -- Это закомментируй, если сработает однократно. end end end
Честно говоря, ты меня не много запутал с таймером, не очень понятно, что ты хочешь получить в результате. А точнее, для чего использовать.
ins33, таймер запускается правильно, при наличии инфопорции "start", запускается функция с таймером. Но таймер срабатывает мгновенно и переключение на следующую функцию идет сразу, а не через 10 секунд. За инфу спасибо, почитаю, постараюсь получше все понять.
Я планирую при заходе в рестриктор запустить функцию с убавлением здоровья и выводом статика на экран. По истечении таймера запускается следующая функция, где уже здоровья убавляется больше и выдается соответствующий статик. Таймер должен работать только если актор находится в рестрикторе, если выходишь оттуда - таймер останавливается, когда заходишь обратно - таймер запускается заново.