Случайная подборка модов
День одиночки
1.6
Сталкер: Конец Света
3.0
Золотой обоз. Часть первая
3.5
Связной
4.2
Смерти вопреки. В центре чертовщины
4.1
Игра Душ: Начало
3.6
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  А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
    Украина  FantomICW
    Воскресенье, 19.01.2014, 14:55 | Сообщение # 1291
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    Цитата BeeRsek ()
    Каким образом это реализовано?

    Если у тебя есть ЧНовский алл.спавн, кинь, гляну. Мой какой-то косячный.
    Но контроль происходить через рестриктор. Вот функции, которые используются:
    Код
    -- Функции для управления мостом.

    function bridge_down()
       db.bridge_by_name["red_bridge"]:anim_forward()
    end
    function bridge_up()
       db.bridge_by_name["red_bridge"]:anim_backward()
    end
    function bridge_stop()
       db.bridge_by_name["red_bridge"]:anim_stop()
    end

    В этом же разделе не задействованные функции:
    Код
    function anim_obj_down(actor, npc, p)
      if p[1] ~= nil then
       db.anim_obj_by_name[p[1]]:anim_forward()
      end
    end
    function anim_obj_up(actor, npc, p)
      if p[1] ~= nil then
       db.anim_obj_by_name[p[1]]:anim_backward()
      end
    end
    function anim_obj_stop(actor, npc, p)
      if p[1] ~= nil then
       db.anim_obj_by_name[p[1]]:anim_stop()
      end
    end
      Злобная реклама
    Воскресенье, 19.01.2014, 14:55
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Российская Федерация  BeeRsek
    Воскресенье, 19.01.2014, 15:11 | Сообщение # 1292
    Тайна Зоны: История Стрелка
    Статус:
    Опытный:
    Сообщений: 1308
    Награды: 7
    Регистрация: 24.01.2011

    FantomICW, ух... Как всё круто.

    Добавлено (19.01.2014, 15:11)
    ---------------------------------------------
    FantomICW, вот ссылка на спавн: http://rghost.ru/51768142
    Блин интересно, получится ли заспавнив модель моста из ЧН не конвертируя (вроде же это не НПС,хотя тож анимки есть) в ТЧ использовать.

      Злобная реклама
    Воскресенье, 19.01.2014, 15:11
    Статус:
    Сообщений: 666
    Регистрация: 24.01.2011
    Украина  FantomICW
    Воскресенье, 19.01.2014, 15:19 | Сообщение # 1293
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    BeeRsek, вот секция из спавна:
    Код
    [5686]
    ; cse_abstract properties
    section_name = red_forest_bridge
    name = red_bridge
    position = -144.884460449219,10.0784387588501,-270.569519042969
    direction = 0,0,-0

    ; cse_alife_object properties
    game_vertex_id = 961
    distance = 0
    level_vertex_id = 27072
    object_flags = 0xffffff3a
    custom_data = <<END
    [collide]
    ignore_static
    [animated_object]
    END

    ; cse_visual properties
    visual_name = dynamics\scene_objects\red_forest\red_forest_bridge_01_dynamic

    ; cse_ph_skeleton properties
    skeleton_name = bridge_down
    skeleton_flags = 1

    ; cse_alife_object_physic properties
    physic_type = 0x3
    mass = 10

    upd:num_items = 0

    Обрати внимание, есть секция [animated_object].
      Злобная реклама
    Воскресенье, 19.01.2014, 15:19
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Российская Федерация  Rezon
    Воскресенье, 19.01.2014, 15:26 | Сообщение # 1294
    Статус:
    Бывалый:
    Сообщений: 665
    Награды: 2
    Регистрация: 27.08.2013

    Цитата FantomICW
    Rezon, а ты не хочешь логику объекта прописать через конфиг?

    Хочу, но не знаю как.
      Злобная реклама
    Воскресенье, 19.01.2014, 15:26
    Статус:
    Сообщений: 666
    Регистрация: 27.08.2013
    Украина  FantomICW
    Воскресенье, 19.01.2014, 15:29 | Сообщение # 1295
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    Rezon, в configs/models/dynamic_objects.ltx добавь секцию. Вот, к примеру, сканнер со своей логикой, зафиксированной костью (т. е. жесткая привязка к локации, хоть и спавнится через логические скрипты):
    Код
    [jup_b209_ph_scanner]:physic_object
    $spawn                        = "dynamic_objects\scene_objects\jup_b209_ph_scanner"
    visual                        = dynamics\equipments\quest\scanner_anomaly.ogf
    custom_data       = scripts\jupiter\jup_b209_scanner.ltx
    startup_animation         = idle
    fixed_bones       = link
    story_id        = jup_b209_ph_scanner
      Злобная реклама
    Воскресенье, 19.01.2014, 15:29
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Российская Федерация  Rezon
    Воскресенье, 19.01.2014, 16:14 | Сообщение # 1296
    Статус:
    Бывалый:
    Сообщений: 665
    Награды: 2
    Регистрация: 27.08.2013

    Цитата FantomICW
    Rezon, в configs/models/dynamic_objects.ltx добавь секцию. Вот, к примеру, сканнер со своей логикой, зафиксированной костью (т. е. жесткая привязка к локации, хоть и спавнится через логические скрипты): Код[jup_b209_ph_scanner]:physic_object $spawn                        = "dynamic_objects\scene_objects\jup_b209_ph_scanner" visual                        = dynamics\equipments\quest\scanner_anomaly.ogf custom_data       = scripts\jupiter\jup_b209_scanner.ltx startup_animation         = idle fixed_bones       = link story_id        = jup_b209_ph_scanner

    А дальше:)
      Злобная реклама
    Воскресенье, 19.01.2014, 16:14
    Статус:
    Сообщений: 666
    Регистрация: 27.08.2013
    Украина  FantomICW
    Воскресенье, 19.01.2014, 16:18 | Сообщение # 1297
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    Rezon, это просто секция объекта в конфиге. Там прописаны свойства, логика, стори_ид. Тебе нужно его заспавнить. Или логикой, или скриптом. В xr_effects.script есть шикарная функция spawn_object:
    Код
    function spawn_object(actor, obj, p)
       --' p[1] - секция кого спаунить
       --' p[2] - имя патрульного пути где спа унить.
      local spawn_sect = p[1]
      if spawn_sect == nil then
       abort("Wrong spawn section for 'spawn_object' function %s. For object %s", tostring(spawn_sect), obj:name())
      end

      local path_name = p[2]
      if path_name == nil then
       abort("Wrong path_name for 'spawn_object' function %s. For object %s", tostring(path_name), obj:name())
      end

      if not level.patrol_path_exists(path_name) then
       abort("Path %s doesnt exist. Function 'spawn_object' for object %s ", tostring(path_name), obj:name())
      end
      local ptr = patrol(path_name)
      local index = p[3] or 0
      local yaw = p[4] or 0

      --' printf("Spawning %s at %s, %s", tostring(p[1]), tostring(p[2]), tostring(p[3]))
      local se_obj = alife():create(spawn_sect,
             ptr:point(index),
             ptr:level_vertex_id(0),
             ptr:game_vertex_id(0))
      if IsStalker( nil, se_obj:clsid()) then
       se_obj:o_torso().yaw = yaw * math.pi / 180
      elseif se_obj:clsid() == clsid.script_phys then
       se_obj:set_yaw(yaw * math.pi / 180)
      end
    end

    Спавним функцией через скрипт:
    Код
    xr_effects.spawn_object(nil, nil, {"название_объекта", "вейпоинт"})

    Спавним функцией через логику:
    Код
    %=spawn_object(название_объекта:вейпоинт)%

    Вейпоинт добавляем в way_лока.ltx в алл.спавне. Новая игра при этом не понадобится.
      Злобная реклама
    Воскресенье, 19.01.2014, 16:18
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Российская Федерация  Rezon
    Воскресенье, 19.01.2014, 16:30 | Сообщение # 1298
    Статус:
    Бывалый:
    Сообщений: 665
    Награды: 2
    Регистрация: 27.08.2013

    Цитата FantomICW
    Rezon, это просто секция объекта в конфиге. Там прописаны свойства, логика, стори_ид. Тебе нужно его заспавнить. Или логикой, или скриптом. В xr_effects.script есть шикарная функция spawn_object: Кодfunction spawn_object(actor, obj, p)    --' p[1] - секция кого спаунить    --' p[2] - имя патрульного пути где спа унить.   local spawn_sect = p[1]   if spawn_sect == nil then    abort("Wrong spawn section for 'spawn_object' function %s. For object %s", tostring(spawn_sect), obj:name())   end   local path_name = p[2]   if path_name == nil then    abort("Wrong path_name for 'spawn_object' function %s. For object %s", tostring(path_name), obj:name())   end   if not level.patrol_path_exists(path_name) then    abort("Path %s doesnt exist. Function 'spawn_object' for object %s ", tostring(path_name), obj:name())   end   local ptr = patrol(path_name)   local index = p[3] or 0   local yaw = p[4] or 0   --' printf("Spawning %s at %s, %s", tostring(p[1]), tostring(p[2]), tostring(p[3]))   local se_obj = alife():create(spawn_sect,          ptr:point(index),          ptr:level_vertex_id(0),          ptr:game_vertex_id(0))   if IsStalker( nil, se_obj:clsid()) then    se_obj:o_torso().yaw = yaw * math.pi / 180   elseif se_obj:clsid() == clsid.script_phys then    se_obj:set_yaw(yaw * math.pi / 180)   end end Спавним функцией через скрипт: Кодxr_effects.spawn_object(nil, nil, {"название_объекта", "вейпоинт"}) Спавним функцией через логику: Код%=spawn_object(название_объекта:вейпоинт)% Вейпоинт добавляем в way_лока.ltx в алл.спавне. Новая игра при этом не понадобится.

    Можно подробнее? Я этими скриптами первый раз занимаюсь.
    Что такое ВэйПоинты?

    Добавлено (19.01.2014, 16:30)
    ---------------------------------------------
    Стоп, что-то понял. Кроме ВэйПоинтов.

      Злобная реклама
    Воскресенье, 19.01.2014, 16:30
    Статус:
    Сообщений: 666
    Регистрация: 27.08.2013
    Украина  stalker-MiX
    Воскресенье, 19.01.2014, 16:31 | Сообщение # 1299
    Статус:
    Неопытный:
    Сообщений: 534
    Награды: 2
    Регистрация: 20.02.2013

    Кстати ребята, много здесь говорилось о спавне предметов скриптом - а разворот их скриптом, (дирекшн) кто-то реализовывал, или нет, вообще в модинге?
      Злобная реклама
    Воскресенье, 19.01.2014, 16:31
    Статус:
    Сообщений: 666
    Регистрация: 20.02.2013
    Украина  FantomICW
    Воскресенье, 19.01.2014, 16:32 | Сообщение # 1300
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    Цитата Rezon ()
    ВэйПоинты

    Некая единица пути. В выше указанном типе файла прописывается секция пути. Либо одна точка (в нашем случае, такое и нужно), либо много (для пути перемещения НПС, к примеру). Вот, как выглядит схематично:
    Код
    [секция]
    points = p0 ;Перечисляем через запятую все поинты (здесь только один - p0)

    ;Особенности точки p0
    p0:name = wp00   
    p0:flags = 0x1  ;Флаги (не столь важно, тоже нумерация задается начиная обычно с 0х1)   
    p0:position = -175.93258666992,8.4784708023071,-283.93695068359 ;Координаты x,y,z
    p0:game_vertex_id = 1172  ;gvid
    p0:level_vertex_id = 53778  ;lvid


    Добавлено (19.01.2014, 16:32)
    ---------------------------------------------
    stalker-MiX, Net Packet онли. И то, вроде только при спавне.
    Сообщение отредактировал FantomICW - Воскресенье, 19.01.2014, 16:32
      Злобная реклама
    Воскресенье, 19.01.2014, 16:32
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Украина  stalker-MiX
    Воскресенье, 19.01.2014, 16:35 | Сообщение # 1301
    Статус:
    Неопытный:
    Сообщений: 534
    Награды: 2
    Регистрация: 20.02.2013

    FantomICW, я знаю, что нет-пакетом только это сделать реально. Вопрос, существует ли такой скрипт в данный момент? smile
    Сообщение отредактировал stalker-MiX - Воскресенье, 19.01.2014, 16:36
      Злобная реклама
    Воскресенье, 19.01.2014, 16:35
    Статус:
    Сообщений: 666
    Регистрация: 20.02.2013
    Российская Федерация  Rezon
    Воскресенье, 19.01.2014, 16:39 | Сообщение # 1302
    Статус:
    Бывалый:
    Сообщений: 665
    Награды: 2
    Регистрация: 27.08.2013

    Цитата FantomICW ()
    Спавним функцией через логику:
    Код
    %=spawn_object(название_объекта:вейпоинт)%

    А где это прописать?
      Злобная реклама
    Воскресенье, 19.01.2014, 16:39
    Статус:
    Сообщений: 666
    Регистрация: 27.08.2013
    Российская Федерация  wind
    Воскресенье, 19.01.2014, 16:40 | Сообщение # 1303
    Reach mod + Slenderman
    Статус:
    Отмычка:
    Сообщений: 164
    Награды: 1
    Регистрация: 12.02.2011

    почему у меня монстры не могут ходить на новой карте? они простоя ходят на месте на карте есть аи сетка граф поинты вить нпс могут ходить, а эти нет
      Злобная реклама
    Воскресенье, 19.01.2014, 16:40
    Статус:
    Сообщений: 666
    Регистрация: 12.02.2011
    Российская Федерация  Rezon
    Воскресенье, 19.01.2014, 16:43 | Сообщение # 1304
    Статус:
    Бывалый:
    Сообщений: 665
    Награды: 2
    Регистрация: 27.08.2013

    Цитата wind
    почему у меня монстры не могут ходить на новой карте? они простоя ходят на месте на карте есть аи сетка граф поинты вить нпс могут ходить, а эти нет

    Логику неписей в студию.
      Злобная реклама
    Воскресенье, 19.01.2014, 16:43
    Статус:
    Сообщений: 666
    Регистрация: 27.08.2013
    Украина  FantomICW
    Воскресенье, 19.01.2014, 16:45 | Сообщение # 1305
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    Цитата Rezon ()
    А где это прописать?

    В логике любого объекта. Рестриктора, к примеру:
    Код
    [logic]
    active = sr_idle@start

    [sr_idle@start]
    on_info = sr_idle@nil %=spawn_object(название_объекта:вейпоинт)%

    [sr_idle@nil]
      Злобная реклама
    Воскресенье, 19.01.2014, 16:45
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Поиск: