myjobisgop Posted July 18, 2015 Posted July 18, 2015 Написал небольшой скрипт, который сохраняет данные игрока. Реализовано это так: при выходе игрока с сервера, его данные (координаты, уровень жизни, брони,..) сохраняются в XML файл, которые содержит сохраненные данные всех игроков. Заметил, что при падениях сервера (сбои на моем хостинге бывают часто) удаляются все данные из XML файла. Не подскажете, почему это может происходить и как можно избежать подобные вещи?
Kernell Posted July 18, 2015 Posted July 18, 2015 Например, потому что файл всё это время был открыт Не оказываю поддержку посредством личных сообщений, ICQ, ВК и тому подобное. Все вопросы задавайте на форуме.
myjobisgop Posted July 18, 2015 Author Posted July 18, 2015 Нет, файл открвыется только во время события onPlayerQuit, затем в него записываются данные игрока, файл сохраняетя и закрываетя.
TheNormalnij Posted July 21, 2015 Posted July 21, 2015 Тут кто-то должен написать, что есть множество способов сохранить все это другими более приятными способами. Например, в бд TheNormalnij.de
Kernell Posted July 21, 2015 Posted July 21, 2015 Нет, файл открвыется только во время события onPlayerQuit, затем в него записываются данные игрока, файл сохраняетя и закрываетя. Уверены? Быть может другой скрипт его открывает? У каждого игрока свой файл или всё пишется в один XML? Запросто файл может быть открыт в момент падения сервера (какой-то игрок вышел за секунду до этого). Хранить данные для постоянного использования в файле - уже глупо. Как избежать - перейти на СУБД Не оказываю поддержку посредством личных сообщений, ICQ, ВК и тому подобное. Все вопросы задавайте на форуме.
Fabervox Posted August 6, 2015 Posted August 6, 2015 Что-бы избежать исчезновения предыдущей информации из файла, нужно что-бы предыдущий файл не изменялся. Т.е. предыдущий файл есть всегда, а меняется тот который перед ним был. При этом оптимальней что-бы файлы не трогались лишний раз, в т.ч. и для переименования, т.е. 3 или 4 файла использовать. А то что сервер падает, если хостинг не бесплатный, то это ненормально. Даже для "дешевле краденого",часто это не нормально. В официальном Discord MTA, можно получать ответы оперативно и живее обсуждать темы: https://discord.gg/aD5jtRS
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