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

Ковыряемся в файлах ОП 2.1


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

Кто нибудь отключал здесь пси удар при обыске зомбированных? В предыдущих солянках это делалось в файле xr_motivator.script Скиньте этот файл пожалуйста, у кого распаковано.

Скачал распакованные скрипты, но такого файла там не вижу... В каком теперь файле можно найти этот пси удар?

Изменено пользователем miks
обновление вопроса
Добавлено JAPAN,

арт есть от псиудара в игре, не помню щас название.

@miks В bind_stalker.script  закомментить строку sak.zombie_checkup().

Заметка изменена

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

@Svobodovec_Arbuz, death_items_by_communities.ltx, death_items_by_levels.ltx, death_items_count.ltx там вероятности и количество выпадения всего подряд, количество патронов правится в файле death_manager.script

  • Спасибо 1

n1psh4.gif

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

Как в спавнере называется "Сломанный Огнемет" который дает Кеп?

Добавлено JAPAN,

Попробуй flamethrower_bad 

«Твой драккар на дне лежит, сердце пламенем горит, но прохладны воды в море и душа не знает горя, день придёт, наступит час, смерть ждёт каждого из нас!»

 

Вышел ежик из тумана, выжрал ежик пол стакана, поглядел в пустой стакан и опять ушел в туман)))

Ссылка на комментарий
33 минуты назад, волк79 сказал:

проволока для Доцента

В спавнере akill_wire, по Борову у него теперь три квеста на отстрел и два из них на время.

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

@Recluse, В файле cycle_task.script через поиск находим строку {50,100}, 50 меняем на 0, после чего в файле cycle_task.ltx при помощи замены комменитм все строки target_cond и выходит, что в каждом взятом ЦЗ будут подходить оружие и броня в любом состоянии, не считая тех заданий, которые были взяты до правки

  • Спасибо 1
  • Нравится 2
  • Полезно 1

n1psh4.gif

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

По поводу вылета [10.02.19 11:50:24.247]  [LUA]  1 : [Lua] ...iles (x86)\op-2.1\gamedata\scripts\cycle_task.script(548) : check_task_props

...

[10.02.19 11:50:24.247] [error]Arguments     : Input object is nil!

 

Посмотрел сейчас файл, в котором я лично откручивал тормоза.

Строка выглядит так:        end

Вывод слегка очевиден.

 

И, да, если напрячь телепатию, и погадать на кофейной гуще, то весь кусок должен выглядеть примерно так:
 

Скрытый текст



--' Проверка свойств задания на доступность к выдаче
function CCycleTask:check_task_props(task_desc)
    --' Проверка по активным заданиям данного типа у вендора
    if self.active_task_by_type[task_desc.complex_type] ~= nil then
        task_desc.enabled_props = false
        return
    end

    --' Проверка по разовости
    if task_desc.status == self.status.once then
        task_desc.enabled_props = false
        return
    end

    --' Проверка по блоку приоритета по времени ожидания
    if self.current_vendor_locked_prior[task_desc.complex_type] and self.current_vendor_locked_prior[task_desc.complex_type] >= task_desc.prior then
        task_desc.enabled_props = false
        return
    end

    --' Проверка по кондлисту
    if task_desc.condlist and xr_logic.pick_section_from_condlist(db.actor, task_desc.condlist) == nil then
        task_desc.enabled_props = false
        return
    end

    --' Проверка по таймауту
    if task_desc.next_time then
        if task_desc.next_time >= game.hours() then
            task_desc.enabled_props = false
            return
        else
            task_desc.next_time = nil    --' Время ожидания вышло
        end
    end

    --' Проверка по цели
    if task_desc.type == self.type.eliminate_lager then
        local strn = task_desc.target and alife():object( task_desc.target )
        if strn then
            local g = strn.gulag
            if g and g:get_population_comed() >= 1 then
                task_desc.enabled_props = true
                return
            end
        else log( "cycle_tasks, invalid target: "
            .. ( ( task_desc.target and tostring( task_desc.target ) ) or "n/a" ) )
        end
        task_desc.enabled_props = false
        return

    elseif task_desc.type == self.type.defend_lager then

        if xr_gulag.getGulagState(task_desc.defend_target) == 1 and server_object(task_desc.target).gulag:get_population_comed() > 0 then
        --if xr_gulag.getGulagState(task_desc.defend_target) == 0 then --' Раскомментить вместо выше для отладки этого типа ЦЗ
            --' В смарте есть народ и на него действительно нападают
            task_desc.enabled_props = true
            return
        end
        task_desc.enabled_props = false
        return

    elseif task_desc.type == self.type.kill_stalker then
        --' Нету целей
        if task_desc.target_objects == nil then
            task_desc.selected_target = nil
            task_desc.enabled_props = false
            return
        end

        --' Проверим, живы ли наши цели и могут ли выйти в онлайн
        local oo
        if task_desc.selected_target then
            oo = server_object(task_desc.selected_target)
            if oo == nil or oo.alive == nil or not oo:alive() then
                task_desc.selected_target = nil
            end
        end
        for k,v in pairs(task_desc.target_objects) do
            oo = server_object(v)
            if oo == nil or oo.alive == nil or not oo:alive() or not oo:can_switch_online() then
                table.remove(task_desc.target_objects, k)
            end
        end

        --' Не осталось целей
        if #task_desc.target_objects == 0 then
            task_desc.selected_target = nil
            task_desc.enabled_props = false
            return
        end

        --' Выбираем текущую цель задания
        if not task_desc.selected_target then
            task_desc.selected_target = table.random(task_desc.target_objects)
        end
        task_desc.enabled_props = true
        return
    else
        task_desc.enabled_props = true
        return    
    end
end


 

Впрочем, и даже это - тоже неправильно, и переписывать надо ВСЕ.

Добавлено  Опричник,

Портянки под спойлер, плиз.

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

Привет ребята! Может кто подсказать, как в спавнере Веном обзывается?

Добавлено JAPAN,

new_hell вроде так.

 

мать - ASUS TUF GAMING Z690-PLUS D4, процессор -Intel Core i5 - 12400F  ,память DDR4 -Corsair Dominator Platinum RGB  ( 3600 Mhz 32 гб) , видео - ASUS  GeForce RTX 3060 Ti 8 ГБ (ROG STRIX) ,  система на SSD 512Gb Kingston KC3000 , игра на отдельном SSD 512Gb Kingston KC3000 , Win10 -64 bit PRO. , блок питания ASUS ROG-THOR-850P . , СВО ASUS ROG RYUJIN III 360 ARGB EVA  , корпус   Thermaltake View 71 Tempered Glass.                                                          

http://nick-name.ru/forum2t5/Alfa2012.gif

Ссылка на комментарий
5 часов назад, Gadenysh80 сказал:

нормальное выпадение патронов

Скрытый текст

local npc_level_count={
    ["novice"]={
        ["rifle"]={["min"]=5,["max"]=10},
        ["pistol"]={["min"]=5,["max"]=10},
    },
    ["experienced"]={
        ["rifle"]={["min"]=10,["max"]=15},
        ["pistol"]={["min"]=10,["max"]=15},
    },
    ["veteran"]={
        ["rifle"]={["min"]=15,["max"]=20},
        ["pistol"]={["min"]=10,["max"]=15},
    },
    ["master"]={
        ["rifle"]={["min"]=20,["max"]=25},
        ["pistol"]={["min"]=15,["max"]=20},

 

  • Полезно 1

Найди покой в своей душе, всё остальное само найдёт тебя.

Ссылка на комментарий
1 час назад, tihik сказал:

death_manager.script

Подскажите плиз, новичок, опытный, ветеран, мастер... Это скок выпадет в зависимости от уровня сложности или сколько штук патронов выпадает при килле того же новичка,ветерана или мастера? Путаюсь малёхо)) Спасибо!

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

@Starkiller, это для Нпс, зависимость кол-ва от ранга. Правь сколько душе угодно:az1000106:

Момент один важный, вчера сам попался. Ловил вылет и понять не мог, лог на определенный скрипт указывал, но там все в порядке было. Единственное что правку не в WinMerge а в блокноте делал, на этом и "попался".. Видимо с кодировкой что то не так, переделал в WinMerge, все заработало.

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

Найди покой в своей душе, всё остальное само найдёт тебя.

Ссылка на комментарий
В 10.02.2019 в 19:19, tihik сказал:

зависимость кол-ва от ранга

Окей, окей.. Тогда почему в death_items_count на мастере в оригинальном файле стоят цифры

Скрытый текст

;Аммуниция
ammo_9x18_fmj        = 3, 5
ammo_9x18_pmm        = 3, 5
ammo_9x19_pbp        = 3, 5
ammo_9x19_fmj        = 3, 5
ammo_11.43x23_hydro    = 1, 3
ammo_11.43x23_fmj        = 1, 3
ammo_9x21_11            = 1, 3
ammo_9x21_10            = 1, 3
ammo_9x19_7h21        = 1, 3
ammo_40sw_hp            = 1, 3
ammo_40sw_ap            = 1, 3
ammo_12.7x55_fmj        = 1, 2
ammo_12.7x55_ap        = 1, 2
ammo_12x70_buck        = 1, 3
ammo_12x76_dart        = 1, 2
ammo_12x76_zhekan        = 1, 2
ammo_410_buck         = 1, 4
ammo_410_dart         = 1, 3
ammo_5.45x39_ap        = 1, 3
ammo_5.45x39_fmj        = 1, 3
ammo_9x39_sp5        = 1, 3
ammo_9x39_ap            = 1, 3
ammo_9x39_pab9        = 1, 3
ammo_5.56x45_ss190    = 1, 3
ammo_5.56x45_ap        = 1, 3
ammo_7.62x54_7h14        = 1, 2
ammo_7.62x54_7h1        = 1, 2
ammo_7.62x54_ap        = 1, 2
ammo_7.62x39_fmj            = 1, 3
ammo_7.62x39_ap             = 1, 3
ammo_7.62x39_k              = 1, 3
ammo_7.92x33_fmj            = 2, 4
ammo_7.92x33_ap             = 2, 4
ammo_7.92x57_fmj        = 1, 3
ammo_7.92x57_ap        = 1, 3
ammo_og-7b            = 0
ammo_vog-25p            = 0
ammo_vog-25            = 1
grenade_f1            = 0
grenade_rgd5            = 1
grenade_gd-05            = 1
grenade_flash            = 1
ammo_m209            = 1
ammo_gauss            = 1, 2
ammo_12.7x108        = 1, 2
ammo_7.62x51box        = 1, 3
ammo_7.62x51_box        = 1, 3
ammo_igl                    = 1, 2
ammo_arbolt            = 2, 6
ammo_7.62x25_ps        = 3, 7
ammo_7.62x25_p        = 3, 7
ammo_7.62x51_fmj        = 1, 2
ammo_7.62x51_ap        = 1, 2
ammo_super_gauss        = 1, 2
ammo_7.62x54r            = 1, 3
ammo_minigun            = 1, 3
ammo_5.7x28_ss190        = 2, 6

То бишь они совсем не те что в death_manager.script. Почему так?? Путаница выходит...

 

У меня в death_items_count выставлено кол-во патронов что должны выпадать с трупов, это немного, 10-15шт в самый раз. НО! Они просто не выпадают при том что в ОП 2 это работало. Теперь же примешан какой-то death_manager.script и там вообще другие значения! Так в каком же файле править чтоб выпадало то кол-во боеприпасов, которое я выставил! Помогите разобраться)

Изменено пользователем Starkiller
неправильно создал спойлер
Ссылка на комментарий

Пацаны, подскажите консольную команду на отображение FPS. Помню начинается с rs_ а дальше не помню.

Добавлено JAPAN,

@SaintsJens, rs_stats_fps on\off

Заметка изменена

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

Есть две установленные оп2.1 в разных папках.

Как вторую копию заставить читать и сохранять сейвы в папке первой копии?

 

$game_saves$        = true|        true|    $app_data_root$|    C:\Games\OP-2.1\userdata\savedgames

вписанное в fsgame внутри папки второй копии не помогло, она перестала видеть любые сейвы, может я как-то неправильно вписал?

 

PS решено.

Помогло в таком виде, теперь две копии опы делают и загружают сейвы из одного и того же места, удобно. Одна опа с правками, другая без.

 

$game_saves$        = true|        true|    C:\Games\OP-2.1\userdata\savedgames

Изменено пользователем W.A.S.P.
Добавлено  Опричник,

Следите за пунктуацией - https://pixelplus.ru/studio/stat/pravila-postanovki-probela-ryadom-so-znakami-prepinaniya/

Ссылка на комментарий
1 час назад, Alexander_Vesker сказал:

Не платим Гарику антирадами за вход к Бармену.

Я бы не советовал "обнулять" антирад в самих функциях. Мало ли где они ещё вызываются. Лучше закомментить вызов функций в диалоге с Гариком. 

        <!--<precondition>sak_dialog.antirad_have</precondition>-->
            <text>garik_dialog_5</text>
            <!--<action>sak_dialog.give_antirad</action>-->
            <next>8</next>

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

Добрый день, подскажите пожалуйста поставил сборку от Сибиряка и наблюдаются постоянные вылеты при быстром сохранение и загрузке

Вот лог

FATAL ERROR


[error]Expression    : error handler is invoked!

[error]Function      : handler_base
[error]File          : xrDebugNew.cpp
[error]Line          : 870
[error]Description   : std: out of memory

Добавлено Гость,

std: out of memory Информирует Вас о не хватке памяти, понизьте настройки, избавьтесь от хлама.

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

А где можно отредактировать турель, что в инвентарь влезает?

Добавлено JAPAN,

Конфиг/миск/гуест итем/strelok_turret. Это, если тебе надо вес подправить, все остальное есть в шапке.

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

@Voland-Li, Впиши в показометр имя искомого предмета и оно все тебе так же на карте отобразит только метка будет немного другая
 

Скрытый текст

-- ставим метки на конкретные объекты по секции
        for i, v in ipairs( {    -- сюда вписывать имена секций, в кавычках, через запятую
            "Пишешь имя бутылок сюда",    -- вот так 

        } ) do t_sect[v] = true end

Квестовые бутылки называются quest_vodka

Изменено пользователем polkooovnik
  • Спасибо 1
  • Полезно 1

Оп 2.1 Актуальная версия показометра 0.5 тут
ОП 2.2 Актуальный показометр бета 5 ТУТ

Альтпатч на ОП 2.1 от создателей шикарных фитч 25.07.19 Final
Диетическая солянка с патчем от 17.01.2021 тут

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

@skitalez_rus, шапка.

А конкретно, скачай файлик m_pseudodog.ltx из шапки и сравни со своим. Или тупо замени. Или могу свой скинуть. Нужно? У меня там только пси урон и рывки бошкой гг убраны. Цвет и тормоза я оставил.

 

P.S.: КАМАЗ - пушка! Перегнал с АТП и прыгаю по холмам от свалки до схрона и обратно. (схрон в углу карты, где то под складами). Заноса нет почти, с 0 до 100 секунды за 2. Только переворачивает бывает, но это не беда.

@Alexander_Vesker, шибко геморно. И работает вроде через эт самое.

@skitalez_rus, кайфолом мне гугл драйв подключать, так лови.

Скрытый текст

[m_pseudodog_e]:monster
SpaceRestrictionSection = space_restrictor,zone_mosquito_bald
Scheduled                 = on            ; option for ALife Simulator
Human                      = off            ; option for ALife Simulator
Health                     = 250            ; option for ALife Simulator
MinSpeed                 = 1.0            ; option for ALife Simulator
MaxSpeed                 = 1.5            ; option for ALife Simulator
going_speed              = 5.0                          ; option for ALife Simulator
current_level_going_speed    = 1;2    ; option for ALife Simulator
search_speed             = 1.5                       ; option for ALife Simulator
visual                = monsters\pseudodog\pseudodog
corpse_visual        = monsters\pseudodog\pseudodog_dead
icon                = ui_npc_monster_pseudodog
short_name            = Pseudodog
MaxHealthValue    = 250        ; range [0..200]
smart_terrain_choose_interval = 00:15:00

Spawn_Inventory_Item_Section = part_psevdodog_tail
Spawn_Inventory_Item_Probability = 0.7

ef_creature_type     = 21            ; option for evaluation functions
ef_weapon_type     = 3
ef_detector_type     = 1
panic_threshold         = 0.1

class    = SM_P_DOG                ; AI class

bone_torso         = bip01_spine1     ; bone name
bone_head         = bip01_head        ; bone name
bone_fire         = bip01_head        ; bone name
weapon_usage     = 0                    ; boolean

; Physics
ph_box0_center              = 0.0,  0.2,  0.0    ;0.0,  0.9,  0.0
ph_box0_size                  = 0.50, 0.4,  0.50    
ph_box1_center              = 0.0,  0.2,  0.0
ph_box1_size                  = 0.50, 0.4,  0.50
ph_crash_speed_min        = 100
ph_crash_speed_max        = 300
ph_collision_damage_factor = 0.1
ph_mass                          = 78    ; also it's the food

destroyed_vis_name  = dynamics\dead_body\skelet_crash_monster

ph_skeleton_airr_lin_factor       = -0.41 ;(изменно из-за того, что убрано домножение коэффициент 0.002 из кода)
ph_skeleton_airr_ang_factor       = -0.20 ;(изменно из-за того, что убрано домножение на коэффициент 0.3 из кода (0.0*0.3=0.0))
ph_skeleton_hinger_factor1        = 1.0 ;1.0 (изменно из-за того, что убрано домножение на коэффициент 5.0 из кода)
ph_skeleton_ddelay                   = 15.0 ;Время изменения значения трения в суставе с момента создания шелла, сек

ph_skel_fatal_impulse_factor      = 1.0
ph_after_death_velocity_factor    = 0.30
ph_skel_shot_up_factor                = 0.25

; Movement::Velocities & Acceleration
; speed factors            linear | angular_real | angular_path | min |  max
Velocity_Stand                = 0,            1.4,            1.4,        1,        1
Velocity_RunFwdNormal    = 6.6,        2.0,            2.0,        0.05,    1.0    
Velocity_RunFwdDamaged    = 4.3,          2.0,            2.0,        0.5,        1.0
Velocity_WalkFwdNormal    = 5.0,        2.0,            2.0,        0.1,        1.0
Velocity_WalkFwdDamaged = 2.2,        3.0,            3.0,        0.1,        2.2    
Velocity_Drag                = 0.6,        0.8,            0.8,        1,        1
Velocity_Steal                = 1.6,        3.0,            3.0,        1,        1

; acceleration
Accel_Generic        = 1.5
Accel_Calm        = 2.5
Accel_Aggressive    = 14.5

; Attack parameters
MinAttackDist        = 1.6    
MaxAttackDist        = 2.0
as_min_dist            = 1.0
as_step            = 0.2

Min_Satiety            = 0.95
Max_Satiety        = 1.0
distance_to_corpse    = 1.8
terrain                 = pseudodogs_terrain

Melee_Rotation_Factor    = 2.6

; Entity Conditions
satiety_v             = 0.0001    ;0.01        ;скорость уменьшения сытости со временем
radiation_v             = 0.00001    ;0.004        ;скорость уменьшения радиации
satiety_power_v     = 0.005        ;0.01        ;увеличение силы при уменьшении сытости 
satiety_health_v     = 0.00001    ;0.03        ;увеличение здоровья при уменьшении сытости 
satiety_critical         = -1.0        ;0.25        ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться
radiation_health_v     = 0.01        ;0.006        ;уменьшение здоровья при воздействии радиации
morale_v            = 0.1                    ;скорость восстановления морали
health_hit_part         = 0.8        ;0.8            ;процент хита, уходящий на отнимание здоровья
power_hit_part         = 1.0        ;0.9            ;процент хита, уходящий на отнимание силы
psy_health_v         = 0.1                    ;скорость восстановления psy-здоровья

immunities_sect        = pseudodog_immunities

;открытые раны
bleeding_v                = 0.04                    ;потеря крови при номинальной ране в секунду
wound_incarnation_v    = 0.04                    ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду)
min_wound_size        = 0.01

sleep_health         = 1.0        ;1.5
sleep_power         = 1.0        ;1.5
sleep_satiety         = 1.0        ;0.8
sleep_radiation     = 1.0        ;1.1
sleep_psy_health     = 1.0

eat_freq            = 5.0
eat_slice            = 0.01
eat_slice_weight    = 10.0
satiety_threshold    = 0.5        ; below this value monster fill hunger

; Sounds and sound parameters
sound_idle                = monsters\pseudodog\pdog_idle_      
sound_eat                = monsters\pseudodog\pdog_chew_      
sound_aggressive        = monsters\pseudodog\pdog_aggression_  
sound_attack_hit        = monsters\pseudodog\pdog_attack_
sound_take_damage    = monsters\pseudodog\pdog_hurt_      
sound_die                = monsters\pseudodog\pdog_death_     
sound_bkgnd            = monsters\biting\def_
sound_threaten            = monsters\pseudodog\pdog_threaten_ 
sound_landing            = monsters\biting\def_
sound_steal            = monsters\biting\def_
sound_panic            = monsters\dog\hit_
sound_growling            = monsters\biting\def_
sound_psy_attack        = monsters\pseudodog\psy_attack_
sound_die_in_anomaly    = monsters\pseudodog\pdog_death_

idle_sound_delay            = 92000
eat_sound_delay            = 3000
attack_sound_delay        = 28500

sound_distant_idle            = monsters\pseudodog\pdog_idle_
distant_idle_sound_delay    = 80000
distant_idle_sound_range    = 100.0    

SoundThreshold     = 0.05        ; range [0..1]
max_hear_dist         = 60

; Vision
eye_fov            = 110    ;150
eye_range            = 60    ;100
min_view_distance           = 0.4            ; коэффициент, который множится на eye_range, в зависимости от угла
max_view_distance             = 1.0            ; коэффициент, который множится на eye_range, в зависимости от угла
visibility_threshold             = 100.0            ; значение, при достижении суммой которого объект считается видимым
always_visible_distance     = 0.2
time_quant                    = 0.001
decrease_value            = 0.01            ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам
velocity_factor                     = 0.5
luminocity_factor            = 0.5             ; фактор освещения (только для Актёра)
transparency_threshold        = 0.25

; Morale
Morale_Hit_Quant                    = 0.1
Morale_Attack_Success_Quant        = 0.1
Morale_Take_Heart_Speed        = 0.1
Morale_Despondent_Speed        = 0.1
Morale_Stable_Speed                = 0.01
Morale_Despondent_Threashold    = 0.5

; Jump Parameters
jump_delay                    = 3000
jump_factor                    = 2.5
jump_ground_trace_range    = 1.0
jump_hit_trace_range        = 2.0
jump_build_line_distance    = 1.0
jump_min_distance            = 4.0 
jump_max_distance            = 8.0
jump_max_angle            = 0.2
jump_max_height            = 3.5

; Other Stuff (refactoring needed)
DamagedThreshold            = 0.2
critical_wound_threshold        = -1
critical_wound_decrease_quant    = 0.

material                = creatures\medium
squad_attack_algorithm = 1

attack_effector            = m_pseudodog_attack_effector
damage                = m_pseudodog_damage
attack_params            = m_pseudodog_attack_params
step_params            = m_pseudodog_step_params

LegsCount                 = 4
anger_hunger_threshold = 0.1
anger_loud_threshold     = 0.7

;species of monster
species                = pseudodog
rank                    = 0
spec_rank                = weak
community                = pseudodog

[m_pseudodog_attack_params]
;    anim            | time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |    Field of hit_test  (left,right, top, bottom) |    Test Dist
;Bite
stand_attack_0    =          0.35,        0.30,        80,        0.0, 1.0, 1.0,        -1.0, 1.0, -1.0, 1.0,        2.5
;Jump attack
run_jamp_1        =        0.55,        0.40,        100,      0.0, 1.0, 4.0,         -1.8, 1.8, -1.8, 1.8,        1.0

;===========================================================================
; SPECIAL EFFECTORS
;===========================================================================
[m_pseudodog_attack_effector]
duality_h        = 0.01
duality_v        = 0.01
blur                = 0.01
gray            = 0.5
noise_intensity     = 0.0
noise_grain        = 1
noise_fps        = 30
color_base        = 0.65,0.15,0.1
color_gray        = 0.333,0.333,0.333
color_add        = 0,0,0
time            = 0.3
time_attack        = 0.05        ; fade in
time_release    = 0.25        ; fade out

; camera effects
ce_time                = 0.45 ;time 
ce_amplitude        = -15.0 
ce_period_number    = 2.0 
ce_power            = 1.0 ;0.7 ; power 

;===========================================================================
; Step Events
;===========================================================================
[m_pseudodog_step_params] ;               left             right            right           left
;    anim                    cycles |    time1 | power1 |    time2 | power2 | time3 | power3 | time4     | power4 |
stand_walk_fwd_0        =       1,        0.1,      1,          0.34,    1,         0.6,     1,            0.84,        1
stand_walk_dmg_0        =       1,        0.2,      1,          0.25,    1,         0.5,     1,            0.7,            1
stand_run_0            =    1,        0.1,      1,          0.3,      1,         0.5,     1,            0.55,        1
stand_run_dmg_0        =    1,        0.2,      1,          0.25,    1,         0.7,     1,            0.75,        1
stand_drag_0            =    1,        0.2,      1,          0.25,    1,         0.7,     1,            0.75,        1

;===========================================================================
; IMMUNITIES
;===========================================================================
[pseudodog_immunities]
burn_immunity             = 1.0
strike_immunity             = 0.5
shock_immunity         = 0.5
wound_immunity         = 0.5
radiation_immunity         = 0.0
telepatic_immunity         = 1.0
chemical_burn_immunity = 0.8
explosion_immunity     = 0.4
fire_wound_immunity      = 0.5

;=================================================================================
; PSEUDO-DOG Damage
;=================================================================================
[m_Pseudodog_damage]
;bone_name         = <hit_scale>,-1,<wound_scale>
;<hit_scale>    - коэфф. изменения хита (уменьшения здоровья) 
;<wound_scale>    - коэфф. изменения величины открытой раны

