- Сообщений: 14
- Спасибо получено: 37
Ищу скрипт на вывод переменных на карте.
7 года 5 мес. назад #107375
от Forzatz206
Forzatz206 создал тему: Ищу скрипт на вывод переменных на карте.
Ищу скрипты, которые могут выводить переменные на экран. НР, МР и прочее.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 5 мес. назад - 7 года 5 мес. назад #107473
от Dmy
Dmy ответил в теме Ищу скрипт на вывод переменных на карте.
Можно уточнить несколько вопросов?
Если интерфейс всегда в одном месте экрана, то он это называется HUD (heads up display, так называют индикатор на лобовом стекле — название перешло в компьютерные игры из техники). Скриптов на HUD очень много, потому что способов отображения переменных очень много (от римских цифр до круговых диаграм!). Например, можно попробовать решение Юриола из темы « Отображение переменных на экране. Мини-пак ».
Если перемещаться с картой, то можно посмотреть в сторону скриптов для вывода подписей к событиям.
- «На карте» — это они должны всегда быть в одном месте экрана, или же должны перемещаться вместе с картой?
- Как именно должны отображаться переменные: числами, шкалами, круговыми диаграммами, цветом, словами etc.?
- Так переменные или HP и MP? В Мейкере это всё-таки разные вещи.
Если интерфейс всегда в одном месте экрана, то он это называется HUD (heads up display, так называют индикатор на лобовом стекле — название перешло в компьютерные игры из техники). Скриптов на HUD очень много, потому что способов отображения переменных очень много (от римских цифр до круговых диаграм!). Например, можно попробовать решение Юриола из темы « Отображение переменных на экране. Мини-пак ».
Если перемещаться с картой, то можно посмотреть в сторону скриптов для вывода подписей к событиям.
Последнее редактирование: 7 года 5 мес. назад пользователем Dmy.
Спасибо сказали: yuryol
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 5 мес. назад #107481
от Forzatz206
Forzatz206 ответил в теме Ищу скрипт на вывод переменных на карте.
Да, HUD. Но нужно цифрами, я помню какой то скрипт на цифровое отображение переменных, но забыл где его достать. А нагуглить такое очень сложно сейчас (все битое)
Спасибо сказали: Dmy
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 5 мес. назад - 7 года 5 мес. назад #107482
от Dmy
Dmy ответил в теме Ищу скрипт на вывод переменных на карте.
Спасибо за уточнение! Из пака yuryol’а описанию соответствуют Napoleons Game Variable Display и XS - Variable Hud. Первый позволяет динамически добавлять/удалять показываемые переменные в ходе игры, а второй — настраивать позиции отображения и текст после переменной.
(Если нужно что-то другое, то могу поискать что-то другое. Только скажи, чем эти не устраивают, чтобы я знал, по каким критериям искать.)
Napoleons Game Variable Display (из коллекции yuryol’а)
Code:
#sb:nap_var_display [debug]
=begin
#===============================================================================
Napoleons Game Variable Display/показ переменных
Version 1.01
By Napoleon
Перевод: Yuryol
Позволяет:
- Показ нужных переменных.
- Показ иконок рядом с переменными.
Инструкции:
- Вставить ниже "▼ Materials" и выше "▼ Main Process".
- Ввести в событии нужный скрипт:
Если вам нужен показ на экране переменной с иконкой, то вводим
add_game_variable_display(id переменной, id иконки)
например:
add_game_variable_display(21, 2)
Если вам не нужен показ иконки, то вводим:
add_game_variable_display(id переменной)
например:
add_game_variable_display(22)
Для удаления показа определенной переменной вводим:
rem_game_variable_display(id переменной, sort=false)
Для сортировки выведенных переменных вводим:
sort_game_variable_display
Версия для:
- RPG Maker VX Ace
Terms of Use:
- This work is licensed under the Creative Commons Attribution 4.0 International
License. To view a copy of this license, visit
http://creativecommons.org/licenses/by/4.0/deed.en_US.
- Attribution is not required. This overrules what's stated in the above
license.
Version History:
1.01 (21 July 2014)
- Fixed a duplicate saving bug.
- Refactored.
1.00 (16 Januari 2014)
- First Release
#===============================================================================
=end
$imported ||= {}
$imported[:nap_dis_var] = 1.01
module Nap; module Var_Dis
#===============================================================================
# Configurable Section
#===============================================================================
X = 5 # координата Х
Y = 5 # координата У
Z_INDEX = 0
BG_COLOR = Color.new(0, 0, 0, 0) # цвет окна. Последнее число - прозрачность
FONT_NAME = Font.default_name # название шрифта
FONT_SIZE = 40 # размер шрифта
FONT_COLOR = Color.new(255, 255, 255) # цвет шрифта
FONT_SHADOW = true # тени
FONT_BOLD = true # полужирный шрифт
FONT_ITALIC = false # курсив
FONT_OUT_COLOR = Color.new(0, 0, 0, 250)# цвет обводки шрифта. Последнее число - прозрачность
FONT_OUTLINE = true #включть/выключить обводку
#===============================================================================
# Variable Container
#===============================================================================
class Variable_Display
attr_accessor :sprite
attr_reader :index
attr_reader :icon_idx
@@txt_measure_bmp = Bitmap.new(1, 1)
def self.txt_measure_bmp; @@txt_measure_bmp; end
#---------------------------------------------------------------------------
# Initialize
#---------------------------------------------------------------------------
def initialize(index, icon_idx=nil) # Both indices starts at 1
@index = index
@sprite = Variable_Display.create_sprite(index, icon_idx)
@current_value = $game_variables[index]
@icon_idx = icon_idx
end
#---------------------------------------------------------------------------
# Update
#---------------------------------------------------------------------------
def update
return if @current_value == $game_variables[@index] # increases performance
@sprite.bitmap.dispose
@sprite.bitmap = Variable_Display.refresh_bitmap(@index, @icon_idx)
@current_value = $game_variables[@index]
end
#---------------------------------------------------------------------------
# Get Size
#---------------------------------------------------------------------------
def self.get_size(index, icon_idx)
if icon_idx.nil?
return @@txt_measure_bmp.text_size($game_variables[index])
else
s = @@txt_measure_bmp.text_size($game_variables[index])
return Rect.new(s.x, s.y, s.width + 24, s.height)
end
end
#---------------------------------------------------------------------------
# Draw Icon
#---------------------------------------------------------------------------
def self.draw_icon(bitmap, icon_idx)
icon_bmp = Cache.system("Iconset")
rect = Rect.new(icon_idx % 16 * 24, icon_idx / 16 * 24, 24, 24)
y = (bitmap.height - rect.height) / 2
y = 0 if y < 0
bitmap.blt(0, y, icon_bmp, rect)
end
#---------------------------------------------------------------------------
# Refresh Bitmap
#---------------------------------------------------------------------------
def self.refresh_bitmap(index, icon_idx)
size = get_size(index, icon_idx)
bmp = Bitmap.new(size.width, size.height)
set_font(bmp)
bmp.fill_rect(Rect.new(0, 0, bmp.width, bmp.height), Nap::Var_Dis::BG_COLOR)
if icon_idx
draw_icon(bmp, icon_idx)
x = 24
align = 0
else
x = 0
align = 1
end
bmp.draw_text(x, 0, bmp.width, bmp.height, $game_variables[index], align)
return bmp
end
#---------------------------------------------------------------------------
# Create Sprite
#---------------------------------------------------------------------------
def self.create_sprite(index, icon_idx=nil)
sprite = Sprite.new
sprite.x = Nap::Var_Dis::X
sprite.y = Nap::Var_Dis::Y + get_next_y
sprite.z = Z_INDEX
sprite.bitmap = refresh_bitmap(index, icon_idx)
return sprite
end
#---------------------------------------------------------------------------
# Set Font
#---------------------------------------------------------------------------
def self.set_font(bmp)
bmp.font = Font.new(Nap::Var_Dis::FONT_NAME, Nap::Var_Dis::FONT_SIZE)
bmp.font.color = Nap::Var_Dis::FONT_COLOR
bmp.font.bold = Nap::Var_Dis::FONT_BOLD
bmp.font.italic = Nap::Var_Dis::FONT_ITALIC
bmp.font.shadow = Nap::Var_Dis::FONT_SHADOW
bmp.font.out_color = Nap::Var_Dis::FONT_OUT_COLOR
bmp.font.outline = Nap::Var_Dis::FONT_OUTLINE
end
#---------------------------------------------------------------------------
# Get Next Y
#---------------------------------------------------------------------------
def self.get_next_y
y = 0
$nap_vardis_data.each { |d| y += d.sprite.height }
return y
end
#---------------------------------------------------------------------------
# Sort Y
#---------------------------------------------------------------------------
def self.sort_y
$nap_vardis_data.sort_by! { |d| d.index}
end
#---------------------------------------------------------------------------
# Reset Y
#---------------------------------------------------------------------------
def self.reset_y
y = Nap::Var_Dis::Y
$nap_vardis_data.each { |d|
d.sprite.y = y
y += d.sprite.height
}
end
#---------------------------------------------------------------------------
# Dispose
#---------------------------------------------------------------------------
def dispose
@sprite.dispose
end
end # class Variable_Display
Variable_Display.set_font(Variable_Display.txt_measure_bmp)
end; end # module Nap; module Var_Dis
$nap_vardis_data = []
#===============================================================================
# Scene Base
#===============================================================================
class Scene_Base
#-----------------------------------------------------------------------------
# Update [ALIAS]
#-----------------------------------------------------------------------------
alias nap_vardis_update update
def update
nap_vardis_update
$nap_vardis_data.each { |d| d.update }
end
end
#===============================================================================
# Game Interpreter
#===============================================================================
class Game_Interpreter
#-----------------------------------------------------------------------------
# Add Game Variable Display [NEW]
#-----------------------------------------------------------------------------
def add_game_variable_display(index, icon_idx=nil)
$nap_vardis_data << Nap::Var_Dis::Variable_Display.new(index, icon_idx)
end
#-----------------------------------------------------------------------------
# Remove Game Variable Display [NEW]
#-----------------------------------------------------------------------------
def rem_game_variable_display(index, sort=false)
$nap_vardis_data.each{ |d| d.dispose if d.index == index}
$nap_vardis_data.delete_if { |x| x.index == index}
Nap::Var_Dis::Variable_Display.sort_y if sort
Nap::Var_Dis::Variable_Display.reset_y
end
#-----------------------------------------------------------------------------
# Sort Game Variable Display [NEW]
#-----------------------------------------------------------------------------
def sort_game_variable_display
Nap::Var_Dis::Variable_Display.sort_y
Nap::Var_Dis::Variable_Display.reset_y
end
end
#===============================================================================
# Saving & Loading
#===============================================================================
module DataManager
class << self
alias nap_var_dis_make_save_contents make_save_contents
alias nap_var_dis_extract_save_contents extract_save_contents
end
#-----------------------------------------------------------------------------
# Make Save Contents [ALIAS]
#-----------------------------------------------------------------------------
def self.make_save_contents
contents = nap_var_dis_make_save_contents
contents[:nap_var_dis] ||= []
$nap_vardis_data.each { |d| contents[:nap_var_dis] << [d.index, d.icon_idx] }
contents
end
#-----------------------------------------------------------------------------
# Extract Save Contents [ALIAS]
#-----------------------------------------------------------------------------
def self.extract_save_contents(contents)
nap_var_dis_extract_save_contents(contents)
contents[:nap_var_dis].each { |index, icon_idx| $nap_vardis_data << Nap::Var_Dis::Variable_Display.new(index, icon_idx) }
end
end
XS - Variable Hud (из коллекции yuryol’а)
Code:
#==============================================================================
# XS - Variable Hud
# Author: Nicke
# Created: 02/04/2012
# Edited: 09/04/2012
# Version: 1.0a
# Перевод: Yuryol
#==============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials but above ▼ Main. Remember to save.
#
# A small hud to display variables on the map.
#
# *** Only for RPG Maker VX Ace. ***
#==============================================================================
($imported ||= {})["XAIL-VAR-WIN-HUD"] = true
module XAIL
module VAR_HUD
#--------------------------------------------------------------------------#
# * Settings
#--------------------------------------------------------------------------#
# ШРИФТ
#FONT = [название шрифта, размер шрифта, цвет, полужирный, тень]
FONT = [["Verdana"], 14, Color.new(255,255,255), true, true]
# Окно HUDа = [Ширина, x, y, z, прозрачность, скин]
#HUD = [Ширина, x, y, z, прозрачность, скин]
HUD = [270, 295, -5, 200, 0, nil]
# переключатель для отображения HUDа
#VAR_HUD_SWITCH = id переключателя
VAR_HUD_SWITCH = 5
# Список отображаемых переменных ( последние две цифры можно не писать, тогда будет по умолчанию)
#VAR_LIST = [id переменной, vocab (nil), индекс иконки (nil - если без иконки), координата x, координата y]
VAR_LIST = [] # Don't remove!
VAR_LIST[0] = [21, nil, 122]
VAR_LIST[1] = [22, 'текст', 128]
#VAR_LIST[2] = [3, nil, 124]
#VAR_LIST[3] = [4, nil, 125]
# Set the symbol for the amount.
# Can be set to "" to disable.
# SYMBOL = string
SYMBOL = ""
# Расстоняие между переменными.
# SPACING = number
SPACING = 24
end
end
# *** Don't edit below unless you know what you are doing. ***
#==============================================================================#
# ** Window_Var_Hud
#------------------------------------------------------------------------------
# Class for drawing the variable hud.
#==============================================================================#
class Window_Var_Hud < Window_Base
def initialize
# // Method to initialize the var hud window.
super(0, 0, window_width, fitting_height(XAIL::VAR_HUD::VAR_LIST.size))
refresh
end
def window_width
# // Method to return the width.
return XAIL::VAR_HUD::HUD[0]
end
def draw_var(var, unit, x, y, width)
# // Method to draw a variable with the content.
value = "#{$game_variables[var]}#{XAIL::VAR_HUD::SYMBOL}"
contents.font = Font.new(XAIL::VAR_HUD::FONT[0], XAIL::VAR_HUD::FONT[1])
contents.font.color = XAIL::VAR_HUD::FONT[2]
contents.font.bold = XAIL::VAR_HUD::FONT[3]
contents.font.shadow = XAIL::VAR_HUD::FONT[4]
draw_text(x, y, width - 60, line_height, value, 2)
draw_text(x, y, width - 18, line_height, unit, 2) unless unit.nil?
reset_font_settings
end
def refresh
# // Method to refresh the variable hud.
contents.clear
draw_var_hud
end
def draw_var_hud
# // Method to draw the var hud.
y = 0
@vars = {}
for i in XAIL::VAR_HUD::VAR_LIST
x = i[1].nil? ? 32 : -10
draw_var(i[0], i[1], x, y, contents.width - 8)
draw_icon(i[2], 210, y - 2) unless i[2].nil?
y += XAIL::VAR_HUD::SPACING
@vars[i[0]] = $game_variables[i[0]]
end
end
def update
# // Method to update the variable hud if a value has been changed.
super
for i in XAIL::VAR_HUD::VAR_LIST
refresh if($game_variables[i[0]] != @vars[i[0]])
end
end
end
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# Show variable hud on the map.
#==============================================================================
class Scene_Map < Scene_Base
alias xail_var_hud_window_start start
def start(*args, &block)
# // Method to start the var hud window on the map.
xail_var_hud_window_start(*args, &block)
create_var_hud_window
@var_hud_window.visible = $game_switches[XAIL::VAR_HUD::VAR_HUD_SWITCH]
end
alias xail_var_hud_window_terminate terminate
def terminate(*args, &block)
# // Method to terminate the var hud window on the map.
xail_var_hud_window_terminate(*args, &block)
end
def create_var_hud_window
# // Method to create the variable window.
@var_hud_window = Window_Var_Hud.new
@var_hud_window.x = XAIL::VAR_HUD::HUD[1]
@var_hud_window.y = XAIL::VAR_HUD::HUD[2]
@var_hud_window.z = XAIL::VAR_HUD::HUD[3]
@var_hud_window.opacity = XAIL::VAR_HUD::HUD[4]
@var_hud_window.windowskin = Cache.system(XAIL::VAR_HUD::HUD[5]) unless XAIL::VAR_HUD::HUD[5].nil?
end
alias xail_var_hud_window_update update
def update(*args, &block)
# // Method to update the var hud window on the map.
xail_var_hud_window_update(*args, &block)
@var_hud_window.visible = $game_switches[XAIL::VAR_HUD::VAR_HUD_SWITCH]
end
end # END OF FILE
#=*==========================================================================*=#
# ** END OF FILE
#=*==========================================================================*=#
(Если нужно что-то другое, то могу поискать что-то другое. Только скажи, чем эти не устраивают, чтобы я знал, по каким критериям искать.)
Последнее редактирование: 7 года 5 мес. назад пользователем Dmy.
Спасибо сказали: Cabbit
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.097 секунд
