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

Скриптование


Svoboда

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

@Cagorich, судя по назанию, функция должна удалять предмет из инвентаря.  Можно сделать что-то вроде этого:

function remove_item_from_inventory( item, npc )
	  if npc == nil then npc = db actor end
	  npc:drop_item( item ) -- на случай, если это активный предмет, чтобы непись не повис
	  local se_item = alife():object( item:id() )
	  if se_item then
	    alife():release( se_item, true )
	  end
	end

  • Спасибо 1

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

naxac.gif

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


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

@mole venomous, ЕМНИП, эти ящики - для работы менеджера оружия rx_wmgr. Найди в конфигах inventory_box и пропиши ему какой-нибудь невидимый визуал из папки equipment_cache, чтобы глаза не мозолил)

  • Спасибо 1

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

naxac.gif

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


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

@nasar75, в старом варианте wmgr это был просто inventory_box, у которого с оригинала ТЧ прописан визуал ящика. 

52 минуты назад, nasar75 сказал:

все динамитные ящики станут невидимыми

Не станут, секция inventory_box нигде в чистом виде не используется.

  • Полезно 1

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

naxac.gif

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


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

@Cagorich

функция для передачи нескольких предметов от актера или нпс к другому нпc

 

 

function transfer_some_items( section, count, in_npc, out_npc  )
    if out_npc == nil then
        out_npc = db.actor
    end

    local n = 0
    out_npc:iterate_inventory( function ( npc, item )
        if n == count then return end
        if item:section() == section then
            our_npc:transfer_item( item, in_npc )
            n = n + 1
        end
    end,
    out_npc )

    if out_npc:id() == 0 then
        news_manager.relocate_item( out_npc, "out", section )
    end
end
 

Применять: script_name.transfer_some_items( "bandage", 4, second_speaker )
Похожая функция для удаления нескольких одинаковых предметов из инвентаря актера

 

 

function out_some_items( section, number )
    local n = 0
    db.actor:iterate_inventory( function ( actor, item )
        if n == number then return end
        if item:section() == section then
            local se_item = alife():object( item:id() )
            if se_item then alife():release( se_item, true ) end
            n = n + 1
        end
    end,
    db.actor )
    news_manager.relocate_item( db.actor, "out", section )
end
 

Применять: script_name.out_some_items( "bandage", 4 )

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

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

naxac.gif

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


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

@Graff46, https://github.com/naxac/CP2_AddOn/blob/master/gamedata/scripts/naxac_netpk.script

Нетпакет актера тоже есть, работает, проверено.

  • Полезно 1

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

naxac.gif

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


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

@Graff46, плохо проверял наверное)

https://github.com/naxac/CP2_AddOn/blob/master/gamedata/scripts/naxac_test.script

Две функции в конце файла. Последняя вызывается в конце save биндера актера. Работает)

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

naxac.gif

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


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

@Капрал Хикс, а что хранится в таблице tD в "умном выпадении запчастей"? По идее, нужно сохранять где-то по id монстра количество оставшихся рогов и копыт (у тебя, я так понял, это m_Tbl[section].param), а потом при "отрезании" тут:

if self.item then

        self.item_count = ...

брать значение не из конфига, а по self.object:id() из этого "где-то", вот и всё.

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

naxac.gif

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


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

@F.Constantine, пропиши суперресистанс в апдейт в xr_motivator, там находится биндер неписей, и передавай в него не непонятный npc, a конкретный self.object.

Изменено пользователем naxac
  • Нравится 1

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

naxac.gif

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


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

@hack.pavlov, в x-ray extensions для этого есть функция level.get_target_obj()

А без XE - проверять, совпадает ли вектор направления на объект с направлением камеры - для всех онлайновых объектов. Как это сделать - можно подсмотреть, например, в скрипте фотоаппарата из "фотографа"

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

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

naxac.gif

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


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

@Дмитрий Зверев, перед тем, как нпсу стрелять, поссорь его с целью, например, вызвав функцию из логики.

 

Дефолты для meet выставляются в xr_meet.script, там и проверка по группировкам стоит.

  • Полезно 2

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

naxac.gif

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


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

@Jekyll, who_hit_name() возвращает имя объекта, который последним нанёс хит "пострадавшему" объекту.

Отследить можно в каллбэке на хит.

  • Спасибо 1

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

naxac.gif

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


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

@Kash, GetFontLetterica16Russian() и прочие функции получения шрифтов - в движке, только через ковыряние движка добавлять новые.

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

naxac.gif

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


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

@Norman Eisenherz, тебе нужно получить онлайновый (клиентский) объект ящика? Иcпользуй каллбэк на выход в онлайн:

function spawn_box()
	  local se_obj = alife():create("box", position, lv, gv)
	  level.client_spawn_manager():add(se_obj.id, -1, this.spawn_callback)
	end
	 
	function spawn_callback(id, obj)
	  -- тут делаешь что хочешь со своим ящиком: это obj
	end
Изменено пользователем naxac
  • Полезно 3

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

naxac.gif

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


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

@Fenrir02, в кастом-дате нпс может быть секция spawner, в которой прописаны условия перехода в онлайн/оффлайн. Также, если непись под гулагом, то в этом гулаге могут быть прописаны условия перехода в онлайн. Обрабатываются эти условия в функции can_switch_online непися, и если она возвращает false, то никакие alife():set_switch_... непися из оффлайна не вытащат.

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

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

naxac.gif

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


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

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