Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Fajny system walki
Autor Wiadomość
aragorn7015 




Preferowany:
RPG Maker VXAce

Pomógł: 15 razy
Dołączył: 20 Kwi 2012
Posty: 186
Skąd: się biorą dzieci?
  Wysłany: Sro 10 Paź, 2012 15:43
Fajny system walki
~ YanPac Battle HUD ~


Krótki opis:
Dodaje fajny system walki. Ja osobiście będę go używał, bo jest banalny w obsłudze, fajne są ikonki, które się zmieniają jak atakujesz, jak nic nie robisz, to jest jedna niezmieniająca się ikonka. Jak używasz umiejętności, to ikonka się zmienia na taką jaką wybraliście w bazie danych przy danej umiejętności... Ikonka to jest ta szara kulka na zdjęciach i to właśnie ona się zmienia...

Autor:
Yanfly and Pacman (email nieznany)

Kompatybilność:
RPG Maker VX Ace

Skrypt:
Spoiler:

Kod:
#===============================================================================
#
# YanPac Battle HUD (0.3)
# 27/02/2012
# By Yanfly and Pacman (originally by Yanfly, extracted and worked on by Pacman)
# This script adds the Actor HUD from Yanfly Engine Ace's Battle System to the
# default battle system. It draws the actor's name, face, HP, MP, TP, action
# and states. The script automatically detects whether to draw the actor's TP
# or MP depending on which skills they have. You can change some simple
# aesthetic options below.
# You can use simple notetags to make sure the actor's gauges are drawn:
# \def_draw_hp  - Definitely draw HP
# \def_draw_mp  - Definitely draw MP
# \def_draw_tp  - Definitely draw TP
# \def_not_hp   - Definitely don't draw HP
# \def_not_mp   - Definitely don't draw MP
# \def_not_tp   - Definitely don't draw TP
# The main point of this standalone script is to optimize compatibility with
# other scripts and increase efficiency (currently pending :P).
#
# Version list:
# 0.3: Compatible with Change Gauge Display
#   http://pacmanvx.wordpress.com/2012/02/11/change-gauge-display/
# 0.2: Compatible with Neo Gauge Ultimate
#   http://pacmanvx.wordpress.com/2012/02/05/neo-gauge-ultimate/
# 0.l: Script extracted / created.
#
#===============================================================================
module PAC_HUD
#===============================================================================
# BEGIN CONFIGURATION
#===============================================================================
  BATTLESTATUS_NAME_FONT_SIZE = 20      # Font size used for name.
  BATTLESTATUS_TEXT_FONT_SIZE = 16      # Font size used for HP, MP, TP.
  BATTLESTATUS_NO_ACTION_ICON = 185   # No action icon.
  BATTLESTATUS_HPGAUGE_Y_PLUS = 11      # Y Location buffer used for HP gauge.
  BATTLESTATUS_CENTER_FACES   = false # Center faces for the Battle Status.
  MP_OVER_TP = true                                # If TP is not drawn, draw MP? (still
                                                                          # applies notetag effects)
#===============================================================================
# END CONFIGURATION
#===============================================================================
end
$imported ||= {}
#==============================================================================
# ■ Numeric
#------------------------------------------------------------------------------
#  Numeric は数値の抽象クラスです。Ruby では異なる数値クラス間で演算を行うことができます。
# &#28436;&#31639;&#12420;&#27604;&#36611;&#12434;&#34892;&#12358;&#12513;&#12477;&#12483;&#12489; (+, -, *, /, <=>) &#12394;&#12393;&#12399;&#12469;&#12502;&#12463;&#12521;&#12473;&#12391;&#23450;&#32681;&#12373;&#12428;&#12414;&#12377;&#12290;&#12414;&#12383;&#12289;&#21177;&#29575;&#12398;&#12383;&#12417; Numeric
# &#12398;&#12513;&#12477;&#12483;&#12489;&#12392;&#21516;&#12376;&#12513;&#12477;&#12483;&#12489;&#12364;&#12469;&#12502;&#12463;&#12521;&#12473;&#12391;&#20877;&#23450;&#32681;&#12373;&#12428;&#12390;&#12356;&#12427;&#22580;&#21512;&#12364;&#12354;&#12426;&#12414;&#12377;&#12290; &#31169;&#12398;&#12402;&#12393;&#12356;&#26085;&#26412;&#35486;&#12434;&#35328;&#12356;&#35379;&#12290;
#==============================================================================
class Numeric
  #--------------------------------------------------------------------------
  # * Group Digits
  #--------------------------------------------------------------------------
  unless defined?(group); def group; return self.to_s; end; end
end
#==============================================================================
# &#9632; Game_Battler
#------------------------------------------------------------------------------
# &#12288;&#12473;&#12503;&#12521;&#12452;&#12488;&#12420;&#34892;&#21205;&#12395;&#38306;&#12377;&#12427;&#12513;&#12477;&#12483;&#12489;&#12434;&#36861;&#21152;&#12375;&#12383;&#12496;&#12488;&#12521;&#12540;&#12398;&#12463;&#12521;&#12473;&#12391;&#12377;&#12290;&#12371;&#12398;&#12463;&#12521;&#12473;
# &#12399; Game_Actor &#12463;&#12521;&#12473;&#12392; Game_Enemy &#12463;&#12521;&#12473;&#12398;&#12473;&#12540;&#12497;&#12540;&#12463;&#12521;&#12473;&#12392;&#12375;&#12390;&#20351;&#29992;&#12373;&#12428;&#12414;&#12377;&#12290;
#==============================================================================
class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # * Draw Battler's HP?
  #--------------------------------------------------------------------------
  def draw_hp?; return true; end
  #--------------------------------------------------------------------------
  # * Draw Battler's MP?
  #--------------------------------------------------------------------------
  def draw_mp?; return true; end
  #--------------------------------------------------------------------------
  # * Draw Battler's TP?
  #--------------------------------------------------------------------------
  def draw_tp?
        return $imported[:pac_change_gauge] ? $game_system.opt_display_tp :
         $data_system.opt_display_tp
  end
end
#==============================================================================
# &#9632; Game_Actor
#------------------------------------------------------------------------------
# &#12288;&#12450;&#12463;&#12479;&#12540;&#12434;&#25201;&#12358;&#12463;&#12521;&#12473;&#12391;&#12377;&#12290;&#12371;&#12398;&#12463;&#12521;&#12473;&#12399; Game_Actors &#12463;&#12521;&#12473;($game_actors)
# &#12398;&#20869;&#37096;&#12391;&#20351;&#29992;&#12373;&#12428;&#12289;Game_Party &#12463;&#12521;&#12473;($game_party)&#12363;&#12425;&#12418;&#21442;&#29031;&#12373;&#12428;&#12414;&#12377;&#12290;
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Draw Actor's HP?
  #--------------------------------------------------------------------------
  def draw_hp?
        return true if !self.actor.note[/\\def[_ ]?draw[_ ]?hp/i].nil?
        return false if !self.actor.note[/\\def[_ ]?not[_ ]?hp/i].nil?
        if $imported[:pac_gauge_change]
          return false if self.actor.no_hp_display?
        end
        return true
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's MP?
  #--------------------------------------------------------------------------
  def draw_mp?
        return true if !self.actor.note[/\\def[_ ]?draw[_ ]?mp/i].nil?
        return false if !self.actor.note[/\\def[_ ]?not[_ ]?mp/i].nil?
        if $imported[:pac_gauge_change]
          return false if self.actor.no_mp_display?
        end
        return true if !draw_tp? && PAC_HUD::MP_OVER_TP
        for skill in skills
          next unless added_skill_types.include?(skill.stype_id)
          return true if skill.mp_cost > 0
        end
        return false
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's TP?
  #--------------------------------------------------------------------------
  def draw_tp?
        return true if !self.actor.note[/\\def[_ ]?draw[_ ]?tp/i].nil?
        return false if !self.actor.note[/\\def[_ ]?not[_ ]?tp/i].nil?
        if $imported[:pac_gauge_change]
          return false if self.actor.no_tp_display?
        end
        return false unless $imported[:pac_change_gauge] ?
         $game_system.opt_display_tp : $data_system.opt_display_tp
        for skill in skills
          next unless added_skill_types.include?(skill.stype_id)
          return true if skill.tp_cost > 0
        end
        return false
  end
end
#==============================================================================
# &#9632; Window_BattleStatus
#------------------------------------------------------------------------------
# &#12288;&#12496;&#12488;&#12523;&#30011;&#38754;&#12391;&#12289;&#12497;&#12540;&#12486;&#12451;&#12513;&#12531;&#12496;&#12540;&#12398;&#12473;&#12486;&#12540;&#12479;&#12473;&#12434;&#34920;&#31034;&#12377;&#12427;&#12454;&#12451;&#12531;&#12489;&#12454;&#12391;&#12377;&#12290;
#==============================================================================
class Window_BattleStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
        super(0, 0, window_width, window_height)
        self.openness = 0
        @party = $game_party.battle_members.clone
  end
  #--------------------------------------------------------------------------
  # * Column Max
  #--------------------------------------------------------------------------
  def col_max; return $game_party.max_battle_members; end
  #--------------------------------------------------------------------------
  # * Get Battle Members
  #--------------------------------------------------------------------------
  def battle_members; return $game_party.battle_members; end
  #--------------------------------------------------------------------------
  # * Get Current Actor
  #--------------------------------------------------------------------------
  def actor; return battle_members[@index]; end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
        super
        return if @party == $game_party.battle_members
        @party = $game_party.battle_members.clone
        refresh
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #      index : index of item to be drawn
  #--------------------------------------------------------------------------
  def draw_item(index)
        return if index.nil?
        clear_item(index)
        actor = battle_members[index]
        rect = item_rect(index)
        return if actor.nil?
        draw_actor_face(actor, rect.x+2, rect.y+2, actor.alive?)
        draw_actor_name(actor, rect.x, rect.y, rect.width-8)
        draw_actor_action(actor, rect.x, rect.y)
        draw_actor_icons(actor, rect.x, line_height*1, rect.width)
        gx = PAC_HUD::BATTLESTATUS_HPGAUGE_Y_PLUS
        contents.font.size = PAC_HUD::BATTLESTATUS_TEXT_FONT_SIZE
        if draw_hp?(actor)
          draw_actor_hp(actor, rect.x+2, line_height*2+gx, rect.width-4)
        end
        if draw_tp?(actor) && draw_mp?(actor)
          dw = rect.width/2-2
          dw += 1 if $imported["YEA-CoreEngine"] && YEA::CORE::GAUGE_OUTLINE
          draw_actor_tp(actor, rect.x+2, line_height*3, dw)
          dw = rect.width - rect.width/2 - 2
          draw_actor_mp(actor, rect.x+rect.width/2, line_height*3, dw)
        elsif draw_tp?(actor) && !draw_mp?(actor)
          draw_actor_tp(actor, rect.x+2, line_height*3, rect.width-4)
        elsif !draw_tp?(actor) && draw_mp?(actor)
          draw_actor_mp(actor, rect.x+2, line_height*3, rect.width-4)
        else
        end
  end
  #--------------------------------------------------------------------------
  # * Get Item Rect
  #      index : index of item to get rect for
  #--------------------------------------------------------------------------
  def item_rect(index)
        rect = Rect.new
        rect.width = contents.width / $game_party.max_battle_members
        rect.height = contents.height
        rect.x = index * rect.width
        if PAC_HUD::BATTLESTATUS_CENTER_FACES
          rect.x += (contents.width - $game_party.members.size * rect.width) / 2
        end
        rect.y = 0
        return rect
  end
  #--------------------------------------------------------------------------
  # * Draw Face (specifically for this HUD)
  #--------------------------------------------------------------------------
  def draw_face(face_name, face_index, dx, dy, enabled = true)
        bitmap = Cache.face(face_name)
        fx = [(96 - item_rect(0).width + 1) / 2, 0].max
        fy = face_index / 4 * 96 + 2
        fw = [item_rect(0).width - 4, 92].min
        rect = Rect.new(fx, fy, fw, 92)
        rect = Rect.new(face_index % 4 * 96 + fx, fy, fw, 92)
        contents.blt(dx, dy, bitmap, rect, enabled ? 255 : translucent_alpha)
        bitmap.dispose
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Name
  #--------------------------------------------------------------------------
  def draw_actor_name(actor, dx, dy, dw = 112)
        reset_font_settings
        contents.font.size = PAC_HUD::BATTLESTATUS_NAME_FONT_SIZE
        change_color(hp_color(actor))
        draw_text(dx+24, dy, dw-24, line_height, actor.name)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's Action Icon
  #--------------------------------------------------------------------------
  def draw_actor_action(actor, dx, dy)
        draw_icon(action_icon(actor), dx, dy)
  end
  #--------------------------------------------------------------------------
  # * Get Actor's Action Icon
  #--------------------------------------------------------------------------
  def action_icon(actor)
        return PAC_HUD::BATTLESTATUS_NO_ACTION_ICON if actor.current_action.nil?
        return PAC_HUD::BATTLESTATUS_NO_ACTION_ICON if actor.current_action.item.nil?
        return actor.current_action.item.icon_index
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's TP?
  #--------------------------------------------------------------------------
  def draw_tp?(actor)
        return actor.draw_tp?
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's MP?
  #--------------------------------------------------------------------------
  def draw_mp?(actor)
        return actor.draw_mp?
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's HP?
  #--------------------------------------------------------------------------
  def draw_hp?(actor)
        return actor.draw_hp?
  end
  #--------------------------------------------------------------------------
  # * Draw Current & Max Values
  #--------------------------------------------------------------------------
  def draw_current_and_max_values(dx, dy, dw, current, max, color1, color2)
        change_color(color1)
        draw_text(dx, dy, dw, line_height, current.group, 2)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's HP Gauge
  #--------------------------------------------------------------------------
  def draw_actor_hp(actor, dx, dy, width = 124, h = 6, *args)
        if defined?(draw_neo_gauge) # NGU Support
          gwidth = width * actor.hp / actor.mhp
          cg = neo_gauge_back_color
          c1, c2, c3 = cg[0], cg[1], cg[2]
          draw_neo_gauge(dx, dy + line_height - 8, width, h, c1, c2, c3)
          (1..3).each { |i| eval("c#{i} = HP_GCOLOR_#{i}")}
          draw_neo_gauge(dx, dy + line_height - 8, gwidth, h, c1, c2, c3, false,
           false, width, 40)
        else
          draw_gauge(dx, dy, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
        end
        change_color(system_color)
        cy = (Font.default_size - contents.font.size) / 2 + 1
        draw_text(dx+2, dy+cy, 30, line_height, Vocab::hp_a)
        draw_current_and_max_values(dx, dy+cy, width, actor.hp, actor.mhp,
          hp_color(actor), normal_color)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's MP Gauge
  #--------------------------------------------------------------------------
  def draw_actor_mp(actor, dx, dy, width = 124)
        if defined?(draw_neo_gauge) # NGU Support
          gwidth = width * actor.mp / [actor.mmp, 1].max
          cg = neo_gauge_back_color
          c1, c2, c3 = cg[0], cg[1], cg[2]
          draw_neo_gauge(dx, dy + line_height - 8, width, 6, c1, c2, c3)
          (1..3).each { |i| eval("c#{i} = MP_GCOLOR_#{i}")}
          draw_neo_gauge(dx, dy + line_height - 8, gwidth, 6, c1, c2, c3, false,
           false, width, 40)
        else
          draw_gauge(dx, dy, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
        end
        change_color(system_color)
        cy = (Font.default_size - contents.font.size) / 2 + 1
        draw_text(dx+2, dy+cy, 30, line_height, Vocab::mp_a)
        draw_current_and_max_values(dx, dy+cy, width, actor.mp, actor.mmp,
          mp_color(actor), normal_color)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's TP Gauge
  #--------------------------------------------------------------------------
  def draw_actor_tp(actor, dx, dy, width = 124)
        if defined?(draw_neo_gauge) # NGU Support
          gwidth = width * actor.tp / 100
          cg = neo_gauge_back_color
          c1, c2, c3 = cg[0], cg[1], cg[2]
          draw_neo_gauge(dx, dy + line_height - 8, width, 6, c1, c2, c3)
          (1..3).each { |i| eval("c#{i} = TP_GCOLOR_#{i}")}
          draw_neo_gauge(dx, dy + line_height - 8, gwidth, 6, c1, c2, c3, false,
           false, width, 40)
        else
          draw_gauge(dx, dy, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
        end
        change_color(system_color)
        cy = (Font.default_size - contents.font.size) / 2 + 1
        draw_text(dx+2, dy+cy, 30, line_height, Vocab::tp_a)
        change_color(tp_color(actor))
        draw_text(dx + width - 42, dy+cy, 42, line_height, actor.tp.to_i, 2)
  end
end
$imported[:yanpac_battle_hud] = [0.3]
#===============================================================================
#
# END OF SCRIPT
#
#===============================================================================


Screeny:
Spoiler:



Dodatkowe informacje:
Jeśli nie chcesz mieć całkowicie standardowego systemu walki, to wybierz ten, może nie zmienia dużo, ale bardzo ciekawie to wygląda...
________________________
Jeśli pomogłem, daj
Spoiler:

POMÓGŁ



Uwielbiam się bawić na zdarzeniach w VX-ie... Więc jeśli masz jakieś pytanie jak coś zrobić na zdarzeniach to napisz. Jeśli będę wiedział to odpowiem
 
 
 
Sketpl 




Preferowany:
RPG Maker VXAce

Dołączył: 07 Mar 2013
Posty: 7
Wysłany: Czw 21 Mar, 2013 03:28
W sumie fajny skrypt i nawet mi się przyda.
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene