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

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


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

Собственно, в tab что будет? Как я понимаю, то результат логической операции and, т.е. булево значение.

А последующая проверка

if tab and tab.killer then

подразумевает, что tab - видимо таблица? Похоже очепятка?

 

Решил в OGSM добавить Чумному зомби его руку. Вижу ее в спавнере, но в самом зомби спавнится обычная рука. 

Сделал так:

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

[zombie_plague]:zombie_normal
$spawn                = "monsters\zombies\zombie_02_normal"
visual                = monsters\zombi\zombi_komar
Health                 = 60
icon = ui_npc_monster_zombie_komar
FakeDeathCount            = 1
StartFakeDeathHealthThreshold    = 0.001
bones_particles            = zombie_plague_particles
immunities_sect        = zombie_plague_immunities
custom_data = scripts\zombie_plague.ltx
Spawn_Inventory_Item_Section = part_plague_hand
Spawn_Inventory_Item_Probability = 0.47

Решил проблему. Отбой 

Изменено пользователем андрей дронав

Народ подскажите, как в чистый ТЧ добавить звук "срезание частей мутантов? Пытался выдернуть скрипт из оп 2.1 он не работает у меня. 

1 час назад, андрей дронав сказал:

Пытался выдернуть из оп 2.1 что-то, и прилепить к ТЧ.

Что дергал не скажу, как именно прилепил - военная тайна. Все логи и файлы засекречены.

Народ подскажите, почему на Марсе буря?

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

.

Изменено пользователем Zander_driver
  • Смешно 2

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

1 час назад, андрей дронав сказал:

Народ подскажите, как в чистый ТЧ добавить звук "срезание частей мутантов?

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

https://ap-pro.ru/forums/topic/1083-tch-butcher/

В bind_monster.script->use_callback проигрывается звук. Но, на мой взгляд, неправильная конструкция его запуска, без if.

 

  • Нравится 1

@андрей дронав Как не работает? Ошибку выдает, тихо не делает что нужно?

@h0N0r Ну покажите эту самую "конструкцию".

2 часа назад, AndreySol сказал:

Как не работает? Ошибку выдает, тихо не делает что нужно?

Звуки не воспроизводятся. 

Адаптировал срезание только  ножем, ничего не происходит, никаки вылетов и ошибок... 

Косяки естесно за мной, но непонятно что делаю не так. 

 

@AndreySol , вот с того мода:

function generic_object_binder:use_callback(obj, who)
	...
	-- Эти строки под if, а то будет звук играть при каждом юзе.
	local sound_use = sound_object("material\\dead-body\\collide\\hithard0"..tostring(math.random(1, 6)).."hl")
	sound_use:play_at_pos(self.object, self.object:position(), sound_object.s3d)
end

 

  • Полезно 1

Господа сталкеры, а может кто-то подсказать, как отключить голос Меченого? 
Терпеть сил больше нет, я играю в основном в режиме стелс и постоянно, в самый неподходящий момент когда я вслушиваюсь в звук шагов приближающегося врага, он то жрать хочет, то спать, то про чуму сообщает. Как ещё на горшок не просится? 

@Akros Можно звуковые заглушки поставить, вместо его фраз. Думаю это самое простое 

Изменено пользователем андрей дронав

@андрей дронав а в каком направлении копать? Т. е. хотя бы примерно как их ставить, что менять и пр.? 

@Akros В ОП стоит античит, любое ковыряние файлов, и твои сейвы будут меченными красным ( возможно ошибаюсь). 

Распаковать файлы sounds.xdb

В папке sound/actors найти не нужные реплики, заменить их, и закинуть в папку с ОП. Я в ОП не гоняю, не факт что все что я написал сработает. 

Загляни в тему ковыряние ОП 2.2 

Изменено пользователем андрей дронав
  • Спасибо 1

Народ, я снова по теме срезания запчастей с мутантов.

Что здесь нужно изменить, чтобы открывался  инвентарь, только когда нож в руках

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

-- Срезание трофеев с монстров / Идея: мод "Мясник" (CoP) от Singapur22
function generic_object_binder:use_callback(obj, who)
    if self.use_flag == nil and self.object:section()~="m_trader" then
        self.object:set_nonscript_usable(false)  --если (true) инвентарь работает
        self.use_flag = true
    end
    
    if self.object:alive() or self.used then return end
    
    local knife = who:item_in_slot(0)
    if who:id() ~= db.actor:id() or (knife~=nil and who:active_slot() == 0) then
        self.used = true
    else
        if knife then
            news_manager.send_tip(db.actor,"Чтобы cрезать трофей, нужно достать нож.")
        end
        return
    end
    
    self.item = read_if_exist("s",nil,self.object:section(),"Spawn_Inventory_Item_Section",nil)
    if self.item then
        self.item_count = read_if_exist("f",nil,self.object:section(),"Spawn_Inventory_Item_Amount",1)
    else
        return
    end
    
    for i=1, self.item_count do
        alife():create(self.item, who:position(), who:level_vertex_id(), who:game_vertex_id(), who:id())
    end
    
    self.object:set_tip_text("")
    
    local h = hit()
    h.draftsman = self.object
    h.type = hit.fire_wound
    h.direction = vector():set(0,1,0)
    h:bone(read_if_exist("s",nil,self.object:section(),"bone_impuls_abscission","bip01_spine"))
    h.power = 1
    h.impulse = (read_if_exist("f",nil,self.object:section(),"impuls_abscission",150))
    self.object:hit(h)
    
    local sound_use = sound_object("material\\dead-body\\collide\\hithard0"..tostring(math.random(1, 6)).."hl")
    sound_use:play_at_pos(self.object, self.object:position(), sound_object.s3d)
end

Звуки не воспроизводятся, не нахожу нужного калбэка

 

Изменено пользователем андрей дронав

Доброго времени суток Всем! Какой файл отвечает за вывод номера патча в главном меню (навеяно одним вопросом на Ответах mail.ru). Я прошерстил папки scripts, ui и text, но не нашел ничего. 

10 часов назад, Купер сказал:

 Оно действительно в таком виде не желает работать. По крайней мере, на "классике". Интересно, почему?

 

Разберусь с этим когда получу вывих мозга. Но это не точно. :dash3: 

  • Смешно 1
1 час назад, Купер сказал:

@андрей дронав ,

  off topic (Скрыть)

хотелось бы понять почему в такой конфигурации не работает?

 

Дружище, я никогда не учил язык программирования, для меня этот код "Абракадабра". Я умею пользоваться "WinMerge", и на этом мой навык мододела кончился. Буду пробовать ковырять ссылаясь на прошлые темы, а вдруг узнаю, ПАЧИМУ НЕ РАБОТАЕТ:laugh:

 

Может быть так?

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

self.object:set_callback(callback.use_object, self.use_object, self)
...
end

  function actor_binder:use_object(obj)
        sound_obj_left = sound_object([[material\\dead-body\\collide\\hithard0]])
        sound_obj_left:play_at_pos(db.actor, vector():set(1, 0, 1), 0, sound_object.s2d)
    end

 

Изменено пользователем андрей дронав
  • Смешно 1
6 часов назад, Купер сказал:

ui_main_menu.script->

function main_menu:InitControls() ...     local _ver = xml:InitStatic        ("static_version",self)     local mm                        = _G.main_menu.get_main_menu()     _ver:SetText                    ("ver. " .. mm:GetGSVer())    end

function main_menu:InitControls()
...
    local _ver = xml:InitStatic        ("static_version",self)
    local mm                        = _G.main_menu.get_main_menu()
    _ver:SetText                    ("ver. " .. mm:GetGSVer())   
end

 

Еще можно так:      _ver:SetText ("Ж.О.П.А.")

Изменено пользователем macron
  • Согласен 1
  • Смешно 2
30.06.2022 в 17:56, Zander_driver сказал:

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

.

Пытался адаптировать этот скрипт

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

-- Отрезание запчастей монстров ножом и озвучка. Для отрезания достаточно, чтобы нож был в рюкзаке.
local monster = nil
local snd = nil
function get_monster()
    return monster
end

-- Ножи и прочее ХО, которым можно отрезать запчасть
local knives = {
    ["wpn_knife"]=true
}

function right_knife(knife)
    return (knives[knife:section()] and knife:condition()>0.1) or false
end

function on_part_take(obj)
    if not monster then
        return 
    end
    local item_part=ini_reader.iniReader():readBool(obj:section(),"monster_part",false)
    local monster_part=ini_reader.iniReader():readString(monster:section(),"Spawn_Inventory_Item_Section","")
    if not item_part or monster_part~=obj:section() then
        return
    end
    
    if actor_has_knife() then
        level.start_stop_menu(level.main_input_receiver(), true)
        if snd and snd:playing() then
            snd:stop()
        end
        snd = voice("zwuk\\inv_mutant_loot_"..math.random(1,16))
        snd:play_at_pos(db.actor, vector(), 0, sound_object.s2d)
        archievements.acv_count_event("acv_gvdr", 500, "acv_gvdr") 
        local knife=db.actor:item_in_slot(0)
        local cond_dec=ini_reader.iniReader():readString(knife:section(),"condition_shot_dec",0)
        if cond_dec~=0 then
            knife:set_condition(knife:condition()-cond_dec)
        end
        return
    end
    sms("on_part_take_0", nil, "nano", 5000)
    db.actor:transfer_item(obj, monster)
end

function actor_has_knife()
    local item_in_slot=db.actor:item_in_slot(0)
    if item_in_slot and item_in_slot:condition()>0.1 then
        return knives[item_in_slot:section()] or false
    end
    return false
end

function on_monster_use(victim, who)
    monster = victim
end

function on_monster_stop_use()
    monster = nil
end

function move_on()
    snp.move_on()
end
 

 

@Купер не все так просто может оказаться. Например,если отключить движковую схему добивания раненных, то ничего хорошего не выйдет. В движке эта схема сильно связана с боевкой. Т.е. раненный остаётся в списке врагов и пока есть в памяти хоть один не раненный, то бой идёт с ним(и). Если в памяти остались только раненные враги, то активизируется схема добивания раненных. А если она отключена, будет упс, т.к. движок на такое не рассчитан и не знает, что делать. Враг как бы есть, а что делать - не понятно. Т.ч. насчёт "по идее" отключить, все может оказаться не так просто.

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

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

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

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

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

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

Войти

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

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

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