Случайная подборка модов
Add-on for S.T.A.L.K.E.R. Beta
3.9
Oblivion Lost Remake 2.0
4.1
Равновесие 2.0
3.6
Припять. Точка отсчета
3.3
Another Zone Mod
4.3
Chernobyl Chronicles
4.2
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  Wolfstalker
Среда, 24.02.2016, 00:25 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга


• Не флудить
• Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там
• В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти




F.A.Q

  Злобная реклама
Среда, 24.02.2016, 00:25
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Российская Федерация  killer_mutants
Четверг, 16.02.2017, 18:42 | Сообщение # 5641
Статус:
Новичок:
Сообщений: 324
Награды: 4
Регистрация: 20.12.2013

Цитата denis2000 ()
Нужно ставить на месте лестницы рестриктор и при попадании в него ГГ проигрывать скриптом нужный звук.

Ясно. Без рестриктора никак значит... А как его поставить?
В модах многим действиям и вещам придают озвучку, там тоже рестрикторы ставят?

Цитата denis2000 ()
Если имеете ввиду что-то кроме стандартного звука шагов по лестнице, то готового решения естественно нет.

Имею в виду, вот например, на Агропроме есть вышка смотровая высоченная недалеко от тоннеля ж/д и если на неё забираться, то звука вообще нет никакого.
  Злобная реклама
Четверг, 16.02.2017, 18:42
Статус:
Сообщений: 666
Регистрация: 20.12.2013
Российская Федерация  denis2000
Четверг, 16.02.2017, 19:14 | Сообщение # 5642
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата tomfoss100 ()
как добавить в ПДА (Зов Припяти) новые пункты меню

Я понимаю, что вы фанат готовых решений которые нужно просто вставить. Но таких решений для вас не будет. Поэтому объясняю на пальцах:
1. Ищите готовый файл с правкой движка - выдача инфопорции с именем нажатого раздела в ПДА.
2. Вносите изменения в вид ПДА добавив две кнопки разделов в файлы pda.xml и pda_16.xml
3. В биндере ГГ bind_stalker.script в функции обработки колбека на получения порций actor_binder:info_callback ловите нажатие кнопки в ПДА, закрываете движковый ПДА и скриптами рисуете свой с необходимой начинкой.


Цитата killer_mutants ()
В модах многим действиям и вещам придают озвучку, там тоже рестрикторы ставят?

По ситуации, где движек знает, что звук нужно проиграть, где скрипты или рестрикторы.
Цитата killer_mutants ()
Имею в виду, вот например, на Агропроме есть вышка смотровая высоченная недалеко от тоннеля ж/д и если на неё забираться, то звука вообще нет никакого.

Ну так с этого нужно начинать было, товарищ разведчик. Вернемся к основам. В файле gamemtl.xr определены пары материалов и звуки их взаимодействия, в частности например у пары materials/asphalt и creatures/actor залдан параметр Step Sounds который и определяет звук который проигрывает движек при перемещении ГГ по этому самому асфальту (material\actor\step\n_default_1). Теперь значит вам нужно определить что за материал используется в этом месте локации и при помощи SDK ShaderEditor проверить и правильно настроить этот параметр.


mmihaill, Пробуйте:
Код
function remove_item_num(actor, npc, p)
    if (p and p[1] and p[2]) == nil then abort("Wrong parameters in function 'remove_item_num'!!!") end
    local item = p[1]
    local num = tonumber(p[2])
    for i = 1,num do
  local obj = db.actor:object(item)
  if obj ~= nil then
   alife():release(alife():object(obj:id()), true)
   news_manager.relocate_item(db.actor, "out", item)
  end
    end
end
Сообщение отредактировал denis2000 - Четверг, 16.02.2017, 19:14
  Злобная реклама
Четверг, 16.02.2017, 19:14
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  LukaMudishchev
Четверг, 16.02.2017, 19:43 | Сообщение # 5643
Статус:
Неопытный:
Сообщений: 402
Награды: 6
Регистрация: 09.02.2015

Цитата denis2000 ()
Нужно ставить на месте лестницы рестриктор и при попадании в него ГГ проигрывать скриптом нужный звук.

Не самое мудрое решение. Рестр поставим, ГГ подойдёт к лестнице и встанет.... подумать на секунд 10, но КАК определить что он по ней лезет наверх или спускается ?
Никак.
А звук шагов между тем, будет проигрываться.
Не, ну может и можно отследить местоположение по координатам, но это уже такой винигрет получится, что лучше и не пытаться это сделать, ради какой-то драной ржавой лесенки. Так что никак нельзя поставить звук на лесенку.
Цитата killer_mutants ()
В модах многим действиям и вещам придают озвучку, там тоже рестрикторы ставят?

Да. Везде ставят рестры. Некоторые отыгрывают звук одноразово, некоторые рандомный звук, некоторые постоянно пиликают.
Иначе никак.
  Злобная реклама
Четверг, 16.02.2017, 19:43
Статус:
Сообщений: 666
Регистрация: 09.02.2015
Российская Федерация  denis2000
Четверг, 16.02.2017, 19:58 | Сообщение # 5644
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата LukaMudishchev ()
Не самое мудрое решение... А звук шагов между тем, будет проигрываться.

А к то вам, на минуточку, сказал, что проигрываться должен звук шагов!? В первоначальной постановке вопроса никаких шагов не было! Я вообще звук сирены предполагал, а вы что подумали?


Цитата _S_k_i_F_ ()
а как их определить?

Через промежуточные переменные определяйте. Напрямую не передать.
Сообщение отредактировал denis2000 - Четверг, 16.02.2017, 19:59
  Злобная реклама
Четверг, 16.02.2017, 19:58
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  Dreyyy
Четверг, 16.02.2017, 21:50 | Сообщение # 5645
Первые Дни Зоны
Статус:
Новичок:
Сообщений: 289
Награды: 3
Регистрация: 18.04.2014

Прям последние два дня сплошные проблемы с SDK... В SDK 0.4 отображаются все нужyые элементы. File - save, Compile - make game... Потом собираю aiwrapper геймграф и спавн. При заходе в игру половину объектов пропадает, вылетов нет. Объясните что делать? Может компилятор другой? Использую готовую локацию...
  Злобная реклама
Четверг, 16.02.2017, 21:50
Статус:
Сообщений: 666
Регистрация: 18.04.2014
Российская Федерация  Demosfen
Четверг, 16.02.2017, 22:08 | Сообщение # 5646
Статус:
Бывалый:
Сообщений: 807
Награды: 5
Регистрация: 01.09.2014

Как создать свой рецепт? (типа варки огненной души из обычной Души, как это было в АМК)
  Злобная реклама
Четверг, 16.02.2017, 22:08
Статус:
Сообщений: 666
Регистрация: 01.09.2014
Российская Федерация  Neptun
Пятница, 17.02.2017, 07:43 | Сообщение # 5647
Связной
Статус:
Бывалый:
Сообщений: 672
Награды: 9
Регистрация: 25.03.2012

Цитата denis2000 ()
mmihaill, Пробуйте:
Код
function remove_item_num(actor, npc, p)
    if (p and p[1] and p[2]) == nil then abort("Wrong parameters in function 'remove_item_num'!!!") end
    local item = p[1]
    local num = tonumber(p[2])
    for i = 1,num do
  local obj = db.actor:object(item)
  if obj ~= nil then
   alife():release(alife():object(obj:id()), true)
   news_manager.relocate_item(db.actor, "out", item)
  end
    end
end

Не вышло. Удаляет только один предмет.
  Злобная реклама
Пятница, 17.02.2017, 07:43
Статус:
Сообщений: 666
Регистрация: 25.03.2012
Российская Федерация  denis2000
Пятница, 17.02.2017, 08:56 | Сообщение # 5648
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

mmihaill,
Код
function remove_item_num(actor, npc, p)
    local item = p[1]
    local num = tonumber(p[2])
    local function remove_object_item(obj)
  if (obj:section() == item) and (num > 0) then
   alife():release(alife():object(obj:id()), true)
   num = num - 1
   news_manager.relocate_item(db.actor, "out", item)
  end
    end
    db.actor:inventory_for_each(remove_object_item)
end
  Злобная реклама
Пятница, 17.02.2017, 08:56
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  tomfoss100
Пятница, 17.02.2017, 10:50 | Сообщение # 5649
Статус:
Зевака:
Сообщений: 25
Награды: 2
Регистрация: 01.07.2016

Цитата denis2000 ()
Я понимаю, что вы фанат готовых решений которые нужно просто вставить


Ну так ясное дело. Зачем же изобретать велосипед, если до тебя его уже сделали? Легче ж найти готовое и в нём разобраться, чем писать с нуля...
  Злобная реклама
Пятница, 17.02.2017, 10:50
Статус:
Сообщений: 666
Регистрация: 01.07.2016
Российская Федерация  kolyan3316
Пятница, 17.02.2017, 13:47 | Сообщение # 5650
Статус:
Зевака:
Сообщений: 12
Награды: 0
Регистрация: 22.05.2016

Привет,я хочу увеличить высоту травы в сталкере ЗП,без улит.Как мне можно это сделать?
  Злобная реклама
Пятница, 17.02.2017, 13:47
Статус:
Сообщений: 666
Регистрация: 22.05.2016
Российская Федерация  killer_mutants
Пятница, 17.02.2017, 15:26 | Сообщение # 5651
Статус:
Новичок:
Сообщений: 324
Награды: 4
Регистрация: 20.12.2013

Цитата denis2000 ()
В файле gamemtl.xr определены пары материалов и звуки их взаимодействия, в частности например у пары materials/asphalt и creatures/actor залдан параметр Step Sounds который и определяет звук который проигрывает движек при перемещении ГГ по этому самому асфальту (material\actor\step\n_default_1).

Понятно, большое спасибо!
Цитата LukaMudishchev ()
А звук шагов между тем, будет проигрываться.
Не, ну может и можно отследить местоположение по координатам, но это уже такой винигрет получится, что лучше и не пытаться это сделать, ради какой-то драной ржавой лесенки. Так что никак нельзя поставить звук на лесенку.

Ясно. Да, вообще-то интересовал именно звук шагов. Выходит, уж очень это сложно. Но информация, которую в ответах узнал, для меня, как минимум, интересна и полезна. Так что благодарю!
=====================

Простой вопрос: я не понимаю, откуда документ af_params берёт текстуры? В нём написано, допустим, что используется для одного из значков свойств артефакта ui_inv_icon_explosion_immunity, но такой текстуры в папке ui нет. Я всю игру распаковал, но не могу её найти.
Тут какой-то подвох?
PS: всё это разбираю в моде ОП-2, хотя тоже самое наблюдал и в прочих проектах по Солянке.
Сообщение отредактировал killer_mutants - Пятница, 17.02.2017, 15:47
  Злобная реклама
Пятница, 17.02.2017, 15:26
Статус:
Сообщений: 666
Регистрация: 20.12.2013
Российская Федерация  Overfirst
Пятница, 17.02.2017, 15:57 | Сообщение # 5652
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

killer_mutants, это элемент, который берется из единого текстурного файла ui_hud.dds, в ui_hud.xml регистрируется идентификатор этого элемента, и ему задаются соответствующие значения: координаты, ширина, высота и т.д.
Код
<texture id="ui_inv_icon_explosion_immunity" x="538" y="150" width="18" height="18" />
  Злобная реклама
Пятница, 17.02.2017, 15:57
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  _МстителЬ_
Пятница, 17.02.2017, 16:27 | Сообщение # 5653
Статус:
Неопытный:
Сообщений: 519
Награды: 8
Регистрация: 24.05.2012

Добрый день.
Такой вот вопрос: какие параметры отвечают за респавн в ЗП?
Например: как сделать так чтобы НПС и мутанты респавнились один раз за два дня игрового времени.
  Злобная реклама
Пятница, 17.02.2017, 16:27
Статус:
Сообщений: 666
Регистрация: 24.05.2012
Российская Федерация  Neptun
Пятница, 17.02.2017, 18:12 | Сообщение # 5654
Связной
Статус:
Бывалый:
Сообщений: 672
Награды: 9
Регистрация: 25.03.2012

Цитата _МстителЬ_ ()
как сделать так чтобы НПС и мутанты респавнились один раз за два дня игрового времени.

А куда они (сквады) будут деваться после этого?
Например, gamedata\configs\scripts\zaton\smart\zat_b28 - здесь происходит респавн снорков после получения инфопорции.
Насчёт просчёта времени. Это дело уже другое, ведь нужно как-то связать с условием респавна. Можно пустить таймеры с выдачей и удалением инфопорций. В общем, дело надо просчитывать. А вообще лучше использовать времена суток: =is_day или =zat_b7_is_night - уже готовые функции, только воткнуть их нужно вместо той инфопорции.
  Злобная реклама
Пятница, 17.02.2017, 18:12
Статус:
Сообщений: 666
Регистрация: 25.03.2012
Российская Федерация  xr_Sanya
Пятница, 17.02.2017, 18:38 | Сообщение # 5655
Статус:
Бывалый:
Сообщений: 876
Награды: 4
Регистрация: 19.08.2015

Всем привет, подскажите в чем может быть причина?
Есть 2 коллбека и 2 файла

RegisterScriptCallback("smart_terrain_on_update", simulation_smart.smart_terrain_on_update)
RegisterScriptCallback("squad_on_update", simulation_squad.squad_on_update)

Файл simulation_smart
Код
function smart_terrain_on_update(smart)
   check_traders(smart)
end
function target_capture(smart, squad)
    printf("squad =%s ", squad:name())
    printf("smart =%s ", smart:name())
end



Файл simulation_squad
Код
function squad_on_update(squad)
    simulation_smart.target_capture(smart, squad)
end


Проблема в том , что squad приходит в функцию нормально, а smart как nil.(сама функция в файле simulation_smart)
Почему smart получается nil?
Сообщение отредактировал xr_Sanya - Пятница, 17.02.2017, 18:42
  Злобная реклама
Пятница, 17.02.2017, 18:38
Статус:
Сообщений: 666
Регистрация: 19.08.2015
Поиск: