Показать сообщение отдельно
Старый 16.03.2010, 23:00   #2
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Переход между уровнем и боевой сценой?

Ну в принципе все правильно, только лучше не удалять и загружать, а прятать уровень. Сэкономишь время загрузки. Более того, при заходе на новый сегмент карты, по которой ты путешествуешь, сразу подгружай соответствующую ей боевую арену.

Так как у тебя битвы происходят на отдельных аренах, сохраняться во время боя нет смысла. На карте же лучше сделать возможность сохраняться где угодно, чтобы не утомлять игрока пробежкой до точек сохранения.

Все объекты, которые не являются уровнем (нпц, игрок, сундуки с ценностями и т.д.) сделай через типы. При сохранении перед каждым типом сохраняй переменную, сколько в мире существует предметов данного типа на момент сохранения. Например 10 жителей деревушки. После этого перебирай всех этих жителей по циклу внутри типа и записывай все их числовые и стринговые переменные в файл. Далее переходи к следующему типу по этому же принципу. Предметы в инвентаре, скрипты, использующиеся у тебя в игре, а так же триггеры (двери, кнопки, зоны в которые надо зайти) так же опиши через типы. Помимо этого до или после записи всех предметов в файл туда можно записать мировые переменные. Например сколько часов игрок провел в игре, сколько у него денег и т.д.

При загрузке просто по очереди проверяй все записанные переменные в файле. Например при загрузке типов загружаешь байтовую переменную, отвечающую за количество жителей в деревне где ты сохранился. Если переменная больше нуля, значит по циклу создаешь новый объект в типе нпц и загружаешь в него все сохраненные тобой значения из файла (его координаты и т.д.).
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Amatsu за это полезное сообщение:
Артем Валерьевич (03.05.2010), battou (16.03.2010)