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

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

...то в файле \gamedata\scripts\kostya_dialog.script есть изменения и именно в том месте где требуется закомментировать строки . И что сейчас делать мне не понятно...

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

alen_fantom Да, совершенно верно, я как и говорил ранее, воспользовался советом romale. За оперативную помощь благодарю. И в то же время хотелось поинтересоваться с учетом фразы

function kuv_hit(who) end может быть все-таки надо было оставить ? dc

какой ещё есть метод по отключению усталости при использовании кувалды?И если есть - то лучше он или хуже выше указанного?

  

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

Если мы убираем тело функции, оставляя, как я предложил, само описание - достаточно только этого изменения, остальные файлы изменять не надо. Соответственно, всякие патчи/фиксы/другие правки, которые не затрагивают этот файл - можно использовать, что называется, не глядя.

Хуже тем, что все лишние вызовы несколько подтормаживают.

 

Если мы убираем функцию полностью - нужно убрать все ее вызовы отовсюду. Если оставить хоть один - будет вылет.

 

Если убираем вызовы - функцию можно не трогать. Это просто мусор в файле, который ни на что не влияет.

Плюс такого решения: чуть меньше тормозит, но чтобы заметить эффект - нужна массовая чистка, не только этой конкретной хрени, но и всего остального в том же духе. Кроме того, тогда стоит еще убирать сразу и обрамление типа всяких if чего-то там ... вызов() end.

Недостаток - польза заметно меньше, чем затраченное время.

 

Пример: смотрите посты 2, 3, 4. Вот в этом примере достаточно убрать только сам вызов, но проверки, которые перед ним - достаточно сильно тормозят, и ошибка была (и есть) именно в них.

Поэтому лучше убрать несколько строк.

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

 

 

Про телепорты всем отвечу, как время будет.

 

config\misc\zone_teleport.ltx смотрите, строчки

idle_particles = что-попало

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

некоторые сообщения не выводятся на экран

Правка вывода не всех СМС на экран.

 

Мне помогла эта правка, хоть она и под патч 1.0004, но у меня работает нормально, монитор 1920х1080: SMS_correct_for_16x9 ТЧ 1.0004 https://yadi.sk/d/4QK--_OxWAApN

Изменено пользователем Eugen81
озаглавил
  • Полезно 1
Ссылка на комментарий

Разбор очередного скрипта, на этот раз meceniy_work.script в части, что касается костюма нудиста и убирания оружия:

 

-- Невидимость В Костюме
local idle_time, game_time, outfit_act, prev_outfit_act, time_to_set_range

-- local invisible = nil
-- local warning90 = nil
-- local gravisak = nil
-- три довольно бессмысленные строки. Записывается так:
local invisible, warning90, gravisak


function set_invisible()    -- включение невидимости
    outfit_act = db.actor:item_in_slot( 6 )
    -- проверяется наличие надетого костюма
    if outfit_act and outfit_act:section() == "meceniy_outfit_new" then
        if not invisible then    -- включается невидимость, если еще не включена
            invisible_on()
            invisible = true
            gravisak = nil
            time_to_set_range = time_global()

            -- похоже, 2 очередных "античита"
            fly_island.chaes_fail()
            kostya_dialog.stealth_fail_task()

        -- вывод предупреждения, если кончается время невидимости
        -- elseif game.get_game_time():diffSec( game_time ) >= idle_time*0.9 and not warning90 then
        --    give_warning90()
        --    warning90 = true

        -- отключение невидимости
        -- elseif game.get_game_time():diffSec( game_time ) >= idle_time then
        --    invisible_off()
        --    make_meceniy_outfit_used( outfit_act )
        --    invisible = nil

        -- Нормальные люди делают это так:
        elseif warning90 then
            -- проверка для вывода предупреждения
            if game.get_game_time():diffSec( game_time ) >= idle_time * 0.9 then
                give_warning90()
            end
        -- проверка для выключения
        elseif game.get_game_time():diffSec( game_time ) >= idle_time then
            invisible_off()    -- отключение невидимости
            -- make_meceniy_outfit_used( outfit_act )    -- порча костюма
            invisible = nil
        end    -- ну или убрать все это, чтобы работал бесконечно
        
        -- ослепление неписей (поправлю сразу)
        if time_to_set_range <= time_global() then
            set_range( 2 )
            time_to_set_range = time_global() + 1000
        end
            
    elseif invisible then    -- костюм снят
        invisible_off()    -- отключение невидимости
        -- внимание, если кто-то уйдет в офлайн раньше - останется слепым !
        -- make_meceniy_outfit_used( prev_outfit_act )    -- порча чего попало, или просто вылет
        invisible, idle_time, time_to_set_range = false, false, false    -- поправил графоманию
    end

    -- if outfit_act and string.find( outfit_act:section(), "soldier_outfit" ) then
    --    if not gravisak then
    --        bind_stalker.hide_weapon()
    --        gravisak = true
    --    end
    -- elseif gravisak then
    --    bind_stalker.restore_weapon()
    --    gravisak = nil
    -- end    -- здесь был бред про убирание оружия

    -- prev_outfit_act = outfit_act    -- а это бред с порчей костюма
end


function invisible_on()    -- включение невидимости

    -- даже исправлять не буду, по тому что проще проверки выше отключить, и навсегда о них забыть
    idle_time = 27 * 60            -- время невидимости
    game_time = game.get_game_time()    -- текущее время
    warning90 = false    -- убрать информацию о том, что было выведено предупреждение

    bind_stalker.hide_weapon()    -- убрать оружие
    level.add_pp_effector ("teleport.ppe", 1111, false)    -- спецэффекты
    level.set_pp_effector_factor(1111, 1.0)
end


function invisible_off()    -- выключение невидимости
    if get_hud():GetCustomStatic( "cs_inviz" ) then    -- убирает сообщение о невидимости
        get_hud():RemoveCustomStatic( "cs_inviz" )
    end
    warning90 = false    -- убирает информацию о выводе предупреждения

    bind_stalker.restore_weapon()    -- включает оружие
    set_range( 80 )    -- выставляет неписям "видеть актора и врагов на расстоянии 80 метров"
        -- к воопросу о бешеных неписях. В солянке ставилось 60, и из этого рассчета
        -- расставлялись собственно неписи.
end


function give_warning90()
    get_hud():AddCustomStatic( "cs_inviz", true ):wnd():SetText( "Вас могут увидеть!" )
end


function set_range( range )    -- принудительное выставление всему живому расстояния,
    -- на котором они всех видят
    -- переписал это медленнное и печальное глюкало сразу

    local cls_id
    local lobj_by_id = level.object_by_id    -- чтобы тормозило хоть чуток меньше
    for k, v in pairs( db.creatures ) do    -- в creatures живое добавляется
        v = lobj_by_id( k )    -- есть ли еще такой ?
        if v and v.alive then    -- и имеет ли смысл для него что-либо проверять ?
            cls_id = v:clsid()    -- класс объекта
            -- проверка, что непись или монстр, и он живой
            if ( IAmAStalker[cls_id] or IAmAMonster[cls_id] ) and v:alive() then
                v:set_range( range )
    end    end    end
end


function make_meceniy_outfit_used( outfit )    -- замена одного костюма на другой
    local parent = outfit:parent()
    local obj = alife():object( outfit:id() )    -- отсюда и далее переписал глюкало
    if obj then
        alife():release( obj, true )
        if parent then
            alife():create( "meceniy_outfit_used", vector(), 0, 0, parent:id() )
        else alife():create( "meceniy_outfit_used", vector(), 0, 0, 0 )
    end    end
end


function have_meceniy_outfit()    -- для диалогов: возвращается экза, если есть
    return db.actor:object( "meceniy_outfit_used" ) or db.actor:object( "meceniy_outfit_new" )
end


