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

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

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    

 

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Смешно 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 ядер, 32 потока, 5.75 ГГц); 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
Ссылка на комментарий

@Капрал Хикс

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

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

    if self.population > 1 and db.story_by_id[npc:id()] ~= nil 
        and npc:character_community() ~= "military" 
        and npc:character_community() ~= "dolg" 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
end

Так нормально ?

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

@Space.Marine, отпишись тогда если сработало, лады?

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

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

UriZzz.gif

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

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

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

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

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

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

Войти

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

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

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