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

Black_Raven_03

Проверенные
  • Число публикаций

    75
  • Регистрация

  • Последнее посещение

  • AMKoin

    772 [Подарить AMKoin]

Баланс оценок

37

О Black_Raven_03

  • День рождения 18.11.1996

Недавние посетители профиля

1 897 просмотров профиля

Закладки

  1. Перебор инвенаря в ОГСР
    Скриптование

    Доброго времени суток, прошу помощи!

    Делаю правку к Новому Арсеналу 7 (движок ОГСР от сен 2020, без возможности смены версии) с таким кодом:

    	local sect = wpn:section()
    	local sil_sect = get_string( sect, "silencer_name" )
    
    	if not sil_sect then
    		return
    	end
    
    	local sil_obj = level.object_by_id(0)
    	db.actor:inventory_for_each( function( temp_sil, db.actor)
    		if temp_sil and db.actor:is_in_ruck(temp_sil) and temp_sil:is_silencer() and temp_sil:section() == sil_sect then
    			sil_obj = temp_sil
    		end
    	end )

    , на что получаю ошибку "invalid key to next"

    Вопрос: а куда копать-то?

     

    Правка: сделал через iterate_inventory - больше не вылетает...


  2. Перебор инвенаря в ОГСР (другой)
    Скриптование

    Снова нужна помошь, опять Новый Арсенал 7, соотв. ОГСР 2020г.
    Мне нужно найти и удалить один предмет в инвентаре из нескольких одинаковых, когда делаю так:
     

    local item, sil_items
    		db.actor:iterate_ruck(
    			function(dummy, item)
    				if item.section == sil_sect then
    					table.insert(sil_items, item:id())
    				end
    			end
    		)
    		if sil_items[1] ~= nil then 
    			db.actor:mark_item_dropped(level.object_by_id(sil_items[1]))
    			alife():release(alife():object(sil_items[1]))
    		else
    			return
    		end

    получаю ошибку вида "attempt to index a local sil_items (a nil value)"
    Что я натворил не так?!


×
×
  • Создать...
⚠ ВНИМАНИЕ! НЕ РЕКОМЕНДУЕМ ПРОИЗВОДИТЬ РЕГИСТРАЦИЮ НА ФОРУМЕ.