Случайная подборка модов
Sky anomaly
4.0
Dead Autumn 2: Другая реальность
4.1
На Болотах
3.7
Я - Призрак
2.8
Секрет Дианы
2.2
Dark Ukraine v 1.0
3.9
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  Wolfstalker
Среда, 24.02.2016, 00:25 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга


• Не флудить
• Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там
• В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти




F.A.Q

  Злобная реклама
Среда, 24.02.2016, 00:25
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Российская Федерация  yobakun
Пятница, 15.12.2017, 21:22 | Сообщение # 9361
Статус:
Новичок:
Сообщений: 270
Награды: 5
Регистрация: 30.07.2016

makdm, не пойму как пользоваться, можно пример?

if one_obj_in_zone(actor, zone, p) then

actor - зачем?
zone - в моем случае "yan_smart_terrain_6_4_att"
p - объект?

Или так:
Код
if one_obj_in_zone(actor, "yan_smart_terrain_6_4_att", {obj = true}) then

?
Сообщение отредактировал yobakun - Пятница, 15.12.2017, 21:25
  Злобная реклама
Пятница, 15.12.2017, 21:22
Статус:
Сообщений: 666
Регистрация: 30.07.2016
Российская Федерация  YTroll
Пятница, 15.12.2017, 21:22 | Сообщение # 9362
Статус:
Бывалый:
Сообщений: 824
Награды: 13
Регистрация: 09.11.2012

Цитата BoBaH_671 ()
for i = 0, 9 do
     remove_heli_by_name("aes_helicopter_000" .. i)
end
     remove_heli_by_name("aes_helicopter_0010")


т.е. это добавить в вызов самой функции,
получается применительно к фриплею OGSM 2.3.1 - вызов функции будет выглядеть вот так?

-- Засчитываем квестовые задания, удаляем квестовые предметы
-- Completing storyline tasks.
function set_complete_tasks()
if has_alife_info("aes2_monolit_teleport_ready_final") and not has_alife_info("freeplay") and (level.name()=="l12_stancia" or level.name()=="l12_stancia_2") then
db.actor:iterate_inventory(del_q_items,db.actor)
db.actor:give_info_portion("cit_fail_first_task")
db.actor:give_info_portion("freeplay")
db.actor:disable_info_portion("game_end")
db.gameover_credits_started = false
amk.start_timer("fpl", 1)
for i = 0, 9 do
remove_heli_by_name("aes_helicopter_000" .. i)
end
remove_heli_by_name("aes_helicopter_0010")
end
end
  Злобная реклама
Пятница, 15.12.2017, 21:22
Статус:
Сообщений: 666
Регистрация: 09.11.2012
Украина  BozKurt
Пятница, 15.12.2017, 22:13 | Сообщение # 9363
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Цитата BoBaH_671 ()
Код
for i = 0, 9 do
     remove_heli_by_name("aes_helicopter_000" .. i)
end
     remove_heli_by_name("aes_helicopter_0010")

Можно так:
Код
for i = 0, 10 do
     remove_heli_by_name("aes_helicopter_00" .. string.format("%02d", i));
end
Сообщение отредактировал BozKurt - Пятница, 15.12.2017, 22:15
  Злобная реклама
Пятница, 15.12.2017, 22:13
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  makdm
Пятница, 15.12.2017, 22:14 | Сообщение # 9364
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата yobakun ()
не пойму как пользоваться, можно пример?

Всё зависит от того из логики какого объекта вы делаете проверку.
Вариантов два:
1. Из логики самого рестриктора.
2. Из логики НПС.

Я так понял, что вам нужна проверка из логики рестриктора. Тогда используйте функцию story_obj_in_zone_by_name, где параметр Р[1] - это story_id проверяемого объекта, а параметр p[2] - это имя вашего рестриктора.
  Злобная реклама
Пятница, 15.12.2017, 22:14
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  svo6o9a
Пятница, 15.12.2017, 22:29 | Сообщение # 9365
Статус:
Новичок:
Сообщений: 236
Награды: 2
Регистрация: 19.11.2017

Вылетает после того как сделал Смарт тереин
Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...l.k.e.r. - Çîâ Ïðèïÿòè\gamedata\scripts\utils.script:469: bad argument #1 to 'gsub' (string expected, got nil)
Сообщение отредактировал svo6o9a - Пятница, 15.12.2017, 22:30
  Злобная реклама
Пятница, 15.12.2017, 22:29
Статус:
Сообщений: 666
Регистрация: 19.11.2017
Коста Рика  Jargon
Пятница, 15.12.2017, 22:32 | Сообщение # 9366
X-Ray Multiplayer Extension
Статус:
Бывалый:
Сообщений: 1078
Награды: 3
Регистрация: 24.06.2012

Цитата svo6o9a ()
Вылетает после того как сделал Смарт тереин
Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...l.k.e.r. - Çîâ Ïðèïÿòè\gamedata\scripts\utils.script:469: bad argument #1 to 'gsub' (string expected, got nil)

Его не просто нужно "Сделать", а еще и зарегистрировать, а если он еще и симуляционный то и локацию соответственно.
  Злобная реклама
Пятница, 15.12.2017, 22:32
Статус:
Сообщений: 666
Регистрация: 24.06.2012
Российская Федерация  svo6o9a
Пятница, 15.12.2017, 22:35 | Сообщение # 9367
Статус:
Новичок:
Сообщений: 236
Награды: 2
Регистрация: 19.11.2017

Цитата Jargon ()
Его не просто нужно "Сделать", а еще и зарегистрировать, а если он еще и симуляционный то и локацию соответственно.

Зарегистрировал. Я НПС делаю. И для них сделал смарт терейн. Движок-Зов Припяти, Локация-Припять
  Злобная реклама
Пятница, 15.12.2017, 22:35
Статус:
Сообщений: 666
Регистрация: 19.11.2017
Коста Рика  Jargon
Пятница, 15.12.2017, 22:43 | Сообщение # 9368
X-Ray Multiplayer Extension
Статус:
Бывалый:
Сообщений: 1078
Награды: 3
Регистрация: 24.06.2012

Цитата svo6o9a ()
Зарегистрировал. Я НПС делаю. И для них сделал смарт терейн. Движок-Зов Припяти, Локация-Припять

Раскладывай по полочкам что делал...
  Злобная реклама
Пятница, 15.12.2017, 22:43
Статус:
Сообщений: 666
Регистрация: 24.06.2012
Российская Федерация  makdm
Пятница, 15.12.2017, 22:44 | Сообщение # 9369
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата svo6o9a ()
Вылетает после того как сделал Смарт тереин

Ошибка в логике смарт-террейна.
  Злобная реклама
Пятница, 15.12.2017, 22:44
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  yobakun
Пятница, 15.12.2017, 23:05 | Сообщение # 9370
Статус:
Новичок:
Сообщений: 270
Награды: 5
Регистрация: 30.07.2016

makdm, мне нужно удалить все аномалии из заданного рестриктора, но ведь у аномалий нет story_id. Как тогда быть?
  Злобная реклама
Пятница, 15.12.2017, 23:05
Статус:
Сообщений: 666
Регистрация: 30.07.2016
Российская Федерация  makdm
Пятница, 15.12.2017, 23:33 | Сообщение # 9371
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата yobakun ()
мне нужно удалить все аномалии из заданного рестриктора,


А зачем вы их туда прописывали, если вам их нужно удалить?

Цитата yobakun ()
но ведь у аномалий нет story_id.

Аномалиям не то что story_id, но можно прописать и логику и они будут работать, как обычные рестрикторы. cool

Если удаление по сюжету, то пропишите им story_id и удаляйте традиционным способом для ЗП.
Если вы "ломаете" чью- то игру, то придется сделать несколько непростых телодвижений.
Вам какой вариант нужен?
Сообщение отредактировал makdm - Пятница, 15.12.2017, 23:35
  Злобная реклама
Пятница, 15.12.2017, 23:33
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  yobakun
Пятница, 15.12.2017, 23:46 | Сообщение # 9372
Статус:
Новичок:
Сообщений: 270
Награды: 5
Регистрация: 30.07.2016

Цитата makdm ()
А зачем вы их туда прописывали, если вам их нужно удалить?

Динамические аномалии спавнятся там где это не нужно. Изменение настроек конфигов в данном случае не решает проблем.
Сейчас я сделал вот так
Код
    local t = db.zone_by_name["yan_smart_terrain_6_4_att"]
    if t and obj then
     if t:inside(obj:position()) then
      news_manager.send_tip(db.actor, "delete anomaly", 0, "default", 8000)
      alife():release(alife():object(obj), true)
     end
    end

Аномалии вроде бы удаляются, но только одна из, после чего скрипт зависает и при перезагрузке игры идет краш с логом "Параметр задан не верно".
  Злобная реклама
Пятница, 15.12.2017, 23:46
Статус:
Сообщений: 666
Регистрация: 30.07.2016
Российская Федерация  makdm
Пятница, 15.12.2017, 23:56 | Сообщение # 9373
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

yobakun, вот с этого бы и начинали.
Скажу вам без лишней скромности.
Динамический спавн аномалий и их рассасывание при выбросе мною реализован в ПТО. Там аномалии при спавне "обходят" те места, в которых их присутствие нежелательно.
Смотрите скрипт xrs_random_anomaly.script
Таблица zone_off содержит имена рестрикторов, спавн аномалий внутри которых невозможен.
  Злобная реклама
Пятница, 15.12.2017, 23:56
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  yobakun
Суббота, 16.12.2017, 01:23 | Сообщение # 9374
Статус:
Новичок:
Сообщений: 270
Награды: 5
Регистрация: 30.07.2016

makdm, интересно выглядит, но как спавнить аномалии не понятно. Пробовал для теста повесить функцию control_random_anomaly( spawn ) на предмет, но ничего не происходит.
Сообщение отредактировал yobakun - Суббота, 16.12.2017, 01:31
  Злобная реклама
Суббота, 16.12.2017, 01:23
Статус:
Сообщений: 666
Регистрация: 30.07.2016
Украина  aleksstalker
Суббота, 16.12.2017, 01:43 | Сообщение # 9375
Статус:
Новичок:
Сообщений: 245
Награды: 2
Регистрация: 19.01.2017

Ребята, в заспавнил сквад монстряков. Все норм, но после убийства и приличной дистанции, и сна на 30 часов, респавн не прошол ?
Платформа зп.

  Злобная реклама
Суббота, 16.12.2017, 01:43
Статус:
Сообщений: 666
Регистрация: 19.01.2017
Поиск: