-
Число публикаций
4 084 -
Регистрация
-
Последнее посещение
-
Дней в топе
19 -
AMKoin
29,513 [Подарить AMKoin]
Весь контент пользователя dsh
-
@Карлан, удалять аномалии, когда они уже вышли в онлайн - это менее удобно, чем когда они в оффлайне, и не имеет особого смысла, т.к. выигрыш по времени мизерный и ничего не решающий. Хотя, может для тебя и наоборот. Тут уж каждый сам выбирает удобный путь.
-
@Карлан, от стандартной радиоактивной зоны хит приходит с не нулевой силой и по кости 65535. В общем, реестр аномалий того не стоит. Буду использовать стандартную зону и по старинке перебирать все id для поиска аномалий.
-
@Карлан, проверил. На первый взгляд нормальная радиоактивная аномалия. Хит радиации приходит, но сила хита 0 и кость тоже 0. Детектор трещит, радиация актора увеличивается.
-
@Карлан, не, в описанном мной случае clsid.zone_radioactive == 190, а метод clsid() у жарки, фонтана и радиации возвращает 180. Т.е. если я сравню clsid() == clsid.zone_zharka_s для жарки, фонтана и радиации, то получу true, что не есть правильно для случая, когда мне все-таки их нужно различать. А вот если не баловаться с регистрацией, тогда clsid() для радиоактивной зоны возвращает 190, т.е. clsid.zone_radioactive. Но все это уже пустое, т.к. naxac подсказал причину этой чехарды. Продолжая свои вопросы, что плохого будет, если я вместо cs_register( object_factory, "CRadioactiveZone", "se_zones.se_zone_anom", "ZS_RADIO", "zone_radio_s" ) сделаю cs_register( object_factory, "CMosquitoBald", "se_zones.se_zone_anom", "ZS_RADIO", "zone_radio_s" ) т.е. укажу "CMosquitoBald" вместо "CRadioactiveZone", который, как подсказал @naxac, не экспортирован? Во втором случае у меня все работает и с clsid никакой чехарды нет.
-
Эхъ, а хотелось красиво. Что бы "for id, sobj in pairs( se_zones.anoms ) do" вместо "for i = 1, 65534 do".
-
Т.е. получает нельзя делать то, что я делаю? Ведь в этом случае по clsid невозможно будет определить радиоактивную зону. В принципе, оно вроде как не очень и нужно, главное, что аномалия, а это определить возможно будет все равно. Но как-то некрасиво. Ну как же всегда, если оказывается, что это еще и фонтан и радиоактивная зона.
-
@naxac, все равно не понятно. От того, что в cs_register я указал zone_radiation_s, вместо zone_radiation, ничего с clsid не поменялось. Все осталось так-же, как я описывал и более того, clsid.zone_radiation_s равно nil. Т.е. то, что я делаю, вообще делать нельзя, т.к. какой-нибудь условный clsid.zone_zharka_s уже будет обозначать не аномалию, а какого-нибудь условного тушканчика, раз все сбивается? Или сами имена будут обозначать тоже самое, но у них просто изменится численное значение? Тогда почему у жарки, радиации и фонтана это значение стало одинаковым? Или может быть несколько имен в clsid с одинаковым значением и это нормально? Ну, это кому как. Мне буква S больше на Server намекает. Не стоит свои ассоциации прямо так на других проецировать. Читать-то читал, да только магию это не рассеяло.
-
@naxac, спасибо, после смены класса оно заработало. В секции zone_radioactive сделал class = ZS_RADIO и в class_registrator.script cs_register( object_factory, "CRadioactiveZone", "se_zones.se_zone_anom", "ZS_RADIO", "zone_radioactive" ) В чем отличие Z_RADIO и ZS_RADIO? Что из-за этого изменения поломается? И не понятно с clsid. После этого изменения self:clsid() радиоактивных зон возвращает 180, а clsid.zone_radioactive равен 190. В lua_help.script вижу const zone_radioactive = 180; А 180 равно clsid.zone_zharka_s. Ничего не понимаю.
-
Народ, подскажите пожалуйста, что я делаю неправильно? Хочу, что бы [zone_radioation], у которой class = Z_RADIO, обрабатывался se_zones.se_zones_anom. Добавляю в class_registrator.script: cs_register (object_factory, "CRadioactiveZone", "se_zones.se_zone_anom", "Z_RADIO", "zone_radioactive") Добавляю в se_zones_anom:on_register() вывод self:name() в лог, загружаю сейв и не вижу в логе радиоактивных аномалий, хотя скриптовый биндер показывает их выход в онлайн. Что я делаю не так?
-
@lsclon, это, похоже, сброшенный flInteractive Ну зачем сразу all.spawn. Можно и в нетпакете же поправить. А совет да, правильный. Нефиг так выеживаться. А то понаделают всяких, кому запрещено в оффлайн переходить, к примеру. Руки бы оторвал. Ох екарный бабай, да таких полный all.spawn в ОП-2, со сброшенным flInteractive. И главное, не понятно, а нафига. Что бы они имели возможность убиться в аномалии что-ли?
-
Расскажи пожалуйста, какой именно флаг за это отвечает? Не, ну против лома же нет приема. Нужно же npc:accessible() проверять, что бы прямо в аномалию не посылать. Я же описывал ситуацию, когда аномалия где-то на пути непися, а не когда его прямо в аномалию посылают.
-
Вот на этот счет, у меня есть одно подозрение. Сразу после выброса создаются новые аномалии и blowout_scheme отпускает неписей. В этот момент они начинают работать под предыдущей схемой, которая их куда-нибудь пошлет, к костру например. Но ограничения по новым аномалиям в них еще, скорее всего, не загружены. Или загружены, но не во всех. Дальше мои предположения. Движок их посылает на какой-то вертекс, который он считает свободным, т.к. ограничений по аномалиям еще не установлено. И тут обновляется обход аномалий и загружает ограничения. Но эта информация уже не используется, т.к. непися уже послали в аномалию. У себя я добавил условие, что бы blowout_scheme отпускал неписей через freq * 3 секунды (в моем случае, через 3), после окончания выброса. За это время во всех будут уже загружены новые ограничения.
-
@Dennis_Chikin, а после этого на все оружие должен нацепить глушители и оптику. И не важно, что они ему даром не сдались, главное, что бы было. А еще, вон в том, навеянном, бешено перебирается инвентарь каждого, уважающего себя непися. Не, ну а вдруг там, внезапно, образовался новый автоматик. Магически. Ни один колбэк не сработал, а автоматик, вдруг образовался. Ну мало-ли, думал наверное автор.
- 14 183 ответа
-
- 1
-
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
@Dennis_Chikin, да работает оно там. Не по человечески, но работает. Не работает у тех, кто в логике пишет combat_ignore_cond, не указав combat_ignore в [logic], что в Солянке сплошь и рядом. Ах да, еще же там в кондишне используют странные функции, которые сравнивают неизвестно что, с неизвестно чем. Ну так кривые руки не правятся.
-
@losiara, вот для этих друзей, что возвращают relation_registry.community_goodwill( npc:character_community(), db.actor:id() ) npc:goodwill( db.actor )
-
@losiara, полагаю, что те, кто стали нейтралами, принадлежат группировке, у которой goodwill к актору очень большой. Так?
-
Не, маловероятно. Опыты показывают, что при длинной строке add_restrictions() просто падает где-то внутри себя, вместе с движком. Хотя это и странно. Вроде внутри он оперирует с буферами по 4 килобайта, а падает при попытке добавить ему строку длиной ~3600 байт. В этот момент in_restrictions() возвращает строку длиной где-то 300 с небольшим байт, с постоянными рестрикторами типа костров, статических аномалий и т.п. Итого, суммарно все должно в 4 килобайта поместиться, а оно падает.
- 14 183 ответа
-
- 1
-
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
Хм... Спасибо за идею. В следующий раз проверю, когда снова столкнусь с этим. Если ты про ту схему, что я показывал, то там все просто. Каждому мобу заносятся в список ограничений имена всех аномалий в определенном радиусе. Ну а далее уже этот список периодически обновляется. Те аномалии, который стали располагаться дальше радиуса, удаляются, а те, который попали в радиус - добавляются. При движении моба движок так его ведет, что бы он не заходил внутрь объектов с именами, которые находятся у него в списке ограничений.
- 14 183 ответа
-
- 1
-
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
Просто для сведения. Одно другому не мешает. Раньше, в OGSE была реализована поведенческая схема обхода аномалий, когда работает что-то одно, либо обходим аномалию, либо воюем. Ну все помнят, когда неписи тупили перед несколькими близкими аномалиями и метались туда-сюда. В каких-то из последних версий K.D. переделал это, взяв за основу мой код ( на текущий момент уже устаревший ) и теперь обход аномалий движковый, т.е. работающий одновременно и независимо от поведенческих схем. Т.ч. сейчас ничто не мешает одновременно воевать и обходить аномалии. Но осталась одна вещь. При начале боя у непися снимаются все ограничения. Т.е., грубо говоря, его заставляют забыть о всех аномалиях, которые он должен обходить. Вот это вот неоднозначное решение.
-
Скорее наоборот. При начале боя, для неписей просто выключается обход аномалий, насколько я помню.
-
Так про это я тоже тебе писал, при редком расположении точек не работает этот костыль. Есть такое, в каких-то случаях. В каких - пока понять не смог. Плюет иногда движок на ограничения и ведет непися прямо через аномалию. Я это замечал у одного лагеря в ТД, когда они убегают прятаться от выброса, а потом возвращаются и прут прямо через новые аномалии, несмотря на то, что они были занесены им в рестрикции.
- 14 183 ответа
-
- 1
-
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
@Dennis_Chikin, а ты попробуй, пройдись циклом по всем вертексам, проверь какие из них accessible() для этого непися и сравни с тем, что тебе vertex_in_direction() возвращает.
-
@scarpena, вдобавок, посмотри на предыдущих страницах, где-то там я рассказывал, какие артефакты являются простыми, какие нулевого уровня и т.д.
-
Это почему это? Вот же for i = 0, pp:count() - 1 do local nearest_anoms = amk_anoms.get_anomaly_list_for_pos( pp:point( i ), 1 ) for _, v in pairs( nearest_anoms ) do ogse_anomaly_evader.remove_restriction( npc, v.id ) end end Убирает все аномалии, центр которых на расстоянии радиус + 1 от проверяемой точки. Так я же тебе недавно писал об этом. Под схемой-то у него game_object.patrol_path. И у меня такое ощущение, что для этого случая движок ограничения для мобов не обрабатывает. Вот move_mgr и удаляет аномалии, которые находят рядом с точками пути.
- 14 183 ответа
-
- 1
-
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
Ты указываешь начальный вертекс и задаешь расстояние. Движок ищет вертекс, который будет на максимальном расстоянии от начального вертекса, но не дальше указанного расстояния. Притом, у меня есть ощущение, что не дальше указанного расстояния - это не с точностью до миллиметра, а примерно. По идее, если запросить тот, который не дальше 20, то это будет именно то, что тебе нужно. А будет он, при этом, ближе 10 или дальше 10, уже зависит от наличия валидных вертексов на этом расстоянии.
УЧИМСЯ МОДДИНГУ
ИГРАЕМ В МОДЫ НА ТЧ
ИГРАЕМ В МОДЫ НА ЧН И ЗП
- [ЧН] 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
- ...и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