Случайная подборка модов
День одиночки
1.6
Закон Дегтярева
3.5
Sleep Of Reason - Zulus Story 0.5
2.4
Как вступить в "Долг"?
3.9
Золотой Шар. Завершение
3.9
История Борова
3.5
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  А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
    Поиск: