Случайная подборка модов
MDRK mod 1.0
4.0
G.L.A.D.I.A.T.O.R. II Время Альянса
3.4
Закоулки правды
3.6
История Конвона. Часть первая
3.1
Упавшая звезда. Честь наемника
4.2
Arsenal Mod
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
    Российская Федерация  makdm
    Суббота, 14.11.2015, 21:21 | Сообщение # 8581
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    _S_k_i_F_, тогда нужен туториал.
    В файл game_tutorials.xml пишите:

    Сообщение отредактировал makdm - Суббота, 14.11.2015, 21:30
      Злобная реклама
    Суббота, 14.11.2015, 21:21
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Украина  _S_k_i_F_
    Суббота, 14.11.2015, 21:30 | Сообщение # 8582
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

    makdm, мне нужно многоразовое использование. Еще раз огромное спасибо за помощь!
      Злобная реклама
    Суббота, 14.11.2015, 21:30
    Статус:
    Сообщений: 666
    Регистрация: 09.08.2015
    Российская Федерация  makdm
    Суббота, 14.11.2015, 21:40 | Сообщение # 8583
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата _S_k_i_F_ ()
    мне нужно многоразовое использование.

    Да хоть 1000 раз используйте:

    [logic]
    active = sr_idle@start
    [sr_idle@start]
    on_info = { =actor_in_zone(yan_gaz_plita)} sr_idle@tutorial %=run_tutorial(yan_gaz_plita_tutor)%

    [sr_idle@tutorial]
    on_actor_outside = {=has_active_tutorial} sr_idle@start %=stop_tutorial%
    on_info = {+tutor_is_complete} sr_idle@stop_tutorial %=stop_tutorial -tutor_is_complete%

    [sr_idle@stop_tutorial]
    on_actor_outside = sr_idle@start
      Злобная реклама
    Суббота, 14.11.2015, 21:40
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Украина  _S_k_i_F_
    Суббота, 14.11.2015, 22:14 | Сообщение # 8584
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

    makdm, сделал отбор у ГГ айтема при юзании кнопки ГУИ, но вылетает с отслыкой на глобальную ремув итем. Как еще можно забрать у ГГ предмет?

    Зараннее спасибо!
      Злобная реклама
    Суббота, 14.11.2015, 22:14
    Статус:
    Сообщений: 666
    Регистрация: 09.08.2015
    Российская Федерация  makdm
    Суббота, 14.11.2015, 22:18 | Сообщение # 8585
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата _S_k_i_F_ ()
    но вылетает с отслыкой на глобальную ремув итем

    Вот так нужно написать:

    xr_effects.remove_item( db.actor, nil, {"flyaga"} )
      Злобная реклама
    Суббота, 14.11.2015, 22:18
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  denis2000
    Суббота, 14.11.2015, 23:19 | Сообщение # 8586
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    DarkSatellite,
    alife():create(<Имя_спавнсекции_объекта>,<Вектор_координат>,<Гейм_вертекс_ид>,<Левел_вертекс_ид>,<Ид_родительского_объекта_не_обязательный_параметр>)
    Сообщение отредактировал denis2000 - Суббота, 14.11.2015, 23:20
      Злобная реклама
    Суббота, 14.11.2015, 23:19
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  DarkSatellite
    Воскресенье, 15.11.2015, 10:31 | Сообщение # 8587
    Статус:
    Новичок:
    Сообщений: 269
    Награды: 2
    Регистрация: 25.08.2014

    denis2000, добавляю как вы с makdm мне посоветовали и ловлю вылет... Вот функция спауна:

    function zat_stalker_1_spawn()
    up.spawn_obj("zat_b12_stalker_corpse", 430.555206, 33.255634, -148.281219, 1672077, 73, 1)
    end

    Куда и что добавить, чтобы труп лежал ногами не строго на "север"? smile
      Злобная реклама
    Воскресенье, 15.11.2015, 10:31
    Статус:
    Сообщений: 666
    Регистрация: 25.08.2014
    Российская Федерация  igi_vlad
    Воскресенье, 15.11.2015, 11:14 | Сообщение # 8588
    Статус:
    Неопытный:
    Сообщений: 552
    Награды: 4
    Регистрация: 04.08.2015

    Чем лучше в ЗП распаковывать оллспавн ? Если Перл`ом - то есть архив длл-ок, чтоб не устанавливать всякую фигню в систему ?
    (или сразу готовая сборка - не люблю захламлять систему (ХР) wink
      Злобная реклама
    Воскресенье, 15.11.2015, 11:14
    Статус:
    Сообщений: 666
    Регистрация: 04.08.2015
    Российская Федерация  DеXter
    Воскресенье, 15.11.2015, 11:45 | Сообщение # 8589
    Статус:
    Неопытный:
    Сообщений: 462
    Награды: 5
    Регистрация: 28.09.2015

    DarkSatellite, можно заспанить НПС через олл.спавн с условием spawner. Там ты cможешь изменить поворот в строке direction.
      Злобная реклама
    Воскресенье, 15.11.2015, 11:45
    Статус:
    Сообщений: 666
    Регистрация: 28.09.2015
    Российская Федерация  DarkSatellite
    Воскресенье, 15.11.2015, 12:10 | Сообщение # 8590
    Статус:
    Новичок:
    Сообщений: 269
    Награды: 2
    Регистрация: 25.08.2014

    DeXter, не всё так просто... Я хочу сделать местоположение НПС рандомным wink
      Злобная реклама
    Воскресенье, 15.11.2015, 12:10
    Статус:
    Сообщений: 666
    Регистрация: 25.08.2014
    Российская Федерация  makdm
    Воскресенье, 15.11.2015, 12:32 | Сообщение # 8591
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    DarkSatellite, с НПС делается так:

    1. Спавните НПС с логикой walker, причём точка look, будет направлением падения тела
    2. При переходе НПС в онлайн он будет смотреть в точку look
    3. Наносите НПС ХИТ по направлению точки look
    4. Убиваете НПС.

    Получаете то, что вам нужно. Тело упадёт точно по направлению его взгляда.
    Сообщение отредактировал makdm - Воскресенье, 15.11.2015, 12:32
      Злобная реклама
    Воскресенье, 15.11.2015, 12:32
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  strchi
    Воскресенье, 15.11.2015, 13:28 | Сообщение # 8592
    Статус:
    Опытный:
    Сообщений: 2467
    Награды: 13
    Регистрация: 05.10.2012

    Цитата DarkSatellite ()
    И ещё: можно ли сделать рандом через all.spawn?

    Вроде нет, да и зачем, если скриптами спавнить легче?
      Злобная реклама
    Воскресенье, 15.11.2015, 13:28
    Статус:
    Сообщений: 666
    Регистрация: 05.10.2012
    Российская Федерация  makdm
    Воскресенье, 15.11.2015, 14:01 | Сообщение # 8593
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата DarkSatellite ()
    можно ли сделать рандом через all.spawn?

    Чего рандом? Если вы хотите чтобы НПС проспавнился например, рандомно из ПЯТИ мест на локации, то это и делается с помощью all.spawn
    В all.spawn в WAY файле прописываете ПЯТЬ точек рандомного спавна, например: [point_1], [point_2], [point_3], [point_4], [point_5]
    Теперь сама функция спавна, пишу для ЗП:

    Код
          function spawn_random_corpse()
                 local spawn_sect = "Секция_вашего_нпс"
                 local ways = { "point_1","point_2","point_3","point_4","point_5" }
                 local path_name= ways[ math.random( #ways ) ]
                 local ptr = patrol( path_name )
                 local se_obj = alife():create(spawn_sect, ptr:point(0),    ptr:level_vertex_id(0),    ptr:game_vertex_id(0))
                 se_obj:kill()
    end
    Сообщение отредактировал makdm - Воскресенье, 15.11.2015, 14:03
      Злобная реклама
    Воскресенье, 15.11.2015, 14:01
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  _Val_
    Воскресенье, 15.11.2015, 14:28 | Сообщение # 8594
    Ф.О.Т.О.Г.Р.А.Ф
    Статус:
    Бывалый:
    Сообщений: 1063
    Награды: 5
    Регистрация: 20.01.2012

    Цитата makdm ()
    Чего рандом? Если вы хотите чтобы НПС проспавнился например, рандомно из ПЯТИ мест на локации, то это и делается с помощью all.spawn

    Зачем захламлять олл_спавн таблицами рандомного спавна?
    Пять трупов, десять стволов, тыща тайников...
    Действительно - как сказал strchi, это лётом делается через скрипт.
    Функция с таблицей для ТЧ-АМК.
    Код
    local kombeztrup={
    {
        position={x=321.362976,y=-6.145108,z=-14.496446},
        lv=1440312,
        gv=790
        },
    {
        position={x=298.490906,y=-0.204438,z=-71.114433},
        lv=1397660,
        gv=790
        },
    {
        position={x=-358.887756,y=-19.556574,z=205.255493},
        lv=251716,
        gv=779
        }
    }

    function kombez_trup_spawn()
    local a = kombeztrup[math.random(table.getn(kombeztrup))]
    local obj = alife():create("ivanov_trup", vector():set(a.position.x,a.position.y,a.position.z), a.lv, a.gv)
    local tbl = amk.read_stalker_params(obj)
    --tbl.sid = 30350
    tbl.sid = 9702
    tbl.health = 0
    tbl.updhealth = 0
    amk.write_stalker_params(tbl, obj)
    end

    Для придачи трупику любого направления, насколько понимаю - нужно использовать модули Артоса...
    Сообщение отредактировал _Val_ - Воскресенье, 15.11.2015, 14:36
      Злобная реклама
    Воскресенье, 15.11.2015, 14:28
    Статус:
    Сообщений: 666
    Регистрация: 20.01.2012
    Российская Федерация  makdm
    Воскресенье, 15.11.2015, 14:37 | Сообщение # 8595
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата _Val_ ()
    Зачем захламлять олл_спавн таблицами рандомного спавна?

    А зачем, по вашему тогда мнению, нужен вообще all.spawn ?

    А теперь сравните свою "портянку" с моей компактной функцией.

    Причём мою функцию можно сделать универсальной и ещё короче, вот такой:

    Код
    function spawn_random_corpse(spawn_sect, ways)
                 local ptr = patrol( ways[ math.random( #ways ) ] )
                 local se_obj = alife():create(spawn_sect, ptr:point(0),    ptr:level_vertex_id(0),    ptr:game_vertex_id(0))
                 se_obj:kill()
    end


    А вызов функции такой:
    local ways = { "point_1","point_2","point_3","point_4","point_5" }
    spawn_random_corpse( "Секция_НПС", ways )
    Сообщение отредактировал makdm - Воскресенье, 15.11.2015, 14:45
      Злобная реклама
    Воскресенье, 15.11.2015, 14:37
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Поиск: