![]()
NETRAT
offline
Опыт:
82,062Активность: |
Вот он, гемор и появился когда его не ждали. Проблема была такого толка - в EMI инвентарь нельзя было запихнуть вещь, достать можно, а запихнуть - нет. Решения нашел два:
1. Заставить юнита самого брать вещь(тогда в EMI запихнуть можно), но его пришлось бы распаузить, давать приказ взять вещь и паузить назад. Все это еще отслеживать, а если много вещей перемещается, то это ГЕМОРРОИЩЕ. 2. Геморриться с заменами удалениями, вставками абилок типа инвентарь. Решения не веселое, но решение... Кажется, Сергей, поэтому и делал базу вещей - потому что не получилось запихивать вещи. Да они и достаются далеко не всеми функциями. Тут фича интересная - фактически у героя есть указатель на вещь в его инвентаре, однако прямого способа по нему перейти нет, поэтому приходится кэшить все подобранные вещи. Так вот я выбрал второй вариант, задача сильно упростилась и появилась возможность (теоретически) неограниченного инвентаря. Так вот, все вещ(то есть указатели на них, сами вещи то хранятся классически - в скрытой области карты) в инвентаре(полностью, даже MI) храняться в кэше и по сути загружаются оттуда. Поэтому фактически приходится работать только с кэшем. В-общем схема работает на удивление карашо, даже без лагов, что мя очень радует. Осталось только отладить функции типа Drop/Sell/Move и функции для доступа к инвентарю типа GetItem SetItem HasItem и т.д. что достаточно просто т.к. работает полностью через кэш. Система ориентирована на 12 слотов и отлаживается в этом режиме. Меньше или больше буду отлаживать позже. Теоретически для любых размерностей типа X*Y проблем не должно возникать. ДЛя кратных 6 уж точно. Однако, в систему вводится дополнительная настройка - набор абил типа Inventory NETRAT добавил: Веселый такой скрин NETRAT добавил: Ошибки меня теперь почти не беспокоят =) |
|
|