Случайная подборка модов
PCFM COP Addon
3.7
Ночь перед Рождеством
3.3
Old Episodes. Episode 2. War of Zone.
3.1
Shoker Weapon Mod 2.1
4.1
Пропавшая экспедиция
2.4
Время Перемен 2.5
4.0
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  Аdmin
Воскресенье, 03.11.2013, 19:36 | Сообщение # 1
Статус:
Опытный:
Сообщений: 1538
Награды: 11
Регистрация: 28.03.2011

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

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





    У кого есть желание, создать FAQ по основным вопросам моддинга - обращаемся в ЛС.


    Архив

    Архив#2
  •   Злобная реклама
    Воскресенье, 03.11.2013, 19:36
    Статус:
    Сообщений: 666
    Регистрация: 28.03.2011
    Беларусь  UX-3000
    Суббота, 01.03.2014, 21:30 | Сообщение # 1966
    Статус:
    Бывалый:
    Сообщений: 623
    Награды: 5
    Регистрация: 07.06.2013

    FantomICW, ты не против если я попробую создать рабочую функцию с перебором типов артов, но не для шок-удара, а для рюкзака (гибрид своей функции и вашей)? Ну попробую, по крайней мере. По идее это не сложно будет.

    Вызываю в бинд-сталкере функцию (инклудов там очень много от разных допов). Просто значительно модифицировал вот этот скрипт. Спросил предварительно у автора (на АМК-форуме ранее):

    swm_art_rad.art_rad_main()

    Ну это пока просто набор функций function art_rad_main()
    if db.actor:object("af_antigravi") then ..... для каждого вида арта,
    ну а возможность оптимизировать целый список в пару строчек, согласись,
    стоит затраченного времени, думаю.
    Сообщение отредактировал UX-3000 - Суббота, 01.03.2014, 21:32
      Злобная реклама
    Суббота, 01.03.2014, 21:30
    Статус:
    Сообщений: 666
    Регистрация: 07.06.2013
    Украина  FantomICW
    Суббота, 01.03.2014, 21:34 | Сообщение # 1967
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    UX-3000, например, вызов для списка артов одного типа можно было бы как-то так сократить:
    Код
    --/Эффект при поднятии артефакта  
    function on_item_take(obj)  
    local art_hit_gravi_table = {
         [1] = "af_cristall_flower",
         [2] = "af_night_star",  
         [3] = "af_gravi",
         [4] = "af_medusa",
         [5] = "af_vyvert",  
         [6] = "af_gold_fish"
    }
         for k,v in pairs(art_hit_gravi_table) do
          if db.actor:object(v) then
           this.art_hit_gravitational()  
       end
      end
    end

    Добавлено (01.03.2014, 21:34)
    ---------------------------------------------

    Цитата UX-3000 ()
    Вызываю в бинд-сталкере

    Конкретней, пожалуйста. В какой функции? Апдейт?
    Цитата UX-3000 ()
    ты не против если я попробую создать рабочую функцию

    Мне чего против быть-то?))
      Злобная реклама
    Суббота, 01.03.2014, 21:34
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Беларусь  UX-3000
    Суббота, 01.03.2014, 21:43 | Сообщение # 1968
    Статус:
    Бывалый:
    Сообщений: 623
    Награды: 5
    Регистрация: 07.06.2013

    В Послушнике в бинд-сталкере вызывается вот тут:

    function actor_binder:on_item_take (obj)
    ......
    treasure_manager.get_treasure_manager():on_item_take(obj:id())
    ins_arts.on_item_take(obj)
    end

    у меня здесь:
    function actor_binder:update(delta)
    ................
    --' SWM COP
    swm_art_rad.art_rad_main()
    --' SWM COP

    Добавлено (01.03.2014, 21:41)
    ---------------------------------------------
    Т.е. вызов разный, получается.....

    Добавлено (01.03.2014, 21:43)
    ---------------------------------------------
    Потому что у Вас апдейт на подбор арта, а у нас - на нахождение в рюкзаке актора.

      Злобная реклама
    Суббота, 01.03.2014, 21:43
    Статус:
    Сообщений: 666
    Регистрация: 07.06.2013
    Украина  FantomICW
    Суббота, 01.03.2014, 21:44 | Сообщение # 1969
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    UX-3000, ну, все логично, понятно, почему у тебя постоянно эффекты воспроизводятся. У нас стоит коллбек поднятия предмета, а у тебя, в данном случае, - коллбек наличия предмета. Не суй функции на апдейт. Никогда не суй. Если это только не постоянный элемент худа, например. Вызов своей функции переноси на on_item_take, как в СВ. Не забудь об аргументе obj.
      Злобная реклама
    Суббота, 01.03.2014, 21:44
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Беларусь  UX-3000
    Суббота, 01.03.2014, 21:52 | Сообщение # 1970
    Статус:
    Бывалый:
    Сообщений: 623
    Награды: 5
    Регистрация: 07.06.2013

    Попробую сделать компактный вариант скрипта (есть идея сделать удар не через постэффект, а именно как удар в bones руки - где-то видел что-то подобное в моде на отрезание частей тела - там удар ножом наносится в кость (в часть тела мёртвого мутанта - в ногу, в руку и пр.), здесь же можно реализовать настоящий (не фейковый засчёт постэффектов) толчок в руки при подборе арта. Не получится - так хотя бы интересно будет в коде покопаться)). К примеру, взял арт - потерял оружие или детектор или просто замотает.

    Если удастся гибрид этих идей собрать - напишу что получилось в итоге.

    Добавлено (01.03.2014, 21:52)
    ---------------------------------------------
    И спасибо за советы - конечно, многому ещё учиться надо, но лучше учиться на реальном примере.

    Сообщение отредактировал UX-3000 - Суббота, 01.03.2014, 21:51
      Злобная реклама
    Суббота, 01.03.2014, 21:52
    Статус:
    Сообщений: 666
    Регистрация: 07.06.2013
    Украина  FantomICW
    Суббота, 01.03.2014, 21:55 | Сообщение # 1971
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    UX-3000, всегда пожалуйста wink
      Злобная реклама
    Суббота, 01.03.2014, 21:55
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Российская Федерация  Asfagan
    Суббота, 01.03.2014, 21:58 | Сообщение # 1972
    Статус:
    Бывалый:
    Сообщений: 929
    Награды: 12
    Регистрация: 01.02.2014

    FantomICW, чувак выдача оружия для ГГ прошла успешно, а вот сами функции relocate_item_to_actor и relocate_item_from_actor мне непонятны, как именно с ними обращаться?
      Злобная реклама
    Суббота, 01.03.2014, 21:58
    Статус:
    Сообщений: 666
    Регистрация: 01.02.2014
    Беларусь  UX-3000
    Суббота, 01.03.2014, 22:08 | Сообщение # 1973
    Статус:
    Бывалый:
    Сообщений: 623
    Награды: 5
    Регистрация: 07.06.2013

    Может не получиться, потому что у нас звук счётчика Гейгера и радиация играет и накапливается пока вредный арт в рюкзаке и прекращаются, когда его оттуда выкладывают. Т.е. для сообщения то можно однократно сделать вызов, а уже отдельно сделать накопление радиации или через н-ное время снова напомнить о накоплении радиации. Ну в общем подумаю как грамотно сделать всё, чтобы и было удобно и результат был нужный.
      Злобная реклама
    Суббота, 01.03.2014, 22:08
    Статус:
    Сообщений: 666
    Регистрация: 07.06.2013
    Российская Федерация  Asfagan
    Суббота, 01.03.2014, 22:32 | Сообщение # 1974
    Статус:
    Бывалый:
    Сообщений: 929
    Награды: 12
    Регистрация: 01.02.2014

    FantomICW, чувак у меня все получилось! Гг теряет предмет. только функция не relocate_item_from_actor а relocate_item_section_from_actor . Спасибо за помощь happy
      Злобная реклама
    Суббота, 01.03.2014, 22:32
    Статус:
    Сообщений: 666
    Регистрация: 01.02.2014
    Беларусь  UX-3000
    Суббота, 01.03.2014, 22:40 | Сообщение # 1975
    Статус:
    Бывалый:
    Сообщений: 623
    Награды: 5
    Регистрация: 07.06.2013

    Так, а теперь вопрос по звукам....

    local snd = sound_object([[detectors\geiger_8]])
    snd:play_no_feedback(db.actor,sound_object.s2d, 0, vector():set(0, 0, 0), 2.0)

    play_no_feedback - это проигрывание без остановки (зацикливание звука). а как называется однократное проигрывание звука (использовать звук писка ПДА?). Есть у кого-нибудь образец куска кода с однократным писком - сигналом ПДА или название (play_one_time ???)

    Ой. дурак.

    Нашёл этот кусок в динамических новостях (в старой версии 0.1 которая ещё) от VanoSantauri:

    if sound =="news" then
    player=sound_object([[device\pda\pda_tip]]) -- кажись оно))
    elseif sound == "danger" then
    player=sound_object([[device\pda\pda_alarm]])
    elseif sound == nil then
    player=sound_object([[device\pda\pda_tip]])
    end
    Сообщение отредактировал UX-3000 - Суббота, 01.03.2014, 22:48
      Злобная реклама
    Суббота, 01.03.2014, 22:40
    Статус:
    Сообщений: 666
    Регистрация: 07.06.2013
    Украина  FantomICW
    Суббота, 01.03.2014, 23:15 | Сообщение # 1976
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    Asfagan, молодцом! smile

    Добавлено (01.03.2014, 23:15)
    ---------------------------------------------
    Теперь, если детальней, у тебя должно было получится как-то так:

    Код
    function название_функции(first_speaker, second_speaker)
      dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "предмет_1") -- забираем предмет у ГГ
      dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "предмет_2") --отдаем предмет ГГ
    end

    Замечу также, что аргументы first_speaker, second_speaker остаются такими, как есть, почти во всех случаях.
      Злобная реклама
    Суббота, 01.03.2014, 23:15
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Российская Федерация  Asfagan
    Суббота, 01.03.2014, 23:28 | Сообщение # 1977
    Статус:
    Бывалый:
    Сообщений: 929
    Награды: 12
    Регистрация: 01.02.2014

    FantomICW, ты уж не обессудь, но по ходу работы возник еще вопрос: как прописать функцию, чтобы ветка диалог появлялся тогда и только тогда, когда у Гг в инвентаре имеется какой-либо предмет необходимый при взаимной передачи предмета?
      Злобная реклама
    Суббота, 01.03.2014, 23:28
    Статус:
    Сообщений: 666
    Регистрация: 01.02.2014
    Беларусь  UX-3000
    Суббота, 01.03.2014, 23:55 | Сообщение # 1978
    Статус:
    Бывалый:
    Сообщений: 623
    Награды: 5
    Регистрация: 07.06.2013

    FantomICW.... Вроде всё сделал, но вылет словил:



    А скрипт совместил из SWM-AA-Послушника:



    Название скрипта art_rad, в бинде он так записан:



    Добавлено (01.03.2014, 23:55)
    ---------------------------------------------
    И даже непохоже, что дело в названии скрипта (может совпадает что-то?) - пробовал с другим названием, та же самая ошибка.....
    Сообщение отредактировал UX-3000 - Суббота, 01.03.2014, 23:56
      Злобная реклама
    Суббота, 01.03.2014, 23:55
    Статус:
    Сообщений: 666
    Регистрация: 07.06.2013
    Украина  [Karpov_SK]
    Суббота, 01.03.2014, 23:57 | Сообщение # 1979
    Exclusion Zone Mod
    Статус:
    Бывалый:
    Сообщений: 600
    Награды: 12
    Регистрация: 26.08.2013

    Получил вылет. Колдовал с погодой. Помогайте комрады biggrin За мной не заржавеет wink
      Злобная реклама
    Суббота, 01.03.2014, 23:57
    Статус:
    Сообщений: 666
    Регистрация: 26.08.2013
    Беларусь  UX-3000
    Воскресенье, 02.03.2014, 00:00 | Сообщение # 1980
    Статус:
    Бывалый:
    Сообщений: 623
    Награды: 5
    Регистрация: 07.06.2013

    Похоже у тебя не прописан эмбиент подземной локации.... Смотреть надо. Я только по погоде 2-го и 3-го Атмосфира или Смертельной Зоны могу точно сказать - так как работаю на сборках. Нужно видеть папку конфиги или хотя бы файлы настроек погоды.

    Возможно ты новую локу подключал и делал для неё погоду и забыл в эмбиенты записать секцию оных из звуков.

    Я даже догадываюсь какую локу - не подземку для своего мод- Кордона из билдов или не Кордон от Мятежника изменял?)
    Сообщение отредактировал UX-3000 - Воскресенье, 02.03.2014, 00:04
      Злобная реклама
    Воскресенье, 02.03.2014, 00:00
    Статус:
    Сообщений: 666
    Регистрация: 07.06.2013
    Поиск: