Случайная подборка модов
Ветер времени
4.5
HARDWARMOD - 3.2
4.0
Sky anomaly
4.0
Lost World: Origin
4.1
Пропавшая экспедиция
2.4
Ночь Перед Рождеством 2
3.5
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  А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, 22:18 | Сообщение # 8536
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 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 | Сообщение # 8537
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 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 | Сообщение # 8538
    Статус:
    Новичок:
    Сообщений: 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 | Сообщение # 8539
    Статус:
    Неопытный:
    Сообщений: 552
    Награды: 4
    Регистрация: 04.08.2015

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

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

    DeXter, не всё так просто... Я хочу сделать местоположение НПС рандомным wink
      Злобная реклама
    Воскресенье, 15.11.2015, 12:10
    Статус:
    Сообщений: 666
    Регистрация: 25.08.2014
    Российская Федерация  makdm
    Воскресенье, 15.11.2015, 12:32 | Сообщение # 8542
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 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 | Сообщение # 8543
    Статус:
    Опытный:
    Сообщений: 2467
    Награды: 13
    Регистрация: 05.10.2012

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

    Вроде нет, да и зачем, если скриптами спавнить легче?
      Злобная реклама
    Воскресенье, 15.11.2015, 13:28
    Статус:
    Сообщений: 666
    Регистрация: 05.10.2012
    Российская Федерация  makdm
    Воскресенье, 15.11.2015, 14:01 | Сообщение # 8544
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 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 | Сообщение # 8545
    Ф.О.Т.О.Г.Р.А.Ф
    Статус:
    Бывалый:
    Сообщений: 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 | Сообщение # 8546
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 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
    Российская Федерация  _Val_
    Воскресенье, 15.11.2015, 15:21 | Сообщение # 8547
    Ф.О.Т.О.Г.Р.А.Ф
    Статус:
    Бывалый:
    Сообщений: 1063
    Награды: 5
    Регистрация: 20.01.2012

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

    Ну да, я тоже об этом задумывался))
      Злобная реклама
    Воскресенье, 15.11.2015, 15:21
    Статус:
    Сообщений: 666
    Регистрация: 20.01.2012
    Российская Федерация  strchi
    Воскресенье, 15.11.2015, 15:25 | Сообщение # 8548
    Статус:
    Опытный:
    Сообщений: 2467
    Награды: 13
    Регистрация: 05.10.2012

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

    Я его частично очистил и юзаю исключительно скрипты, так легче управлять спавном без всякой компиляции и геморроя smile
      Злобная реклама
    Воскресенье, 15.11.2015, 15:25
    Статус:
    Сообщений: 666
    Регистрация: 05.10.2012
    Российская Федерация  makdm
    Воскресенье, 15.11.2015, 15:49 | Сообщение # 8549
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата _Val_ ()
    Ну да, я тоже об этом задумывался

    Здесь вопрос чисто риторический.
    Мне, например, делать через all.spawn удобнее.
    Поэтому всегда и всё максимально прописываю в all.spawn
    А цифры в скриптах - так это для меня вообще полный ужас! Прямо средневековье в скриптах какое-то.

    Цитата strchi ()
    юзаю исключительно скрипты, так легче управлять спавном без всякой компиляции

    Я и пишу, что кому-как удобнее.
    Но это не говорит о том, что это - правильно или неправильно.
      Злобная реклама
    Воскресенье, 15.11.2015, 15:49
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  strchi
    Воскресенье, 15.11.2015, 15:51 | Сообщение # 8550
    Статус:
    Опытный:
    Сообщений: 2467
    Награды: 13
    Регистрация: 05.10.2012

    Цитата makdm ()
    Но это не говорит о том, что это - правильно или неправильно.

    Кстати о скриптах, хотел спросить, а можно-ли скриптом спавнить аномальную зону? То-есть у меня такой план, днем одна активна а ночью нет, сделал скрипт на время, но вот активацию анималии не могу, вылет с отсылкой на bind_stalker
      Злобная реклама
    Воскресенье, 15.11.2015, 15:51
    Статус:
    Сообщений: 666
    Регистрация: 05.10.2012
    Поиск: