-
Число публикаций
6 272 -
Регистрация
-
Последнее посещение
-
Дней в топе
33 -
AMKoin
513 [Подарить AMKoin]
Весь контент пользователя Dennis_Chikin
-
В чистом ТЧ - скорее никак, чем как-то. Происходит замена тушки живого непися на тушку дохлого.
-
Диетическая Солянка 2016
Dennis_Chikin ответил на тему форума автора Dennis_Chikin в Народная Солянка
В игре огнемет собран нетрезвым Шурупом из палок, веревок, манометра и горелки. Для внесения каких-либо изменений в данную конструкцию нужно принять внутрь сами-знаете-чего как минимум столько-же, сколько обычно принимает сам Шуруп. А это, на минуточку, для нормального человека - 3 гарантированно смертельных дозы. -
Прозекторская
Dennis_Chikin ответил на тему форума автора Dennis_Chikin в Скрипты / конфиги / движок
Это в следующей части. Там будут не просто грабли, там - целый склад сельхозинвентаря разнообразного. А вот в том куске, что разобрал - либо if name == "none" then return disagreed, либо elseif name == self:name() then return agreed_exclusive Что найдем в цикле первым. Как бы по-хорошему - none надо хранить и проверять отдельно, а уж если не выполнилось, то уже потом выбирать условия по local t = obj.smart_terrain_conditions[self:name()] if t and xr_logic.pick_section_from_condlist( db.actor_proxy, obj, t ) then return agreed_exclusive end return disagreed ну или типа того. Хотя на самом деле вообще не так, ибо дальше опять же сельхозсклад. -
Прозекторская
Dennis_Chikin ответил на тему форума автора Dennis_Chikin в Скрипты / конфиги / движок
Продолжаем разговор: почему неписи/монстры не идут под смарт? function se_smart_terrain:enabled( obj ) if self.disabled then return false end self:register_if_needed() self:initialize_if_needed() if self:is_gulag_available() and not self.population_locked then local b = self:obj_accepts_smart_terrain( obj ) local a = self:smart_terrain_accepts_obj( obj, b ) return a else return false end end Собственно, здесь у нас на входе непись или монстр, которые перебираются в апдейте с частотой из, вроде как, alife.ltx (но проверять - лень), для которых в свою очередь перебираются все существующие в игре смарты. Ну и есть принудительный апдейт непися "вот прям счаз" - см. se_respawn.script Если у нас есть флажок disabled - смарт отключен совсем. Изначально применялся с отладочной целью, но если руки шаловливые нигде не покопались - и так нормально работает. Сохранять его, или нет - дело, опять же - хозяйское. Далее попытки включить смарт и прочитать для него откуда-нибудь все нужные данные, если это не сделано раньше (ну вот такая вот конструкция, задом наперед), и проверка if self:is_gulag_available() ... function se_smart_terrain:is_gulag_available() if self.gparams.cond then local bb = xr_logic.pick_section_from_condlist( db.actor_proxy, self, self.gparams.cond ) ~= nil return bb else return true end end "Гулаг" - это такая запчасть от некогда задуманных но недопиленных "умных зон", которые вроде как должны были когда-то управлять табунами неписей в онлайне, и перекочевали сюда по принципу "для симулятора вертолета мы будем использовать симуляторы кенгуру, в которых использован симулятор борьбы с моджахедами на базе симулятора ПВО..." Короче, "объектно-ориентированное погромирование" как оно есть. gparams.cond - это табличка, которая заполняется при инициализации смарта из custom data вида [smart_terrain] type = esc_boars_flesh cond = {+esc_boar_dogs_restrictor} capacity = 4 preset = l01_escape squad = 1 groups = 1 stay = long в данном случае - в смарт кого-либо пустят только тогда, когда выполнено условие {+esc_boar_dogs_restrictor} Если условие не задано - в смарт желающих таки берут, но при условии, что пройдены остальные проверки. self.population_locked - очередной способ в смарт никого не пускать, но при этом из него никого и не выпускать. Далее, проверка - может ли этот непись или монстр вообще находиться в этом смарте: function se_smart_terrain:obj_accepts_smart_terrain( obj ) if obj.smart_terrain_conditions then local any_exclusive = false local s for name, condlist in pairs(obj.smart_terrain_conditions) do s = xr_logic.pick_section_from_condlist( db.actor_proxy, obj, condlist ) if s ~= nil then if name == "none" then return disagreed elseif name == self:name() then return agreed_exclusive end else if name == self:name() then return disagreed end end end end return agreed end Здесь, избавившись от изрядного количества мусора, мы видим весьма странную конструкцию с перебором в цикле таблички условий, которая была создана на основе custom data непися при его создании или загрузке игры. Если ее нет, то непись "на все согласный", если есть - сравниваем имя смарта, возвращенное по результатам проверки условий, со своим. То есть, если взять пример из предшествующего текста, с [smart_terrains] none = {-agroprom_military_case_have} mil_lager = {+agroprom_military_case_have} - непись пойдет в этот смарт, если выполнено условие {+agroprom_military_case_have} и смарт называется mil_lager, ИЛИ не пойдет в него, если если выполнено условие {-agroprom_military_case_have} ИМЕННО ТАК: может пойти, а может не пойти. В зависимости от расположения меркурия в созвездии скорпиона. Чтобы узнать точное расположение меркурия - надо еще проверить в вашем конкретном моде способ вычисления орбиты этого самого меркурия или где-то что-то поменять. Но вроде как-то срабатывает. Иногда. Примерно как в случае с указанием в логике непися on_info =, on_info2 =, on_timer = с одинаковыми секциями, но это уже другая тема. Хорошая новость состоит в том, что хэш от none вроде как меньше, чем от обычно используемых имен смартов, и это условие скорее всего будет все-же проверено первым. Плохая - "но это ... не точно?" (C) В общем, когда пишем условия - ДУМАЕМ, что из этого вообще может получиться или не получиться во всех возможных вариантах. На этом Шахерезада прекращает дозволенные речи, пока редактор окончательно не пришел в состояние полного изумления. -
Диетическая Солянка 2016
Dennis_Chikin ответил на тему форума автора Dennis_Chikin в Народная Солянка
Бармен сейчас в работе, огнемет - ну а в куда его разряжать? Надо будет просто заблокировать, и у него, и у гравипушки. Записка - да, одна в вагончике, вторая - в кузове грузовика. Вообще, надо будет с ними что-нибудь сделать, ибо не место им там. Толика - вот даже не знаю - править, или оставить возможность троллить... -
Ну так у нас же здесь сталкеровский форум. Задания брать - бери, выполнять - выполняй, но за репутацией - следи.
-
.parent_id 0 - актор, 65535 - земля. Как только что писал - "все равно никто не читает".
-
Диетическая Солянка 2016
Dennis_Chikin ответил на тему форума автора Dennis_Chikin в Народная Солянка
https://drive.google.com/open?id=11vKOz4moZon8VTJ1p_elTs0SCTDfLkdp Закинуть в gamedata\scripts, потом вернуть старый. Гранатами его можно убить, да. -
[SoC] Ковыряемся в файлах
Dennis_Chikin ответил на тему форума автора Halford в Скрипты / конфиги / движок
function rostok_chase3() if not rostok_strn3 then rostok_strn3 = alife():object( "bar_freedom_chasers_attack" ) end local g = rostok_strn3 and rostok_strn3.gulag if g and g.population_comed >= 1 then return false elseif actor:dont_has_info( "bar_ambush_dead" ) then actor:give_info_portion( "bar_ambush_dead" ) end return true end Впрочем, и этот пост, как и соседнюю тему, все равно никто читать не будет. Не для этого на сей форум заходят, чтобы что-то там читать. -
Ну так-то можно вообще баню без стен делать. Устанавливаем тепловые пушки в достаточном количестве, подводим к ним ЛЭП - профит!
-
Прозекторская
Dennis_Chikin ответил на тему форума автора Dennis_Chikin в Скрипты / конфиги / движок
Кстати, с этим редактором надо что-то делать. Еле впихал текст абы как, и что-то в нем трогать теперь банально боюсь. Если так будет продолжаться - придется переползать куда-нибудь в гуглодиск, а сюда кидать исключительно ссылки. -
Прозекторская
Dennis_Chikin ответил на тему форума автора Dennis_Chikin в Скрипты / конфиги / движок
Продолжаем разговор: неписи и смарты Как неписи (или монстры) захватываются под смарт, и почему они НЕ хахватываются. Разбор будет в несколько непривычной форме, поскольку тот случай, когда имеет место быть изрядное "спагетти". Итак, первым делом, когда непись создается, или загужается, он попадает в епархию se_stalker.script (для монстров - se_monster.script) Собственно, вот оно, начало спагетти: function se_stalker:on_before_register() self:fill_exclusives() end function se_stalker:fill_exclusives() self:get_ini() self.smart_terrain_conditions = smart_terrain.read_smart_terrain_conditions( self ) if self.smart_terrain_conditions then for name, condlist in pairs(self.smart_terrain_conditions) do smart_terrain.exclusives[name] = (smart_terrain.exclusives[name] or 0) + 1 end end end Здесь читается custom data, и наше спагетти ведет нас в недра собственно smart_terrain.script Но прежде коснемся тоже наболевшего вопроса о том, почему "не работает" так называемая "сякологика", она же - "amk-логика". На самом деле - вполне себе работает, но дело в том, в обоих случаях возможность записать свою custom data появялется уже ПОСЛЕ того, как она была прочитана, и в соответствии с ней что-то поделали в нижерассматриваемом. Второе - custom data может содержать в себе отсылку на файл с загружаемой логикой, но не наоборот. Чтобы из файла, на который ссылаемся в [logic] cfg = блабла.ltx читалось что-то еще - надо код дорабатывать. А чтобы custom data, которую мы сами прописываем в создаваемый объект была прочитана до s/l - надо переносить или дублировать ее чтение из on_before_register() в более другое место. Есть еще вариант, про который говорилось в статье про конфиги неписей: spawn_sections.ltx и его аналоги, где можно явно задать все то, что должно быть в custom data, например: [nosmart_monolith_1]:stalker character_profile = sim_monolith_regular spec_rank = experienced community = monolith custom_data = scripts\nosmart.ltx Недостаток такого решения - очень-очень-очень много конфигов на каждый чих - тоже плохо. В общем, тут, как говорится, каждый - сам себе злобный буратино, и может выбрать тот вариант, какой ему больше всего не надо, а мы едем дальше. Собственно, smart_terrain.script: local smart_section = "smart_terrains" ... function read_smart_terrain_conditions( self ) if self.ini and self.ini:section_exist( smart_section ) then local conds = {} local accepts = false local result, field, str local n = self.ini:line_count( smart_section ) if n > 0 then for i = 0, n-1 do result, field, str = self.ini:r_line( smart_section, i, "", "" ) conds[field] = xr_logic.parse_condlist(self, smart_section, field, str) end return conds end end return nil end self.ini - это у нас прочитанная ранее custom data, в которой мы ищем что-нибудь типа [smart_terrains] none = {-agroprom_military_case_have} mil_lager = {+agroprom_military_case_have} Это я взял первое, что под руку попалось. none - не пускать ни под какие смарты mil_lager - какой-то смарт, когда выполнилось условие для него и при этом не действует условие для none = xr_logic.parse_condlist() собственно и разбирает эти строчки в табличку, которая будет возвращена взад. Ну финал данных скачек тудыть-сюдыть обратно - for name, condlist in pairs(self.smart_terrain_conditions) do smart_terrain.exclusives[name] = (smart_terrain.exclusives[name] or 0) + 1 end - заполнение таблички по смартам общим количеством неписей, у которых этот смарт так или иначе упоминается. В чем смысл сего действа? В том, что в какой-то момент, когда неписю будет позволено/предписано отправиться в тот или иной смарт - там было место, незанятое всякими прочими, которых иначе пришлось бы куда-то девать. Кстати, неявный момент: емкость смарта, с учетом таких вот "подготовительных мероприятий" вполне может стать отрицательной - НЕ ИСПРАВЛЯЙТЕ ЭТО В СКРИПТАХ. Лучше, следите, чтобы недопускать ТАКОГО количества "избранных". Продолжение следует. -
Холода, однако, начались... У мну уже -21, а голова по-прежнему трещит. А в баньке тепло... И, да, спор Петровича с остальными специалистами по банестроению уже можно рассудить явно не в пользу Петровича: камушки и дымок - оно, конечно, хорошо, но когда на улице мороз - все тепло высвистает мгновенно. Не, не для наших краев.
-
Диетическая Солянка 2016
Dennis_Chikin ответил на тему форума автора Dennis_Chikin в Народная Солянка
Стандартный снайперский, бронебойный снайперский (да, и бьет сильнее, и через некоторые преграды лучше достает), и дешевый, который бьет чуть сильнее снайперского, но больший разброс и портит ствол быстрее. Аналогично с ПАБ-9 - бьет сильнее, чем СП-5, но больше разброс и быстрее портит ствол. -
Ковыряемся в файлах ОП 2.1
Dennis_Chikin ответил на тему форума автора Murarius в Объединенный Пак (ОП, ОП-2, ООП)
Oversized netpacket before write! [8202 > 8192] ... s\op-2.1\gamedata\scripts\binders\binder_safe.script:61 ... Предупреждали же: не пихайте все в один рюкзак. Лучше положить 10 рядом, и заполнять так, чтобы список влезал на одну страницу. -
Хе-хе... Вы его призывали, и он призвался. Щас что-то будет... А ведь сказано было: "Не поминай всуе!"
-
Псих О'Смотр
Dennis_Chikin ответил на тему форума автора Murarius в Приемный покой Клуб "Безумный Психиатр"
Судя по тому, что ссылки на этот мальварь вообще существуют - на свободе много кто, кому бы ну вот совсем не надо. -
[SoC] Ковыряемся в файлах
Dennis_Chikin ответил на тему форума автора Halford в Скрипты / конфиги / движок
{условие} вероятность создания при каждом апдейте, вероятность при невыполнении условия. Я вроде эту часть тоже разбирал подробно. -
Гм, боюсь, истории из текущей реальности таки будут сочтены за политику. Что же касается свинцовых мерзостей из прошлого, так более чем достаточно уже того факта, что даже айфонов не было.
-
Думаю, ближе к вечеру стоит скайп запустить. А то у меня с праздников еще кое-какие остатки остались. (Хм, посмотрел - и сейчас запущен. Но все равно лучше вечером.) В целом же - да, вот та самая иллюстрация к производственным отношениям. Желания, как мы видим, разные бывают, но конечный результат вовсе не обязательно соответствует. Впрочем, лично я для себя границу допустимого в другом месте провел, и просто даю три попытки, а по исчерпанию - ограничиваю контакт с неаппетитными субстанциями на столько, на сколько в моих силах.
-
Всегда 12!(С) Но это... не точно?
-
Вот как раз если отставить в сторону политику, и заниматься собственно историей, "всех нас" не получается. Ну и, хе-хе, производственные отношения - опять же предмет объективный, а не субъективный, в противном случае что Смит, что Кейнс с полным на то основанием именовались Великими Магами, благо - толк в заклинаниях знали. Касательно же "всех нас" - тут совершенно другой вопрос: о подверженности этих самых нас воздействию религии. На уровне самых что ни есть дикарей примитивных.
-
Тетя? 8-O
-
Все, осознал. Больше никаких правок делать не буду. Простите, дяденьки-тетеньки, кого этим раньше оскорбил-унизил.
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды