KD87 718 Опубликовано 10 Июля 2011 Поделиться Опубликовано 10 Июля 2011 *Shoker*, умеет и так, и так. Если лень самому вписывать, можно подсунуть папку config от мода. Ссылка на комментарий
Miller 10 Опубликовано 10 Июля 2011 Поделиться Опубликовано 10 Июля 2011 KD87 я так и понял,что скрипты из вашей подписи и есть универсальный ACDC Но вот что-то не могу разобраться,как ими пользоваться.Не подскажете? Ссылка на комментарий
Disord 1 Опубликовано 10 Июля 2011 Поделиться Опубликовано 10 Июля 2011 Miller, Universal ACDC Пользуйся так же, как и обычным АСДС, возможно потребуется установка Active Perl. Ссылка на комментарий
KD87 718 Опубликовано 10 Июля 2011 Поделиться Опубликовано 10 Июля 2011 Disord, на сталкерине acdc от 23 мая, в нем еще такого нет. Свежий надо скачивать из репозитория xray svn. Нужно щелкнуть по ссылке в моей подписи, справа нажать на кнопочку download и скачать архив. В архиве universal_acdc лежит по пути trunk\scripts\unpackers\spawn\. Miller, попробовал acdc на спавне Народной солянки - есть ошибки. Оказалось, например, что у них zone_ogon имеет другой скриптовый класс, нежели другие аномалии, несмотря на то, что движковый класс у них один. Зачем такое делать, мне не совсем понятно, но это дело разработчиков. Попозже сделаю обработчик такого рода ошибок. Спавны попроще (например, АМК) распаковываются на ура. Добавлено через 310 мин.: В общем, кому надо было распаковывать спавн народной солянки - берем свежую версию из подписи, вставил необходимый костыль. Только спавн глючный, некоторые пути там дублированы. В текущих скриптах стоит блокировка на упаковку спавнов с повторяющимися секциями - чистите пути от таких секций (вроде все они в way_labx8) или комментируйте 30ю строчку в ini_file.pm (с помощью #). Вместе с acdc использовать только текущую папку stkutils из репозитория. Ссылка на комментарий
Malandrinus 615 Опубликовано 11 Июля 2011 Поделиться Опубликовано 11 Июля 2011 KD87, имеет другой скриптовый класс, нежели другие аномалии, несмотря на то, что движковый класс у них один. Зачем такое делать, мне не совсем понятно Ну к примеру, чтобы хранить какие-то данные в серверном классе. Да и вообще, мало ли кто добавит свой новый класс для какого угодно объекта. Мне однако интересно, как можно разрулить это автоматически. Получается, надо прочитать из секции имя сета, найти скриптовый серверный класс в class_registrator, потом разделить имя на модуль и имя класса, разпарсить модуль и найти объявление класса вида class "имя класса" (движковый класс) тогда можно найти собственно движковый класс и понять, как разбирать пакет. Perl я не знаю, но там кажется регулярные выражения рулят, так что это сделать несложно. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
KD87 718 Опубликовано 11 Июля 2011 Поделиться Опубликовано 11 Июля 2011 malandrinus, с аномалиями немножко другая ситуация. zone_ogon сделана на классе Z_SMBALD, для которого зарегистрирован скриптовый класс se_zone_anom. Однако, zone_ogon по какой-то причине имеет класс cse_alife_anomalous_zone, то есть имеет место, наоборот, сокращение объема сохраняемых данных. По этой же причине мне неясно, как такое провернуть через class_registrator. Я сделал так - отловил ситуацию, когда в массиве данных для распаковки кончаются данные, но скрипту еще есть чего читать. В случае, если читать осталось 1 байт (last_spawn_time_present) и объект имеет класс se_zone_anom, можно сменить класс объекту на cse_alife_anomalous_zone и соответствующим образом изменить запись во внешней таблице section_to_class. Ссылка на комментарий
Malandrinus 615 Опубликовано 11 Июля 2011 Поделиться Опубликовано 11 Июля 2011 (изменено) KD87, По этой же причине мне неясно, как такое провернуть через class_registrator. Мы же всегда читаем имя секции в составе данных cse_abstract. Дальше можно остановиться, прочесть секцию в конфиге и узнать имя сета, прочесть class_registrator и по имени сета найти скриптовый класс, прочитать скрипт, найти объявление класса и узнать базовый движковый, ну и парсить данные дальше уже точно зная имя класса. И не надо заморачиваться на точное знание соответствий секций и классов. Надо конечно закешировать найденное соответствие, не делать же эту процедуру на каждый объект. Правда придётся подсовывать в придачу к папке конфига ещё и папку со скриптами. Изменено 11 Июля 2011 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
KD87 718 Опубликовано 11 Июля 2011 Поделиться Опубликовано 11 Июля 2011 (изменено) malandrinus, я с этого и начинал в свое время. Но, во первых, для каждой секции нужно иметь соответствующий движковый класс (а значит, читаем конфиги), во-вторых, не для всех классов зарегистрированы сеты в class_registrator (как определить остальные классы? особенно учитывая, что acdc должен поддерживать и билды, в которых зачастую нет скриптовых классов). Но это черт с ним. Если брать ситуацию со спавном солянки, имеем, что, zone_ogon имеет движковый класс ZS_MBALD. Скрипт лезет за подходящим сетом в class_registrator и находит там se_zone_anom. Но формат M_SPAWN в спавне-то именно cse_alife_anomalous_zone. Не отрицая того, что через class_registrator можно соотнести часть секций со скриптовыми классами, в данном случае не вижу, чем он может помочь. Изменено 11 Июля 2011 пользователем KD87 Ссылка на комментарий
PavelSnork 3 Опубликовано 11 Июля 2011 Поделиться Опубликовано 11 Июля 2011 (изменено) Как отследить, включен ли диалог сна и спит ли гг (в это время исчезает миникарта)? (Сиалкер ЗП) Изменено 11 Июля 2011 пользователем PavelSnork Жду ли я Сталкер 2? Хм... Ссылка на комментарий
Malandrinus 615 Опубликовано 12 Июля 2011 Поделиться Опубликовано 12 Июля 2011 KD87, как определить остальные классы? движковые сеты надо конечно знать, но их фиксированное число. Я естественно говорил только о скриптовых. Но если подумать, то да, выходит, что надо ещё и вытаскивать из скриптов ту добавку, что они добавляют в нетпакет, а это уже автоматизированно не сделать. Если брать ситуацию со спавном солянки, имеем, что, zone_ogon имеет движковый класс ZS_MBALD. Скрипт лезет за подходящим сетом в class_registrator и находит там se_zone_anom. Но формат M_SPAWN в спавне-то именно cse_alife_anomalous_zone. Признаться, вот это само по себе вызывает вопросы. В аллспавн значит данные есть только до cse_anomalous_zone, между тем как se_zone_anom представляет собой cse_anomalous_zone + флажок 1 байт + время (при флажке == 1). Вот как может быть скриптовый класс se_zone_anom, если в спавне для него нет данных? Он прочитает пакет до конца cse_anomalous_zone и будет читать дальше, но дальше то нет ничего. Он прочитает не понять какое значение флажка, а потом ещё и может попытаться прочитать какое-то время. Вот это и странно. Это вообще работает? Нет ли здесь большого косяка? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
KD87 718 Опубликовано 12 Июля 2011 Поделиться Опубликовано 12 Июля 2011 malandrinus, это надо спрашивать у авторов солянки. Я брал спавн из версии от 19.04 со всеми дополнениями и патчами. Ни в одном спавне больше такого не видел. Кстати, ни разу не видел, чтобы флажок (в all.spawn, конечно) был не нуль . В исходном acdc чтение времени даже не было заложено. А насчет недостатка данных - ну, вот, например, секцию M_UPDATE движок очень некритично читает - ему на ее размер вообще наплевать, больше там данных, меньше. Возможно, что-то подобное и тут имеет место быть - надо глянуть, как в движке функции чтения реализованы. Ссылка на комментарий
Desertir 202 Опубликовано 12 Июля 2011 Поделиться Опубликовано 12 Июля 2011 Если актор берет какой либо предмет из трупа, проверку на взятие нужно писать в bind_stalker в функцию on_item_take(obj)? Ответ можно в личку. ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Gerakruger 18 Опубликовано 12 Июля 2011 Поделиться Опубликовано 12 Июля 2011 Приветствую комрады, тут такое дело...в общем после старого доброго сталкера с его толпами зомби, кровосисей и остальной живности лично мне в Солянке не хватает адреналина. Ставить частый респавн (тушканов за насыпью /крыс или плотей) не выход из ситуации. Спавн через диалог не подходит - примитивно... Мои шаловливые ручонки подредактировали большинство файлов в НС "под себя". Но,никак не могу внедрить на локациях в Солянке монстров, используя обычный скриптовый спавн... Если в OGSM с этим проблем не было, там скриптовый спавн завязан на выброс и внести необходимые изменения в соответствующие файлы (указав координаты), заспавнивая на локациях монстров - проблем не возникало. Здесь же в НС никак не получается. Хочу видеть химеру и контроллера на кордоне регулярно и все тут... Вопрос на "засыпку" (любителям хардкора и вообще пострелять): Кто-нибудь скриптом спавнит дополнительно монстров (для остроты ощущений) на локациях в НС? Или может привязываете к выбросу или заходу на локацию? Если да - поделитесь кодом и как заставили это работать. Ссылка на комментарий
[PROTOTYPE] 18 Опубликовано 12 Июля 2011 Поделиться Опубликовано 12 Июля 2011 Прошу помощи, в разъяснении одного вопроса с логикой НПС в ЗП, не умирают в аномалиях, даже если в них попадают, всем, кто знает в чём причина, отпишите в лс С ТЧ не работаю. Вообще. Ссылка на комментарий
Kirag 39 Опубликовано 12 Июля 2011 Поделиться Опубликовано 12 Июля 2011 Desertir Функция on_item_take(obj) в bind_stalker запускается при попадании предмета в инвентарь актора любым способом - будь это подбор предмета откуда-либо, патроны из разрядки оружия, прямой спавн в инвентарь либо что-то еще. При подборе из трупа, соответственно, сработает тоже, НО этот случай никак не будет выделяться из всех остальных. Если сильно надо, чтобы какое-то действие запускалось только при подборе из трупа/ящика (разделить эти два момента - по-моему, никак, инфопоршень один), добавь дополнительное условие if db.actor:has_info("ui_car_body") then ... end Функция take_item_from_box(box, item) работает только при взятии предмета из тайника, работает с тайником и для твоих целей бесполезна... Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
_Призрак_ 11 Опубликовано 12 Июля 2011 Поделиться Опубликовано 12 Июля 2011 (изменено) Проблема скриптовая, логикой ее не решить. Идет еще мо времен оригинала Изменено 12 Июля 2011 пользователем _Призрак_ Freedom Ссылка на комментарий
Miller 10 Опубликовано 13 Июля 2011 Поделиться Опубликовано 13 Июля 2011 KD87 А какой pl в твоем acdc нужно использовать?universal_acdc или acdc_soc?Первый выдает ошибку о ненайденной секции stalker_sniper (хотя я папку конфиг сунул..а кстати,куда именно ее пихать?в stkutils?), а второй template is not defined Ссылка на комментарий
Disord 1 Опубликовано 13 Июля 2011 Поделиться Опубликовано 13 Июля 2011 (изменено) Думаю, вопрос в ту тему. Заранее извиняюсь, если вдруг не так. В общем имеется следующее: - файл с именами и путями к текстурам такого вида: act/act_sold wood/wood1 - вроде всё Можно ли сделать батник (ну или что-то другое), который я запущу, к примеру в папке gamedata/textures, а он мне выдернет вот эти текстуры из списка в папку gamedata2/textures. Естественно, всё должно аккуратно лежать также: gamedata2/textures/act/sold gamedata2/textures/wood/wood1 Если кто смастерит такой батник или какую-нибудь консольную программу, с меня подарок Ах да, забыл, если можно - то заодно и сам проверял - если бампы есть - то тоже кидать. Изменено 13 Июля 2011 пользователем Disord Ссылка на комментарий
KD87 718 Опубликовано 13 Июля 2011 Поделиться Опубликовано 13 Июля 2011 (изменено) Miller, universal_acdc. Почитай к нему ридми, там все написано. Папку config можно держать где угодно, но для простоты я обычно сую в ту же папку, где лежит pl скрипт. Добавлено через 2 мин.: Disord, а в каком контексте такое нужно? для чего? Изменено 13 Июля 2011 пользователем KD87 Ссылка на комментарий
Disord 1 Опубликовано 13 Июля 2011 Поделиться Опубликовано 13 Июля 2011 KD87, мне это необходимо, чтобы получить файлы текстур, используемые локацией. Есть специальный декомпилятор файла level, он мне его декомпилирует на список всяких интересных вещей, среди которых есть список текстур. Я просто хочу вытащить из общей геймдаты именно вот эти текстуры, а по одной я буду очень долго вытаскивать... Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти