http://narod.ru/disk/61886741001.9cb...2/BJR.rar.html
Вид для печати
Ну так у тебя скрипт этот не вставлен совсем в проект.
Создай категорию в Редакторе скриптов перед твоим 1.
Имя: MOG_Chain_Commands
Код:#===============================================================================
# +++ MOG - Chain Commands (v1.4) +++
#===============================================================================
# By Moghunter
# http://www.atelier-rgss.com
#===============================================================================
# Sistema de sequência de botões para ativar switchs.
#
# Serão necessárias as seguintes imagens. (Graphics/System)
#
# Chain_Cursor.png
# Chain_Command.png
# Chain_Layout.png
# Chain_Timer_Layout.png
# Chain_Timer_Meter.png
#
#===============================================================================
#
# Para ativar o script use o comando abaixo. (*Call Script)
#
# chain_commands(ID)
#
# ID - Id da switch.
#
#===============================================================================
#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.4 - Correção do crash aleatório.
# v 1.3 - Melhoria no sistema de dispose
# v 1.2 - Melhoria na codificação e correção de alguns glitches.
# v 1.1 - Animação de fade ao sair da cena de chain.
# - Opção de definir a prioridade da hud na tela.
#==============================================================================
module MOG_CHAIN_COMMANDS
#==============================================================================
# CHAIN_COMMAND = { SWITCH_ID => [COMMAND] }
#
# SWITCH_ID = ID da switch
# COMMANDS = Defina aqui a sequência de botões.
# (Para fazer a sequência use os comandos abaixo)
#
# "Down" ,"Up" ,"Left" ,"Right" ,"Shift" ,"D" ,"S" ,"A" ,"Z" ,"X" ,"Q" ,"W"
#
# Exemplo de utilização
#
# CHAIN_SWITCH_COMMAND = {
# 25=>["Down","D","S","Right"],
# 59=>["Down","Up","Left","Right","Shift","D","S","A","Z","X","Q","W"],
# 80=>["Shift","D"]
# }
#==============================================================================
CHAIN_SWITCH_COMMAND = {
5=>["X","Right","Left","Z","Z"],
6=>["Left","Right","Left","Right","Left","Right","Q","Z","Up","A","S",
"Down","D","Z","Right","Up","Up","Z","W","Left","Down","D","A","W"],
8=>["Up","Down","Left","Right","Z"]}
#Duração para colocar os comandos. (A duração é multiplicado pela quantidade
#de comandos) *60 = 1 sec
CHAIN_INPUT_DURATION = 30
#Som ao acertar.
CHAIN_RIGHT_SE = "Chime1"
#Som ao errar.
CHAIN_WRONG_SE = "Buzzer1"
#Switch que ativa o modo automático.
CHAIN_AUTOMATIC_MODE_SWITCH_ID = 20
#Definição da prioridade da hud na tela
CHAIN_HUD_Z = 300
end
#===============================================================================
# ■ Chain Commands
#===============================================================================
class Chain_Commands
include MOG_CHAIN_COMMANDS
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize
@action_id = $game_temp.chain_switch_id
@chain_command = CHAIN_SWITCH_COMMAND[@action_id]
@chain_command = ["?"] if @chain_command == nil
duration = [[CHAIN_INPUT_DURATION, 1].max, 9999].min
@timer_max = duration * @chain_command.size
@timer = @timer_max
@slide_time = [[60 / duration, 10].max, 60].min
@change_time = 0
if $game_switches[CHAIN_AUTOMATIC_MODE_SWITCH_ID]
@auto = true
else
@auto = false
end
@com = 0
end
#--------------------------------------------------------------------------
# ● Main
#--------------------------------------------------------------------------
def main
dispose
@background_sprite = Sprite.new
@background_sprite.bitmap = SceneManager.background_bitmap2
create_chain_command
create_cusrsor
create_layout
create_meter
create_text
create_number
Graphics.transition
loop do
Graphics.update
Input.update
update
break if SceneManager.scene != self
end
dispose
end
#--------------------------------------------------------------------------
# ● Create Cursor
#--------------------------------------------------------------------------
def create_cusrsor
@fy_time = 0
@fy = 0
@com_index = 0
@cursor = Sprite.new
@cursor.bitmap = Cache.system("Chain_Cursor")
@cursor.z = 4 + CHAIN_HUD_Z
@cursor_space = ((@bitmap_cw + 5) * @chain_command.size) / 2
if @chain_command.size <= 20
@cursor.x = (544 / 2) - @cursor_space + @cursor_space * @com_index
else
@cursor.x = (544 / 2)
end
@cursor.y = (416 / 2) + 30
end
#--------------------------------------------------------------------------
# ● Create Chain Command
#--------------------------------------------------------------------------
def create_chain_command
@image = Cache.system("Chain_Command")
width_max = ((@image.width / 13) + 5) * @chain_command.size
@bitmap = Bitmap.new(width_max,@image.height * 2)
@bitmap_cw = @image.width / 13
@bitmap_ch = @image.height
index = 0
for i in @chain_command
command_list_check(i)
bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch)
if index == 0
@bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect)
else
@bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect)
end
index += 1
end
@sprite = Sprite.new
@sprite.bitmap = @bitmap
if @chain_command.size <= 15
@sprite.x = (544 / 2) - ((@bitmap_cw + 5) * @chain_command.size) / 2
@new_x = 0
else
@sprite.x = (544 / 2)
@new_x = @sprite.x
end
@sprite.y = (416 / 2) + 30 - @bitmap_ch - 15
@sprite.z = 3 + CHAIN_HUD_Z
@sprite.zoom_x = 1.5
@sprite.zoom_y = 1.5
end
#--------------------------------------------------------------------------
# * create_layout
#--------------------------------------------------------------------------
def create_layout
@back = Plane.new
@back.bitmap = Cache.system("Chain_Layout")
@back.z = 0
@layout = Sprite.new
@layout.bitmap = Cache.system("Chain_Timer_Layout")
@layout.z = 1 + CHAIN_HUD_Z
@layout.x = 160
@layout.y = 150
end
#--------------------------------------------------------------------------
# * create_meter
#--------------------------------------------------------------------------
def create_meter
@meter_flow = 0
@meter_image = Cache.system("Chain_Timer_Meter")
@meter_bitmap = Bitmap.new(@meter_image.width,@meter_image.height)
@meter_range = @meter_image.width / 3
@meter_width = @meter_range * @timer / @timer_max
@meter_height = @meter_image.height
@meter_src_rect = Rect.new(@meter_range, 0, @meter_width, @meter_height)
@meter_bitmap.blt(0,0, @meter_image, @meter_src_rect)
@meter_sprite = Sprite.new
@meter_sprite.bitmap = @meter_bitmap
@meter_sprite.z = 2 + CHAIN_HUD_Z
@meter_sprite.x = 220
@meter_sprite.y = 159
update_flow
end
#--------------------------------------------------------------------------
# ● Create Text
#--------------------------------------------------------------------------
def create_text
@text = Sprite.new
@text.bitmap = Bitmap.new(200,32)
@text.z = 2 + CHAIN_HUD_Z
@text.bitmap.font.name = "Georgia"
@text.bitmap.font.size = 25
@text.bitmap.font.bold = true
@text.bitmap.font.italic = true
@text.bitmap.font.color.set(255, 255, 255,220)
@text.x = 230
@text.y = 100
end
#--------------------------------------------------------------------------
# ● Create Number
#--------------------------------------------------------------------------
def create_number
@combo = 0
@number = Sprite.new
@number.bitmap = Bitmap.new(200,64)
@number.z = 2 + CHAIN_HUD_Z
@number.bitmap.font.name = "Arial"
@number.bitmap.font.size = 24
@number.bitmap.font.bold = true
@number.bitmap.font.color.set(0, 255, 255,200)
@number.bitmap.draw_text(0, 0, 200, 32, "Ready",1)
@number.x = 30
@number.y = 100
end
#--------------------------------------------------------------------------
# ● Pre Dispose
#--------------------------------------------------------------------------
def exit
loop do
Graphics.update
@sprite.x += 5
@layout.x -= 5
@meter_sprite.x -= 5
@text.x -= 2
@text.opacity -= 5
@sprite.opacity -= 5
@layout.opacity -= 5
@meter_sprite.opacity -= 5
@number.opacity -= 5
@back.opacity -= 5
@cursor.visible = false
break if @sprite.opacity == 0
end
SceneManager.call(Scene_Map)
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
return if @layout == nil
Graphics.freeze
@background_sprite.bitmap.dispose
@background_sprite.dispose
@bitmap.dispose
@sprite.bitmap.dispose
@sprite.dispose
@cursor.bitmap.dispose
@cursor.dispose
@meter_image.dispose
@meter_bitmap.dispose
@meter_sprite.bitmap.dispose
@meter_sprite.dispose
@layout.bitmap.dispose
@layout.dispose
@layout = nil
@back.bitmap.dispose
@back.dispose
@text.bitmap.dispose
@text.dispose
@number.bitmap.dispose
@number.dispose
@image.dispose
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
update_command
update_cursor_slide
update_flow
update_change_time
end
#--------------------------------------------------------------------------
# ● Change_Time
#--------------------------------------------------------------------------
def update_change_time
return unless @auto
@change_time += 1
check_command(-1) if @change_time >= CHAIN_INPUT_DURATION - 1
end
#--------------------------------------------------------------------------
# ● Update Flow
#--------------------------------------------------------------------------
def update_flow
@timer -= 1
@meter_sprite.bitmap.clear
@meter_width = @meter_range * @timer / @timer_max
@meter_src_rect = Rect.new(@meter_flow, 0, @meter_width, @meter_height)
@meter_bitmap.blt(0,0, @meter_image, @meter_src_rect)
@meter_flow += 20
@meter_flow = 0 if @meter_flow >= @meter_image.width - @meter_range
wrong_command if @timer == 0 and @auto == false
end
#--------------------------------------------------------------------------
# ● Update Command
#--------------------------------------------------------------------------
def update_command
return if @auto
if Input.trigger?(Input::X)
check_command(0)
elsif Input.trigger?(Input::Z)
check_command(1)
elsif Input.trigger?(Input::Y)
check_command(2)
elsif Input.trigger?(Input::A)
check_command(3)
elsif Input.trigger?(Input::C)
check_command(4)
elsif Input.trigger?(Input::B)
check_command(5)
elsif Input.trigger?(Input::L)
check_command(6)
elsif Input.trigger?(Input::R)
check_command(7)
elsif Input.trigger?(Input::RIGHT)
check_command(8)
elsif Input.trigger?(Input::LEFT)
check_command(9)
elsif Input.trigger?(Input::DOWN)
check_command(10)
elsif Input.trigger?(Input::UP)
check_command(11)
end
end
#--------------------------------------------------------------------------
# ● command_list_check
#--------------------------------------------------------------------------
def command_list_check(command)
case command
when "A"
@com = 0
when "D"
@com = 1
when "S"
@com = 2
when "Shift"
@com = 3
when "Z"
@com = 4
when "X"
@com = 5
when "Q"
@com = 6
when "W"
@com = 7
when "Right"
@com = 8
when "Left"
@com = 9
when "Down"
@com = 10
when "Up"
@com = 11
else
@com = 12
end
end
#--------------------------------------------------------------------------
# ● check_command
#--------------------------------------------------------------------------
def check_command(com)
index = 0
if com != -1
right_input = false
for i in @chain_command
if index == @com_index
command_list_check(i)
right_input = true if @com == com
end
index += 1
end
else
command_list_check(@com_index)
@change_time = 0
right_input = true
end
if right_input
refresh_number
next_command
else
wrong_command
end
end
#--------------------------------------------------------------------------
# ● Next Command
#--------------------------------------------------------------------------
def next_command
@com_index += 1
Audio.se_play("Audio/SE/" + CHAIN_RIGHT_SE, 100, 100)
if @com_index == @chain_command.size
$game_switches[@action_id] = true
exit
$game_map.need_refresh = true
end
refresh_command
refresh_text(0)
end
#--------------------------------------------------------------------------
# ● wrong_command
#--------------------------------------------------------------------------
def wrong_command
Audio.se_play("Audio/SE/" + CHAIN_WRONG_SE, 100, 100)
refresh_text(1)
exit
$game_player.jump(0,0)
end
#--------------------------------------------------------------------------
# ● Refresh Command
#--------------------------------------------------------------------------
def refresh_command
@sprite.bitmap.clear
index = 0
for i in @chain_command
command_list_check(i)
bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch)
if @com_index == index
@bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect)
else
@bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect)
end
index += 1
end
if @chain_command.size > 15
@new_x = (544 / 2) - ((@bitmap_cw + 5) * @com_index)
else
@cursor.x = (544 / 2) - @cursor_space + ((@bitmap_cw + 5) * @com_index)
end
end
#--------------------------------------------------------------------------
# ● Refresh Text
#--------------------------------------------------------------------------
def refresh_text(type)
@text.bitmap.clear
if type == 0
if @com_index == @chain_command.size
@text.bitmap.font.color.set(55, 255, 55,220)
@text.bitmap.draw_text(0, 0, 200, 32, "Perfect!",1)
else
@text.bitmap.font.color.set(55, 155, 255,220)
@text.bitmap.draw_text(0, 0, 200, 32, "Success!",1)
end
else
@text.bitmap.font.color.set(255, 155, 55,220)
if @timer == 0
@text.bitmap.draw_text(0, 0, 200, 32, "Time Limit!",1)
else
@text.bitmap.draw_text(0, 0, 200, 32, "Fail!",1)
end
end
@text.x = 230
@text.opacity = 255
end
#--------------------------------------------------------------------------
# ● Refresh Number
#--------------------------------------------------------------------------
def refresh_number
@combo += 1
@number.bitmap.clear
@number.bitmap.font.size = 34
@number.bitmap.draw_text(0, 0, 200, 32, @combo.to_s,1)
@number.opacity = 255
@number.zoom_x = 2
@number.zoom_y = 2
end
#--------------------------------------------------------------------------
# ● Update Cursor Slide
#--------------------------------------------------------------------------
def update_cursor_slide
@sprite.zoom_x -= 0.1 if @sprite.zoom_x > 1
@sprite.zoom_y -= 0.1 if @sprite.zoom_y > 1
@text.x -= 2 if @text.x > 210
@text.opacity -= 5 if @text.opacity > 0
@sprite.x -= @slide_time if @sprite.x > @new_x and @chain_command.size > 15
if @number.zoom_x > 1
@number.zoom_x -= 0.1
@number.zoom_y -= 0.1
end
if @fy_time > 15
@fy += 1
elsif @fy_time > 0
@fy -= 1
else
@fy = 0
@fy_time = 30
end
@fy_time -= 1
@cursor.oy = @fy
end
end
#==============================================================================
# ■ Game Temp
#==============================================================================
class Game_Temp
attr_accessor :chain_switch_id
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
alias mog_chain_commands_initialize initialize
def initialize
@chain_switch_id = 0
mog_chain_commands_initialize
end
end
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● Chain Commands
#--------------------------------------------------------------------------
def chain_commands(switch_id = 0)
return if switch_id <= 0
$game_temp.chain_switch_id = switch_id
SceneManager.call(Chain_Commands)
wait(1)
end
end
#===============================================================================
# ■ SceneManager
#===============================================================================
class << SceneManager
@background_bitmap2 = nil
#--------------------------------------------------------------------------
# ● Snapshot For Background2
#--------------------------------------------------------------------------
def snapshot_for_background2
@background_bitmap2.dispose if @background_bitmap2
@background_bitmap2 = Graphics.snap_to_bitmap
end
#--------------------------------------------------------------------------
# ● Background Bitmap2
#--------------------------------------------------------------------------
def background_bitmap2
@background_bitmap2
end
end
#===============================================================================
# ■ Scene Map
#===============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# ● Terminate
#--------------------------------------------------------------------------
alias mog_chain_commands_terminate terminate
def terminate
SceneManager.snapshot_for_background2
mog_chain_commands_terminate
end
end
$mog_rgss3_chain_commands = true
Спасибо, помогло.
Всем привет. Решил освоить два скрипта в Асе и возникли 2 нубских вопроса:
1) Куда нужно положить новый шрифт, что бы игра могла его подхватить?
2) В круговом меню можно убрать окно с информацией о локации в которой находишься?
Подробнее + решенные проблемы.
Использую скрипты:
1) Титульного экрана v1.1
Скрипт #1 Сейфер Kr сайт: http://rpgvxa.3nx.ru/
Позволяет выбирать шрифт, цвет, размер и расположение Названия на титульном листе. + мелкие настройки. У меня проблема с добавлением шрифта. Не разу таким не занимался, а подробной инструкции не встречал.
2) Ring Menu by Syvkal
Version 1.0
Была проблема с переводом слова "Load" в База данных/термины, но нашел решение этой проблемы в скрипте, строка:
Vocab::Load = "Загрузить"
Можно задать любое значение.
Так же не знал куда разместить изображения иконок для кругового меню.
Решение: Проект\Graphics\Pictures\
Притом нужно сохранять Иконки с английскими названиями и копии с русскими. Это обусловлено использованием русифицированного мейкера. Возможно можно было внести изменение в скрипте, но я решил таким способом.
Часть вопросов решил сам, остальное оставил, но наверное стоит теперь это перенести из скриптов в общие вопросы.
Эм, работаю на VX Ace...
Друзья мои, возможно ли сделать так, чтобы при появлении фразы "Battle!" еще и проигрывался определенный звук?
Спойлер Script:
Интересно Скриптеры на форуме живы?
Есть вот такой вопрос. Есть скрипт показа жизни врагов простенький но
в нем есть один раздражающий момент((
http://s42.radikal.ru/i097/1211/bb/582df8db381b.jpg
надо убрать белую стрелку.
вот скрипт:
#================================================= ===========================
#Enemy HUD
#By Ventwig
#Version 1.4 - July 29 2012
#For RPGMaker VX Ace
#================================================= ===========================
# Here's another window-ish thing to show HP :)
# Thanks Shaz for helping me out with this one :D
# Thanks ItsKouta for showing me a horrible bug!
# Thanks to #tag-this for helping with the hide numbers option!
# Thanks Helladen for pointing out a small error!
# Thanks Ulises for helping with the hurdle of not having RMVXA with me!
#================================================= ============================
# Description:
# This code shows the name and HP for up to 8 enemies at once.
# Plug'N'Play and the HP bar updates after every hit/kill.
# You can also set it so the numbers are hidden! Oooh!
# Options to scan enemies, show MP, or states will be added.
#================================================= =============================
# Compatability:
# alias-es Game_Enemy and Scene_Battle
# Works with Neo Gauge Ultimate Ace (Recommended)
#================================================= ==============================
# Instructions: Put in materials, above main. Almost Plug and Play
# Put above Neo Gauge Ultimate Ace if used
#================================================= =============================
# Please give Credit to Ventwig if you would like to use one of my scripts
# in a NON-COMMERCIAL project.
# Please ask for permission if you would like to use it in a commercial game.
# You may not re-distribute any of my scripts or claim as your own.
# You may not release edits without permission, combatability patches are okay.
#================================================= ==============================
module EHUD
#t/f - choose whether or not to make the background appear.
WINDOW_BACK = false
#Number, choose how long to wait between attacks (to let the player look
#at the HP bars. Recommended 4-6
WINDOW_WAIT = 5
#Chooses the Y value of the window. Recommended 20.
WINDOW_Y = 60
#Decides whether or not to show the HP numbers/etc/etc.
#0 means normal (HP name, current and max hp)
#1 means hidden max hp
#2 means just the bar and the word hp
DRAW_HP_NUMBERS = 0
#Selects whether or not you have Neo Gauge Ultimate Ace.
#If the above is set to [[true]], this doesnt matter, if it's false,
#make sure you have it right!!!
NEO_ULTIMATE_ACE = false
################################################## #########################
#Boss Gauges - Setup info
#================================================= =========================
#In version 1.2, there is now the option to draw longer gauges so bosses look
#Way cooler (And it works).
#Now, to set up a boss, you need to make sure the boss is
#THE FIRST ENEMY IN THE TROOP. If not, then there won't be a boss gauge.
#
#Next, please note that if you want to draw the boss gauge, you have to make
#Sure that the troop only has 5 enemies, counting the boss.
#So a Demon and 4 spiders is allowed, but not a Demon and 6 spiders.
#
#Also, you can put multiple bosses in one troop but a gauge will only be
#drawn for the first one, even when it's killed.
#================================================= ==========================
#Now, to set up bosses, make it like the example below
#BOSS_ENEMY[Enemyid for the boss] = true
#TRUE IS REQUIRED FOR IT TO WORK
#
#Don't worry, you don't need to put false for non-bosses.
#Have Fun!
################################################## ##########################
#How long the boss gauge should be. Def: 475
BOSS_GAUGE = 200
#Sets enemies to draw the boss gauges!
BOSS_ENEMY = [34] #Do not touch
#BOSS_ENEMY[Enemyid for the boss] = true
BOSS_ENEMY[1,34] = true
end
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# * Method Aliases
#--------------------------------------------------------------------------
alias shaz_enemyhud_initialize initialize
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :old_hp # hp on last hud refresh
attr_accessor :old_mp # mp on last hud refresh
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(index, enemy_id)
shaz_enemyhud_initialize(index, enemy_id)
@old_hp = mhp
@old_mp = mmp
end
end
class Window_Enemy_Hud < Window_Base
################################################## #################
#Sets up what appears in the HUD
#Questions names and HUD, then displays them
################################################## ###############
#Set up the window's start-up
def initialize
#Draws window
super(0,EHUD::WINDOW_Y,545,120)
if EHUD::WINDOW_BACK == false
self.opacity = 0
end
self.z = 0
@x, @y = 5, 50
troop_fix
if EHUD::BOSS_ENEMY[@enemy1.enemy_id] != nil and EHUD::BOSS_ENEMY[@enemy1.enemy_id] == true
@boss_troop = true
@boss_enemy = @enemy1
else
@boss_troop = false
@boss_enemy = nil
end
enemy_hud
refresh
end
if EHUD::DRAW_HP_NUMBERS == 1
if EHUD::NEO_ULTIMATE_ACE == false
def draw_actor_hp(actor, x, y, width = 124)
draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::hp_a)
change_color(hp_color(actor))
draw_text(x, y, width, line_height, actor.hp)
change_color(system_color)
end
else
def draw_actor_hp(actor, x, y, width = 124)
gwidth = width * actor.hp / actor.mhp
cg = neo_gauge_back_color
c1, c2, c3 = cg[0], cg[1], cg[2]
draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 +
HPMP_GAUGE_Y_PLUS, width, HPMP_GAUGE_HEIGHT, c1, c2, c3)
(1..3).each {|i| eval("c#{i} = HP_GCOLOR_#{i}")}
draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 +
HPMP_GAUGE_Y_PLUS, gwidth, HPMP_GAUGE_HEIGHT, c1, c2, c3, false, false,
width, 30)
draw_text(x, y, 30, line_height, Vocab::hp_a)
change_color(hp_color(actor))
draw_text(x, y, width, line_height, actor.hp)
change_color(system_color)
end
end
end
if EHUD::DRAW_HP_NUMBERS == 2
if EHUD::NEO_ULTIMATE_ACE == false
def draw_actor_hp(actor, x, y, width = 124)
draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
end
else
def draw_actor_hp(actor, x, y, width = 124)
gwidth = width * actor.hp / actor.mhp
cg = neo_gauge_back_color
c1, c2, c3 = cg[0], cg[1], cg[2]
draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 +
HPMP_GAUGE_Y_PLUS, width, HPMP_GAUGE_HEIGHT, c1, c2, c3)
(1..3).each {|i| eval("c#{i} = HP_GCOLOR_#{i}")}
draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 +
HPMP_GAUGE_Y_PLUS, gwidth, HPMP_GAUGE_HEIGHT, c1, c2, c3, false, false,
width, 30)
end
end
end
def troop_fix
if $game_troop.alive_members.size > 0
@enemy1 = $game_troop.alive_members[0]
end
if $game_troop.alive_members.size > 1
@enemy2 = $game_troop.alive_members[1]
end
if $game_troop.alive_members.size > 2
@enemy3 = $game_troop.alive_members[2]
end
if $game_troop.alive_members.size > 3
@enemy4 = $game_troop.alive_members[3]
end
if $game_troop.alive_members.size > 4
@enemy5 = $game_troop.alive_members[4]
end
if $game_troop.alive_members.size > 5
@enemy6 = $game_troop.alive_members[5]
end
if $game_troop.alive_members.size > 6
@enemy7 = $game_troop.alive_members[6]
end
if $game_troop.alive_members.size > 7
@enemy8 = $game_troop.alive_members[7]
end
end
def enemy_hud
troop_fix
if $game_troop.alive_members.size > 0
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy1,10,0)
draw_actor_hp(@enemy1,10,20,width=EHUD::BOSS_GAUGE )
else
draw_actor_name(@enemy1,10,0)
draw_actor_hp(@enemy1,10,20,width=96)
end
end
if $game_troop.alive_members.size > 1
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy2,10,50)
draw_actor_hp(@enemy2,10,70,width=96)
else
draw_actor_name(@enemy2,10+125,0)
draw_actor_hp(@enemy2,10+125,20,width=96)
end
end
if $game_troop.alive_members.size > 2
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy3,10+125,50)
draw_actor_hp(@enemy3,10+125,70,width=96)
else
draw_actor_name(@enemy3,10+250,0)
draw_actor_hp(@enemy3,10+250,20,width=96)
end
end
if $game_troop.alive_members.size > 3
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy4,10+250,50)
draw_actor_hp(@enemy4,10+250,70,width=96)
else
draw_actor_name(@enemy4,10+375,0)
draw_actor_hp(@enemy4,10+375,20,width=96)
end
end
if $game_troop.alive_members.size > 4
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy5,10+375,50)
draw_actor_hp(@enemy5,10+375,70,width=96)
else
draw_actor_name(@enemy5,10,50)
draw_actor_hp(@enemy5,10,70,width=96)
end
end
if $game_troop.alive_members.size > 5
if @boss_troop == false
draw_actor_name(@enemy6,10+125,50)
draw_actor_hp(@enemy6,10+125,70,width=96)
end
end
if $game_troop.alive_members.size > 6
if @boss_troop == false
draw_actor_name(@enemy7,10+250,50)
draw_actor_hp(@enemy7,10+250,70,width=96)
end
end
if $game_troop.alive_members.size > 7
if @boss_troop == false
draw_actor_name(@enemy8,10+375,50)
draw_actor_hp(@enemy8,10+375,70,width=96)
end
end
end
def refresh
contents.clear
enemy_hud
@old_size = $game_troop.alive_members.size
if @old_size < 5 and @boss_troop == false
self.height = 80
end
end
def update
# assume no refresh needed
refresh_okay = false
# loop through remaining enemies one at a time - each enemy is put into the temporary variable called 'enemy'
$game_troop.alive_members.each do |enemy|
# have the hp or mp changed since last time?
if enemy.hp != enemy.old_hp || enemy.mp != enemy.old_mp
# we do need to update the hud
refresh_okay = true
# and replace the old values with the current values
enemy.old_hp = enemy.hp
enemy.old_mp = enemy.mp
end
end
if $game_troop.alive_members.size != @old_size
refresh_okay = true
end
if @boss_enemy != nil
if @enemy1.enemy_id == @boss_enemy.enemy_id
@boss_troop = true
else
@boss_troop = false
end
end
if refresh_okay
refresh
end
end
end
class Window_BattleLog
alias enemy_hud_battle_log_wait wait_and_clear
def wait_and_clear
wait while @num_wait < EHUD::WINDOW_WAIT if line_number > 0
clear
end
end
#Show the window on the map
class Scene_Battle < Scene_Base
alias original_create_all_windows create_all_windows
def create_all_windows
original_create_all_windows
create_enemy_hud_window
end
def create_enemy_hud_window
@enemy_hud_window = Window_Enemy_Hud.new
end
end
################################################## #######################
#End Of Script #
################################################## #######################
Смени WINDOW_BACK = falce => WINDOW_BACK = true, и будет тебе счастье!
И WINDOW_Y = 0