default                = 0.3, -1, 0.1
bip01_pelvis         = 1.0, -1, 0.1
bip01_spine         = 0.6, -1, 0.1
bip01_spine1         = 0.8, -1, 0.1
bip01_neck         = 1.2, -1, 1.5
bip01_head         = 2.5, -1, 0.3, 10

;=================================================================================
; PSEUDO-DOG Terrain
;=================================================================================
[pseudodogs_terrain]
    255,000,255,255

; WEAK PROFILE
[pseudodog_weak]:m_pseudodog_e
visual                = monsters\pseudodog\pseudodog
icon                = ui_npc_monster_pseudodog
short_name            = pseudodog_weak
panic_threshold        = 0.5
rank                = 0
immunities_sect        = pseudodog_immunities_weak
attack_params        = pseudodog_attack_params_weak
spec_rank            = weak
community            = pseudodog

[pseudodog_immunities_weak]
burn_immunity            = 1.0
strike_immunity            = 1.0
shock_immunity            = 1.0
wound_immunity        = 0.1
radiation_immunity        = 0.0
telepatic_immunity        = 1.0
chemical_burn_immunity = 1.0
explosion_immunity        = 0.5
fire_wound_immunity    = 0.5

[pseudodog_attack_params_weak]
;    anim            | time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |    Field of hit_test  (left,right, top, bottom) |    Test Dist
;Bite
stand_attack_0    =          0.45,        0.50,            100,        0.0, 1.0, 1.0,         -1.0, 1.0, -1.0, 1.0,                1.6
;Jump attack
run_jamp_1        =        0.55,        0.70,            220,        0.0, 1.0, 4.0,         -1.8, 1.8, -1.8, 1.8,                1.0

; NORMAL PROFILE
[pseudodog_normal]:m_pseudodog_e
visual                = monsters\pseudodog\pseudodog
icon                = ui_npc_monster_pseudodog
short_name            = pseudodog_normal
panic_threshold        = 0.2
rank                = 401
immunities_sect        = pseudodog_immunities_normal
attack_params        = pseudodog_attack_params_normal
spec_rank            = normal
community            = pseudodog

[pseudodog_immunities_normal]
burn_immunity            = 1.0
strike_immunity            = 1.0
shock_immunity            = 1.0
wound_immunity        = 0.1
radiation_immunity        = 0.0
telepatic_immunity        = 1.0
chemical_burn_immunity = 1.0
explosion_immunity        = 0.5
fire_wound_immunity    = 0.4

[pseudodog_attack_params_normal]
;    anim            | time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |    Field of hit_test  (left,right, top, bottom) |    Test Dist
;Bite
stand_attack_0    =          0.45,        0.60,            100,        0.0, 1.0, 1.0,         -1.0, 1.0, -1.0, 1.0,                1.6
;Jump attack
run_jamp_1        =        0.55,        0.80,            260,        0.0, 1.0, 4.0,         -1.8, 1.8, -1.8, 1.8,                1.0

; STRONG PROFILE
[pseudodog_strong]:m_pseudodog_e
visual                = monsters\pseudodog\pseudodog_grey
corpse_visual        = monsters\pseudodog\pseudodog_grey_dead
icon                = ui_npc_monster_pseudodog_grey
short_name            = pseudodog_strong
panic_threshold        = 0.05
rank                = 801
immunities_sect        = pseudodog_immunities_strong
attack_params        = pseudodog_attack_params_strong
spec_rank            = strong
community            = pseudodog

[pseudodog_immunities_strong]
burn_immunity            = 1.0
strike_immunity            = 1.0
shock_immunity            = 1.0
wound_immunity        = 0.07
radiation_immunity        = 0.0
telepatic_immunity        = 1.0
chemical_burn_immunity = 1.0
explosion_immunity        = 0.5
fire_wound_immunity    = 0.3

[pseudodog_attack_params_strong]
;    anim            | time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |    Field of hit_test  (left,right, top, bottom) |    Test Dist
;Bite
stand_attack_0    =          0.45,        0.70,            120,        0.0, 1.0, 1.0,         -1.0, 1.0, -1.0, 1.0,                    1.6
;Jump attack
run_jamp_1        =        0.55,        0.90,            300,        0.0, 1.0, 4.0,         -1.8, 1.8, -1.8, 1.8,                    1.0

; PSEUDODOG BIG
[pseudodog_big]:pseudodog_strong
visual                = monsters\pseudodog\pseudodog_big
corpse_visual        = monsters\pseudodog\pseudodog_big
icon                = ui_npc_monster_pseudodog_big
short_name            = pseudodog_big
immunities_sect        = pseudodog_immunities_big

[pseudodog_immunities_big]
burn_immunity            = 0.02
strike_immunity            = 0.05
shock_immunity            = 0.25
wound_immunity        = 0.07
radiation_immunity        = 0.0
telepatic_immunity        = 0.1
chemical_burn_immunity = 0.02
explosion_immunity        = 0.1
fire_wound_immunity    = 0.06

; CUSTOM PROFILES
[pseudodog_arena]:pseudodog_strong
visual                = monsters\pseudodog\pseudodog_grey
icon                = ui_npc_monster_pseudodog_grey
panic_threshold        = 0.05
species            = arena_monstr

;-- PSY DOG
[psy_dog_aura_effector]
duality_h        = 0.00
duality_v        = 0.00
blur                = 10
gray            = 0.0
noise_intensity = 10.0
noise_grain        = 1
noise_fps        = 25
color_base        = 0.9,0.9,1.0
color_gray        = 0.33,0.330,0.33
color_add        = 0.00,0.00,0.015

[psy_dog]:pseudodog_strong
visual            = monsters\pseudodog\pseudodog_grey
icon            = ui_npc_monster_pseudodog_grey
short_name        = psy_dog
class                  = SM_DOG_P

aura_effector            = psy_dog_aura_effector
Min_Phantoms_Count    = 4
Max_Phantoms_Count    = 6
Time_Phantom_Appear = 4000

[psy_dog_radar]:psy_dog
Min_Phantoms_Count    = 6
Max_Phantoms_Count    = 8

;-- PSY DOG PHANTOM
;====================================================
; Appear Effector
;====================================================
[psy_dog_phantom_appear_effector]
duality_h        = 0.028        ;0.31
duality_v        = 0.028        ;0.31
blur                = 0.00
gray            = 0    ;0.5
noise_intensity    = 1
noise_grain        = 0.1
noise_fps        = 50
color_base        = 0.5,0.5,0.5                ;0.1,0.15,0.4
color_gray        = 0.333,0.333,0.333        ;0.333,0.333,0.333
color_add        = 0.00,0.00,0.00
time            = 0.5        ;1.5
time_attack        = 0.05        ;0.5        ; fade in
time_release    = 0.3                ; fade out

; camera effects
ce_time                = 0.2    ;1.5
ce_amplitude        = 1.0
ce_period_number    = 2.0
ce_power            = 0.3     ;0.7

;=====================================================
; Base Definition
;=====================================================
[psy_dog_phantom]:pseudodog_weak
visual        = monsters\pseudodog\pseudodog_grey
icon        = ui_npc_monster_pseudodog_grey
class             = SM_DOG_F
hit_type     = telepatic

;jump_delay            = 3000
;jump_factor            = 3
;jump_min_distance        = 4.0 
;jump_max_distance    = 10.0
;jump_max_angle        = 0.2

attack_params            = m_pseudodog_attack_params
appear_effector            = psy_dog_phantom_appear_effector
particles_appear        = monsters\pseudo_phantom_birth_00
particles_disappear    = monsters\pseudo_phantom_death_00
;======================================================

; КВЕСТОВАЯ ПСИ-СОБАКА САХАРОВА
[psydog_saharov]:psy_dog
visual = monsters\pseudodog\pseudodogfrend
panic_threshold            = 0.01
Min_Phantoms_Count    = 10
Max_Phantoms_Count    = 12
Time_Phantom_Appear = 3000
attack_params        = pseudodog_attack_params_weak
immunities_sect        = pseudodog_immunities_big
custom_data         = scripts\monsters\psydog_saharov.ltx

[dog_frendly]:pseudodog_strong
visual                = monsters\pseudodog\pseudodogfrend
corpse_visual        = monsters\pseudodog\pseudodogfrend_dead
icon                = ui_npc_monster_pseudodog_grey
species            = dogfrend
rank                = 801
spec_rank            = strong
community            = dogfrend
panic_threshold        = 0.0
immunities_sect        = pseudodogfrend_immunities_strong

; ДРУЖОК ДОКТОРА
[dogfrend]:pseudodog_strong
visual                = monsters\pseudodog\pseudodogfrend
corpse_visual        = monsters\pseudodog\pseudodogfrend_dead
icon                = ui_npc_monster_pseudodog_grey
species            = dogfrend
rank                = 801
spec_rank            = strong
community            = dogfrend
custom_data         = scripts\monsters\dogfrend.ltx
panic_threshold        = 0.0
immunities_sect        = pseudodogfrend_immunities_strong

[pseudodogfrend_immunities_strong]
burn_immunity            = 0.0
strike_immunity            = 0.0
shock_immunity            = 0.0
wound_immunity        = 0.0
radiation_immunity        = 0.0
telepatic_immunity        = 0.0
chemical_burn_immunity = 0.0
explosion_immunity        = 0.0
fire_wound_immunity    = 0.0

; КРЫСОВОЛК - ВОЛКОДАВ (автор - Greshnik13rs) 
[volkodav]:pseudodog_strong
visual             = monsters\pseudodog\volkodav
icon             = ui_npc_monster_volkodav
short_name        = volkodav
immunities_sect     = pseudodog_immunities_big

Spawn_Inventory_Item_Section = part_fang_wolf
Spawn_Inventory_Item_Probability = 0.7

MinAttackDist        = 1.0
MaxAttackDist        = 3.3
Velocity_RunFwdNormal    = 7.5, 3.0, 3.0, 0.05, 1.0
Velocity_RunFwdDamaged    = 5.7, 3.0, 3.0, 0.5, 1.0

sound_idle                = monsters\volkodav\volkodav_idle_
sound_eat                = monsters\volkodav\volkodav_eat_
sound_aggressive        = monsters\volkodav\volkodav_aggressive_
sound_attack_hit        = monsters\volkodav\volkodav_attack_
sound_die                = monsters\volkodav\volkodav_die_
sound_threaten            = monsters\volkodav\volkodav_aggressive_
sound_panic            = monsters\rat\rat_pain_
sound_die_in_anomaly    = monsters\volkodav\volkodav_die_
sound_distant_idle        = monsters\volkodav\volkodav_idle_ 

; ВОЛК  (автор - Greshnik13rs)
[dog_wolf]:pseudodog_strong
visual            = monsters\dog\wolf
icon            = ui_npc_monster_dog_wolf
short_name        = dog_wolf
immunities_sect     = dog_immunities_habaruch

Spawn_Inventory_Item_Section = part_fang_wolf
Spawn_Inventory_Item_Probability = 0.7
MinAttackDist        = 0.8
MaxAttackDist        = 3.0
jump_min_distance        = 4.0
jump_max_distance        = 5.0
jump_max_height        = 2.5

Тряски нету, звук и цвет есть (Да ладно, тебя это серьёзно парит? Ну пожелтел экран, да и ПЁС с ним) 70% шанс выпадания хвоста. Можешь убрать, там поле Spawn_Inventory_Item_Probability значение от 0 до 1

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

@IIIGooGLuKIII,  Когда-то, в более другой теме, писали именно про то, какие фрагменты кода, как и для чего следует изменить.

Но, тема НА СТОЛЬКО всем мешала, что в итоге все-таки пришлось закрыть.

Хотя да, на мой взгляд, все эти "сборники правок" более чем бессмысленны, особенно с учетом того, что накатив такой "сборник" - тут же накатывают "новый патч".

 

@Alexander_Vesker, От меня что требуется? С нуля заново переписать мод? У меня для этого более другой есть, и там есть чем заняться, хотя все работает, и никаких айвенгов там никто не убивает за их отсутствием. Более того, исправления всех сцен в ТД для соли выкладывались 8 лет назад, ни тогда, ни за все это время они оказались никому не нужны, за исключением требований все это удалить, как нарушающие аффтырьские права всех, кого попало. Не собираюсь делать все заново, и не обязан.

 

Кстати, да, если уж на столько припекло - game_relations.ltx, attitude_neutal_threshold = -9900,

0 для human на всех строках и столбцах в [monster_relations], и получаем щасте, потом вертаем взад.

 

Аналогично - с "переставшим работать" котиком в неизвестно каких сборках для неизвестно чего, особенно со всякими "озвучками" и прочим блэкджеком. Идем на ютубю на сами-знаете какой канал, и видим, что таки работает. Код был выложен, все расписано. Не знаю, что еще надо.

 

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
2 часа назад, Alexander_Vesker сказал:

как помирить квад долга и можно как то удалить рестрикторы в ТД где остановка перед входом в лабу х-18.

Проблема в том, что я понятия не имею, кого там надо с кем мирить и зачем.

 

Что касается рестрикторов - смотрим на карте по меткам, как называются, и удаляем обычным

local obj = alife():object( "имя" )

if obj then alife():release( obj, true ) end

желательно - находясь на другой локации.

Опять же не представляю, зачем это надо и что получится в результате. Например, может получиться как с той антенной Кленова или еще нечто в том же духе. Проверяйте.

 

И вот код для убиения врагов, ПОКА ЕЩЕ независимый от всех правок и патчей:

Скрытый текст

 


function kill_em_all()
	local actor = db.actor()
	if not actor then return end	-- еще не загрузилась игра

	local max_dist = 70 * 70	-- 70 - максимальная дистанция, за которой не трогаем

	local t = {}

	for k, v in pairs( {	-- вписываем классы
		clsid.bloodsucker_s,
		clsid.boar_s,
		clsid.dog_s,
		clsid.flesh_s,
		clsid.pseudodog_s,
		clsid.burer_s,
		clsid.cat_s,
		clsid.chimera_s,
		clsid.controller_s,
		clsid.fracture_s,
		clsid.poltergeist_s,
		clsid.gigant_s,
		clsid.zombie_s,
		clsid.snork_s,
		clsid.tushkano_s,
		clsid.psy_dog_s,

		clsid.script_stalker,
		} ) do t[v] = true	-- заполняем так на случай, если кто-то переименует
	end

	local t_exlusive = {	-- часть имени, с которым не трогаем
	"controller_mini",
	"quest_venom",
	"boar_child",
	"chimera_quest",
	"dog_quest",
	"kontrik_electro",
	"cat_quest",
	"tank_zasada",
	"quest_karlito",
	}

	local pos = actor:position()

	for k, v in pairs( db.creatures ) do	-- что есть в онлайне
		if t[v:clsid()]	-- подходит по классу
		  and v:alive()	-- живое
		  and ( ( v:story_id() == 4294967296 ) or ( v:story_id() == -1 ) )	-- не уникальное
		  and v:position():distance_to_sqr( pos ) < max_dist	-- подходит по расстоянию
		then
			for ii, vv in ipairs( t_exlusive ) do	-- не в исключениях
				if string.find( v:name(), vv ) then v = false; break end
			end

			if v then	-- прошло все проверки
				if v:clsid() == clsid.script_stalker then	-- непись
					if v:relation( actor ) == game_object.enemy then	-- враг
						v:kill( actor )	-- убиваем
					end
				else v:kill( actor )	-- монстр, убиваем
				end
			end
		end
	end
end

 

Впрочем, подозреваю, что таким он и пару часов не останется. Я в людей верю - найдут, как сделать нерабочим.

Изменено пользователем Dennis_Chikin
  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
Гость
Эта тема закрыта для публикации сообщений.
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...