RPG Maker VXAce
Добро пожаловать на форум!
login.php profile.php?mode=register faq.php memberlist.php search.php index.php

Список форумов RPG Maker VXAce » Скрипты » Система битвы
Начать новую тему  Ответить на тему Предыдущая тема :: Следующая тема 
Система битвы
СообщениеДобавлено: Вс Мар 11, 2012 12:20 pm Ответить с цитатой
Serafim
Администратор
Администратор
Зарегистрирован: 08.03.2012
Сообщения: 238
Откуда: ЛНР




Есть много сражений скрипты для VX там, и они
основном фантастических. Тем не менее, все они требуют столько конфигурации. Этот скрипт
является конечной плагин и играть бой HUD: все, что вам нужно сделать, это положить его в
редактор и изменить одно дело, если вы действительно хотите. Этот сценарий просто помещает
Актера определены лица в бой окна вместе с HP и MP.
Существует в настоящее время также HUD на роль врага выбор бою. В нем содержится
Имена врагов, НР, депутаты и государства. Вы можете предотвратить HUD от рисования
эти значения купить размещение определенных тегов в notebox противника.

Особенности

Невероятно простой плагин и играть бой HUD.
Всеобъемлющее отображения статистики врагов в бою.
Дополнительная комплектация для размера шрифта, цвета и типа.

