Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
ATB Battle System
Autor Wiadomość
Izaya 




Pomógł: 2 razy
Dołączył: 20 Mar 2010
Posty: 127
Skąd: z Netaa !
Wysłany: Wto 13 Lip, 2010 19:29
ATB Battle System
Witam! :-D
Dziś mam zamiar zaprezentować wam ATB Battle System,
czyli skrypt na BS'a ;-)
Znalazłem go na Angielskiej stronie.
Powiem tylko że jest na prawdę dobry i ładnie wygląda.
Powinno nie być z nim problemów, choć może "gryźć" się z innymi
Skryptami.
Screeny:
Spoiler:



Pragnę dodać że ten "Czarny Pasek" na dole który na drugim
"skrinszocie" jest zielonkawy to Pasek "Overdrive" który gdy jest pełny
dodaje nam na mocy.

Skrypt:
Spoiler:

Kod:
#==============================================================================
# New_Battle
#------------------------------------------------------------------------------
# Compiled By : MakirouAru
#==============================================================================
# Battle_End_Recovery
#
# Request: stay
# Script: fukuyama
#
# URL: http://www4.big.or.jp/~fukuyama/rgss/Battle_End_Recovery.txt
#

module Battle_End_Recovery

 module Scene_Battle_Module

   @@recovery_rate_variable_id = nil

   def battle_end_recovery_rate
     if @@recovery_rate_variable_id.nil?
       @@recovery_rate_variable_id =
         $data_system.variables.index '�������'
       if @@recovery_rate_variable_id.nil?
         @@recovery_rate_variable_id = false
       end
     end
     return 0 unless @@recovery_rate_variable_id
     return $game_variables[@@recovery_rate_variable_id]
   end

   def battle_end_recovery

     recovery_rate = battle_end_recovery_rate
     
     if recovery_rate != 0 and not actor.dead?

       $game_party.actors.each do |actor|

         recovery_hp = (actor.maxhp / 100.0 * recovery_rate).truncate
         recovery_sp = (actor.maxsp / 100.0 * recovery_rate).truncate

         actor.hp += recovery_hp
         actor.sp += recovery_sp

         actor.damage = - recovery_hp
         actor.damage_pop = true

       end

       @status_window.refresh

     end
   end

 end # module Scene_Battle_Module
end # module Battle_End_Recovery

class Scene_Battle

 include Battle_End_Recovery::Scene_Battle_Module

 alias battle_end_recovery_original_start_phase5 start_phase5

 def start_phase5

   battle_end_recovery

   battle_end_recovery_original_start_phase5

 end
end

# Battle_End_Recovery

$data_system_level_up_se = ""                       
$data_system_level_up_me = "Audio/ME/007-Fanfare01"

#==============================================================================
# Window_LevelUpWindow
#==============================================================================
class Window_LevelUpWindow < Window_Base
 def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
   super(0, 128, 160, 192)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.visible = false
   refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
 end
 def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
   self.contents.clear
   self.contents.font.color = system_color
   self.contents.font.name = "Arial"
   self.contents.font.size = 14
   self.contents.draw_text( 0,   0, 160, 24, "LEVEL UP!!")
   self.contents.font.size = 18
   self.contents.draw_text( 0,  28, 160, 24, $data_system.words.hp)
   self.contents.draw_text( 0,  50, 160, 24, $data_system.words.sp)
   self.contents.font.size = 14
   self.contents.draw_text( 0,  72,  80, 24, $data_system.words.str)
   self.contents.draw_text( 0,  94,  80, 24, $data_system.words.dex)
   self.contents.draw_text( 0, 116,  80, 24, $data_system.words.agi)
   self.contents.draw_text( 0, 138,  80, 24, $data_system.words.int)
   self.contents.draw_text(92,   0, 128, 24, "&#65533;")
   self.contents.draw_text(76,  28, 128, 24, "=")
   self.contents.draw_text(76,  50, 128, 24, "=")
   self.contents.draw_text(76,  72, 128, 24, "=")
   self.contents.draw_text(76,  94, 128, 24, "=")
   self.contents.draw_text(76, 116, 128, 24, "=")
   self.contents.draw_text(76, 138, 128, 24, "=")
   self.contents.font.color = normal_color
   self.contents.draw_text( 0,   0,  88, 24, last_lv.to_s, 2)
   self.contents.draw_text( 0,  28,  72, 24, "+" + up_hp.to_s, 2)
   self.contents.draw_text( 0,  50,  72, 24, "+" + up_sp.to_s, 2)
   self.contents.draw_text( 0,  72,  72, 24, "+" + up_str.to_s, 2)
   self.contents.draw_text( 0,  94,  72, 24, "+" + up_dex.to_s, 2)
   self.contents.draw_text( 0, 116,  72, 24, "+" + up_agi.to_s, 2)
   self.contents.draw_text( 0, 138,  72, 24, "+" + up_int.to_s, 2)
   self.contents.font.size = 20
   self.contents.draw_text( 0,   0, 128, 24, actor.level.to_s, 2)
   self.contents.draw_text( 0,  26, 128, 24, actor.maxhp.to_s, 2)
   self.contents.draw_text( 0,  48, 128, 24, actor.maxsp.to_s, 2)
   self.contents.draw_text( 0,  70, 128, 24, actor.str.to_s, 2)
   self.contents.draw_text( 0,  92, 128, 24, actor.dex.to_s, 2)
   self.contents.draw_text( 0, 114, 128, 24, actor.agi.to_s, 2)
   self.contents.draw_text( 0, 136, 128, 24, actor.int.to_s, 2)
 end
end
class Window_BattleStatus < Window_Base
   attr_accessor :level_up_flags             
end
#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
 attr_accessor :exp_gain_ban             
 alias xrxs_bp10_initialize initialize
 def initialize
   @exp_gain_ban = false
   xrxs_bp10_initialize
 end
 alias xrxs_bp10_cant_get_exp? cant_get_exp?
 def cant_get_exp?
   if @exp_gain_ban == true
     return true
   else
     return xrxs_bp10_cant_get_exp?
   end
 end
end
#==============================================================================
# Scene_Battle
#==============================================================================
class Scene_Battle
 alias xrxs_bp10_start_phase5 start_phase5
 def start_phase5
   for i in 0...$game_party.actors.size
     $game_party.actors[i].exp_gain_ban = true
   end
   xrxs_bp10_start_phase5
   for i in 0...$game_party.actors.size
     $game_party.actors[i].exp_gain_ban = false
   end
   @exp_gained = 0
   for enemy in $game_troop.enemies
     @exp_gained += enemy.exp if not enemy.hidden
   end
   @phase5_step       = 0
   @exp_gain_actor    = -1
   @result_window.y -= 64
   @result_window.visible = true
   phase5_next_levelup
 end
 alias xrxs_bp10_update_phase5 update_phase5
 def update_phase5
   case @phase5_step
   when 1
     update_phase5_step1
   else
     xrxs_bp10_update_phase5
     battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0
   end
 end
 def update_phase5_step1
   if Input.trigger?(Input::C)
     @levelup_window.visible = false if @levelup_window != nil
     @status_window.level_up_flags[@exp_gain_actor] = false
     phase5_next_levelup
   end
 end
 def phase5_next_levelup
   begin
     @exp_gain_actor += 1
     if @exp_gain_actor >= $game_party.actors.size
       @phase5_step = 0
       return
     end
     actor = $game_party.actors[@exp_gain_actor]
     if actor.cant_get_exp? == false
       last_level = actor.level
       last_maxhp = actor.maxhp
       last_maxsp = actor.maxsp
       last_str = actor.str
       last_dex = actor.dex
       last_agi = actor.agi
       last_int = actor.int
       actor.exp += @exp_gained
       if actor.level > last_level
         @status_window.level_up(@exp_gain_actor)
         if $data_system_level_up_se != ""
           Audio.se_stop
           Audio.se_play($data_system_level_up_se)
         end
         if $data_system_level_up_me != ""
           Audio.me_stop
           Audio.me_play($data_system_level_up_me)
         end
         @levelup_window = Window_LevelUpWindow.new(actor, last_level,
           actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str,
           actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int)
         @levelup_window.x = 160 * @exp_gain_actor
         @levelup_window.visible = true
         @phase5_wait_count = 40
         @phase5_step       =  1
         @status_window.refresh
         return
       end
     end
   end until false
 end
end

#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
 alias xrxs_bp7_slip_damage_effect slip_damage_effect
 def slip_damage_effect
   slip_damage_percent = 0
   slip_damage_plus = 0
   for i in @states
     if $data_states[i].slip_damage
       for j in $data_states[i].plus_state_set
         if $data_states[j] != nil
           if $data_states[j].name =~ /^&#65533;&#65533;&#65533;&#65533;([0-9]+)(%|&#65533;)/
             slip_damage_percent += $1.to_i
           elsif $data_states[j].name =~ /^&#65533;&#65533;&#65533;&#65533;([0-9]+)$/
             slip_damage_plus += $1.to_i
           end
         end
       end
       for j in $data_states[i].minus_state_set
         if $data_states[j] != nil
           if $data_states[j].name =~ /^&#65533;&#65533;&#65533;&#65533;([0-9]+)(%|&#65533;)/
             slip_damage_percent -= $1.to_i
           elsif $data_states[j].name =~ /^&#65533;&#65533;&#65533;&#65533;([0-9]+)$/
             slip_damage_plus -= $1.to_i
           end
         end
       end
     end
   end
   if slip_damage_percent == 0 and slip_damage_plus == 0
     xrxs_bp7_slip_damage_effect
   else
     for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
       armor = $data_armors[i]
       next if armor == nil
       for j in armor.guard_state_set
         if $data_states[j] != nil
           if $data_states[j].name =~ /^&#65533;&#65533;&#65533;&#65533;([0-9]+)(%|&#65533;)/
             if slip_damage_percent > 0
               slip_damage_percent = [slip_damage_percent - $1.to_i, 0].max
             end
           end
           if $data_states[j].name =~ /^&#65533;&#65533;&#65533;&#65533;([0-9]+)$/
             if slip_damage_percent > 0
               slip_damage_plus = [slip_damage_plus - $1.to_i, 0].max
             end
           end
         end
       end
     end
     self.damage = self.maxhp * slip_damage_percent / 100 + slip_damage_plus
     if self.damage.abs > 0
       amp = [self.damage.abs * 15 / 100, 1].max
       self.damage += rand(amp+1) + rand(amp+1) - amp
     end
     self.hp -= self.damage
     return true
   end
 end
end

#==============================================================================
# Scene_Battle_CP
#==============================================================================
class Scene_Battle_CP
 attr_accessor   :stop             
 def initialize
   @battlers = []
   @cancel = false
   @agi_total = 0
   @count_battlers = []
   for enemy in $game_troop.enemies
     @count_battlers.push(enemy)
   end
   for actor in $game_party.actors
     @count_battlers.push(actor)
   end
   for battler in @count_battlers
     @agi_total += battler.agi
   end
   for battler in @count_battlers
     battler.cp = [[65535 * (rand(15) + 85) / 100 * battler.agi / @agi_total * 4, 0].max, 65535].min
   end
 end
 def start
   if @cp_thread != nil then
     return
   end
   @cancel = false
   @stop = false
   @cp_thread = Thread.new do
     while @cancel != true
       if @stop != true
         self.update
         sleep(0.05)
       end
     end
   end
 end
 def update
   if @count_battlers != nil then
     for battler in @count_battlers
       if battler.dead? == true #or battler.movable? == false then
         battler.cp = 0
         next
       end
       battler.cp = [[battler.cp + 1.3 * 4096 * battler.agi / @agi_total, 0].max, 65535].min
     end
   end
 end
 def stop
   @cancel = true
   if @cp_thread != nil then
     @cp_thread.join
     @cp_thread = nil
   end
 end
end
#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
 attr_accessor :now_guarding           
 attr_accessor :cp                       
 attr_accessor :slip_state_update_ban   
 def inputable?
   return (not @hidden and restriction <= 1 and @cp >=65535)
 end
 alias xrxs_bp1_slip_damage? slip_damage?
 def slip_damage?
   return false if @slip_state_update_ban
   return xrxs_bp1_slip_damage?
 end
 alias xrxs_bp1_remove_states_auto remove_states_auto
 def remove_states_auto
   return if @slip_state_update_ban
   xrxs_bp1_remove_states_auto
 end
end
#==============================================================================
# Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
 alias xrxs_bp1_setup setup
 def setup(actor_id)
   xrxs_bp1_setup(actor_id)
   @hate = 100  # init-value is 100
   @cp = 0
   @now_guarding = false
   @slip_state_update_ban = false
 end
end
#==============================================================================
# Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
 alias xrxs_bp1_initialize initialize
 def initialize(troop_id, member_index)
   xrxs_bp1_initialize(troop_id, member_index)
   @hate = 100  # init-value is 100
   @cp = 0
   @now_guarding = false
   @slip_state_update_ban = false
 end
end
#==============================================================================
# Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
 attr_accessor   :update_cp_only                   
 alias xrxs_bp1_initialize initialize
 def initialize
   @update_cp_only = false
   xrxs_bp1_initialize
 end
 alias xrxs_bp1_refresh refresh
 def refresh
   if @update_cp_only == false
     xrxs_bp1_refresh
   end
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     actor_x = i * 160 + 4
     draw_actor_cp_meter(actor, actor_x, 96, 120, 0)
   end
 end
 def draw_actor_cp_meter(actor, x, y, width = 156, type = 0)
   self.contents.font.color = system_color
   self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
   if actor.cp == nil
     actor.cp = 0
   end
   w = width * [actor.cp,65535].min / 65535
   self.contents.fill_rect(x, y+28, w,1, Color.new(255, 255, 128, 255))
   self.contents.fill_rect(x, y+29, w,1, Color.new(255, 255, 0, 255))
   self.contents.fill_rect(x, y+30, w,1, Color.new(192, 192, 0, 255))
   self.contents.fill_rect(x, y+31, w,1, Color.new(128, 128, 0, 255))
 end