function give_meceniy_outfit()    -- для диалогов: удаляется экза
    if db.actor:object( "meceniy_outfit_used" ) then
        amk.remove_item_from_inventory_by_name( "meceniy_outfit_used", db.actor )
    elseif db.actor:object( "meceniy_outfit_new" ) then
        amk.remove_item_from_inventory_by_name( "meceniy_outfit_new", db.actor )
    else return
    end
    news_manager.relocate_item( db.actor, "out", "meceniy_outfit_new" )    -- новости: "потерян предмет"
end

 


Адаптации ни каких других вариантов невидимости делать не буду, потому что иначе полезет куча глюков из других мест, и пока их все выловишь - авторы еще 3 новых "патча" выпустят, а далее см. п1.
 
Но вообще нормальные люди делают это через xr_combat и mob_combat, как и всяческие "переодевания" и прочие "амулеты наемников/монолитов/чего попало".

 

Готовый вариант для 2.09-2 - https://yadi.sk/d/mU-QorGAmAiGK

shahvkit

Изменено пользователем shahvkit
Перевел код в луа, для читабельности комментов.
  • Спасибо 1
  • Нравится 2
  • Полезно 1
Ссылка на комментарий

@Dennis_Chikin, Спасибо за разбор пролётов полётов.

А что по античитам? Мне показалось, что изменение этого файла вызывает безлоговые вылеты. Конфликт?

С точки зрения игрока вообще данный девайс в этом моде потерял актуальность. 1. Сразу от Сидоровича телепортимся на Янтарь, оттуда в Лабиринт, оттуда на ЧАЭС-2. По окончании опупеи уж как нибудь заскочить к Сидору получится. 2. К ГГ-наёмнику НПС отнеслись с пониманием(что наверное породит очередной анекдот).

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

Это часть файла, касающаяся невидимости.

Там еще есть глючное зомбирование и какие-то телепорты (кстати, о птичках).

 

Античит, полагаю, следует оторвать.

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

Господа, вот такой вопросс. Ксо играет ОП-2 с Авророй из шапки.

В начале выброса, после "краснухи" и какраз после затемнения экрна (иногда вылет в затемненности иногда после того как она проходит), перед тем как начинаются "взрывы и громы"

ловлю эту дрянь

stack trace:

 

XXXX:XXXXXXXX XR_3DA.exe, CEnvAmbient::get_rnd_sound_time()

 

 

 

Читал  что это связано с тем что движок не находит звук.

Открыл env_embient.ltx от Авроры, и опустил голову. Пока найду каких звуков не хватает - 100 лет пройдет.

Если отключить папку конфигов погоды Авроры - вылета не будет. (думаю если отключить env_embient.ltx то тоже не будет, но мне те звуки тоже очень нравятся)

 

Кто сталкивался ? Не хочу погоду менять. Оригинальная - "сероватая" (имхо)

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

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

Запилил адаптацию худа от Мерцающего на ОП-2. Пили для себя, но может быть кому-то тоже не по вкусу стандартный худ ОП-2. Делал не под широкоформат.

e43205faca4491a0d3b9d90a791c382e.jpeg

a8ea32e7a8ee302fa90426f5516cdaba.jpeg


Скачать
...
Здесь HUD Heroin_Zero ver.2 для ОП2. Евген.

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

Ryzen 7 7800X3D; RTX3080Ti; 32Gb RAM 6400MhZ

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

@Dennis_Chikin, Вооот. Я тогда опять со своим OICW-ом.

Имеем файлы конфигурации, где задано соответствие оружия с его визуалом. На ПКМ виузал просто зуммируется? Вроде да. Если стоит прицел, то визуал замещается и картинка зуммируется. Если использован подствольник, то визуал заменяется и по ПКМ опять же зуммируется. Заменить прицел в основном режиме не трудно - меняем в конфигурационном файле имя прицела и будет вызываться уже его визуал. Это не требует знания того, что происходит между, т.е. системы управления. Я хочу заменить картинку в режиме ПКМ подствольника. Понятно, что нужно сделать, но непонятно где и как.

Вопрос уместен?

 

