Перейти к контенту

Скриптование


Svoboда

Рекомендуемые сообщения

1 час назад, Okichi сказал:

Но иногда в некоторых модах сразу при НИ запускается удаление ненужных объектов

Есть такое дело. Сам в моде так делал, когда объект не нужен со старта НИ, но в дальнейшем для квеста требуется. Но заспавнить заново проще по spawn_story_id (ессно, его изначально нужно в спавне прописать). Тогда такой объект наверно можно и отследить.

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@phalcor, Да, оно. Но в секции [spawner] тут только инфо escape_lager_spawn_killers на перевод наймов в онлайн.

 

Вот кусок из gulag_espace.script

Скрытый текст

 if type == "esc_killers" then
  return function(gulag)
   local actor = db.actor
   if not actor then
    return gulag.state
   end
   if not has_alife_info("escape_lager_spawn_killers") then
    return 0 -- offline
   elseif has_alife_info("escape_lager_spawn_killers") and not has_alife_info("esc_killers_raid") then
    return 3 -- wait
   elseif has_alife_info("esc_killers_raid") and not has_alife_info("esc_open_killer_fire") then
    return 4 -- raid
   elseif has_alife_info("esc_open_killer_fire") and xr_gulag.getGulagPopulationComed("esc_lager") > 0 then
    return 1 -- fight
   elseif has_alife_info("esc_open_killer_fire") and xr_gulag.getGulagPopulationComed("esc_lager") <= 0 then
    return 2 -- kamp
   end
   return gulag.state
  end
 end

Состояние 2 - это вот не для него случаем:

Скрытый текст

t = { section = "logic@esc_killer_kamp_offline",
   idle = 0,
   prior = 5, state = {0},
   online = false,
   in_rest = "", out_rest = ""
  }
  table.insert(sj, t)
  t = { section = "logic@esc_killer_kamp_offline",
   idle = 0,
   prior = 5, state = {0},
   online = false,
   in_rest = "", out_rest = ""
  }
  table.insert(sj, t)
  t = { section = "logic@esc_killer_kamp_offline",
   idle = 0,
   prior = 5, state = {0},
   online = false,
   in_rest = "", out_rest = ""
  }
  table.insert(sj, t)
  t = { section = "logic@esc_killer_kamp_offline",
   idle = 0,
   prior = 5, state = {0},
   online = false,
   in_rest = "", out_rest = ""
  }
  table.insert(sj, t)
  t = { section = "logic@esc_killer_kamp_offline",
   idle = 0,
   prior = 5, state = {0},
   online = false,
   in_rest = "", out_rest = ""
  }
  table.insert(sj, t)
  t = { section = "logic@esc_killer_kamp_offline",
   idle = 0,
   prior = 5, state = {0},
   online = false,
   in_rest = "", out_rest = ""
  }
  table.insert(sj, t)
  t = { section = "logic@esc_killer_kamp_offline",
   idle = 0,
   prior = 5, state = {0},
   online = false,
   position_threshold = 400,
   in_rest = "", out_rest = ""
  }
  table.insert(sj, t)
  t = { section = "logic@esc_killer_kamp_offline",
   idle = 0,
   prior = 5, state = {0},
   online = false,
   position_threshold = 400,
   in_rest = "", out_rest = ""
  }
  table.insert(sj, t)

Сама логика:

Скрытый текст

[logic@esc_killer_kamp_offline]
active = kamp@esc_killer_kamp_offline

[kamp@esc_killer_kamp_offline]
center_point = kamp_wait

 

Изменено пользователем AndrewMor
  • Нравится 2

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
05.06.2020 в 11:34, abramcumner сказал:

config/gameplay/info_l01escape.xml

Вот куда я не догадался глянуть. Этот оно самое.

05.06.2020 в 11:34, abramcumner сказал:

Или в секции spawner написать как-то так

Если так сделать, нужно пересобирать спавн и начинать НИ. Проще в инфо убрать строчку и загрузить сейв до разговора с Фанатом.

05.06.2020 в 11:36, Okichi сказал:

Но вот это для состояния 2  выглядит странно - не знаю, как может быть _меньше нуля_ количество НПС в лагере ) 

Ага, я тоже внимание обратил. :)

05.06.2020 в 17:35, dsh сказал:

возможно не все так просто. Вот исправление этой ситуации из моего мода

А разве их уборщик не подберет потом? Они вроде без уникальных стори айди.

  • Нравится 1

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
16 часов назад, mole venomous сказал:

Неписю нужно указать, куда смотреть. Встать на то место и снять координаты. Подставить в all.spawn в файл way_бла-бла-бла,  в секции _look.

Добавлю: точку, куда смотрит НПС, указать в логике.

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
9 часов назад, Zander_driver сказал:

Были "псевдо-динамические", о которых все не-разбирающиеся глубоко в механике, думали что они динамические.

Надо же, впервые узнал. Раньше тоже считал, что динамические. А кстати, в НС-2010 уже динамические были?

Изменено пользователем AndrewMor

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
8 часов назад, mdm64 сказал:

я не об этом, это понятно, я про двойные скобки.

Что-то не увидел я двойных скобок. Кавычки - это да.

  • Согласен 1

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
12 часов назад, AndreySol сказал:

Эээ, все от игровой ситуевины зависит - нужен одноразовый объект, котрый свое отработал и в release. Зачем он в алл.спавне нужен?

А не проще этот одноразовый объект просто скриптом удалить по его id, когда станет не нужен? А спавнить именно через all.spawn удобнее и быстрее.

Изменено пользователем AndrewMor

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
3 часа назад, UriZzz сказал:

Мне кажется что тут нужно так: and bSet = true then

Для булевых переменных разницы нет. Что bSet = true, что bSet - все равно.

  • Спасибо 1
  • Согласен 3

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
13 часов назад, AndreySol сказал:

and bSet == true ...

Кстати, да. Привык к Паскалю в свое время :)

Изменено пользователем AndrewMor

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение

@DibokDibokin Удалить и заспавнить аналогичный предмет около ГГ. Ну или сразу в рюкзак :)

  • Спасибо 1

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение

А в какой ситуации нужно перемещать ближе к ГГ? Если как в оригинале на Агро, где за воротами арты лежали, но не взять их...

 

А вообще забавно: если на апдейт повесить функцию, которая проверяет, нет ли в радиусе 3 метров (5, 50 и т.д.) артов, и если есть, их удаляет, а аналогичные спавнит в рюкзак. Прямо дистанционное собирательство.

  • Согласен 1

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение

@AndreySol Смысла никакого, просто мысль вслух. Хотя бывает обидно: лежит труп, а подобраться никак - переход мешает.

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
17 минут назад, UriZzz сказал(а):

Я её зверски удалил в СДК

Скриптовый рандомный спавн артов - самое оно. Никогда не знаешь, где чего найдешь. Равно как с динамическими аномалиями: заранее неизвестно, где в Карусель влетишь :)

 

19 минут назад, UriZzz сказал(а):

с патронами, шамовкой, медикаментами, стволами всё таки по проще.

Это да.

  • Согласен 2

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
10 часов назад, phalcor сказал(а):

Я решил эту проблему временным отключением перехода

Можно и так, конечно.

@ted.80 Кстати, там из скриптов только bind_ggun.script. Как же его тогда игра увидит?

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
9 часов назад, ted.80 сказал(а):

А что, ещё что-то нужно?

Потому и спрашиваю. Если никаких других скриптов не затрагивалось, как игра видит новый биндер?

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

 

@mole venomous ,

@Marafon6540

Аа, сообразил...  Биндер аномалий таким же образом будет работать?

Изменено пользователем AndrewMor

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
9 часов назад, Капрал Хикс сказал(а):

При этом стоит учесть, что трупы ключевых персонажей (например, трупы Черепа и Лукаша) из игры не исчезнут.

Всегда доставали эти вечные трупы. Сама концепция Зоны предполагает, что трупы не должны вечно лежать на локациях. В идеале нужен скрипт, который убирает любой труп после его обыска ГГ.

  • Согласен 2

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
9 часов назад, ted.80 сказал(а):

Удалять через какое-то время? или после ухода в оффлайн?

Удалять при новом заходе на локацию, как-то так. При обыске выдавать инфо, при заходе на локу - проверять инфо, если выдан - удалять труп. Костыльно конечно. Но работать будет, причем с любыми трупами, в т.ч. имеющими стори_ид.

 

9 часов назад, ted.80 сказал(а):

ЕМНИП можно использовать скрипт

Руки дойдут - обязательно попробую.

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение

@AndreySol Потому и написал, что костыльно использовать инфо-порции.

Сталкер - наше всё!

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...