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

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

13 часов назад, Norman Eisenherz сказал:

Строки

        local inv = level.main_input_receiver()
        inv:AttachChild(w)

никакого эффекта не дают.

Сделай ещё w:Show(true)

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif


Подарки

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

@naxac Приклеил кнопку к инвентарю напрямую, а не через отдельное окно – отображается сразу, без Show(true).

@dsh Каким образом ловится ссылка на скрытое окно инвентаря и можно ли такое повторить в ТЧ?

  • Нравится 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

Подскажите, существует ли прямая скриптовая проверка, в зуме ли оружие (ТЧ 1.0006)? Или только через net_packet?

Здесь могла быть ваша реклама.


Подарки

  • 2
  • 2
  • 5
  • 3
  • Ссылка на комментарий
    12 минут назад, mole venomous сказал:

    прямая скриптовая проверка, в зуме ли оружие (ТЧ 1.0006)?

    В ванильной версии, ЕМНИП только через кривые костыли, но это не точно :crazy2:

    Скрытый текст
    
    function scopeUsed()
    local fov = device().fov
    	if fov < 37 then
    	return true
    	else
    	return false
    	end
    end

     

    для разного оружия - значение FOV разное, нужно проверять и сравнивать

    • Спасибо 2
    • Согласен 1
    • Полезно 2
    Ссылка на комментарий
    26.04.2020 в 23:39, ted.80 сказал:

    кривые костыли

    Т.е. и без "костылей" никак, если готового когда нет? По сути, нужно то для парочки ночных прицелов... Ковырять готовый аддон nigth scopes 1.21 не стал, решил использовать такое:

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

    local np
    function update()
        if not np then np = net_packet() end
        local actor = db.actor
        if actor then
            local active_item = actor:active_item()
            if active_item then
                local active_item_id = alife():object(active_item:id())
                if active_item_id then
                    np:w_begin(0)
                    active_item_id:UPDATE_Write(np)
                    local size = np:w_tell()
                    np:r_seek(size > 13 and 10 or size-2)    
                    zoom = np:r_u8()
                    -- Включить ПНВ 
                    if active_item:section()== "wpn_ak108_1pn93" and zoom == 1 then
                        level.add_pp_effector("nightvision.ppe", 2011, false)
                    else
                        level.remove_pp_effector(2011)    
                    end    
                end
            end
        end
    end    

     

    Здесь могла быть ваша реклама.


    Подарки

  • 5
  • 2
  • 4
  • 5
  • Ссылка на комментарий
    6 часов назад, mole venomous сказал:

    и без "костылей" никак, если готового когда нет?

    А чем вас не устраивает готовый код, предоставленный @ted.80, ?

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

    Просто для справки - без зума, FOV является константой при любых предметах в руках ГГ. Если он от этой константы отличается - значит активен зум.

    • Согласен 1
    • Полезно 2

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

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

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

    не устраивает

    Отчего же не устраивает? Его костыль прямее моего.

    • Смешно 3

    Здесь могла быть ваша реклама.


    Подарки

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

    Здрасьте.

     

    Тестирую переключатели: базовое окно ScriptWnd, вложенное окно TabControl + две кнопки, подключить сборку к инвентарю.

    Spoiler
    
    local w, t, inv
    
    function sms(text)
    	news_manager.send_tip(db.actor, text)
    end
    
    function info(info_id)
    	if info_id == "ui_inventory" then
    -- базовое окно
    		w = CUIScriptWnd()
    		w:SetAutoDelete(true)
    		w:SetWindowName("main")
    		w:Init(0, 0, 100, 50)
    -- окно вкладок
    		t = CUITabControl()
    		t:SetAutoDelete(true)
    		t:SetWindowName("tc")
    		t:Init(0, 0, 100, 50)
    		w:AttachChild(t)
    -- вкладки
    		t:AddItem("tab_1","ui_button_ordinary",0,0,50,50)
    		t:AddItem("tab_2","ui_button_ordinary",50,0,50,50)
    		local tab_1 = t:GetButtonByIndex(0)
    		local tab_2 = t:GetButtonByIndex(1)
    		tab_1:SetStretchTexture(true)
    		tab_2:SetStretchTexture(true)
    -- действие
    		-- w:Register(t)
    		w:AddCallback("tc", ui_events.TAB_CHANGED, action, w)
    -- привязка к инвентарю
    		inv = level.main_input_receiver()
    		inv:AttachChild(w)
    		w:Show(true)
    	elseif info_id == "ui_inventory_hide" then
    		if w then
    			inv:DetachChild(w)
    			w = nil
    		else
    			sms("none")
    		end
    	end
    end
    
    function action()
    	sms( t:GetActiveIndex() )
    end

     

    1. Событие обрабатывается без регистрации окна TabControl в ScriptWnd. Как такое возможно? Для обычной кнопки отключение регистрации отключает и обработку события.

    2. Кнопки отображаются с исходным размером текстур, хотя для обеих задано масштабирование. Неправильно указаны ссылки на кнопки или для кнопок с несколькими текстурами (_d, _e, _h, _t) масштабирование недоступно?

    Мини-моды: ТЧ ЧН ЗП

    Шпаргалка

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

    Ребята, будьте добры, подскажите ответ на простой вопрос: как в скрипте вывести на экран временное сообщение (т.е. чтобы оно НЕ сохранялось в журнале в ПДА)?

    Ссылка на комментарий
    Только что, phalcor сказал:

    чтобы оно НЕ сохранялось в журнале в ПДА

    Тогда надо на худ свой статик выводить) и на нем писать.

    Читать в сторону GUI-классов игры.

    • Нравится 1

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

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

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

    Как получить и передать в локальную переменную секцию текущей погоды на локации? level.get_weather() дает название самого цикла, но как узнать секцию из которой он был выбран вот к примеру [dynamic_zaton_good] из dynamic_weather_graphs.ltx

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

    Приветствую !

    Старый мод "Stories by the bonfire v1.0". 

    Как в xr_kamp.script сделать запрет на истории для Долга и Военных ? Там есть:

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

        -- Если чувак знает истории, надо добавить их к лагерю
        if self.population > 1 and db.story_by_id[npc:id()] ~= nil then
            self.kamp_states["story"] = true
            self.kamp_states["post_story"] = true
        else
            self.kamp_states["story"] = false
            self.kamp_states["post_story"] = false    
        end

    Думаю, что куда-то сюда надо... В общем прошу помощи. А то как-то не канонично получается, когда Долг и Вояки рассказывают голосами Сталкеров сталкерские байки.
    Сам скрипт полностью. 

     

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

    @Space.Marine, дружище, если это тот мод что я думаю то наличие/отсутствие банк у той или иной группировки зависит от наличия/отсутствия звуковых файлов этих баек в папках озвучки этих группировок, по копайся там.

    Если не ошибаюсь, папка должна называться stories чи как то так.

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

     Моя нычкаНычка в арендованном у Опричника холодильнике  

    Мы хорошие ребята, жаль патронов маловато:):ukostra:

    UriZzz.gif

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

    наличия/отсутствия звуковых файлов этих баек в папках

    Это точная информация ? Просто сторисы ещё разрабами GSC были сделаны и лежат в оригинальных архивах игры- там в каждой папке stories - 50 файлов звуковых - это надо тогда заглушки делать - 300 штук...

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

    Думаю да. https://www.amk-team.ru/forum/topic/659-stalkers-sound-remake/ посмотри вот этот мод.

    • Спасибо 1

     Моя нычкаНычка в арендованном у Опричника холодильнике  

    Мы хорошие ребята, жаль патронов маловато:):ukostra:

    UriZzz.gif

    Ссылка на комментарий
    3 часа назад, Space.Marine сказал:

    это надо тогда заглушки делать - 300 штук...

    Э, зачем так сложно, товарищ?

    function CKampManager:checkNpcAbility(npc)
        local npc_id = npc:id()
        
        if npc:character_community() ~= "monolith" and
           npc:character_community() ~= "zombied" and - добавить and

           npc:character_community() ~= "military" - добавить вот эту строку, не помню, вояки вроде так правильно называются?
        then

    В самом начале функции, где потом сторис.

    Изменено пользователем Капрал Хикс
    • Нравится 1
    • Согласен 2

    Подарки

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

    В самом начале функции,

    Но тогда они не будут:
    -- играть на гармошке

    -- играть на гитаре

    -- анекдоты

    Надо как-то по другому...

    Ссылка на комментарий
    9 минут назад, Space.Marine сказал:

    Надо как-то по другому..

    -- Если чувак знает истории, надо добавить их к лагерю 

       if self.population > 1 and db.story_by_id[npc:id()] ~= nil and npc:character_community() ~= "military" then

    Ну тут совсем просто же.

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

    Подарки

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

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

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

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

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

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

    Войти

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

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

    AMK-Team.ru

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