@alen_fantom, Это если я хотел бы переделать прицеливание со скобы на "по стволу" или наоборот, то всё решилось бы координатами. Но в данном случае это не даст результата. Однако навёл на мысль. Вполне может оказаться, что это неразрешимая задача.

@Dennis_Chikin, Там профиль несколько иной. Но посмотрим.

 

Зато в процессе нашёл неправильное но рабочее решение - прописать гранату 20х85 как основной боеприпас и переключаться соответствующей кнопкой. Прицел есс поменять на с меньшей кратностью и большим полем зрения.

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

groks:

смещения HUD для режима приближения

...

режим подствольника - играй с координатами....

 

Это если я хотел бы переделать прицеливание со скобы на "по стволу" или наоборот, то всё решилось бы координатами. Но в данном случае это не даст результата.

Т.е. типа такого 9bdd7168fb16d927bf012310d24909e32ee58e18, не годиться..? Тогда это точно не в тему худов. Спрашивай у оружейников и модлеров - анимацию, без правки модели, не изменить... Изменено пользователем Dennis_Chikin
Ссылка на комментарий

На вскидку, можно сделать сквозной прицел, и тогда прицеливание всегда будет смотреться одинаково, без смещения в режиме гранатомета.


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

Изменено пользователем Dennis_Chikin
объединил
%D0%90%D0%B0%D0%B7.gif
Ссылка на комментарий
alen_fantom сказал(а):Т.е. типа такого

Нет. Дело в том, что у настоящей прицел работает и на подствольнике. Там пулевой ствол довольно слабый и выполняет функцию АПС, которым вооружали наших гранатомётчиков - т.е. для самообороны в ближнем бою. Калибр гранатомёта небольшой, настильность хорошая, поэтому прицел вполне применим.

 

 

Ааз сказал(а):можно сделать сквозной прицел

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

 

 

Ааз сказал(а):В конфиге оружия есть две секции

Но в конфиге оружия я не понимаю, что поправить, если есть что править вообще.

 

[wpn_oicw_hud]

 

shell_point  =

0.019,0.0005,-0.175

shell_dir        

= 0.0, 1.0, 0.0

 

fire_point  =

0.00000,-0.0000025,0.09000

fire_point2  =

0.00000,0.000005,0.1100090

fire_bone              

 = wpn_body

 

orientation            

 = 3, 2.35,

0

position               

 =

0.12,-0.025,0.10

visual                 

= weapons\oicw\wpn_oicw_hud.ogf

 

grenade_bone           

 = wpn_grenade

 

anim_idle    = idle

anim_idle_aim   =

idle_aim

anim_reload    =

reload

anim_draw    =

draw

anim_holster   =

holster

anim_shoot    =

shoot

anim_idle_sprint   =

idle_sprint

   

;анимации с подключенным

подствольником

;(режим стрельбы из

подствольника)

anim_idle_g     =

idle

anim_idle_g_aim    =

idle_aim

anim_reload_g    =

shoot_grenade

anim_shoot_g    =

shoot_grenade

anim_switch_grenade_on   =

switch_on

anim_switch_grenade_off   =

holster   ;switch_off

anim_draw_g     =

draw

anim_holster_g    = holster

;(режим обычной

стрельбы)    

anim_idle_gl    =

idle

anim_idle_gl_aim    =

idle_aim

anim_reload_gl    =

reload

anim_draw_gl    =

draw

anim_holster_gl    =

holster

anim_shoot_gl    = shoot

 

 

Если в анимации с подствольником подставить анимацию основного режима? Т.е. убрать там _g практически. Не прошло однако. Вылет при загрузке.

 

Кстати "надёжный" вариант с дописыванием гранат в основной боеприпас провалился. Ствол понял гранаты как пулевые патроны.

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

@groks, зачем тебе анимации, тебе нужно будет найти модель с "сквозным прицелом" и просто отрегулировать вот эти секции:

zoom_offset = -0.112400,0.016800,-0.115000
zoom_rotate_x = 0.000200
zoom_rotate_y = 0.017500

zoom_hide_crosshair = true ;to hide crosshair in zoom 

; same as above, but for attached grenade launcher for
; in NORMAL shoot mode

grenade_normal_zoom_offset = -0.112500,0.014000,0.000000
grenade_normal_zoom_rotate_x = -0.000900
grenade_normal_zoom_rotate_y = 0.017200

; same as above, but for attached grenade launcher for
; in GRENADE mode

grenade_zoom_offset = -0.039600,-0.433100,0.000000
grenade_zoom_rotate_x = -0.538700
grenade_zoom_rotate_y = -0.033800
Пункты:

zoom_offset

grenade_normal_zoom_offset

grenade_zoom_offset

должны будут иметь по сути одинаковые координаты.

Изменено пользователем Eugen81
Убрал мега пробелы.
%D0%90%D0%B0%D0%B7.gif
Ссылка на комментарий

в квест_итемс находи его и меняй quest_items = true на false

Не могу найти секцию этого предмета. По запросу amulet блокнот ничего не находит.

 

Поиск в config\text по названию, находится файл string_table_enc_equipment.xml

Там будет секция item_amulet.

Поиск в config\misc по секции: находим файл arhara_items.ltx

 

Следующего, кто задаст подобный вопрос - расстреляю. dc

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

groks, зачем тебе анимации, тебе нужно будет найти модель с "сквозным прицелом" и просто отрегулировать вот эти секции:

Может я не правильно понял: у groks в режиме grenade_zoom выскакивает прицельная сетка..(?) И делал ли кто модель OICW c "сквозным прицелом"..?

 

 

groks, попробуйте сделать так: делаем новый оицв, под основной патрон 20х85, и обычный оицв под 5,56. При смене оружия происходит подмена одного ствола другим, как это реализовано в моде ув. тов-ща Kirag'а, только там было с прицелами, а тут будет скриптовая подмена одного карамультука другим. Понимаете, что я имел ввиду?

 

Ааз, https://yadi.sk/d/y3YLfOXKWRudj .

==================

Ааз, ссори - нет. Может у оружейников ..?

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

Поясни терминологию. Модель оружия, у которого прицел в основном режиме и в гранатомёте одинаков? И подогнать точку прицеливания. Но такого оружия вроде бы нет в игре.

 

@alen_fantom, Да нет сетки. Что и у тебя на скрине. А при ПКМ вообще чёрная блямба неактивного прицела.

@Elz, Мысль понял. С реализацией надо почесать затылок.

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

Ух ты, зачем усложнять то, скиньте мне пожалуйста модель, текстуры, конфиг и текстуру прицела этого ствола, посмотрю что можно сделать.

 

@alen_fantom, вот жесть то, а другой модели нет?

Изменено пользователем Dennis_Chikin
%D0%90%D0%B0%D0%B7.gif
Ссылка на комментарий

По идее защита от пуль должна стать 25%, а становится 0%

Интересно, а еще у кого-нибудь такое есть ?

 

Ну, то есть, удаление артов в inventory.script - оно их с пояса убирает (кстати отрываем

в function update()убираем строчку check_immunities() ). А вот чтобы 0 было...

 

 

Кстати, к вопросу о том, как перевесить что-то с пояса и обратно: смотрим этот же скрипт, и делаем по аналогии с, да хоть "идолом монолита" и т.д.

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

Что-то меняете - меняйте в файле из той игры, для которой меняете.

 

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

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

 

P.S. По поводу самого последнего патча и правкосборок - нет, xml'ы я тщательно просматривать тоже не буду. Проще протестировать, и поправить, ежели что не так. А на беглый взгляд - вроде, правильно все.

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

за цену продажи рецептов у Информатора в Баре?

dialogs_bar.xml

 

Строки типа <precondition>sak_dialog.actor_has_money_150000</precondition> - проверка наличия денег

<action>sak_dialog.give_money_150000</action> - отъем денег.

Вызываемая функция должна, естественно, существовать.

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

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