Случайная подборка модов
Зона поражения 2: Ответный удар
4.1
Я - Призрак
2.8
Закон Дегтярева
3.5
Another Zone Mod
4.3
Игра Душ: Начало
3.6
Lost Alpha DC
3.9
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  А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
    Поиск: