Информация об объектах на карте (событиях)
11 года 3 мес. назад #77757
от DK
DK создал тему: Информация об объектах на карте (событиях)
Скрипт позволяет просматривать информацию об объекте/событии/евенте, находящимся прямо перед героем по нажатию клавиши.
Внимание! Альфа версия
Кому не сложно, посмотрите демку... Что можно добавить/изменить/улучшить ? Позже планируется сделать авторегулируемое окно. В шапке скрипта нет никаких настроек и инструкций.
Суть скрипта: пользователь забивает в комментарий события текст в виде <object_info = ваш текст>
текст без кавычек. Поддерживает формативный ввод (перевод на новую строку - \n, пробел в начале строки \P - почему нельзя использовать обычный спросите вы... когда вы описываете информацию (<object_info = ваш текст>) скрипт удаляет все пробелы после = и если нужно сделать специально пробел, то используйте \P, а также \c[id], id - число, а \c - цвет текста) - в демке все это используется. Не проверял на выводе имен, переменных и прочего (как в сообщениях событий), но подозреваю, что также работает... Позже сделаю тест.
Потом, если игрок стоит напротив события (смотрит на него), то при нажатии клавиши шифт shift отображается окно.
Чтобы отобразить свое имя в заголовке окна используйте <object_info_type = имя> также без кавычек.
Версия: 0.1 альфа
Демо
Скрипт:
Внимание! Альфа версия
Кому не сложно, посмотрите демку... Что можно добавить/изменить/улучшить ? Позже планируется сделать авторегулируемое окно. В шапке скрипта нет никаких настроек и инструкций.
Суть скрипта: пользователь забивает в комментарий события текст в виде <object_info = ваш текст>
текст без кавычек. Поддерживает формативный ввод (перевод на новую строку - \n, пробел в начале строки \P - почему нельзя использовать обычный спросите вы... когда вы описываете информацию (<object_info = ваш текст>) скрипт удаляет все пробелы после = и если нужно сделать специально пробел, то используйте \P, а также \c[id], id - число, а \c - цвет текста) - в демке все это используется. Не проверял на выводе имен, переменных и прочего (как в сообщениях событий), но подозреваю, что также работает... Позже сделаю тест.
Потом, если игрок стоит напротив события (смотрит на него), то при нажатии клавиши шифт shift отображается окно.
Чтобы отобразить свое имя в заголовке окна используйте <object_info_type = имя> также без кавычек.
Версия: 0.1 альфа
Демо
Скрипт:
ВНИМАНИЕ: Спойлер!
Code:
=begin
###############################################################################
# #
# Информация об объектах на карте #
# #
###############################################################################
Автор: Денис Кузнецов (http://vk.com/id8137201)
Версия: 0.1 alpha
Релиз от: 04.02.15
Настроек нет
=end
$Object_Info_Window = nil
class Game_Event < Game_Character
attr_reader :event
end
class Scene_Map < Scene_Base
def create_object_info_window(name, info)
$Object_Info_Window = Object_Info_Window.new(name, info) if $Object_Info_Window.nil?
end
def search_info
x, y = 0, 0
case $game_player.direction
when 2
y = 1
when 4
x = -1
when 6
x = 1
when 8
y = -1
end
event_info = $game_map.events_xy($game_player.x + x, $game_player.y + y)[0]
return if event_info.nil?
name = ""
info = ""
event_info.list.each do |index|
if index.code == 108 || index.code == 408
if index.parameters[0] =~ /<[\s]*object[\w\s]*info[\s]*=[\s]*([а-яА-Я\w\S\ ]+)[\s]*>/i
text = $1.gsub(/[\\]+n/, "\n")
text = text.gsub(/[\\]+P/, " ")
info += text
end
name = $1 if index.parameters[0] =~ /<[\s]*object[\w\s]*info[\w\s]*type[\s]*=[\s]*([а-яА-Я\w\S\ ]+)[\s]*>/i
end
end
if name == ""
name = event_info.event.name
end
create_object_info_window(name, info) if info != ""
end
alias dk_update update
def update
dk_update
if Input.press?(:SHIFT)
search_info
else
if !$Object_Info_Window.nil?
$Object_Info_Window.dispose
$Object_Info_Window = nil
end
end
end
end
class Object_Info_Window < Window_Base
def initialize(info_text, text_array)
@info_text = info_text
@text = text_array
x, y, w, h = 50, 50, 400, 300
super(x, y, w, h)
update
end
def update
super
contents.clear
draw_text(0, 0, contents_width, 24, "Информация о " + @info_text, 1)
contents.fill_rect(0, 24, contents_width, 2, normal_color)
draw_text_ex(0, 30, @text.to_s)
end
end
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 3 мес. назад #77758
от Arykray
Arykray ответил в теме Информация об объектах на карте (событиях)
Посмотрел демо!
Не знаю как можно пустить этот скрипт в обиход, разве что, смотришь на врага, читаешь и решаешь лезть или не лезть)))
Все тоже можно сделать обычным диалогом...
Есть вариант, что-то вроде оценки (события) (пока герой разговаривает, пытается что-то сделать), рядом выскакивает окошко с описанием объекта.
Пример: Персонаж подошел к камню и нажал кнопку действия, В диалоге: Я не могу поднять этот камень, он слишком тяжелый, В доп окне. Это камень, очень тяжелый, лежит там, где его положили!
Не знаю как можно пустить этот скрипт в обиход, разве что, смотришь на врага, читаешь и решаешь лезть или не лезть)))
Все тоже можно сделать обычным диалогом...
Есть вариант, что-то вроде оценки (события) (пока герой разговаривает, пытается что-то сделать), рядом выскакивает окошко с описанием объекта.
Пример: Персонаж подошел к камню и нажал кнопку действия, В диалоге: Я не могу поднять этот камень, он слишком тяжелый, В доп окне. Это камень, очень тяжелый, лежит там, где его положили!
Спасибо сказали: DK
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.089 секунд
