• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос как работает база данных инвентаря игрока?

chertx

Новый участник
4 Мар 2024
49
1
10
хочу сделать систему инвентаря на сервер, понимаю как работает создание клиентского перетягивания предметов по слотам (drag&drop), но не понимаю как с сервера добавлять игроку в инвентарь предметы и сохранять их в базе данных (сам предмет, разные его свойства (например литры бензина если это канистра бензина), слот в котором лежит этот предмет)
а так же как я понимаю нужно создать список всех предметов которые есть на сервере (но вот не понимаю нужно ли его создавать и на клиенте и на сервере идентичным или можно создать только на сервере?)
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,638
260
100
Для добавления предметов игроку в инвентарь и их сохранения в базе данных, вам нужно будет реализовать соответствующий серверный код. Вы можете создать базу данных, в которой будет таблица для хранения предметов в инвентаре каждого игрока. Серверный код будет обрабатывать запросы на добавление, удаление, обновление предметов в инвентаре, а также сохранение данных в базе.

Что касается списка всех предметов, то его достаточно создать только на сервере. Клиенту передается информация о доступных предметах через запросы к серверу или специальным образом при загрузке. В общем случае, клиенту не нужно знать обо всех доступных предметах заранее, только о тех, которые ему нужно показывать.

Если у вас возникнут еще вопросы по реализации инвентаря на сервере, не стесняйтесь задавать их.
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,496
2,200
208
36
она работает ровно так как ты её напишешь
сохранять в базе данных ты их можешь так как тебе угодно
хоть хочешь по табличке под каждый предмет заведи
обычно используют просто жсон строку со всеми показателями, которую уже разбирают на сервере
на клиенте обычно ничего не хранят - просто передают строку\массив с сервера, когда открывают инвентарь
 
Последнее редактирование:

enotit

Высший разум
High developer
BackEnd developer
13 Ноя 2020
1,749
564
187
22
Смотря что тебе нужно, если побыстрее, то да, жсоны пихаешь и кайфуешь. Однако существует такая штука как нормали бд (для реляционных).
Нужно изучить какие есть параметры, что тебе стоит хранить / передавать. Может у тебя основной костяк на меню и вай нот наименование айтома = таблица, если индексы навешать, то не сильно и жрать будет
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
3,117
1,826
211
28
обычно используют просто жсон строку со всеми показателями, которую уже разбирают на сервере
Сразу не рекомендую такой вариант.
При расширении - можете потерять все данные, удобства в восприятии данных - ноль.
Лучше иметь отдельную таблицу под инвентари (их Id и кому они назначены, например, уникальный Id персонажа) и отдельную таблицу под предметы (их Id и Id инвентаря, в котором они находятся).
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,496
2,200
208
36
Сразу не рекомендую такой вариант.
При расширении - можете потерять все данные, удобства в восприятии данных - ноль.
Лучше иметь отдельную таблицу под инвентари (их Id и кому они назначены, например, уникальный Id персонажа) и отдельную таблицу под предметы (их Id и Id инвентаря, в котором они находятся).
ну эт самый просто варик просто для начинающих
в линеечке например мы целую пачку таблиц использовали для инвентаря и итемов

1711399042634.png


ну и да, так очевидно куда удобнее конечно
 

chertx

Новый участник
4 Мар 2024
49
1
10
она работает ровно так как ты её напишешь
сохранять в базе данных ты их можешь так как тебе угодно
хоть хочешь по табличке под каждый предмет заведи
обычно используют просто жсон строку со всеми показателями, которую уже разбирают на сервере
на клиенте обычно ничего не хранят - просто передают строку\массив с сервера, когда открывают инвентарь
слот в который игрок перетянул предмет сохранять каждый раз когда игрок перетягивает предмет по слотам? или можно отправлять евент сохранения слотов на сервер когда игрок покидает сервер?
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,496
2,200
208
36
слот в который игрок перетянул предмет сохранять каждый раз когда игрок перетягивает предмет по слотам? или можно отправлять евент сохранения слотов на сервер когда игрок покидает сервер?
вообще что-либо сохранять в бд постоянно - моветон
сохраняют обычно раз в какое-то время, мб за исключением каких то суперважных отдельных итемов
уж тем более расположение итемов в фастслотах
 
Реакции: chertx

Alternant

Участник портала
11 Дек 2023
138
23
76
20
слот в который игрок перетянул предмет сохранять каждый раз когда игрок перетягивает предмет по слотам? или можно отправлять евент сохранения слотов на сервер когда игрок покидает сервер?
Хранишь в переменных персонажа и после сохраняешь. Лично у меня есть класс PersonInstance, который держит в себе все необходимые переменные(статик, деньги, инвентарь), которые запрашиваются по динамическому ID игрока. Каждый час и при выходе эти данные сохраняются в БД. В исключение крупные фин.операции, продажа недвижимости, донат и прочее
 

Similar threads