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

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

@Romann, Жаркам может свои биндеры сделать?

В секции аномалии нужно смотреть ключ "script_binding"

Или так:

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

local thermal_zones_tbl =
	{
		zone_field_thermal = true,
		zone_field_thermal_weak = true,
		zone_field_thermal_average = true,
		zone_field_thermal_strong = true,
	
		zone_mine_thermal = true,
		zone_mine_thermal_weak = true,
		zone_mine_steam = true,
		zone_mine_steam_weak = true,
		zone_mine_steam_average = true,
	
		zone_zharka_static = true,
		zone_zharka_static_weak = true,
		zone_zharka_static_average = true,
		zone_zharka_static_strong = true
	}

function anomaly_zone_binder:update(delta, obj)
	object_binder.update(self, delta)
	--Система замерзания, чтоб греться у термо аномалий.
		
	if thermal_zones_tbl[self.object:section()] then
		if db.actor:position():distance_to(self.object:position()) <= 4 then
    		if not has_alife_info("EugeniumFreezingSystemWarm") then
    			db.actor:give_info_portion("EugeniumFreezingSystemWarm")
			end
	end
	--Система замерзания, чтоб греться у термо аномалий.
  ...
  ...
  ...
  end

 

Но я бы отдельный биндер сделал...

Изменено пользователем Graff46
  • Спасибо 1
Ссылка на комментарий
15 часов назад, Romann сказал:

Как ещё можно проверить - "жарка ли это"?

Правильно советуют тебе - сделай свой биндер для необходимых аномалий.

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

Господа, подскажите пожалуйста, что и где подкрутить чтобы откорректировать цветовую гамму игры? Запустил оригинал сталкера сегодня и чуть не расплакался от той самой оригинальной картинки на мониторе. Солянка делает картинку какой-то желтоватой чтоли... Какой-то менее выразительней в плане цветопередачи, не знаю описать. Будто насыщенность выкрутили и температуру картинки сделали желтой, не знаю. Оригинальная картинка была какая-то розовато-синяя, чтоли. Подскажите пожалуйста?


Подарки

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

    Привет, снова я. Имеем такую функцию:

    Скрытый текст
    
    			local current_outfit = db.actor:item_in_slot(7)
    			if current_outfit then
    				local outfit_section = current_outfit:section()
    				if outfit_properties[outfit_section] then
    					outfit_protection = outfit_properties[outfit_section]
    				end
    				news_manager.send_tip(db.actor, "%c[250, 0, 255, 0]".."Б-р-р-р, прохладно.", nil, nil, nil)
    			end

     

     

    Проблема в строчке сообщения, во первыx - сообщение надо отправить когда мы снимаем броню, а не когда она в слоте, во вторыx - сообщение отправляется постоянно, а нужно: сняли броню - отправили сообщение, одели броню - не отправляем сообщение, сняли - опять отправили. Кто подскажет, как лучше сделать?

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

    Мать: 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.

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

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

    @Romann
    Здравствуйте!

    Как вариант, можно однократно вызвать сообщение с помощью инфопоршня:

    Скрытый текст
    
    			local current_outfit = db.actor:item_in_slot(7)
    			if current_outfit then
    				if not has_alife_info("check_outfit") then
    					db.actor:give_info_portion("check_outfit")
    					-- Здесь одноразовое срабатывание при надевании костюма
    				end
    				local outfit_section = current_outfit:section()
    				if outfit_properties[outfit_section] then
    					outfit_protection = outfit_properties[outfit_section]
    				end
    			else
    				if has_alife_info("check_outfit") then
    					db.actor:disable_info_portion("check_outfit")
    					news_manager.send_tip(db.actor, "%c[250, 0, 255, 0]".."Б-р-р-р, прохладно.", nil, nil, nil)
    					-- Здесь одноразовое срабатывание при снятии костюма
    				end
    			end

     

     

    Изменено пользователем Fenrir02
    • Спасибо 1
    • Согласен 1

    Важнейшая задача цивилизации - научить человека мыслить.

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

    Здрасьте.

     

    При появлении в инвентаре любого нового броника у надетой брони вырубается ПНВ. Скорее всего, проблема решается правкой движка (поправьте меня, если нет), поэтому в качестве простого варианта хочу добавить костыль в скрипты – включать ПНВ обратно через отлов события "поднять предмет".

    Проблема: обнаруженная в скриптах конструкция "level.add_pp_effector("name.ppe", ###, false)" включает эффектор ненадолго и сразу для всей карты (как дополнительный эффект погоды, что ли), а надо сымитировать включение ПНВ в броне и оставить его до следующего нажатия клавиши "ПНВ вкл./выкл.".

    Как это сделать?

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

    Шпаргалка

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

    Что делает эта ф-ция?

    Скрытый текст
    
    function mob_capture(mob, reset_actions)
        if reset_actions == nil then
            abort("mob_capture: reset_actions parameter's value is not specified")
        end
    
        if reset_actions then
            reset_action(mob, script_name())
        else
            if not mob:get_script() then
                mob:script(true, script_name())
            end
        end
    end

     

    И что делают эти классы\методы?

    reset_action(mob, script_name())

    mob:script(true, script_name())

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

    @Graff46, это для установления контроля за мобом. Т.е. он будет выполнять то, что ты ему скриптом скажешь. Например бежать в определенном направлении.  Для примера, посмотри вот этот скрипт

    https://github.com/dsh2dsh/op2ogse/blob/3f7514f804eaf1dc875cc3ce8513d8537dd53bc2/gamedata/scripts/dsh_battle_radius.script#L135

    Это аналог mob_home, только без путей. Там как раз используется такой захват контроля над мобом, что бы заставить его вернуться внутрь.

     

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

    а надо сымитировать включение ПНВ в броне и оставить его до следующего нажатия клавиши "ПНВ вкл./выкл.".

    Это явно из разряда "Овчинка выделки не стоит". Можно, конечно, все это скриптами наворотить(причем объем костылей и извращений будет не маленьким), вот только ради чего ?

     

    Изменено пользователем AndreySol
    Ссылка на комментарий
    В 17.11.2018 в 07:44, Romann сказал:

    а нужно: сняли броню - отправили сообщение, одели броню - не отправляем сообщение, сняли - опять отправили. Кто подскажет, как лучше сделать?

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

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

    @AndreySol Ради того, что достало каждый раз оказываться в темноте. В оригинале это еще не такая большая проблема, а в "солянке", где броню можно снимать с трупов, уже основательно надоедает.

    Я так понимаю, прямой функции "включить ПНВ" нет? Может, есть способ изобразить нажатие определенной клавиши скриптом?

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

    Шпаргалка

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

    Кто может помочь, знает как сделать так, чтобы фонарики НПС не гасли после их смерти, а оставались светить, как в старых билдах ? Желательно без движковых исправлений. Или может кто знает мод где такое уже есть ?

    jpwsa5byp73nyaufrbis15dcci1y.png
     

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

    как сделать так, чтобы фонарики НПС не гасли после их смерти, а оставались светить

    Смотри в xr_motivator.script ф-цию motivator_binder:death_callback, в ней есть

    sr_light.check_light(self.object)
    ...    
    death_manager.drop_manager(self.object):create_release_item()

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

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

    Из X-Ray extensions:

    send_event_key_press(int<DIK_keys>) - имитация события нажатия кнопки

    Как именно применить это на практике? Допустим, при нажатии клавиши F3 нужно вызвать какое-то действие. Как это сделать?

    Важнейшая задача цивилизации - научить человека мыслить.

    Ссылка на комментарий
    В 18.11.2018 в 17:48, Fenrir02 сказал:

    Как именно применить это на практике?

    @Fenrir02,

    в нужную функцию вставляем:

    level.send_event_key_press(DIK_keys.DIK_F3) 

    -- вместо "DIK_F3" может быть любая другая клавиша.

     

    Результатом будет имитация нажатия,

    как будто ты нажал на кл."F3" (не касаясь пальцем физически).

     

    Только вот не помню, должна ли быть локация загружена в этот  момент,

    так как используется пространство "level".

    На всякий, может проверку поставить, типа "if level then ... end"

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

    И снова здравствуйте!

    Подскажите, как с помощью скрипта разжечь костёр, к которому подходит ГГ на определённое расстояние?

    Важнейшая задача цивилизации - научить человека мыслить.

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

    Какая платформа? Для ЗП делал так: bind_campfire.script:

    function turn_off_campfire_by_name(name)
    	if name then
    		local campfire = campfire_table_by_name[name]
    		if campfire and campfire:is_on() then
    			campfire:turn_off()
    		end
    	end
    end
    
    function turn_on_campfire_by_name(name)
    	if name then
    		local campfire = campfire_table_by_name[name]
    		if campfire and not campfire:is_on() then
    			campfire:turn_on()
    		end
    	end
    end

    В самом верху объявил массив:

    campfire_table_by_name = {}

    В методе net_spawn заполняем его:

    campfire_table_by_name[self.object:name()] = self.campfire

    Собственно, использование:

    bind_campfire.turn_off_campfire_by_name("campfire_name")
    bind_campfire.turn_on_campfire_by_name("campfire_name")

     

    Ранее был известен под ником BoBaH_671.

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

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

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

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

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

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

    Войти

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

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

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

    AMK-Team.ru

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