end
#==============================================================================
# Scene_Battle
#==============================================================================
class Scene_Battle
 $data_system_command_up_se = ""
 alias xrxs_bp1_battle_end battle_end
 def battle_end(result)
   @cp_thread.stop
   xrxs_bp1_battle_end(result)
 end
 alias xrxs_bp1_start_phase1 start_phase1
 def start_phase1
   @agi_total = 0
   @cp_thread = Scene_Battle_CP.new
   s1 = $data_system.words.attack
   s2 = $data_system.words.skill
   s3 = $data_system.words.guard
   s4 = $data_system.words.item
   @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4, "Run"])
   @actor_command_window.y = 128
   @actor_command_window.back_opacity = 160
   @actor_command_window.active = false
   @actor_command_window.visible = false
   @actor_command_window.draw_item(4, $game_temp.battle_can_escape ? @actor_command_window.normal_color : @actor_command_window.disabled_color)
   xrxs_bp1_start_phase1
 end
 alias xrxs_bp1_start_phase2 start_phase2
 def start_phase2
   xrxs_bp1_start_phase2
   @party_command_window.active = false
   @party_command_window.visible = false
   start_phase3
 end
 alias xrxs_bp1_update_phase2 update_phase2
 def update_phase2
   if Input.trigger?(Input::C)
     case @party_command_window.index
     when 0 
       $game_system.se_play($data_system.decision_se)
       @cp_thread.start
       start_phase3
     end
     return
   end
   xrxs_bp1_update_phase2
 end
 def phase3_next_actor
   begin
     if @active_battler != nil
       @active_battler.blink = false
     end
     if @actor_index == $game_party.actors.size-1
       @cp_thread.start
       start_phase4
       return
     end
     @actor_index += 1
     @active_battler = $game_party.actors[@actor_index]
     @active_battler.blink = true
     if @active_battler.inputable? == false
       @active_battler.current_action.kind = -1
     end
   end until @active_battler.inputable?
   @cp_thread.stop
   @active_battler.now_guarding = false
   phase3_setup_command_window
 end
 def phase3_prior_actor
   begin
     if @active_battler != nil
       @active_battler.blink = false
     end
     if @actor_index == 0
       start_phase3
       return
     end
     @actor_index -= 1
     @active_battler = $game_party.actors[@actor_index]
     @active_battler.blink = true
   end until @active_battler.inputable?
   @cp_thread.stop
   @active_battler.now_guarding = false
   phase3_setup_command_window
 end
 alias xrxs_bp1_phase3_setup_command_window phase3_setup_command_window
 def phase3_setup_command_window
   Audio.se_play($data_system_command_up_se) if $data_system_command_up_se != ""
   xrxs_bp1_phase3_setup_command_window
 end
 alias xrxs_bsp1_update_phase3_basic_command update_phase3_basic_command
 def update_phase3_basic_command
   if Input.trigger?(Input::C)
     case @actor_command_window.index
     when 4 
       if $game_temp.battle_can_escape
         $game_system.se_play($data_system.decision_se)
         @active_battler.current_action.kind = 0
         @active_battler.current_action.basic = 4
         phase3_next_actor
       else
         $game_system.se_play($data_system.buzzer_se)
       end
       return
     end
   end
   xrxs_bsp1_update_phase3_basic_command
 end
 alias xrxs_bp1_start_phase4 start_phase4
 def start_phase4
   xrxs_bp1_start_phase4
   for enemy in $game_troop.enemies
     if enemy.cp < 65535
       enemy.current_action.clear
       enemy.current_action.kind = -1
       next
     end
     enemy.make_action
   end
   make_action_orders
 end
 alias xrxs_bp1_update_phase4_step1 update_phase4_step1
 def update_phase4_step1
   @phase4_act_continuation = 0
   if judge
     @cp_thread.stop
     return
   end
   @active_battler = @action_battlers[0]
   @status_window.update_cp_only = true
   @active_battler.slip_state_update_ban = true if @active_battler != nil
   xrxs_bp1_update_phase4_step1
   @status_window.update_cp_only = false
   @active_battler.slip_state_update_ban = false if @active_battler != nil
 end
 alias xrxs_bp1_update_phase4_step2 update_phase4_step2
 def update_phase4_step2
   unless @active_battler.current_action.forcing
     if @phase4_act_continuation == 0 and @active_battler.cp < 65535
       @phase4_step = 6
       return
     end
     if @active_battler.restriction == 2 or @active_battler.restriction == 3
       @active_battler.current_action.kind = 0
       @active_battler.current_action.basic = 0
     end
     if @active_battler.restriction == 4
       $game_temp.forcing_battler = nil
       if @phase4_act_continuation == 0 and @active_battler.cp >= 65535
         @active_battler.remove_states_auto
         @active_battler.cp = [(@active_battler.cp - 65535),0].max
         @status_window.refresh
       end
       @phase4_step = 1
       return
     end
   end
   case @active_battler.current_action.kind
   when 0
     @active_battler.cp -=     0 if @phase4_act_continuation == 0
   when 1
     @active_battler.cp -= 65535 if @phase4_act_continuation == 0
   when 2
     @active_battler.cp -= 65535 if @phase4_act_continuation == 0
   when -1
     @phase4_step = 6
     return
   end
   @cp_thread.stop = true
   @active_battler.remove_states_auto
   xrxs_bp1_update_phase4_step2
 end
 alias xrxs_bp1_make_basic_action_result make_basic_action_result
 def make_basic_action_result
   if @active_battler.current_action.basic == 0 and @phase4_act_continuation == 0
     @active_battler.cp -= 65535
   end
   if @active_battler.current_action.basic == 1 and @phase4_act_continuation == 0
     @active_battler.cp -= 32767
   end
   if @active_battler.is_a?(Game_Enemy) and
      @active_battler.current_action.basic == 2 and @phase4_act_continuation == 0
     @active_battler.cp -= 65535
   end
   if @active_battler.current_action.basic == 3 and @phase4_act_continuation == 0
     @active_battler.cp -= 32767
   end
   if @active_battler.current_action.basic == 4 and @phase4_act_continuation == 0
     @active_battler.cp -= 65535
     if $game_temp.battle_can_escape == false
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     $game_system.se_play($data_system.decision_se)
     update_phase2_escape
     return
   end
   xrxs_bp1_make_basic_action_result
 end
 alias xrxs_bp1_update_phase4_step5 update_phase4_step5
 def update_phase4_step5
   if @active_battler.hp > 0 and @active_battler.slip_damage?
     @active_battler.slip_damage_effect
     @active_battler.damage_pop = true
   end
   xrxs_bp1_update_phase4_step5
 end
 alias xrxs_bp1_update_phase4_step6 update_phase4_step6
 def update_phase4_step6
   @cp_thread.stop = false
   @help_window.visible = false
   xrxs_bp1_update_phase4_step6
 end
end

