- Сообщений: 3147
- Спасибо получено: 2651
Добавление предметов по переменной
11 года 3 мес. назад - 9 года 2 мес. назад #77623
от DeadElf79
Автор: DeadElf79
Версия скрипта: 1.2
Версия мейкера: XP, VX, VX Ace
Тип: Компонент, дополняющий систему выдачи вещей
Описание:
Позволяет добавить необходимый предмет, оружие или броню в инвентарь с помощью указания номеров двух переменных.
Пример:
Добавит в инвентарь оружие, ID которого указано в переменной под номером 5. Количество добавляемого оружия указано в переменной под номером 6.
Установка:
Предварительная настройка ивентов перед использованием скрипта описана здесь: ссылка на пост.
Код:
Благодарности:
Ren310, за то, что подсказал, что анимацию сундуков можно сделать частью общего события.
Urban.Wolfling aka Волчонок - за то, что вдохновил пересмотреть этот скрипт и добавить совместимость с его скриптом ( его можно посмотреть по этой ссылке )
DeadElf79 создал тему: Добавление предметов по переменной
Добавление предметов по переменной
Информация:
Автор: DeadElf79
Версия скрипта: 1.2
Версия мейкера: XP, VX, VX Ace
Тип: Компонент, дополняющий систему выдачи вещей
Описание:
Позволяет добавить необходимый предмет, оружие или броню в инвентарь с помощью указания номеров двух переменных.
Пример:
Code:
$game_party.var_gain_weapon(5,6)
Установка:
Предварительная настройка ивентов перед использованием скрипта описана здесь: ссылка на пост.
Код:
Code:
# Добавление предметов по переменной
# Автор: DeadElf79
# Версия: 1.2
#
# Описание:
# Немного модифицированные стандартные методы
# для использования сразу с переменными
#
# Как использовать:
# 1. в одну переменную вы записываете ID нужного итема
# 2. в другую пишете количество
# 3. вызываете одну из следующих функций для получения предмета:
# $game_party.var_gain_item(var1, var2)
# $game_party.var_gain_weapon(var1, var2)
# $game_party.var_gain_armor(var1, var2)
# (здесь и далее:
# var1 - ID первой переменной,
# var2 - ID второй переменной)
# или одну из этих, чтобы отобрать предмет (учтите, что даже при отборе
# предмета вы должны указывать во второй переменной положительное число):
# $game_party.var_lose_item(var1, var2)
# $game_party.var_lose_weapon(var1, var2)
# $game_party.var_lose_armor(var1, var2)
#
# Используя переменные, вы можете указать случайный ID предмета
# и/или случайное количество предметов.
# Собственно, код
class Game_Party
#--------------------------------------------------------------------------
# * Gain Items (or lose)
# var_id : variable ID
# var_amount : variable ID for quantity
#--------------------------------------------------------------------------
def var_gain_item(var_id, var_amount)
# Update quantity data in the hash.
item=$data_items[ $game_variables[var_id] ]
n=$game_variables[var_amount]
if item
gain_item(item, n)
end
end
#--------------------------------------------------------------------------
# * Gain Weapons (or lose)
# var_id : variable ID
# var_amount : variable ID for quantity
#--------------------------------------------------------------------------
def var_gain_weapon(var_id, var_amount)
# Update quantity data in the hash.
weapon=$data_weapons[ $game_variables[var_id] ]
n=$game_variables[var_amount]
if weapon
gain_weapon(weapon, n)
end
end
#--------------------------------------------------------------------------
# * Gain Armor (or lose)
# var_id : variable ID
# var_amount : variable ID for quantity
#--------------------------------------------------------------------------
def var_gain_armor(var_id, var_amount)
# Update quantity data in the hash.
armor=$data_armors[ $game_variables[var_id] ]
n=$game_variables[var_amount]
if armor
gain_armor(armor, n)
end
end
#--------------------------------------------------------------------------
# * Lose Items
# var_id : variable ID
# n : variable ID for quantity
#--------------------------------------------------------------------------
def var_lose_item(var_id, n)
# Reverse the numerical value and call it var_gain_item
item=$data_items[ $game_variables[var_id] ]
n=$game_variables[var_amount]
if item
gain_item(item, -n)
end
end
#--------------------------------------------------------------------------
# * Lose Weapons
# var_id : variable ID
# n : variable ID for quantity
#--------------------------------------------------------------------------
def var_lose_weapon(var_id, n)
# Reverse the numerical value and call it var_gain_weapon
weapon=$data_weapons[ $game_variables[var_id] ]
n=$game_variables[var_amount]
if weapon
gain_weapon(weapon, -n)
end
end
#--------------------------------------------------------------------------
# * Lose Armor
# var_id : variable ID
# n : variable ID for quantity
#--------------------------------------------------------------------------
def var_lose_armor(var_id, n)
# Reverse the numerical value and call it var_gain_armor
armor=$data_armors[ $game_variables[var_id] ]
n=$game_variables[var_amount]
if armor
gain_armor(armor, -n)
end
end
end
Благодарности:
Ren310, за то, что подсказал, что анимацию сундуков можно сделать частью общего события.
Urban.Wolfling aka Волчонок - за то, что вдохновил пересмотреть этот скрипт и добавить совместимость с его скриптом ( его можно посмотреть по этой ссылке )
Последнее редактирование: 9 года 2 мес. назад пользователем DeadElf79.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 3 мес. назад - 11 года 3 мес. назад #77625
от DeadElf79
Шаг 1.
Создадим общее событие под названием "Сундуки". Оставим его пока пустым.
Шаг 2.
Создадим на карте событие, которое станет нашим будущим сундуком, добавим в него указание номера сундука и вызов общего события:
На второй странице зададим в качестве графики сундук в открытом состоянии и зададим вызов страницы, если локальный переключатель А включен:
Шаг 3.
Откроем общее событие "Сундуки" и создадим условие, проверяющее номер сундука, вызвавшего событие.
Зададим три переменных, которые содержат всю необходимую информацию: тип содержимого, ID в базе данных и количество.
Шаг 4.
Далее предполагается, что вы используете измененную систему сообщений (Custom Message System), которая поддерживает отображение названия оружия, брони или предмета при помощи тега. Я использую UMS (Universal Message System) для XP.
Далее - создадим условие, проверяющее типа содержимого и его количество.
Для одного оружия выведем строку:
Так все вышеописанное выглядит в событии:
Шаг 5.
Также можно установить анимацию открытия сундука и включить локальный переключатель А.
Полный текст события, указана проверка только для типа "Оружие". Вы можете дописать условия с BoxContent TYPE равным 1 (броня) и 2 (предметы) самостоятельно, они аналогичны.
Вот так выглядит добавление денег:
Шаг 6.
Тестируем это в игре и получаем:
DeadElf79 ответил в теме Добавление предметов по переменной
Предварительная настройка
Данная инструкция содержит отображение содержимого для сундуков, в которых только один типа предметов.Шаг 1.
Создадим общее событие под названием "Сундуки". Оставим его пока пустым.
Шаг 2.
Создадим на карте событие, которое станет нашим будущим сундуком, добавим в него указание номера сундука и вызов общего события:
На второй странице зададим в качестве графики сундук в открытом состоянии и зададим вызов страницы, если локальный переключатель А включен:
Шаг 3.
Откроем общее событие "Сундуки" и создадим условие, проверяющее номер сундука, вызвавшего событие.
Зададим три переменных, которые содержат всю необходимую информацию: тип содержимого, ID в базе данных и количество.
Шаг 4.
Далее предполагается, что вы используете измененную систему сообщений (Custom Message System), которая поддерживает отображение названия оружия, брони или предмета при помощи тега. Я использую UMS (Universal Message System) для XP.
Далее - создадим условие, проверяющее типа содержимого и его количество.
Для одного оружия выведем строку:
Для двух и более оружий выведем:Вы нашли в сундуке:
\c[3]\ow[\v[5]]
После чего добавим данное оружие в инвентарь.Вы нашли в сундуке:
\c[3]\ow[\v[5]]х\v[6]
Так все вышеописанное выглядит в событии:
Шаг 5.
Также можно установить анимацию открытия сундука и включить локальный переключатель А.
Полный текст события, указана проверка только для типа "Оружие". Вы можете дописать условия с BoxContent TYPE равным 1 (броня) и 2 (предметы) самостоятельно, они аналогичны.
Вот так выглядит добавление денег:
Шаг 6.
Тестируем это в игре и получаем:
Последнее редактирование: 11 года 3 мес. назад пользователем DeadElf79.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 3 мес. назад #77626
от DeadElf79
DeadElf79 ответил в теме Добавление предметов по переменной
Скрипт написан специально для тех, кто использует общие события, а не настраивает каждое событие целиком и полностью отдельно от другого.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 мес. назад - 9 года 3 мес. назад #96579
от DeadElf79
DeadElf79 ответил в теме Добавление предметов по переменной
Вышел тут недавно скрипт
PickUp Message
и мне понравилась его простота. Так что я решил проверить, пойдет ли он у меня и понял, что скрипт из этого топика с ним слегка несовместим.
Исправил свой код, а заодно добавил небольшое описание и инструкцию в самом начале.
Скрипт был проверен на XP и VX Ace, он совместим с обеими версиями. Пользуйтесь на здоровье!
Исправил свой код, а заодно добавил небольшое описание и инструкцию в самом начале.
Скрипт был проверен на XP и VX Ace, он совместим с обеими версиями. Пользуйтесь на здоровье!
Последнее редактирование: 9 года 3 мес. назад пользователем DeadElf79.
Спасибо сказали: Hinigami
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 2 мес. назад #96634
от DeadElf79
DeadElf79 ответил в теме Добавление предметов по переменной
Пофиксил пару критических ошибок, которые не успел проверить. Вроде теперь всё более-менее.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.097 секунд
