Войти на сайт

Авторизация, ждите ...
×

ТЕМА: TheoAllen - Limited Inventory (Вопрос)

TheoAllen - Limited Inventory (Вопрос) 10 года 3 мес. назад #67668

  • sinder
  • sinder аватар
  • Вне сайта
  • Мастер
  • Сообщений: 159
  • Спасибо получено: 154
  • 3 место ГотвПроект месяца 2 место2 место ГотвРазработчикПрограммист JavaScript
Есть такой чудесный скрипт. Для я начала просто опишу его, вдруг кому-то он понадобится. Если же скрипт вам не надо и вы бы хотели просто помочь с вопросом, то текст можно пропустить до линии.

Данный скрипт добавляет лимит места в инвентаре. Так же он дает возможность удалять предметы из инвентаря.
Использовать его довольно просто. Все что вам нужно это вписать нужный тег в примечание к предмету, броне, оружию. Их три штуки это:
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), но вот понять как оно работает не могу... В общем, мне нужно найти такую переменную, которая, введя нужный предмет, вернула бы мне сколько мест этот предмет занимает, для дальнейшего использования переменной в формуле. Заранее благодарю за помощь!)

Сам скрипт под спойлером
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

TheoAllen - Limited Inventory (Вопрос) 10 года 3 мес. назад #67670

  • Lipton
  • Lipton аватар
  • Вне сайта
  • Просветлённый
  • Ух ты!
  • Сообщений: 379
  • Спасибо получено: 670
  • 2 место Организатор конкурсовПрограммист Ruby
ну по логике вы можете вызвать функцию так.
$game_party.item_size($data_items[id]) и она вернет вам то что вы хотите.

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

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

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

TheoAllen - Limited Inventory (Вопрос) 10 года 3 мес. назад #67671

  • sinder
  • sinder аватар
  • Вне сайта
  • Мастер
  • Сообщений: 159
  • Спасибо получено: 154
  • 3 место ГотвПроект месяца 2 место2 место ГотвРазработчикПрограммист JavaScript
а что именно работает? Я это в первую очередь пробовал, мне оно возвращает 0 или ошибку
Администратор запретил публиковать записи гостям.

TheoAllen - Limited Inventory (Вопрос) 10 года 3 мес. назад #67672

  • Lipton
  • Lipton аватар
  • Вне сайта
  • Просветлённый
  • Ух ты!
  • Сообщений: 379
  • Спасибо получено: 670
  • 2 место Организатор конкурсовПрограммист Ruby
Скрипт. =)
Значит вы указываете, что-то не то.

Например. В базе данных 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>.
Последнее редактирование: 10 года 3 мес. назад от Lipton.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: sinder

TheoAllen - Limited Inventory (Вопрос) 10 года 3 мес. назад #67673

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

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

TheoAllen - Limited Inventory (Вопрос) 10 года 3 мес. назад #67674

  • Lipton
  • Lipton аватар
  • Вне сайта
  • Просветлённый
  • Ух ты!
  • Сообщений: 379
  • Спасибо получено: 670
  • 2 место Организатор конкурсовПрограммист Ruby
Ты хочешь получать <inv size: n> для конкретного предмета, которое будешь расставлять в БД, в не зависимости от наличия его в инвентаре персонажа???
Администратор запретил публиковать записи гостям.

TheoAllen - Limited Inventory (Вопрос) 10 года 3 мес. назад #67675

  • sinder
  • sinder аватар
  • Вне сайта
  • Мастер
  • Сообщений: 159
  • Спасибо получено: 154
  • 3 место ГотвПроект месяца 2 место2 место ГотвРазработчикПрограммист JavaScript
Да, но я уже понял где я тупил.
Спасибо)
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.246 секунд