#==============================================================================
# Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
 attr_accessor   :update_cp_only                   # CP&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;
 alias xrxs_bp7_initialize initialize
 def initialize
   xrxs_bp7_initialize
   #self.opacity = 0
   #self.back_opacity = 0
 end
 alias xrxs_bp7_refresh refresh
 def refresh
   if @update_cp_only
     xrxs_bp7_refresh
     return
   end
   @draw_ban = true
   xrxs_bp7_refresh
   @draw_ban = false
   @item_max = $game_party.actors.size
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     actor_x = i * 160 + 21
     draw_actor_graphic(actor, actor_x - 9, 116)
     draw_actor_hp_meter_line(actor, actor_x,  72, 96, 12)
     draw_actor_sp_meter_line(actor, actor_x, 104, 96, 12)
     self.contents.font.size = 24           
     self.contents.font.color = actor.hp == 0 ? knockout_color :
       actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
     draw_shadow_text(actor_x-2, 58, 96, 24, actor.hp.to_s, 2)
     self.contents.font.color = actor.sp == 0 ? knockout_color :
       actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
     draw_shadow_text(actor_x-2, 90, 96, 24, actor.sp.to_s, 2)
     self.contents.font.size = 12           
     self.contents.font.color = system_color
     draw_shadow_text(actor_x, 60, 96, 12, $data_system.words.hp)
     draw_shadow_text(actor_x, 92, 96, 12, $data_system.words.sp)     
     draw_actor_state(actor, actor_x, 100)
   end
 end
end
#==============================================================================
# Window_Base
#==============================================================================
class Window_Base < Window
 def draw_actor_hp_meter_line(actor, x, y, width = 156, height = 4)
   w = width * actor.hp / actor.maxhp
   hp_color_1 = Color.new(255,   0,   0, 192)
   hp_color_2 = Color.new(255, 255,   0, 192)
   self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
   draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
   x -= 1
   y += (height/4).floor
   self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
   draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
   x -= 1
   y += (height/4).ceil
   self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
   draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
   x -= 1
   y += (height/4).ceil
   self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
   draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
 end
 def draw_actor_sp_meter_line(actor, x, y, width = 156, height = 4)
   w = width * actor.sp / actor.maxsp
   hp_color_1 = Color.new(  0,   0, 255, 192)
   hp_color_2 = Color.new(  0, 255, 255, 192)
   self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
   draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
   x -= 1
   y += (height/4).floor
   self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
   draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
   x -= 1
   y += (height/4).ceil
   self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
   draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
   x -= 1
   y += (height/4).ceil
   self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
   draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
 end
 alias xrxs_bp7_draw_actor_name draw_actor_name
 def draw_actor_name(actor, x, y)
   xrxs_bp7_draw_actor_name(actor, x, y) if @draw_ban != true
 end
 alias xrxs_bp7_draw_actor_state draw_actor_state
 def draw_actor_state(actor, x, y, width = 120)
   xrxs_bp7_draw_actor_state(actor, x, y, width) if @draw_ban != true
 end
 alias xrxs_bp7_draw_actor_hp draw_actor_hp
 def draw_actor_hp(actor, x, y, width = 144)
   xrxs_bp7_draw_actor_hp(actor, x, y, width) if @draw_ban != true
 end
 alias xrxs_bp7_draw_actor_sp draw_actor_sp
 def draw_actor_sp(actor, x, y, width = 144)
   xrxs_bp7_draw_actor_sp(actor, x, y, width) if @draw_ban != true
 end
end
#==============================================================================
class Window_Base
 def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
   distance = (start_x - end_x).abs + (start_y - end_y).abs
   if end_color == start_color
     for i in 1..distance
       x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
       y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
       self.contents.fill_rect(x, y, width, width, start_color)
     end
   else
     for i in 1..distance
       x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
       y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
       r = start_color.red   * (distance-i)/distance + end_color.red   * i/distance
       g = start_color.green * (distance-i)/distance + end_color.green * i/distance
       b = start_color.blue  * (distance-i)/distance + end_color.blue  * i/distance
       a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
       self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))
     end
   end
 end

 def draw_shadow_text(x, y, width, height, string, align = 0)
   color = self.contents.font.color.dup
   self.contents.font.color = Color.new(0, 0, 0)
   self.contents.draw_text(x + 2, y + 2, width, height, string, align)
   self.contents.font.color = color
   self.contents.draw_text(x, y, width, height, string, align)
 end
end


Autora nie znam.
Pozdrawiam i proszę zgłaszać co wam się w nim podoba.
:papa:
________________________
Padł mi laptop ... wszystko, RPG Maker i projekty, wszystko się skończyło. Nie bawię się już w RPGM'a, Zmieniam wizerunek.

Nowa strona, szukam tłumaczy, edytorów, korektorów i HTMLowców ! :D

P.S.: Aga Organization rlz ! =>
Ostatnio zmieniony przez Ayene Sro 14 Lip, 2010 08:24, w całości zmieniany 2 razy  
 
 
 
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Dołączył: 24 Lut 2010
Posty: 751
Wysłany: Wto 13 Lip, 2010 19:32
Autorem zdaje się jest MakirouAru, żadnej innej wskazówki o autorze nie widać.
Skrypt fajny, ale nie pojawił się już przypadkiem? Mam na myśli skrypt na HP i MP podczas walki. :p
 
 
R.I.P. 




Preferowany:
RPG Maker XP

Pomógł: 9 razy
Dołączył: 28 Mar 2010
Posty: 173
Skąd: Warszawa
Wysłany: Wto 13 Lip, 2010 19:37
Yoroiookami, tak jest już skrypt na HP&SP lecz tu troche inne wykonanie skryptu :roll: .


Edit:

Uwaga skrypt działa na wersji Polskiej(Sprawdzone przeze mnie i skrypt nie ma żadnych niedociągnięć działa bez zarzutów)


Screen z Polskiej wersji RMXP:

Spoiler:

 
 
Izaya 




Pomógł: 2 razy
Dołączył: 20 Mar 2010
Posty: 127
Skąd: z Netaa !
Wysłany: Wto 13 Lip, 2010 19:46
Heh, R.I.P, ja mam RMXP PL
więc na pewno będzie działać na Polskiej wersji.
Yoroi, dzięki nie wiedziałem Autora :-) .
________________________
Padł mi laptop ... wszystko, RPG Maker i projekty, wszystko się skończyło. Nie bawię się już w RPGM'a, Zmieniam wizerunek.

Nowa strona, szukam tłumaczy, edytorów, korektorów i HTMLowców ! :D

P.S.: Aga Organization rlz ! =>
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 14 Lip, 2010 08:23
Autorem skryptu jest fukuyama... niemniej jednak kolejny system walki na forum, który na pewni wielu użytkownikom się przyda.

PS Jeżeli zamieszczacie skrypty usuwajcie japońskie komentarze (zielone znaczki) w przeciwnym wypadku strona po umieszczeniu skryptu w tagu [code] za bardzo się rozszerza.
________________________


 
 
 
Izaya 




Pomógł: 2 razy
Dołączył: 20 Mar 2010
Posty: 127
Skąd: z Netaa !
Wysłany: Sro 14 Lip, 2010 08:34
Ohh, dzięki za wskazówkę Ayene.
Chcę dodać że mi samemu podoba się ten BS i go używam
w projekcie. :-)
Pozdrawiam :papa:
________________________
Padł mi laptop ... wszystko, RPG Maker i projekty, wszystko się skończyło. Nie bawię się już w RPGM'a, Zmieniam wizerunek.

Nowa strona, szukam tłumaczy, edytorów, korektorów i HTMLowców ! :D

P.S.: Aga Organization rlz ! =>
 
 
 
narcyzgods 



Dołączył: 02 Maj 2010
Posty: 7
Wysłany: Sob 31 Lip, 2010 16:45
Napisze mi ktoś gdzie się wkleja ten skrypt?
 
 
Czeliosss 



Ranga RM:
1 gra

Pomógł: 49 razy
Dołączył: 02 Lis 2009
Posty: 661
Skąd: Wa-wa
Wysłany: Sob 31 Lip, 2010 18:52
Wchodzi w edytor skryptów, po lewej masz zestaw skryptów i zjedź na sam dół do Main. Kilknij na nie PPM i wybierz Insert, w nowym polu wklejasz ten skrypt i klikacz OK.
________________________
...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...

Nie pisać, bo nie odpiszę.
 
 
narcyzgods 



Dołączył: 02 Maj 2010
Posty: 7
Wysłany: Sob 31 Lip, 2010 19:39
OK, thx.
DZIAŁA!!!!
 
 
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