Код:
#===============================================================================
 #
 # Battler HUD
 # Version 3.0
 # By Pacman (rmrk.net)
 # Description: There are a lot of battle scripts for VX out there, and they're
 # mostly fantastic. However, they all require so much configuration. This script
 # is the ultimate plug-and-play battle HUD: all you have to do is put it in the
 # editor and alter one thing if you really want to. This script simply puts the
 # actor's defined face into the battle window along with their HP and MP.
 # There is now also a HUD for the enemy selection part of battle. It contains
 # the enemies' names, HPs, MPs and states. You can prevent the HUD from drawing
 # these values buy placing certain tags in the enemy's notebox:
 #
 # UNKNOWN_STATUS      - Nothing is drawn.
 # UNKNOWN_STATE       - The states are not drawn.
 # UNKNOWN_NAME        - The name is not drawn.
 # UNKNOWN_HP          - The HP is not drawn.
 # UNKNOWN_MP          - The MP is not drawn.
 #
 # Instructions: Put this script under materials and above main in the script
 # editor. Change CharOpa to the desired opactiy if you wish, and let the
 # script do the rest. You can also change the font type, size and colour in the
 # configuration.
 #
 # Support: I reside almost ever-presently at rmrk.net.
 #
 #===============================================================================
 
 module PacBFH   # <- Do not touch
 #-------------------------------------------------------------------------------
 # EDITING SECTION
 #-------------------------------------------------------------------------------
 USE_ACTOR = true  # Use actor HUD?
 USE_ENEMY = true  # Use enemy HUD?
 CharOpa = 150 # Default 150
 ORIG_COLOURS = true # Use original HP/MP colours or my new colours?
 Colour = [255, 255, 255]  # RGB(A) values, separated by commas.
 Size = 17 # Size of the name text
 Font = "Verdana"  # Font of the name text
 HPMP_SIZE = false # Does 'size' apply to the drawing of HP and MP?
 #-------------------------------------------------------------------------------
 # END EDITING SECTION
 #-------------------------------------------------------------------------------
 end
 
 if PacBFH::USE_ACTOR
 #==============================================================================
 # ** Window_BattleStatus
 #------------------------------------------------------------------------------
 #  This window displays the status of all party members on the battle screen.
 #==============================================================================
 
 class Window_BattleStatus < Window_Selectable
 #--------------------------------------------------------------------------
 # Alias listing
 #--------------------------------------------------------------------------
 alias pacman_WBS_ini initialize
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
 super(0, 0, 416, 128, 1)
 @column_max = $game_party.members.size
 refresh
 self.active = false
 self.opacity = 255
 self.cursor_rect.set(0, self.index * 96, 90, 90)
 end
 #--------------------------------------------------------------------------
 # * Draw Item
 #     index : Item number
 #--------------------------------------------------------------------------
 def draw_item(index)
 rect = item_rect(index)
 rect.x += 4
 rect.width -= 8
 rect.height = 96
 self.contents.clear_rect(rect)
 self.contents.font.color = Color.new(*PacBFH::Colour)
 self.contents.font.size = PacBFH::Size
 self.contents.font.name = PacBFH::Font
 actor = $game_party.members[index]
 draw_actor_face2(actor, index * 96,0,80)
 draw_actor_name(actor, index * 96 + 8, 0)
 draw_actor_state(actor, index * 96 + 4, 32, 20)
 self.contents.font.size = PacBFH::HPMP_SIZE ? PacBFH::Size : 14
 draw_hp_and_mp(actor, index * 96, 50, 90)
 self.contents.font.color = Font.default_color
 self.contents.font.name = Font.default_name
 self.contents.font.size = Font.default_size
 end
 #--------------------------------------------------------------------------
 # * Frame update for cursor
 #--------------------------------------------------------------------------
 def update_cursor
 if @index < 0
 self.cursor_rect.empty
 else
 self.cursor_rect.set(index*96, 0, 90, 96)
 end
 end
 end
 
 
 #==============================================================================
 # ** Window_Base
 #------------------------------------------------------------------------------
 #  This is a superclass of all windows in the game.
 #==============================================================================
 
 class Window_Base < Window
 #--------------------------------------------------------------------------
 # * Secondary Method of drawing actor face
 #     actor : actor
 #     x     : draw spot x-coordinate
 #     y     : draw spot y-coordinate
 #     width : width of box
 #     height: height of box
 #--------------------------------------------------------------------------
 def draw_actor_face2(actor, x, y, width = 96, height = 96)
 draw_face2(actor.face_name, actor.face_index, x, y, width, height)
 end
 #--------------------------------------------------------------------------
 # * Secondary Method of drawing face graphics
 #     face_name  : Face graphic filename
 #     face_index : Face graphic index
 #     x          : draw spot x-coordinate
 #     y          : draw spot y-coordinate
 #     width      : width of box
 #     height     : height of box
 #--------------------------------------------------------------------------
 def draw_face2(face_name, face_index, x, y, width = 96, height = 96)
 bitmap = Cache.face(face_name)
 rect = Rect.new(0, 0, 0, 0)
 rect.x = face_index % 4 * 96 + (96 - width) / 2
 rect.y = face_index / 4 * 96 + (96 - height) / 2
 rect.width = width
 rect.height = height -10
 self.contents.blt(x + 5, y + 5, bitmap, rect, PacBFH::CharOpa)
 bitmap.dispose
 end
 #--------------------------------------------------------------------------
 # * Draw Actor HP and MP
 #     actor : actor whose stats are to be drawn
 #     x     : draw spot x-coordinate
 #     y     : draw spot y_coordinate
 #     width : width of draw spot
 #--------------------------------------------------------------------------
 def draw_hp_and_mp(actor, x, y, width)
 if PacBFH::ORIG_COLOURS
 back_color = gauge_back_color
 hp_color1 = hp_gauge_color1
 hp_color2 = hp_gauge_color2
 mp_color1 = mp_gauge_color1
 mp_color2 = mp_gauge_color2
 else
 back_color = Color.new(39, 58, 83, 255)
 hp_color1 = Color.new(66, 114, 164, 255)
 hp_color2 = Color.new(122, 175, 229, 255)
 mp_color1 = Color.new(93, 50, 158, 255)
 mp_color2 = Color.new(145, 122, 229, 255)
 end
 self.contents.fill_rect(x + 5, y + 15, width - 10, 7, back_color)
 self.contents.gradient_fill_rect(x + 7, y + 17, (width - 14) * actor.hp /
 actor.maxhp, 3, hp_color1, hp_color2)
 self.contents.draw_text(x + 5, y, width - 10, 20, Vocab::hp, 0)
 self.contents.draw_text(x + 5, y, width - 10, 20, actor.hp.to_s + "/" +
 actor.maxhp.to_s, 2)
 self.contents.fill_rect(x + 5, y + 35, width - 10, 7, back_color)
 if actor.maxmp != 0
 self.contents.gradient_fill_rect(x + 7, y + 37, (width - 14) * actor.mp /
 actor.maxmp, 3, mp_color1, mp_color2)
 else
 self.contents.gradient_fill_rect(x + 7, y + 37, (width - 14) * actor.mp,
 3, mp_color1, mp_color2)
 end
 self.contents.draw_text(x + 5, y + 20, width - 10, 20, Vocab::mp, 0)
 self.contents.draw_text(x + 5, y + 20, width - 10, 20,
 actor.mp.to_s + "/" + actor.maxmp.to_s, 2)
 end
 end
 end
 
 if PacBFH::USE_ENEMY
 #==============================================================================
 # ** Window_TargetEnemy
 #------------------------------------------------------------------------------
 #  Window for selecting the enemy who is the action target on the battle
 # screen.
 #==============================================================================
 
 class Window_TargetEnemy < Window_Command
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
 @enemies = []
 commands = []
 $game_troop.members.each do |enemy|
 next unless enemy.exist?
 @enemies.push(enemy)
 commands.push(enemy.name)
 end
 super(416, commands)
 self.height = 128
 end
 #--------------------------------------------------------------------------
 # * Get Enemy Object
 #--------------------------------------------------------------------------
 def enemy
 return @enemies[@index]
 end
 #--------------------------------------------------------------------------
 # * Draw Item
 #     index : item number
 #--------------------------------------------------------------------------
 def draw_item(index)
 rect = item_rect(index)
 rect.x += 4
 rect.width -= 8
 self.contents.clear_rect(rect)
 self.contents.font.color = normal_color
 actor = @enemies[index]
 unless actor.stat_note?('UNKNOWN_STATUS')
 draw_actor_name(actor, 4, rect.y) unless actor.stat_note?('UNKNOW_NAME')
 unless actor.stat_note?('UNKNOWN_STATUS')
 draw_actor_state(actor, 114, rect.y, 48)
 end
 unless actor.stat_note?('UNKNOWN_HP')
 draw_actor_hp(actor, 174, rect.y, 120)
 end
 unless actor.stat_note?('UNKNOWN_MP')
 draw_actor_mp(actor, 310, rect.y, 70)
 end
 end
 end
 end
 
 #==============================================================================
 # ** Game_Enemy
 #------------------------------------------------------------------------------
 #  This class handles enemy characters. It's used within the Game_Troop class
 # ($game_troop).
 #==============================================================================
 
 class Game_Enemy < Game_Battler
 #--------------------------------------------------------------------------
 # Public Instance Variables
 #--------------------------------------------------------------------------
 attr_reader :status_note
 #--------------------------------------------------------------------------
 # Alias listing
 #--------------------------------------------------------------------------
 alias pac_unstat_ini initialize
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize(*args)
 pac_unstat_ini(*args)
 @status_note = enemy.note
 end
 #--------------------------------------------------------------------------
 # * Get tag from enemy note
 #--------------------------------------------------------------------------
 def stat_note?(note)
 return @status_note.include?(note)
 end
 end
 end
 
 #===============================================================================
 #
 # END OF SCRIPT
 #
 #===============================================================================
Посмотреть профиль Найти все сообщения пользователя Serafim Отправить личное сообщение Посетить сайт автора
Система битвы
Список форумов RPG Maker VXAce » Скрипты
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Часовой пояс: GMT + 2  
Страница 1 из 1  

  
  
 Начать новую тему  Ответить на тему  


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin
Вы можете бесплатно создать форум на MyBB2.ru, RSS