Перейти к публикации
  • Изменить способ синхронизации магазина с базой данных


    Electr0
    • Сделано

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


    Отзывы пользователей

    Рекомендованные комментарии

    • Нужно сделать при получении поинтов не points[client] += iPointAward; а запрос UPDATE <таблица> SET points =points + %d, time = UNIX_TIMESTAMP() WHERE (steam_id = '%s');
    • При трате поинтов UPDATE <таблица> SET points =points - %d, time = UNIX_TIMESTAMP() WHERE (steam_id = '%s');
    • Ни в коем случае не сохранять points = %d значение из переменной как это сейчас сделано, тогда это будет правильно синхронизировано.
    • ПРИДЕТСЯ ВСЕ ПЕРЕХУЯРИТЬ, О ДА!
    • Отделить кошелек и настройки игроков.
    • Это будет самая безопасная в плане отсутствия возможности потери денег версия за все годы, ведь по ошибке значение 0 не сохранишь теперь.
    • Даже если упадет ни один поинт не пропадет
    • Вместо таймера каждую минуту сохранять, теперь будет таймер синхронизировать значение поинтов из базы раз в минуту.
    Ссылка на комментарий
    Поделиться на других сайтах



    Присоединяйтесь к обсуждению

    Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

    Гость
    Добавить комментарий...

    ×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

      Разрешено не более 75 эмодзи.

    ×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

    ×   Ваш предыдущий контент был восстановлен.   Очистить редактор

    ×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.


  • Обозначения статусов

    В обработке = Мы работаем над вашим отзывом.

    Будет сделано = Ваша идея добавлена к плану будущих изменений.

    Тестируется = Изменения внесены, но требуют тестирования.

    Сделано = Ваша идея реализована!

    Отклонено = Отзыв некорректный, бред, либо уже реализовано. Если у вас есть дополнительная информация напишите комментарий и мы снова откроем этот вопрос.

×
×
  • Создать...