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

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

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

Как сделать новые слоты для ножа, для рюкзака, фонарика. В каких библиотеках они редактируются? Я вроде недавно видел видос на эту тему, но теперь не могу найти. И ещё вопрос: как сделать оформление характеристик предметов в таком стиле, как в Мизери, ДА, аномали. И как сделать дозиметр, как в этих модах, чтобы значок радиации не светился, а нужно было его активировать и смотреть цифру заражения.

Ссылка на комментарий
23 минуты назад, ARTLantist сказал(а):

В каких библиотеках они редактируются?

Слоты, если на чистый ЗП - то нужно редактировать движок.

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

@ARTLantist насчет дозиметра - не совсем такой как в дэд эир, но все же дозиметр - есть в моде Izmer mod. Оттуда адаптируешь и, собственно, будет дозиметр. 

Ссылка на комментарий
3 часа назад, Romann сказал(а):

Слоты, если на чистый ЗП - то нужно редактировать движок.

Да, я знаю, что нужно ковыряться в движке. Мне нужно знать, какой файл открывать

5 минут назад, Biblia сказал(а):

@ARTLantist насчет дозиметра - не совсем такой как в дэд эир, но все же дозиметр - есть в моде Izmer mod. Оттуда адаптируешь и, собственно, будет дозиметр. 

Спасибо большое)

Ссылка на комментарий
21 минуту назад, ARTLantist сказал(а):

Да, я знаю, что нужно ковыряться в движке. Мне нужно знать, какой файл открывать

Насколько я помню, есть на ютубе видео по созданию нового слота от команды паблика в ВК "Академия 3d разработки онлайн". Правда, там они, по сути, просто в инвентаре отображали слот для ножа. Но я думаю что основные файлы, где нужно редачить - они там "засветили" 

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

И всё таки как сделать оформление характеристик предметов в таком стиле, как в Мизери, ДА, аномали. Чтобы были не просто цифры +1,+4,+6, а побольше значения и с подписями, для радиации мзв, для хп проценты и т.д.

Ссылка на комментарий
13 часов назад, ARTLantist сказал(а):

убрать звуки счётчика нпс?

Адрес звука:
    "sounds\detectors\contact_1.ogg".
    — Прописан в файлах: —
     system.ltx →
          [maingame_ui]
           snd_new_contact = detectors\contact_1
     maingame(_16).xml -->
          <new_contact_snd>detectors\contact_1</new_contact_snd>
    
    Можно поменять на "заглушку" типа "$nosound".
    Либо только через движок, там это прописано.
Ссылка на комментарий
23.01.2021 в 00:07, ARTLantist сказал(а):

полностью скрыть миникарту

"подвинуть" за пределы экрана. Папка configs\ui - копайся на здоровье :з (сорямба, прям точно подсказать щас не могу)

- Пролетарии всех стран, соединяйтесь!

 

Ссылка на комментарий
23 часа назад, WizziGun сказал(а):

"подвинуть" за пределы экрана. Папка configs\ui - копайся на здоровье :з (сорямба, прям точно подсказать щас не могу)

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

 

23 часа назад, WizziGun сказал(а):

 

 

Как можно убрать обновление ассортимента торговцев после перезагрузки, и обновлять его, к примеру, раз в сутки?

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

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

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

Доброго времени суток. Во всех частях сталкера, включая ЗП, о котором и речь, есть функция send_tip, для которой аргументами являются news_id (текст сообщения), sender (иконка отправителя) и sender_id (story_id отправителя). Так уж получилось, что мне потребовалось вывести сообщение от имени определенного НПС. В логике все прописал, но результат: дефолтная иконка сообщения и не указывается имя отправителя. Тогда я решил немного подредактировать функцию send_tip в news_manager.script. Ее и выставляю на ваш суд. Вроде бы, все работает - теперь, задавая параметры для этой функции, будет изменяться вывод сообщения. Также с помощью нее можно отправить сообщение от НПС в оффлайне (или вообще от несуществующего персонажа, достаточно лишь добавить его имя и иконку в таблицы tips_npc_names и tips_icons)

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

function send_tip(actor, news_id, timeout, sender, showtime, sender_id)
    if news_id == nil then return false end
    
    local npc_name = "" -- имя отправителя
    local npc_id = ""   -- его story_id
    local obj = ""      -- объект отправителя

-- зададим имя отправителя
-- проверим, есть ли оно в таблице. Если есть, то пишем его в npc_name
    if sender_id ~= nil then 
        if tips_npc_names[sender_id] then
            npc_name = tips_npc_names[sender_id]
        end

    end

-- если имени отправителя нет в таблице, то подцепим его из клиентского объекта
    if npc_name == "" then
        npc_id = get_story_object_id(sender_id) -- получаем story_id чувака
        obj = level.object_by_id(npc_id) -- получаем объект с соответствующим story_id
        npc_name = obj:character_name() -- получаем имя чувака, соответствующее sender_id
    end
    
    if sender_id == nil then -- проверка на то, задан ли sender_id или нет
        npc_name = ""
    end

--    printf("try to send tips for [%s]", tostring(sender_id))
    if sender_id ~= nil and npc_name ~= tips_npc_names[sender_id] then
        local sim = alife()
        if sim ~= nil then
            local npc = sim:object(get_story_object_id(sender_id))
            if npc ~= nil then
                if npc.online then
                    --в онлайне проверяем на раненность
                    if xr_wounded.is_heavy_wounded_by_id(npc.id) then
                        printf("[PDA]Cannot send tips [%s], sender is heavy wounded", tostring(news_id))
                        return false
                    end
                end
                -- в других случаях только на смерть
                if npc:alive() == 1 then
                    printf("[PDA]Cannot send tips [%s], sender is dead", tostring(news_id))
                    return false
                end
            end
        end
    end

    if timeout == nil then timeout = 0 end
    if showtime == nil then showtime = 5000 end

    --' Играем дефолтный звук
    xr_sound.set_sound_play(actor:id(), "pda_tips")

    local texture = "ui_iconsTotal_grouping"
    if sender ~= nil then
        if type(sender) == "string" then
            if tips_icons[sender] then
                texture = tips_icons[sender]
            end
        end
         if tips_icons[sender] == "self" then -- если на вход подать "self", то в качестве иконки будет иконка персонажа
            texture = obj:character_icon()
        end
    end

    local news_caption = game.translate_string("st_tip")..": "..game.translate_string(npc_name)
    local news_text = game.translate_string(news_id)
    actor:give_game_news(news_caption, news_text, texture, timeout*1000, showtime, 0)

    return true
end

 

Собственно. Призываются знающие с критикой и предложениями по улучшению.

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

Хелп! Решил добавить новых дефолтных НПС. Прописал их в character_desc_general, npc_profile, spawn_sections_general. Вроде, всё как нужно, но ловлю вылет при загрузке игры. В справочниках вылетов такого не нашёл нигде. Вот лог:

[error]Expression    : !m_DefaultCharacters.empty()
[error]Function      : CSE_ALifeTraderAbstract::specific_character
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\xrServer_Objects_ALife_Monsters.cpp
[error]Line          : 351
[error]Description   : no default specific character set for class
[error]Arguments     : sim_default_hunter_1

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

Копаюсь в артах. Заметил такой баг (мб это я что-то накосячил): я ставлю артефакту

radiation_restore_speed = 0.000062

т.е. за 10 секунд, если я правильно понимаю, должно накапать 0.00062 радейки. НО, я отлавливаю уровень радиации (сделал дозиметр, он умножает уровень радиации на 10000 и выводит на экран) через 10 секунд, и мне выходит примерно 48, т.е. где-то на 30% меньше, чем нужно. Думал мб дозиметр кривой, сделал функцию фона артов в инвентаре, убедился, что он нормально работает.
Проверил на других значениях: т.е. убрал один ноль (стало 0.00062), и через 10 сек я ожидал увидеть 480 при применении дозиметра, а увидел 620. В чём прикол? Почему этот ноль так сбивает работу артефакта?

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

@ARTLantist 

5 часов назад, ARTLantist сказал(а):

Почему этот ноль так сбивает работу артефакта?

ну потому. Кто будет уточнять расчёты? В ЧН я это делал, давно. Уже не помню, но разница с ТЧ ни с чем не сравнимая. Думаю, в твоём случае, то же самое. Делай как для себя не смотря ни на что. Подгоняй значения под потребу.

21 час назад, ARTLantist сказал(а):

Решил добавить новых дефолтных НПС.

Не понял, что это означает? Дефолтных от чего?.. Тогда почему новых?.. Зачем добавлять существующее?..

Ссылка на комментарий
2 часа назад, warwer сказал(а):

Не понял, что это означает? Дефолтных от чего?.. Тогда почему новых?.. Зачем добавлять существующее?..

Дефолтных - в смысле sim_..._default_0_default_x, таких.

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

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

Создал аномальную зону, всё норм работает, но вот артефакты в них почему-то видны и без детектора. В чём может быть причина?

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

@ARTLantist артефакты под детекторы нужно настроить:

1) В секциях артефактов нужно прописать "rank = (0, 1, 2, 3)", соответственно детекторам.

2) В секциях детекторов нужно прописать артефакты, по соответсвию.

(Вот если у артефакта будет стоять "rank = 0", в таком случае ему детектор не нужен, он будет виден без него.)

Изменено пользователем Romann
  • Полезно 1
 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

@ARTLantist ещё одно уточнение - в секциях детекторов, где артефакты прописаны - там есть нумерация артефактов, которая начинается от первой секции детектора и идёт до последнего детектора - неважно какие артефакты будут в каком порядке прописаны, но очень важно, чтоб номера не сбивались, чтоб всё шло по порядку, ну к примеру - если закомментировать в списке хотя бы однин артефакт, таким образом:

 

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

 



af_class_9                               = af_quest_b14_twisted
af_sound_9_                              = detectors\art_beep1
af_freq_9                                = 0.05, 2

af_class_10                              = jup_b1_half_artifact
af_sound_10_                             = detectors\art_beep1
af_freq_10                               = 0.05, 2

;af_class_11                              = af_compass
;af_sound_11_                             = detectors\art_beep1
;af_freq_11                               = 0.05, 2

af_class_12                              = af_drops
af_sound_12_                             = detectors\art_beep1
af_freq_12                               = 0.05, 2

af_class_13                              = af_ameba_slime
af_sound_13_                             = detectors\art_beep1
af_freq_13                               = 0.05, 2

 

То детектор перестанет видеть все артефакты после десятого. Т.е. нужно чтоб всё шло по порядку, и если убирать артефакт из списка - нужно переписывать все номера, т.е. примерно так:

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




af_class_9                               = af_quest_b14_twisted
af_sound_9_                              = detectors\art_beep1
af_freq_9                                = 0.05, 2

af_class_10                              = jup_b1_half_artifact
af_sound_10_                             = detectors\art_beep1
af_freq_10                               = 0.05, 2

;af_class_11                              = af_compass
;af_sound_11_                             = detectors\art_beep1
;af_freq_11                               = 0.05, 2

af_class_11                              = af_drops
af_sound_11_                             = detectors\art_beep1
af_freq_11                               = 0.05, 2

af_class_12                              = af_ameba_slime
af_sound_12_                             = detectors\art_beep1
af_freq_12                               = 0.05, 2


 

P.S.: Для спасибо не нужно отдельного поста, для этого есть специальные кнопки.

 


 

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

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

А как можно восстановить для зп параметры у артов fire_wound_immunity , wound_immunity, explosion_immunity и strike_immunity? А то артов довольно много новых сделал, а фантазии уже не хватает, т.к. целых 4 секции ещё не доступно :(

И ещё вопрос: как можно накинуть инфопоршень на спавн сквадов смарт террейна? Мне нужно, чтобы мутанты спавнились только после его получения.

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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