myjobisgop Posted July 18, 2015 Share Posted July 18, 2015 Написал небольшой скрипт, который сохраняет данные игрока. Реализовано это так: при выходе игрока с сервера, его данные (координаты, уровень жизни, брони,..) сохраняются в XML файл, которые содержит сохраненные данные всех игроков. Заметил, что при падениях сервера (сбои на моем хостинге бывают часто) удаляются все данные из XML файла. Не подскажете, почему это может происходить и как можно избежать подобные вещи? Link to comment
Kernell Posted July 18, 2015 Share Posted July 18, 2015 Например, потому что файл всё это время был открыт Link to comment
myjobisgop Posted July 18, 2015 Author Share Posted July 18, 2015 Нет, файл открвыется только во время события onPlayerQuit, затем в него записываются данные игрока, файл сохраняетя и закрываетя. Link to comment
TheNormalnij Posted July 21, 2015 Share Posted July 21, 2015 Тут кто-то должен написать, что есть множество способов сохранить все это другими более приятными способами. Например, в бд Link to comment
Kernell Posted July 21, 2015 Share Posted July 21, 2015 Нет, файл открвыется только во время события onPlayerQuit, затем в него записываются данные игрока, файл сохраняетя и закрываетя. Уверены? Быть может другой скрипт его открывает? У каждого игрока свой файл или всё пишется в один XML? Запросто файл может быть открыт в момент падения сервера (какой-то игрок вышел за секунду до этого). Хранить данные для постоянного использования в файле - уже глупо. Как избежать - перейти на СУБД Link to comment
Fabervox Posted August 6, 2015 Share Posted August 6, 2015 Что-бы избежать исчезновения предыдущей информации из файла, нужно что-бы предыдущий файл не изменялся. Т.е. предыдущий файл есть всегда, а меняется тот который перед ним был. При этом оптимальней что-бы файлы не трогались лишний раз, в т.ч. и для переименования, т.е. 3 или 4 файла использовать. А то что сервер падает, если хостинг не бесплатный, то это ненормально. Даже для "дешевле краденого",часто это не нормально. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now