-
Число публикаций
1 180 -
Регистрация
-
Последнее посещение
-
Дней в топе
3 -
AMKoin
21,524 [Подарить AMKoin]
Закладки
-
Прозекторская
ПрозекторскаяА сейчас - даже не сельхозинвентарь, а, не побоюсь этого слова, посевная и уборочная техника для крупнотоннажного, так сказать, производства. Что, впрочем, не мешает исполнять на ней те же действия с теми же результатами, что и для граблей обыкновенных.
local a = self:smart_terrain_accepts_obj( obj, b )
где второй аргумент у нас, напоминаю - можно ли непися запускать в смарт.
Уже замечательно для случая с disagreed.Впрочем, если даже неписю предписано идти в конкретный смарт - счастья это особо не прибавляет, ибо:
function se_smart_terrain:smart_terrain_accepts_obj( obj, obj_agreement ) if obj_agreement == disagreed then return false end if obj_agreement == agreed_exclusive or self.gulag:get_non_exclusive_population() < self.gulag.capacity_non_exclusive then local community, is_stalker = self:get_obj_community( obj ) local smart_level_group = self:get_level_name() local npc_level_group = alife():level_name(game_graph():vertex(obj.m_game_vertex_id):level_id()) if level_groups[smart_level_group] ~= level_groups[npc_level_group] then return false end if self.accepted_communities and not self.accepted_communities[community] then return false end if obj_agreement ~= agreed_exclusive and not self:check_preset( community, obj:rank(), self.gparams.preset_name ) then return false end if not xr_gulag.checkNpc( community, is_stalker, self.gparams.type, obj:rank(), obj ) then return false end return self.gulag:is_there_any_suitable_job( self:fill_npc_info( obj ), obj_agreement == agreed_exclusive ) else return false end end
Первая строка - прекрасна сама по себе.
Следующая проверка - если неписю подходит любой смарт - проверяем ограничение на численность неписей, для которых подходит любой смарт. Если непись явно назначен именно в этот смарт, ЛИБО получил, наконец, разрешение идти в него - ограничение на численность неписей, которым подходит любой смарт, не проверяется. С точки зрения банальной эрудиции следует предположить, что все остальные проверки - действуют.Не помню, был ли в оригинальном ТЧ квест на принести уникальный пистолет от командира блокпоста, или он остался от билдов, но именно по этой причине выполнить его крайне проблематично как минимум уже в АМК. Ибо командир блокпоста может быть где угодно, но только не на блокпосту. Ибо банально не проходит все остальные проверки.
А вот это - к вопросу о бандитах/наемниках/армейцев/монстрах в баре.local smart_level_group = self:get_level_name() local npc_level_group = alife():level_name(game_graph():vertex(obj.m_game_vertex_id):level_id()) if level_groups[smart_level_group] ~= level_groups[npc_level_group] then return false end В начале скриптика присутствует такая табличка: local level_groups = { l01_escape = "group1", l02_garbage = "group1", l03_agroprom = "group1", l03u_agr_underground = "group1", l04_darkvalley = "group1", l04u_labx18 = "group1", l05_bar = "group1", l06_rostok = "group1", l07_military = "group1", l08_yantar = "group1", l08u_brainlab = "group1", l10_radar = "group1", l10u_bunker = "group1", l11_pripyat = "group1", l12_stancia = "group3", l12u_sarcofag = "group3", l12u_control_monolith = "group3", l12_stancia_2 = "group3" }
В модах у нее появился комментарий "чтобы не ходили через бар", впрочем, являющийся, как правило, единственным изменением. Всякое разное же продолжило шастать через бар, материализуясь, как правило, либо у Арни, либо в бункере у Воронина, с результатом слегка предсказуемым.Как это работает, и что с этим делать?
В предшествующих текстах, которые все равно никто не прочитал, и читать не будет, уже говорилось, что с момента появления непися/монстра, и далее - периодически, происходит перебор всех, то есть, абсолютно всех смартов на предмет согласия его принять. Какой согласился, и выдал максимальный приоритет - под тот и пойдет. То есть, появился, к примеру, в ТД, а приняли, к примеру, на Янтаре - пойдет на Янтарь. Передвигаются они по вершинкам, из одной в другую, и если такая, которая по пути, окажется, к примеру, в бункере Воронина - монстр/непись появится в бункере Воронина, если мы в этот момент в радиусе онлайна. А если прикрутить еще "оффлайн-боевку" или "офлайн-шмон" - эта "офлайн-боевка" того Воронина (или еще какого Арни) грохнет и без входа того тушканчика в онлайн. Аналогично, если путь будет через базу Свободы - снорки с кровососами будут сыпаться на головы свободовцам.
Вот чтобы подобного казуса не произошло - либо надо убрать подобные пути, либо не пускать живность с ТД, кордонов и прочих болот ни на Янтарь, ни на Склады ни в прочие места, куда они пойдут через бар.
То есть, Кордон-x18 должны иметь один ключ, а вот Росток и Янтарь - уже другой.
Примерно так:local level_groups = { l01_escape = "1", l02_garbage = "1", l03_agroprom = "1", l03u_agr_underground = "1", l04_darkvalley = "1", l04u_labx18 = "1", l05_bar = "1", l06_rostok = "2", l07_military = "2", l08_yantar = "2", l08u_brainlab = "3", l10_radar = "2", l10u_bunker = "2", l11_pripyat = "2", l12_stancia = "2", l12u_sarcofag = "2", l12u_control_monolith = "2", l12_stancia_2 = "2" }
Росток-Янтарь оставляем в одной группе с радаром и прочими припятями, потому что тот уголок, где у них остается путь, нам не мешает. Ну и не забыть всякие перещеры с лощинами добавить.
Если мы не хотим, чтобы с конкретной локации кто-то уходил, и не пускать в не чужих - ставим отдельный, уникальный ключ.
Кстати, на счет "убрать пути" (или их не прописать, или запретить монстрам/неписям ходить по вершинкам с определенным флагом, но разрешить захватываться в смарт на локации, куда пути нет - будет как раз знаменитый вылет по плотям в x16
-
Прозекторская
Прозекторскаякакой именно флаг за это отвечает?Если у нпс в аллспавне стоит такой флаг
object_flags = 0xfffffff7
то аномалии он видеть не будет.