Случайная подборка модов
Old Story
4.1
SRP mod
3.9
День одиночки
1.6
Dead City Breakthrough
3.7
Sins of the past. Пролог
3.3
Парадокс: Начало
3.6
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  Wolfstalker
Понедельник, 22.10.2012, 14:58 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

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

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





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


    Архив

    Архив#2
  •   Злобная реклама
    Понедельник, 22.10.2012, 14:58
    Статус:
    Сообщений: 666
    Регистрация: 05.04.2010
    Российская Федерация  ins33
    Суббота, 21.09.2013, 11:51 | Сообщение # 8536
    Dream Reader Mod
    Статус:
    Опытный:
    Сообщений: 2269
    Награды: 1
    Регистрация: 17.01.2012

    Подскажите, как бы без наличия nps заставить эту ф-цию работать?
    dialogs.relocate_moneys(npc, all_money_actor, "out")
    Проблема в том, что происходит абстрактное ограбление, без участия нпс, и при таком варианте использования:
    Код
    function money_out(actor, nps)  
    local actor = db.actor
    all_money_actor = actor:money()
    if actor and npc then
    dialogs.relocate_moneys(npc, all_money_actor, "out")
    end
    end

    происходит вылет: attempt to index local 'npc' (a nil value)
      Злобная реклама
    Суббота, 21.09.2013, 11:51
    Статус:
    Сообщений: 666
    Регистрация: 17.01.2012
    Украина  FantomICW
    Суббота, 21.09.2013, 11:56 | Сообщение # 8537
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    BeeRsek, да, указывается название схемы. Схема должна быть добавлена в таблицу theme в sound_theme.script, если говорить о ТЧ:
    Код
    theme = {
       -- погода
       weather = {    exec = sound_theme.weather_class,   
          types = {weather_bad    = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},
             weather_good    = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}} }},

       -- состояния тела
       state = {    exec = sound_theme.combat_class,   
          types = {state    = {min_snd = 60, max_snd = 90, rnd = 25, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}}} },
         

       sleep    = {min_snd = 10, max_snd = 15, rnd = 75, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},

       -- просьба о помощи
       help    = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},
       help_see   = {min_snd = 5, max_snd = 10, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},
       help_see_tutor  = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},
       help_heavy   = {min_snd = 5, max_snd = 10, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},
       help_thanx   = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},
       wounded_psy   = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},
       wounded_psy_shoot    = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},
    ...

    Что касается ЗП, звук нужно регистрировать в configs/misc/script_sound_...ltx. А вот почему не работает, это вопрос другой. Я бы попробовал поставить флажок на соответствующий поинт look.

    Добавлено (21.09.2013, 11:56)
    ---------------------------------------------
    ins33, а тебе именно эта функция нужна? Или выдача денег вообще?
    Сообщение отредактировал FantomICW - Суббота, 21.09.2013, 12:05
      Злобная реклама
    Суббота, 21.09.2013, 11:56
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Украина  stalker-MiX
    Суббота, 21.09.2013, 12:17 | Сообщение # 8538
    Статус:
    Неопытный:
    Сообщений: 534
    Награды: 2
    Регистрация: 20.02.2013

    wanes101,
    Цитата (wanes101)
    Как через скрипт проиграть анимацию, для: нпс, или другого спавн элемента
    Никто анимации не проигрывает скриптом, это будет wacko , для этого есть логика, а еще лучше точки пути, по которым бродят нпс. Зачем себе жизнь усложнять.

    Цитата (wanes101)
    И тоже относительно, как прикрепить объект из секции спавн к кости нпс или к кости друго спавн элемента
    объект, который заспавнился, никто с ним больше ничего не делает, кроме актера, которому все интересно (стреляет по ящиках, по лампочкам, смотрит какая здесь физика). biggrin Нпс этого не делает, они ходят туда сюда и все. Так, что прикрепить объект с спавна невозможно, по крайней мере сейчас.

    Цитата (wanes101)
    К примеру каким образом у неписей к спине прекрепляется оружие
    за это отвечает скрипт state_mgr_weapon.script та STRAP PARAMETERS настройках оружия, возможно еще что-то.

    PS:Здесь лучше привести пример водки, колбасы, хлеба чем оружия.
    Вот такая штука используется н-р в аниме eat_energy
    Код
    into    = { [0]    = {"item_5_draw_0",  {a="energy_drink"}, "item_5_draw_1"} },
    out    = { [0]    = {"item_5_holster_0", {d="energy_drink"}, "item_5_holster_1"} },

    поэтому нпс берут энергетик и пьют, если конечно он есть в рюкзаке, если нет, то воздух пьют.
    Сообщение отредактировал stalker-MiX - Суббота, 21.09.2013, 12:23
      Злобная реклама
    Суббота, 21.09.2013, 12:17
    Статус:
    Сообщений: 666
    Регистрация: 20.02.2013
    Российская Федерация  ins33
    Суббота, 21.09.2013, 12:26 | Сообщение # 8539
    Dream Reader Mod
    Статус:
    Опытный:
    Сообщений: 2269
    Награды: 1
    Регистрация: 17.01.2012

    FantomICW, Без разницы, главное отобрать все деньги у гг рестриктором.
    BeeRsek И не забывай, что звук должен быть nps_talking.
      Злобная реклама
    Суббота, 21.09.2013, 12:26
    Статус:
    Сообщений: 666
    Регистрация: 17.01.2012
    Украина  FantomICW
    Суббота, 21.09.2013, 13:13 | Сообщение # 8540
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    ins33, в этом случае могу посоветовать глянуть на алгоритм забирания денег у ГГ в ЧН, когда ГГ грабят бандиты в подвале барахолки.
    Проделано это через логику, то есть рестрикторы. Сначала ГГ попадает в рестриктор configs/scripts/garbage/gar_space_restrictor_ambush_door.ltx, в котором выдается инфопорция gar_story_came_to_ambush_door. Тогда срабатывает рестриктор gar_space_restrictor_fang_pda_cellar.ltx:

    Обрати внимание, в секции [sr_idle@unconscious_talk_4_time] задействована некая функция:
    Код
    =take_money(all)

    Да, это то, что нам нужно. Полное забирание денег у ГГ. А если функция вызывается через логику, значит находится в xr_effects.script. Да, она там действительно есть:
    Код
    function take_money(actor, npc, p)
       local num = p[1]
       if num == "all" or db.actor:money() < num then
        num = db.actor:money()
       end
       db.actor:give_money(-num)
       game_stats.money_quest_update(-num)
       xr_statistic.inc_spent_money_counter(num)
       news_manager.relocate_money(db.actor, "out", num)
    end

    Итого, через скрипт будет вызываться как-то так:
    Код
    xr_effects.take_money(db.actor, nil, {all})

    А через логику, как и в ЧНовском рестрикторе:
    Код
    =take_money(all)

    Добавлено (21.09.2013, 13:13)
    ---------------------------------------------
    Забыл добавить. В ЗП и ТЧ функции take_money нету, нужно добавить в xr_effects.script.

    Сообщение отредактировал FantomICW - Суббота, 21.09.2013, 13:08
      Злобная реклама
    Суббота, 21.09.2013, 13:13
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Украина  stalker-MiX
    Суббота, 21.09.2013, 13:21 | Сообщение # 8541
    Статус:
    Неопытный:
    Сообщений: 534
    Награды: 2
    Регистрация: 20.02.2013

    FantomICW, зачем так сложно.
    лучше
    Код
    function money_out(actor, object)
    local actor = db.actor
    local all_money_actor = actor:money()
    db.actor:give_money(-all_money_actor)
    news_manager.relocate_money(db.actor, "out", all_money_actor)
    end



    %=money_out% - у рестрикторе

    *news_manager.relocate_money(db.actor, "out", all_money_actor) - на всех сталкерах
    Сообщение отредактировал stalker-MiX - Суббота, 21.09.2013, 14:12
      Злобная реклама
    Суббота, 21.09.2013, 13:21
    Статус:
    Сообщений: 666
    Регистрация: 20.02.2013
    Российская Федерация  saxar
    Суббота, 21.09.2013, 13:23 | Сообщение # 8542
    Статус:
    Бывалый:
    Сообщений: 801
    Награды: 2
    Регистрация: 17.10.2012

    Помогите перегнать модельку крысы из тч в зп.Плиз.
      Злобная реклама
    Суббота, 21.09.2013, 13:23
    Статус:
    Сообщений: 666
    Регистрация: 17.10.2012
    Российская Федерация  vyatkin
    Суббота, 21.09.2013, 13:56 | Сообщение # 8543
    АЛТАЙ
    Статус:
    Опытный:
    Сообщений: 2944
    Награды: 5
    Регистрация: 27.06.2012

    saxar, а погуглить? никак? http://rghost.net/48877404
      Злобная реклама
    Суббота, 21.09.2013, 13:56
    Статус:
    Сообщений: 666
    Регистрация: 27.06.2012
    Российская Федерация  saxar
    Суббота, 21.09.2013, 14:02 | Сообщение # 8544
    Статус:
    Бывалый:
    Сообщений: 801
    Награды: 2
    Регистрация: 17.10.2012

    vyatkin, гуглил и яндексил)Не нашел dry

    Добавлено (21.09.2013, 14:02)
    ---------------------------------------------
    vyatkin, мне нужна крыса поменьше smile

      Злобная реклама
    Суббота, 21.09.2013, 14:02
    Статус:
    Сообщений: 666
    Регистрация: 17.10.2012
    Хорватия  Потенциал
    Суббота, 21.09.2013, 14:25 | Сообщение # 8545
    Художник
    Статус:
    Опытный:
    Сообщений: 2038
    Награды: 7
    Регистрация: 09.02.2013

    Какая текстура отвечает за окно обыска трупа?
      Злобная реклама
    Суббота, 21.09.2013, 14:25
    Статус:
    Сообщений: 666
    Регистрация: 09.02.2013
    Российская Федерация  R0D23
    Суббота, 21.09.2013, 14:27 | Сообщение # 8546
    Мертвый Путь 3
    Статус:
    Опытный:
    Сообщений: 1491
    Награды: 1
    Регистрация: 23.06.2013

    Цитата (Потенциал)
    Какая текстура отвечает за окно обыска трупа?

    а платформа?
      Злобная реклама
    Суббота, 21.09.2013, 14:27
    Статус:
    Сообщений: 666
    Регистрация: 23.06.2013
    Российская Федерация  ins33
    Суббота, 21.09.2013, 14:47 | Сообщение # 8547
    Dream Reader Mod
    Статус:
    Опытный:
    Сообщений: 2269
    Награды: 1
    Регистрация: 17.01.2012

    FantomICW, СПС, для простого кидка её стоит сократить до
    Код
    function take_money(actor, npc, p)
        local num = p[1]
        if num == "all" or db.actor:money() < num then
         num = db.actor:money()
        end
        db.actor:give_money(-num)
    end

    stalker-MiX, СПС, сложность тут оправдана, т.к. есть возможность забирать определённую сумму.
    Код
    =take_money(number)
    Но в отличае от твоего варианта, потеряна возможность вызова из скрипта.

    В итоге есть 2 варианта, первый для вызова из логики, второй из скрипта.

    Народ, подскажите, как бы отловить машину в рестрикторе, или что-то типа того. Пока не могу придумать, как реализовать квест пригнать машину, а точнее отследить выполнение условия.
    П.С. Работаю в ТЧ.
      Злобная реклама
    Суббота, 21.09.2013, 14:47
    Статус:
    Сообщений: 666
    Регистрация: 17.01.2012
    Российская Федерация  saxar
    Суббота, 21.09.2013, 15:24 | Сообщение # 8548
    Статус:
    Бывалый:
    Сообщений: 801
    Награды: 2
    Регистрация: 17.10.2012

    ins33, помоги пожалуйста
      Злобная реклама
    Суббота, 21.09.2013, 15:24
    Статус:
    Сообщений: 666
    Регистрация: 17.10.2012
    Российская Федерация  Корн
    Суббота, 21.09.2013, 15:26 | Сообщение # 8549
    Статус:
    Отмычка:
    Сообщений: 141
    Награды: 2
    Регистрация: 25.07.2012

    Всем доброго времени суток.
    Прочитал это, погуглил ещё, но так и не понял какую логику надо задавать спейс рестиктору, дабы при попадании ГГ в этот спейс рестиктор, аномалии, что находятся внутри него активировались. Это возможно?
      Злобная реклама
    Суббота, 21.09.2013, 15:26
    Статус:
    Сообщений: 666
    Регистрация: 25.07.2012
    Российская Федерация  ins33
    Суббота, 21.09.2013, 15:55 | Сообщение # 8550
    Dream Reader Mod
    Статус:
    Опытный:
    Сообщений: 2269
    Награды: 1
    Регистрация: 17.01.2012

    saxar, Я с сдк не очень. Плюс там вроде анимки разные.
    Корн, Аномалия, это своеобразный спейсрестриктор, и его активировать не надо. Похоже ты просто хочешь заспавнить аномалию, посмотри, как это сделано в оригинале.
    А если ты хочешь нанести хит при входе в спейсрестриктор, то используй схему [sr_idle] с проверкой on_actor_inside = %=функция_нанесения_хита%
      Злобная реклама
    Суббота, 21.09.2013, 15:55
    Статус:
    Сообщений: 666
    Регистрация: 17.01.2012
    Поиск: