PDA

Просмотр полной версии : [Вопрос] Как лучше реализовать запись ID/количества предметов для инвентаря?



verteich
19.05.2019, 13:13
Всем здрасьте, делаю систему инвентаря, вопрос, как можно сделать количество предметов, (в данном случае одна клетка один предмет)
new pInventory[MAX_PLAYERS][37];
Пример использования:


CMD:predmet(playerid) {
pInventory[playerid][0] = 1;//выдастся огнемет
}

Vano_Glad
19.05.2019, 13:20
Подробнее опишите, что Вы хотите. Не совсем понял суть вопроса

verteich
19.05.2019, 14:26
Подробнее опишите, что Вы хотите. Не совсем понял суть вопроса

Проще говоря, чтобы предметы стакались
Вот два предмета, и они в одном слоте, в моем случае сейчас работает так "один предмет(даже если одинаковый) в одну клетку инвентаря"

Vano_Glad
19.05.2019, 14:29
CMD:predmet(playerid) {
pInventory[playerid][0] = 1;//выдастся огнемет
}

Если я правильно Вас понял, то у Вас и так всё правильно. [0] - это ID предмета, 1 - это количество. Меняйте просто количество на необходимое Вам

verteich
19.05.2019, 14:31
CMD:predmet(playerid) {
pInventory[playerid][0] = 1;//выдастся огнемет
}

Если я правильно Вас понял, то у Вас и так всё правильно. [0] - это ID предмета, 1 - это количество. Меняйте просто количество на необходимое Вам

[0] - клетка в инвентаре, 1 - ID предмета (огнемет) - как то так:)

Vano_Glad
19.05.2019, 14:38
[0] - клетка в инвентаре, 1 - ID предмета (огнемет) - как то так:)

Ну тогда в массиву добавляйте ещё одно значение, по типу:
new pInventory[MAX_PLAYERS][37][число];
и

pInventory[playerid][0][1] = 1;
где
[0] - клетка
[1] - ID предмета
1 - количество

verteich
19.05.2019, 14:50
Ну тогда в массиву добавляйте ещё одно значение, по типу:
new pInventory[MAX_PLAYERS][37][число];
и

pInventory[playerid][0][1] = 1;
где
[0] - клетка
[1] - ID предмета
1 - количество

Вопрос, что писать вместо "числа"?

Vano_Glad
19.05.2019, 14:51
Вопрос, что писать вместо "числа"?

Максимальное количество ID объектов, которое будете использовать

verteich
19.05.2019, 14:54
Максимальное количество ID объектов, которое будете использовать

Если про клетки то они указаны, 37.
+ присваивается значение массива, то есть что в клетке, но не значение(

Vano_Glad
19.05.2019, 14:55
Если про клетки то они указаны, 37.
+ присваивается значение массива, то есть что в клетке, но не значение(

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

verteich
19.05.2019, 14:59
Вы используете всё тоже самое, только имеете ещё одну ячейку под количество этого предмета. Внимательнее просмотрите то что я Вам выше написал

в переменной inventory, 37 клеток в них могут находиться любые предметы, в моем случае их 30
new pInventory[MAX_PLAYERS][37][37];
так?

Vano_Glad
19.05.2019, 15:00
в переменной inventory, 37 клеток в них могут находиться любые предметы, в моем случае их 30
new pInventory[MAX_PLAYERS][37][37];
так?

Первое значение - это клетки, второе значение - это ID предметов, о которых Вы писали раннее, а к самому массиву уже приравниваете количество данного предмета

verteich
19.05.2019, 15:01
Первое значение - это клетки, второе значение - это ID предметов, о которых Вы писали раннее, а к самому массиву уже приравниваете количество данного предмета

Так система инвентаря динамическая, купил игрок 5 предметов к примеру и 5 должно на писать 6 -6 и т.д

Vano_Glad
19.05.2019, 15:03
Так система инвентаря динамическая, купил игрок 5 предметов к примеру и 5 должно на писать 6 -6 и т.д

Всё равно понять Вас не могу

verteich
19.05.2019, 15:05
Всё равно понять Вас не могу

система на текстдравах, я хочу сделать чтоб один предмет занимал одну клетку, не зависимо от количества, сейчас одна клетка один предмет

ihNNNNNify
19.05.2019, 16:37
enum e_INVENTORY_INFO {
e_IItemId,
e_ICount,
/*
Пример:
Предмет = Карты
Количество = 20 штук
*/
}
new pInventory[MAX_PLAYERS][e_INVENTORY_INFO][37];

/*
Пример:
pInventory[playerid][e_IItemId][0] = 1 - Выдать огремент
pInvnetory[playerid][e_ICount][0] = 10 - Количество огнеметов
*/

EDIT: Ну и соответственно добавить информацию (TD) ниже предмета (или где то рядом), его количество.

verteich
19.05.2019, 17:02
enum e_INVENTORY_INFO {
e_IItemId,
e_ICount,
/*
Пример:
Предмет = Карты
Количество = 20 штук
*/
}
new pInventory[MAX_PLAYERS][e_INVENTORY_INFO][37];

/*
Пример:
pInventory[playerid][e_IItemId][0] = 1 - Выдать огремент
pInvnetory[playerid][e_ICount][0] = 10 - Количество огнеметов
*/

EDIT: Ну и соответственно добавить информацию (TD) ниже предмета (или где то рядом), его количество.

Попробую, спасибо :)

verteich
21.05.2019, 17:54
Попробую, спасибо :)

Все работает, спасибо ihNNNNNify
Можно закрывать.