TheoAllen - Limited Inventory (Вопрос)

3 место Готв Программист JavaScript Разработчик Проект месяца 2 место 2 место Готв
Больше
12 года 3 мес. назад #67668 от sinder
Есть такой чудесный скрипт. Для я начала просто опишу его, вдруг кому-то он понадобится. Если же скрипт вам не надо и вы бы хотели просто помочь с вопросом, то текст можно пропустить до линии.

Данный скрипт добавляет лимит места в инвентаре. Так же он дает возможность удалять предметы из инвентаря.
Использовать его довольно просто. Все что вам нужно это вписать нужный тег в примечание к предмету, броне, оружию. Их три штуки это:
1) <inv size: n> - где n, это сколько будет занимать места ваш предмет. По-умолчанию все предметы занимаю одно место, изменить это можно с помощью этого тега. Применим к предметам, броне, оружию.
2) <inv plus: n> - где n, это на сколько увеличится максимально доступное количество мест в инвентаре. Применим к герою, классам, броне, оружию, статусам.
3) <inv minus: n> - тоже самое, что и второй тег, только этот уменьшает максимально доступное количество мест в инвентаре.

И есть еще такая штука:
force_gain_item($data_items[id],amount) - это можно использовать тогда, когда вам понадобится добавить предмет сверх лимита инвентаря. $data_items[id] - это айди предмета в вашей базе данных, а amount количество. Использовать с помощью вызова скрипта.

Это общие понятия, для тех кому вдруг этот скрипт понадобится.

Теперь вопрос. Он направлен к скриптерам, нужна небольшая помощь.

Мне нужно получить переменную с тем сколько мест занимает нужный предмет. Я никак не могу разобрать это в скрипте сам... Имею введу, что вот в скрипте есть такие вещи как общее максимальное количество мест, его можно получить через $game_party.inv_max, так же можно получить и текущее занятое количество мест через $game_party.total_inv_size. Но вот непосредственно получить сколько мест занимает какой-то конкретный предмет мне не удается. Я вроде и нашел нужное в виде $game_party.item_size(item), но вот понять как оно работает не могу... В общем, мне нужно найти такую переменную, которая, введя нужный предмет, вернула бы мне сколько мест этот предмет занимает, для дальнейшего использования переменной в формуле. Заранее благодарю за помощь!)

Сам скрипт под спойлером
ВНИМАНИЕ: Спойлер!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов 2 место
Больше
12 года 3 мес. назад - 12 года 3 мес. назад #67670 от Lipton
ну по логике вы можете вызвать функцию так.
$game_party.item_size($data_items[id]) и она вернет вам то что вы хотите.

$game_variables[99]=$game_party.item_size($data_items[id])

Не пробовал правда. =)

PS. Попробовал. Работает. =)
Последнее редактирование: 12 года 3 мес. назад пользователем Lipton.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Программист JavaScript Разработчик Проект месяца 2 место 2 место Готв
Больше
12 года 3 мес. назад #67671 от sinder
а что именно работает? Я это в первую очередь пробовал, мне оно возвращает 0 или ошибку

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов 2 место
Больше
12 года 3 мес. назад - 12 года 3 мес. назад #67672 от Lipton
Скрипт. =)
Значит вы указываете, что-то не то.

Например. В базе данных Items под первым номером стоит Зелье жизни.
Если Игрок взял несколько Зелье жизни.
и мы хотим узнать сколько они заняли места.
То вызываем скрипт
$game_variables[99]=$game_party.item_size($data_items[1])

Где id=1, так как в базе данных items Зелье жизни стоит под номером "1".

Например в базе данных Weapons под вторым номером стоит Боевой топор.
Игрок взял пару топоров. Мы хотим узнать сколько они занимают места.
Вызываем скрипт.
$game_variables[99]=$game_party.item_size($data_weapons[2])
id = 2 , так как в базе топор стоит под номером "2"

Соответственно что бы получить броню нужно вызвать
$game_variables[99]=$game_party.item_size($data_armors[id])

Где id= номеру брони в базе данных Armors.

Если вы дали id = предмета , которого нет у ГГ скрипт вернет "0"

Ошибка может выскакивать если вы дадите id больше чем существующая БД или если у предмета не задано <inv size: n>.
Последнее редактирование: 12 года 3 мес. назад пользователем Lipton.
Спасибо сказали: sinder

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Программист JavaScript Разработчик Проект месяца 2 место 2 место Готв
Больше
12 года 3 мес. назад - 12 года 3 мес. назад #67673 от sinder
В общем да, я туплю, но это не то, я сейчас это просто осознал. Ведь это гейм_пати, вполне логично, что нужно чтобы предмет был в инвентаре. Дааа, такие тупняки у меня бывают)
Надо тогда другое что-то искать... Мне нужно именно получать это значение вне инвентаря.

upd
Вроде нашел)
Спасибо за то, что натолкнул на мысли, а то я бы тупил так еще долго))
Последнее редактирование: 12 года 3 мес. назад пользователем sinder.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов 2 место
Больше
12 года 3 мес. назад #67674 от Lipton
Ты хочешь получать <inv size: n> для конкретного предмета, которое будешь расставлять в БД, в не зависимости от наличия его в инвентаре персонажа???

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Программист JavaScript Разработчик Проект месяца 2 место 2 место Готв
Больше
12 года 3 мес. назад #67675 от sinder
Да, но я уже понял где я тупил.
Спасибо)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.099 секунд
Работает на Kunena форум