Случайная подборка модов
Dead City Breakthrough
3.7
HARDWARMOD - 3.2
4.0
В поисках новой жизни
3.7
Новый Арсенал 4.5
3.7
Autumn Aurora 2
4.1
Апокалипсис
4.0
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  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
    Российская Федерация  Uyman358
    Воскресенье, 14.04.2013, 00:35 | Сообщение # 4876
    Закоулки Правды
    Статус:
    Бывалый:
    Сообщений: 1098
    Награды: 1
    Регистрация: 13.06.2012

    ColR_iT, в игровом варианте где-то метров 300-500.
      Злобная реклама
    Воскресенье, 14.04.2013, 00:35
    Статус:
    Сообщений: 666
    Регистрация: 13.06.2012
    Российская Федерация  Arist
    Воскресенье, 14.04.2013, 00:41 | Сообщение # 4877
    Статус:
    Неопытный:
    Сообщений: 481
    Награды: 1
    Регистрация: 08.07.2012

    ColR_iT, а так неправильно будет Uyman358 сделать:
    Код

    function gen_kill_som(npc, actor)
    local npc = level_object_by_sid(20073)
        if npc and npc:alive() then
        npc:kill(npc)
    end
    local npc = level_object_by_sid(20074)
        if npc and npc:alive() then
        npc:kill(npc)
    end
    local npc = level_object_by_sid(20075)
        if npc and npc:alive() then
        npc:kill(npc)
    end
    local npc = level_object_by_sid(20096)
        if npc and npc:alive() then
        npc:kill(npc)
      end  
    end
      Злобная реклама
    Воскресенье, 14.04.2013, 00:41
    Статус:
    Сообщений: 666
    Регистрация: 08.07.2012
    Хорватия  Потенциал
    Воскресенье, 14.04.2013, 00:59 | Сообщение # 4878
    Художник
    Статус:
    Опытный:
    Сообщений: 2038
    Награды: 7
    Регистрация: 09.02.2013

    При выполнении любого действия в SDK 0.7 у меня выдаёт ошибку. Это как нибудь связанно с тем, что у меня нет установленной ЗП?
      Злобная реклама
    Воскресенье, 14.04.2013, 00:59
    Статус:
    Сообщений: 666
    Регистрация: 09.02.2013
    Российская Федерация  ins33
    Воскресенье, 14.04.2013, 10:39 | Сообщение # 4879
    Dream Reader Mod
    Статус:
    Опытный:
    Сообщений: 2269
    Награды: 1
    Регистрация: 17.01.2012

    Потенциал, Ошибку покажи.
      Злобная реклама
    Воскресенье, 14.04.2013, 10:39
    Статус:
    Сообщений: 666
    Регистрация: 17.01.2012
    Украина  Gun12
    Воскресенье, 14.04.2013, 15:58 | Сообщение # 4880
    Статус:
    Гость:
    Сообщений: 50
    Награды: 0
    Регистрация: 08.07.2012

    Arist
    А если бы нужно было удалять ...дцать НПС, то писал бы метры портянки?
    Не знаю как игра будет смотреть на твой код, но Lua точно обиделась бы smile
    Есть же оператор переменного количества аргументов '...'.
    Хотя эта функция, похоже. вызывается из логики? Но от этого суть дела не меняется. Из логики :
    Код
    function gen_kill_som(npc, actor, p)
          for i = 1, #p do
              local npc = level_object_by_sid(i)
              if npc and npc:alive() then
              npc:kill(npc)
          end
    end
    Из скрипта :
    Код
    function gen_kill_som(...)
          local args = {...}
          for i = 1, #args do
              local npc = level_object_by_sid(i)
              if npc and npc:alive() then
              npc:kill(npc)
          end
    end
    И пользуйтесь для любого количества НПС столько раз, сколько нужно.
    Сообщение отредактировал Gun12 - Воскресенье, 14.04.2013, 15:59
      Злобная реклама
    Воскресенье, 14.04.2013, 15:58
    Статус:
    Сообщений: 666
    Регистрация: 08.07.2012
    Российская Федерация  Sanjaaa
    Воскресенье, 14.04.2013, 16:55 | Сообщение # 4881
    Dark Reaper Souls
    Статус:
    Бывалый:
    Сообщений: 926
    Награды: 6
    Регистрация: 22.08.2012

    поставил на свой мод полоску радиации на худ. он не отображается. раньше отображалось а щас не отображается. несколько раз все проверял ставил заного и ниче не идет. что делать?
      Злобная реклама
    Воскресенье, 14.04.2013, 16:55
    Статус:
    Сообщений: 666
    Регистрация: 22.08.2012
    Украина  DEM
    Воскресенье, 14.04.2013, 17:01 | Сообщение # 4882
    Статус:
    Опытный:
    Сообщений: 1375
    Награды: 3
    Регистрация: 26.08.2012

    Вопрос тем кто хоть чуток ковырял погоду. Почему на полном динамическом освещении влияние hemi_color видно только на воде и стеклянных поверхностях?
      Злобная реклама
    Воскресенье, 14.04.2013, 17:01
    Статус:
    Сообщений: 666
    Регистрация: 26.08.2012
    Российская Федерация  Uyman358
    Воскресенье, 14.04.2013, 17:01 | Сообщение # 4883
    Закоулки Правды
    Статус:
    Бывалый:
    Сообщений: 1098
    Награды: 1
    Регистрация: 13.06.2012

    Gun12, где вставлять стори_иды и писать вместо троеточий в скобках?
      Злобная реклама
    Воскресенье, 14.04.2013, 17:01
    Статус:
    Сообщений: 666
    Регистрация: 13.06.2012
    Украина  Gun12
    Воскресенье, 14.04.2013, 17:46 | Сообщение # 4884
    Статус:
    Гость:
    Сообщений: 50
    Награды: 0
    Регистрация: 08.07.2012

    В первом случае функция должна находиться в xr_effects.script
    И вызывать её как и другие из логики. Напр. :
    Код
    [sr_idle]
    on_timer = 2500 | %=gen_kill_som(20073:20074:20075:20076)%
    Во втором случае функция может находиться где угодно в скриптах, и вызывать нужно из скриптов. Если в модулях, то:
    Код
    имя_файла.gen_kill_som(20073,20074,20075,20076)
    Если в файле _g.script. то :
    Код
    gen_kill_som(20073,20074,20075,20076)

    Но повторю. Я говорю только об оформлении кода, а не о его правильности с точки зрения Сталкера.
    Сообщение отредактировал Gun12 - Воскресенье, 14.04.2013, 17:50
      Злобная реклама
    Воскресенье, 14.04.2013, 17:46
    Статус:
    Сообщений: 666
    Регистрация: 08.07.2012
    Российская Федерация  Uyman358
    Воскресенье, 14.04.2013, 18:37 | Сообщение # 4885
    Закоулки Правды
    Статус:
    Бывалый:
    Сообщений: 1098
    Награды: 1
    Регистрация: 13.06.2012

    Gun12,
    Цитата (Gun12)
    function gen_kill_som(npc, actor, p)
    for i = 1, #p do
    local npc = level_object_by_sid(i)
    if npc and npc:alive() then
    npc:kill(npc)
    end
    end

    вызывал из логики рестриктора:
    Цитата
    [logic]
    active = sr_idle
    [sr_idle]
    on_actor_inside = {+gen_gluhar_sos} %=gen_kill_som(20073:20074:20075:20096)%

      Злобная реклама
    Воскресенье, 14.04.2013, 18:37
    Статус:
    Сообщений: 666
    Регистрация: 13.06.2012
    Украина  Gun12
    Воскресенье, 14.04.2013, 19:34 | Сообщение # 4886
    Статус:
    Гость:
    Сообщений: 50
    Награды: 0
    Регистрация: 08.07.2012

    Функцию добавил в xr_effects?
      Злобная реклама
    Воскресенье, 14.04.2013, 19:34
    Статус:
    Сообщений: 666
    Регистрация: 08.07.2012
    Российская Федерация  ZECK
    Воскресенье, 14.04.2013, 20:37 | Сообщение # 4887
    Статус:
    Зевака:
    Сообщений: 24
    Награды: 0
    Регистрация: 10.10.2012

    Может кто-нибудь знает, возможно ли на тч из зп перенести на худ иконки и клавиши бытрого действия(например в зп по умолчанию стоит аптечка-F1, тушенка-F4 ну и т.д.)?
      Злобная реклама
    Воскресенье, 14.04.2013, 20:37
    Статус:
    Сообщений: 666
    Регистрация: 10.10.2012
    Российская Федерация  Arist
    Понедельник, 15.04.2013, 01:11 | Сообщение # 4888
    Статус:
    Неопытный:
    Сообщений: 481
    Награды: 1
    Регистрация: 08.07.2012

    Gun12,
    Цитата
    А если бы нужно было удалять ...дцать НПС, то писал бы метры портянки?

    К сожалению - да. Спасибо за мастер-класс. Uyman358,
    насчёт вылета: Мастер,возможно специально не поставил в скрипт один end. Я, правда, не глядя его в script Syntax Checker от Gun12(без него уже никак ).End сразу показал.
    Что касается скрипта.Я им вызываю схему "Компаньоны" от KamikaZze. npc:alive() - не срабатывает, пишу: npc.alive ~= nil. Вызов из диалога:
    Код

    function hunter_enter(args,npc)
           local args = {094,095}
           for i = 1, #args do
               local npc = level_object_by_sid(args[i]) -- вместо (i)
               if npc and npc.alive ~= nil then
               companion_start_following(npc, actor)
           end
        end
    end
    Из логики(xr_effects):
    Код

    function gen_kill_som(npc, actor, p)
           for i = 1, #p do
               local npc = level_object_by_sid(p[i])  -- вместо (i)
               if npc and npc.alive ~= nil then
               _hunter.companion_start_following(npc, actor)
             end
         end
    end  


    Всё отлично работает.Ещё раз спасибо.
      Злобная реклама
    Понедельник, 15.04.2013, 01:11
    Статус:
    Сообщений: 666
    Регистрация: 08.07.2012
    Украина  Gun12
    Понедельник, 15.04.2013, 01:14 | Сообщение # 4889
    Статус:
    Гость:
    Сообщений: 50
    Награды: 0
    Регистрация: 08.07.2012

    Простите, это я так копипастил из SciTE. biggrin
    Хуже что за мной тоже не думая скопировали.
    p[i] -- вместо (i) - Конечно же.
    Целый день занимаюсь lua, уже мозги заплыли.
    Сообщение отредактировал Gun12 - Понедельник, 15.04.2013, 01:21
      Злобная реклама
    Понедельник, 15.04.2013, 01:14
    Статус:
    Сообщений: 666
    Регистрация: 08.07.2012
    Украина  BozKurt
    Понедельник, 15.04.2013, 11:01 | Сообщение # 4890
    Статус:
    Опытный:
    Сообщений: 1753
    Награды: 3
    Регистрация: 25.05.2012

    Uyman358, возвращаясь к проблеме "хеппи-енда". Находясь на таком расстоянии - их такой функцией не убить, во всяком случае на чистом ЗП, где радиус алайфа ограничен 150 метрами. Метод kill применяется только для онлайновых объектов, т.е. для тех, которые находятся в радиусе алайфа.
    Для того, чтобы их убить - получай по story_id их серверные объекты и убивай их методом on_death.


    Arist
    Цитата
    npc:alive() - не срабатывает, пишу: npc.alive ~= nil.
    Это из той же оперы. Метод alive() используется для онлайновых объектов, а свойство alive - для серверных.


    ZECK, в сети ходит уже готовый мод, в котором это реализовано. При наличии некоторого опыта и сноровки - это можно сделать и самому за совсем небольшой промежуток времени.
      Злобная реклама
    Понедельник, 15.04.2013, 11:01
    Статус:
    Сообщений: 666
    Регистрация: 25.05.2012
    Поиск: