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

X-Ray extensions


Malandrinus

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

Разобрался.. с битами запутался просто.

Соорудил такие функции

 

	local inventory_item_flags = { -- EIIFlags
	drop = 1, -- Fdrop
	can_take = 2, -- FCanTake
	can_trade = 4, -- FCanTrade
	belt = 8, -- Fbelt
	ruck = 16, -- Fruck
	default_to_ruck = 32, -- FRuckDefault
	use_condition = 64, -- FUsingCondition
	sprint_allowed = 128, -- FAllowSprint
	useful_for_npc = 256, -- Fuseful_for_NPC
	-- FInInterpolation = 512, -- FInInterpolation
	-- FInInterpolate = 1024, -- FInInterpolate
	quest_item = 2048 -- FIsQuestItem
	}
	game_object.set_item_flag = function ( obj, flag_name, mode )
	local fl = inventory_item_flags[flag_name]
	if not fl then
	abort("set_item_flag for [%s]: unknown flag name: %s", obj:name(), tostring(flag_name))
	return false
	end
	 
	local flags = obj:get_inventory_item_int( nil, 132 )
	local new_flags
	if mode == true then
	new_flags = bit_or(flags, fl)
	else
	new_flags = bit_and(flags, bit_not(fl))
	end
	 
	if new_flags == flags then return false end
	 
	obj:set_inventory_item_int( 132, new_flags )
	return true
	end
	game_object.get_item_flag = function ( obj, flag_name )
	local fl = inventory_item_flags[flag_name]
	if not fl then
	abort("get_item_flag for [%s]: unknown flag name: %s", obj:name(), tostring(flag_name))
	return false
	end
	 
	local flags = obj:get_inventory_item_int( nil, 132 )
	return bit_and(flags, fl) ~= 0
	end
	

Делаем аптечку квестовой

db.actor:object("medkit"):set_item_flag("quest_item", true)

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Поделиться этим сообщением


Ссылка на сообщение

@UriZzz, 

В 29.10.2019 в 03:55, НаноБот сказал:

Добавлена возможность заблокировать автоперезарядку, для это надо задать
в конфиге auto_reload = false

 

  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Поделиться этим сообщением


Ссылка на сообщение

@UriZzz, судя по функции:

spawn_artefact(sect_art, count)

при спавне явно задаются секция и количество артефактов. Тут уже все зависит от твоей фантазии (=

  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Поделиться этим сообщением


Ссылка на сообщение

@UriZzz , как называется каллбэк - не важно. В функцию set_callback нужно передавать число. А чтобы callback.select_pda_contact или callback.pda_contact стали числом, надо сделать что-то типа

callback.select_pda_contact = 12345

где 12345 - номер каллбэка. В общем, добавить в класс callback соответствующую переменную, потому что движок сам этого не делает - каллбэк-то "самопальный".

Изменено пользователем naxac
  • Согласен 1
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Поделиться этим сообщением


Ссылка на сообщение

@Labadal , 

  local wnd = level.get_trade_wnd()
  if wnd and wnd:IsShown() then
    level.start_stop_menu(wnd, true)
  end
	
Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Поделиться этим сообщением


Ссылка на сообщение

@Labadal , пробовал подключать либу указанным тобой способом, и у меня на любом рендере игра валится с таким логом. А ещё при этом постоянно вылазило окошко старфорса. Краш происходит на вызове init_external_libs().

 

Может, надо включить какие-то дополнительные правки в correction_list.ltx? Или exe'шник нужен лицензионный? Или ещё что? ogse.dll брал из dsh-мода, там же она, думаю, ничем от огсе'шной не отличается? Кто этим когда-нибудь занимался, поделитесь опытом пожалуйста.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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