начну с того, что вообще я планировал в скриптах хранить только индексы объектов в глобальных списках... потому как я считаю, что так безопаснее. нечего скриптам знать что-то большее, чем индекс объекта! передав этот индекс в движок, он уже разберется, как достать нужный объект!
проблемы, конечно же, начнутся, когда дело обстоит со списками, количество и индексы объектов в которых постоянно меняется. вариантов решения несколько:
проблемы, конечно же, начнутся, когда дело обстоит со списками, количество и индексы объектов в которых постоянно меняется. вариантов решения несколько:
- а) можно заново вычислять индексы объектов после перестраивания списка
- б) можно привязываться не к индексу в списке, а к некоему ID объекта
- в) можно при убийстве объекта не изменять количество ссылок в списке, оставляя на том месте nil. таким образом количество ссылок в списке будет всегда накапливаться.
- г) можно резервировать места для объектов при старте уровня (то есть при старте по некоторым ссылкам в списке будет nil), при необходимости же добавить заведомо известный объект - указывается также индекс, зарезервированный под объект. при удалении этого объекта, надо будет всего лишь убить сам объект, не изменяя количества объектов в списке.