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

[SoC] Ковыряемся в файлах

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

@HellRatz, что то странное. А как  же Зомби дружат с мутантами? 

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

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

@Максим_01, если убить или удалить спейс-рестрикторы, то много в оригинале работать не будет. Советую покапать в сторону удаления из алспавн рестрикторов и нпс. Далее останется чуть подрихтовать игру.

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

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

@CRAZY_STALKER666, а ты в курсе, что аллспавн - это такая штука, если правишь, то новая игра обязательна. Потому у тебя и логика не работает, как тебе хочется.

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий
37 минут назад, Дизель сказал:

А как  же Зомби дружат с мутантами?

В файле m_stalker_zombied.ltx за это взаимное "поведение" зомбированных сталкеров и мутантов отвечает строчка:

species  = zombie

в отличие от файла "обычных" сталкеров m_stalker.ltx, где строчка выглядит так:

species = human

  • Спасибо 1
  • Полезно 2
Ссылка на комментарий

@HellRatz ну вот либо со species играться, либо, как я, кажется, уже показывал, использовать enemy_callback. Вот, для примера, из моего конфига примеры:

; Болотный Доктор в МГ
dcity_dok_bolot   = monster, killer
dcity_dok_nevidim = monster, killer

А, не, не показывал. Это я про неуязвимость показывал. Ну пардон. У тебя же там в основе OGSE кажется. Тогда можешь попробовать адаптировать https://github.com/dsh2dsh/op2ogse/blob/master/gamedata/scripts/dsh_enemies.script

 

  • Спасибо 1
Ссылка на комментарий

В общем-то да, вроде (?) удалось достичь нужного благодаря созданию нового профиля сталкера и прописи в него нового species.

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2


Подарки

  • 2
  • Ссылка на комментарий
    Скрытый текст

    Как происходит в АМК-моде "трансмутация" артефактов (или как сварить артефакт в аномалии АМК-мода).
    Всё начинается с того момента, как только игрок выбросит какой-либо предмет из "рюкзака" ГГ - файл bind_stalker.script, функция amk.on_item_drop(obj). Следом срабатывает mod_call("check_for_af_drop",obj), т.е. вызов функции check_for_af_drop(obj), файл amk_mod.script. В которой первым делом определяется имя секции ("секция") выброшенного предмета. Затем секция сверяется по таблице local afs={...}. Итак, предположим, что игрок выбросил из инвентаря артефакт "Плёнка" (секция "af_dummy_pellicle"). В таблице afs такое имя есть - следовательно, этот артефакт входит в список "претендентов" на трансмутацию, поэтому далее функцией get_nearest_anomaly(obj) (файл amk_anoms.script) определяется идентификатор, позиция, радиус действия и расстояние ближайшей аномалии до выброшенного артефакта (в нашем случае "Плёнки"). Затем проверяется, попадает ли "Плёнка" в радиус действия аномалии, если да - то определяется имя секции аномалии и запускается дальнейшая проверка на доступность трансмутации функцией check_af_transform(obj,id,anom_sect) в этом же файле. Следом проверятся, является ли полученная аномалия подходящей для трансмутации выброшенного предмета (для "Плёнки" это будет аномалия "Трамплин"). Чтобы игрок не смог "сварить" артефакт в аномалии без рецепта, проверяется, установлен ли соответствующий инфопоршн. В случае с "Плёнкой" это инфопоршн info_amk_recipt_shkura, определённый в файле info_amk_recipts.xml, при получении которого, кстати, игрок и получает запись с "рецептом" трансмутации в соответствующем разделе PDA. Итак, если инфопрошн info_amk_recipt_shkura установлен, аномалия, в которую выброшен предмет - это "Трамплин", а сам выброшенный предмет - это артефакт "Плёнка", то артефакт тут же уничтожается с эффектом кратковременной засветки экрана, и вызывается функция af_start_transform_timer(af,pos,delay_d,delay_h,delay_m,af_sect) в этом же файле. Как видно, в неё первым параметром передаётся функция af_start_transform(v1,v2,af_from,af_target). На примере "Плёнки" это выглядит так: af_start_transform(70,25,af_sect,"af_armor_1"), где первый параметр - вероятность успешного процесса трансмутации (70), второй - вероятность "вырождения" (25, то есть вероятность получить "Булыжник" (бесполезный артефакт-пустышку) вместо полезного модификата), третий - имя секции выброшенного предмета (у нас это "Плёнка"), и, наконец, четвёртый - имя секции того самого модификата, ради которого всё это и затевалось (в нашем случае это "af_armor_1" - в миру он называется модификат "Шкура"). Функция может вернуть:
    1. имя секции целевого модификата (в данном случае "af_armor_1") если ГПСЧ math.random(0,100) выдаст значение менее либо равное 70 - удачная модификация,
    2. имя секции иходного предмета (в данном случае "af_dummy_pellicle") если math.random(0,100) выдаст значение более, чем 95 (70+25) - "отторжение", то есть неудачная попытка трансмутации, и вместо модификата будет получен исходный предмет ("Плёнка" в данном случае),
    3. имя секции "Булыжника" ("af_buliz") если math.random(0,100) выдаст значение более 70 и менее 95 - "вырождение", то есть вместо модификата будет получен тот самый бесполезный "Булыжник".
    Таким образом, в функцию af_start_transform_timer(af,pos,delay_d,delay_h,delay_m,af_sect), а в случае с "Плёнкой" это: af_start_transform_timer(af_start_transform(70,25,af_sect,"af_armor_1"), pos ,0,5,0,"Шкура") первым параметром фактически передаётся имя секции предмета, получаемого в результате трансмутации (либо полезный модификат, либо исходный предмет, либо "Булыжник"), вторым - сохранённая позиция выброшенного предмета (чтобы знать, где заспонить полученный результат трансмутации), третий параметр - дни процесса трансмутации (0), четвёртый - часы процесса трансмутации (5), пятый - минуты процесса трансмутации (0), шестой - имя целевого модификата (в нашем случае - "Шкура"), который в дальнейшем понадобится для получения сообщения о завершении процесса трансмутации и постановки отметки на карте. Далее функцией g_start_timer(name,delay_d,delay_h,delay_m,action), файл amk.script, в данном случае amk.g_start_timer("af_transform",delay_d,delay_h,delay_m,amk.pack_array_to_string(t)), запускается таймер процесса трансмутации, который будет отслеживаться функцией check_timers(), файл amk.script. Последним параметром "упаковываются" в строку и сохраняются имя секции результата трансмутации, позиция, гейм-вертекс, левел-вертекс, и имя целевого модификата. Процесс пошёл!
    Итак, прошли необходимые для этого 5 часов игрового времени, и срабатывает экшн "af_transform", заданный для таймера. Вызывается функция
    af_transform_end(params), файл amk_mod.script, в которую передаётся "распакованный" массив с сохранёнными ранее данными. В результате на сохранённых координатах будет заспонен один из трёх вариантов трансмутации (полезный модификат, исходный предмет, или "Булыжник"), и выдано сообщение о завершении процесса трансмутации. Несмотря на то, что на карте будет отмечено местоположение результата трансмутации с пометкой "Шкура" (в данном случае), вернувшись туда, запросто можно обнаружить не совсем то (или совсем не то), что мы ожидали :) 

     

    Изменено пользователем =VENOM=
    • Полезно 2
    Ссылка на комментарий

    А если модмейкеру лень читать все эти многабукав или он их не просил, или вообще в гробу видал, но хочется создать свой рецепт варки артефакта в аномалии, то:
    1. Создать секцию нового артефакта (необязательно артефакта и необязательно нового - можно вообще любой предмет получить в результате трансмутации).
    2. Создать имя и описание нового предмета - и, если необходимо, соответствующего рецепта для трансмутации.
    3. Если не хотим, чтобы игрок сварил модификат "без рецепта", создать соответствующий инфопоршн.
    4. В таблицу afs файла amk_mod.script добавить имя секции исходного предмета (необязательно артефакта).
    5. В функцию check_af_transform(af,anom_id,anom_sect) файла amk_mod.script добавить новое условие для какой-либо аномалии.
    Всё, можно пользоваться.
    Например, мы возжелали в аномалии "Электра" сварить из пистолета ПМ гранатомёт РПГ-7 (только учтите, что полученный гранатомёт случайно может оказаться в аномалии и будет испорчен вплоть до нуля). Тогда в таблицу afs добавим имя секции пистолета ПМ - "wpn_pm", а в условие проверки аномалии "Электра" - после строки
    if string.find(anom_sect,"_galant")~=nil then
    добавим строчки:
    if af_sect=="wpn_pm" and actor:has_info("agroprom_military_case") then 
        af_flash(af)
        af_start_transform_timer(af_start_transform(100,0,af_sect,"wpn_rpg7"), pos ,0,0,10,"Гранатомёт РПГ-7")
    end
    В результате после получения задания Сидоровича на документы военных на Агропроме можно закинуть любой ПМ в любую "Электру", и через 10 игровых минут из аномалии со 100% вероятностью "выпадет" новенький РПГ-7. Но до получения задания можно сколько угодно кидаться пистолетами в аномалии - толку не будет никакого.
    Вот как-то так.

    Изменено пользователем =VENOM=
    • Нравится 2
    • Полезно 1
    Ссылка на комментарий

    Здравствуйте. При удалении НПС заметил в логе строчки, выделенные зелёным:

    - Critical: SMapLocation binded to non-existent object id=734
    - Critical: CMapLocation::UpdateSpot binded to non-existent object id=734

    Вылета при этом нет, но есть подозрение, что в конце концов добром такое не кончится. В чем дело, кто-нибудь знает? В мап-спотах что ли?

     

    New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

    Русификатор для игры Vendetta: Curse of Raven's Cry

    Ссылка на комментарий

    Играл себе, играл, вышел из игры, а зайти не могу. Нет, я ничего не трогал перед этим абсолютно, просто вышел и зашел через пару минут, но уже не могу загрузиться даже до меню. Никто не сталкивался с таким добром и почему оно вылезло и что его вызывает? Есть идеи может?

    Loading DLL: xrGameSpy.dll
    stack trace:
    0023:04EE8600 xrGame.dll, xrFactory_Create()
    0023:004B9858 XR_3DA.exe, CConsole::ExecuteCommand()
    0023:004D25A4 XR_3DA.exe, CConsole::`vftable'
    0023:0040A470 XR_3DA.exe, IRender_Visual::Spawn

     

    GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

    JNCR — Coming Soon...

    i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2


    Подарки

  • 2
  • Ссылка на комментарий

    @HellRatz, на мой взгляд - делки и экзеха разных компиляций!?

    Bin - оригинал?

    Рано или поздно это должно было случиться.

     

     

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

    andreyholkin.gif

    rod_cccp.gif

     

    Ссылка на комментарий
    4 минуты назад, Дизель сказал:

    на мой взгляд

    не угадал. Движок ОГСЕ у меня, работало все от самого выхода 0693 (года 2 что ли уже прошло). С другими движками тоже вылетает. Такое ощущение, что что-то сломалось внутри геймдаты, но что именно выяснить похоже не реально и смахивает на тупик.

    Добавлено Expropriator,

    Причина в gamedata или же в движке ОГСЕ.

    GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

    JNCR — Coming Soon...

    i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2


    Подарки

  • 2
  • Ссылка на комментарий

    @HellRatz , в ЗП нет такой функции в движке

    0023:0040A470 XR_3DA.exe, IRender_Visual::Spawn

    Сейчас гляну в ТЧ. Возможно битая модель или что то.

     

    В 1.0004 так же нет такой функции.

    В 0.1009 - так же нет. :biggrin:

    Изменено пользователем Дизель
    Добавлено  HellRatz,

    У меня по исходникам 6 патча (Или он же 7ой) все ищет, и даже несколько IRender этих, но что за что там отвечает я не понимаю совершенно.

    andreyholkin.gif

    rod_cccp.gif

     

    Ссылка на комментарий

    @HellRatz, этих то много - но вот функции такой нет. Причина в модельке или текстуре (есть подозрение).

     

    Я нашел даже чем заканчивается лог [error][ 183] : Невозможно создать файл, так как он уже существует.

     

    Либо так
    001B:04026110 xrGame.dll
    001B:004B9858 XR_3DA.exe, CConsole::ExecuteCommand()
    001B:004D25A4 XR_3DA.exe, CConsole::`vftable'
    001B:0040A470 XR_3DA.exe, IRender_Visual::Spawn

    [error][ 126] : Не найден указанный модуль.

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

    andreyholkin.gif

    rod_cccp.gif

     

    Ссылка на комментарий

    @HellRatz, может косяк на диске. Переустанови мод. От админа, свойства файлов. Может антивирь чешит файл в этот момент. Перезагрузи систему.

    andreyholkin.gif

    rod_cccp.gif

     

    Ссылка на комментарий

    Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

    Комментарии могут оставлять только зарегистрированные пользователи

    Создать аккаунт

    Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

    Зарегистрировать новый аккаунт

    Войти

    Есть аккаунт? Войти.

    Войти
    • Недавно просматривали   1 пользователь

    AMK-Team.ru

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