Случайная подборка модов
Золотой Обоз 2
3.0
Зона поражения
4.1
Призраки прошлого
3.2
Реборн: Двойники - «Исток»
3.1
Возвращение
3.0
Sleep Of Reason - История Журналиста
2.1
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Поиск: