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


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


    Обратная связь

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

    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 не сохранишь теперь.
    • Даже если упадет ни один поинт не пропадет
    • Вместо таймера каждую минуту сохранять, теперь будет таймер синхронизировать значение поинтов из базы раз в минуту.
    Electr0

    Опубликовано

    Значение Статус изменено на: Тестируется

    Electr0

    Опубликовано

    С нуля пересан раздел database.sp магазина, из API вырезана функция PS_SetPoints заменена на PS_WalletAction



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

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

    Гость
    К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
    Добавить комментарий...

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

      Разрешено использовать не более 75 эмодзи.

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

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

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


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

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

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

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

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

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

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