Как получить кол-во поднятых предметов?

Imperator

Новичок
Регистрация
6 Июл 2023
Сообщения
12
Я делаю игру, похожую на БВ, и нужны работающие генераторы ресов, для создания магаза мне нужно знать, какое кол-во той или иной валюты у игрока есть, другими словами, сколько у него в инвентаре, например, железа, или сколько он его поднял.
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
538
Я делаю игру, похожую на БВ, и нужны работающие генераторы ресов, для создания магаза мне нужно знать, какое кол-во той или иной валюты у игрока есть, другими словами, сколько у него в инвентаре, например, железа, или сколько он его поднял.
Очень интересно... Могу предложить костыльный способ, когда игрок поднимает железо - += к переменной %player%Iron.
 

Imperator

Новичок
Регистрация
6 Июл 2023
Сообщения
12
Проблема в том, что когда спавнятся в виде лута 2 предмета, они складываются в один с количеством 2, и событие срабатывает один раз, следствие - у игрока два предмета в инвенторе, и только один в переменной
 

Imperator

Новичок
Регистрация
6 Июл 2023
Сообщения
12
Очень интересно... Могу предложить костыльный способ, когда игрок поднимает железо - += к переменной %player%
Проверил, так вообще работать не будет, если айтем не один, код просто игнорит условие, считая, что 2 железа - ни один.
 

Imperator

Новичок
Регистрация
6 Июл 2023
Сообщения
12
Очень интересно... Могу предложить костыльный способ, когда игрок поднимает железо - += к переменной %player%Iron.
Я также пробовал действия с переменными Получить значение из предмета - Количество, бесполезное действие - ставит в переменную кол-во уже вычисленных предметов, и Установить количество предмета, которое запрашивает кол-во и предмет для установки в переменную, - это всё не то.
 

SashaLab7

Эксперт
Регистрация
3 Май 2023
Сообщения
94
У меня есть 2 варианта:

1 - Ужасный. При поднятии предмета нужно поставить 64 проверки, начиная с 64 железа, заканчивая 1 (Даже расписывать не буду).

2 - Получше, но железо будет удаляться (его можно выдавать обратно):
Функция (iron) → Установить (%player%_iron) = (0) → [ Если игрок имеет предмет (Железо x64) → Удалить предметы (Железо x64) → Прибавить (%player%_iron) + (64)] → [ Если игрок имеет предмет (Железо x32) → Удалить предметы (Железо x32) → Прибавить (%player%_iron) + (32)] → ... (Каждый раз дели на два 64 → 32 → 16 → 8 → 4 → 2 → 1) ...​
Событие поднятие предмета → [Если игрок предмет равен (Железо) <Игнорирование количества> → Ждать (1) <Тик> → Вызвать функцию (iron) <Синхронно> → Отправить сообщение (%player%_iron)]​
В чат отправится кол-во поднятого железа. Ты можешь прибавлять это кол-во к общей переменной железа.​
 

TimePlay

Новичок
Регистрация
3 Май 2023
Сообщения
91
вряд ли это возможно, лучше всего не парься с этим, а сделай просто чтобы эти железные слитки оставались в инвентаре игрока, а в магазине просто проверять Если игрок имеет и туда кидаешь сколько надо железок всяких..

!но если минеланд может проверить есть ли у игрока предмет в виде переменной, то тогда можно сделать циклическую функцию при поднятии предмета:
функция > Прибавить переменную (%default%_ironAmount, 1) > Установить предмет (%default%_ironCheck, железный слиток) > Установить количество предмета (%default%_ironCheck, %default%_ironAmount) > Если игрок имеет (%default%_ironCheck) [ждать 3 тиков > вызвать функцию]
 

Imperator

Новичок
Регистрация
6 Июл 2023
Сообщения
12
У меня есть 2 варианта:

1 - Ужасный. При поднятии предмета нужно поставить 64 проверки, начиная с 64 железа, заканчивая 1 (Даже расписывать не буду).

2 - Получше, но железо будет удаляться (его можно выдавать обратно):
Функция (iron) → Установить (%player%_iron) = (0) → [ Если игрок имеет предмет (Железо x64) → Удалить предметы (Железо x64) → Прибавить (%player%_iron) + (64)] → [ Если игрок имеет предмет (Железо x32) → Удалить предметы (Железо x32) → Прибавить (%player%_iron) + (32)] → ... (Каждый раз дели на два 64 → 32 → 16 → 8 → 4 → 2 → 1) ...​
Событие поднятие предмета → [Если игрок предмет равен (Железо) <Игнорирование количества> → Ждать (1) <Тик> → Вызвать функцию (iron) <Синхронно> → Отправить сообщение (%player%_iron)]​
В чат отправится кол-во поднятого железа. Ты можешь прибавлять это кол-во к общей переменной железа.​
Поскольку валют у меня 4, код занял 5 строк - большой костыль, иногда не срабатывает, но в целом работает и из-за отсутствия альтернатив является единственным решением.
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
538
Из-за отсутствия альтернатив является единственным решением.
Из-за отсутствия мозгов является единственным решением.
Я также пробовал действия с переменными Получить значение из предмета - Количество, бесполезное действие - ставит в переменную кол-во уже вычисленных предметов, и Установить количество предмета, которое запрашивает кол-во и предмет для установки в переменную, - это всё не то.
В этом способе. В чем проблема после каждого поднятия железа обнулять счетчик и снова делать расчеты по кол-ву предметов? А в чем проблема перестать мнить себя императором и потыкать кнопочки в этом способе?
Проверил, так вообще работать не будет, если айтем не один, код просто игнорит условие, считая, что 2 железа - ни один.
 
Сверху