rpgmakerxp.frbb.net

Un forum basé sur le rpg making via rmxp
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Aide : Système de combat [CBS]

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Cloud.Strife
Nouveau
avatar

Nombre de messages : 13
Age : 22
Date d'inscription : 30/06/2007

niveau du maker
mapping:
0/100  (0/100)
events:
0/100  (0/100)
scriptage:
0/100  (0/100)

MessageSujet: Aide : Système de combat [CBS]   Dim 1 Juil - 13:38

Bonsoir à tous. Je précise d'abord mon "problème".
Je voudrais simplement avoir un système de combat de ce type :

Où exactement la même chose. Vous avez le script ? Sinon, pourriez vous faire un système de combat de ce type ? Merci.

P-S: Je voudrais de préférence l'original, ou bien débrouillez vous pour faire presque exactement le même système rabbit
Ceux qui connaissent bien le RUBY (RGSS, je crois ?) Merci d'avance ! Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
berka
Admin
Admin
avatar

Masculin
Nombre de messages : 842
Age : 27
Localisation : Devant mon ordi!
Projet en cours: : Secret ^^
Date d'inscription : 16/03/2007

niveau du maker
mapping:
0/100  (0/100)
events:
50/100  (50/100)
scriptage:
100/100  (100/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Mer 4 Juil - 23:18

Je ne suis pas assez calé en RGSS pour pouvoir t'aider, néanmoins, il existe un script qui rend le meme effet, je cherche!

_________________

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerxp.frbb.net
Cloud.Strife
Nouveau
avatar

Nombre de messages : 13
Age : 22
Date d'inscription : 30/06/2007

niveau du maker
mapping:
0/100  (0/100)
events:
0/100  (0/100)
scriptage:
0/100  (0/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Jeu 5 Juil - 23:57

Ok merci beaucoup de ton aide berka. ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Plettro
Chevalier
Chevalier
avatar

Masculin
Nombre de messages : 174
Age : 25
Localisation : Saturne
Projet en cours: : Heu top secret...
Date d'inscription : 30/09/2007

niveau du maker
mapping:
0/100  (0/100)
events:
0/100  (0/100)
scriptage:
3/100  (3/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Lun 1 Oct - 21:27

Est-il possible de faire un mode de combat comme ça, car c'est ça que je recherche !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
berka
Admin
Admin
avatar

Masculin
Nombre de messages : 842
Age : 27
Localisation : Devant mon ordi!
Projet en cours: : Secret ^^
Date d'inscription : 16/03/2007

niveau du maker
mapping:
0/100  (0/100)
events:
50/100  (50/100)
scriptage:
100/100  (100/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Lun 1 Oct - 21:55

Bon j'avais vu le script, mais impossible de le retrouver. de touts facon, un tel script demande des ressources spéciales !

_________________

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerxp.frbb.net
Plettro
Chevalier
Chevalier
avatar

Masculin
Nombre de messages : 174
Age : 25
Localisation : Saturne
Projet en cours: : Heu top secret...
Date d'inscription : 30/09/2007

niveau du maker
mapping:
0/100  (0/100)
events:
0/100  (0/100)
scriptage:
3/100  (3/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Lun 1 Oct - 22:01

okay merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Widowan
Chevalier
Chevalier
avatar

Masculin
Nombre de messages : 185
Age : 35
Localisation : Region Rouennaise
Projet en cours: : Utopia - Mafioso
Date d'inscription : 29/09/2007

niveau du maker
mapping:
0/100  (0/100)
events:
2/100  (2/100)
scriptage:
0/100  (0/100)

MessageSujet: CBS version 2.5 par CYBERSAM   Jeu 4 Oct - 17:41


J'ai trouvé ce script de CYBERSAM, mais il vous faudra créer des ressources de ce type:
(à mettre dans le repertoire battlers de votre projet et nommer comme les heros de votre base de donnée)

Les cellules d'animation font 64x64 pixels.

Inserez ce script avant Main et appelez le Animated_sprite

Le script:
Code:

#==============================================================================
# * Animated_Sprite                                Scripted by: RPG
#                                                  Edited by: cybersam
#
# i just removed the stuff that i dont need for my script...
# everything else is RPG's script... (here)
#
#------------------------------------------------------------------------------
#  A class for animated sprites.
#==============================================================================

class Animated_Sprite < RPG::Sprite
  #--------------------------------------------------------------------------
  # - Accessible instance variables.
  #--------------------------------------------------------------------------
  attr_accessor :frames        # Number of animation frames
  attr_accessor :delay        # Delay time between frames (speed)
  attr_accessor :frame_width  # Width of each frame
  attr_accessor :frame_height  # Height of each frame
  attr_accessor :offset_x      # X coordinate of the 1st frame
  attr_accessor :offset_y      # Y coordinate of all frames
  attr_accessor :current_frame # Current animation frame
  attr_accessor :moving        # Is the sprite moving?

  #--------------------------------------------------------------------------
  # - Initialize an animated sprite
  #  viewport : Sprite viewport
  #--------------------------------------------------------------------------
  def initialize(viewport = nil)
    super(viewport)
    @frame_width, @frame_height = 0, 0
    change    # A basic change to set initial variables
    @old = Graphics.frame_count  # For the delay method
    @goingup = true    # Increasing animation? (if @rm2k_mode is true)
    @once = false      # Is the animation only played once?
    @animated = true  # Used to stop animation when @once is true
  end

  #--------------------------------------------------------------------------
  # Comment by RPG
  #  - Change the source rect (change the animation)
  #  frames : Number of animation frames
  #  delay : Frame delay, controls animation speed
  #  offx : X coordinate of the 1st frame
  #  offy : Y coordinate of all frames
  #  startf : Starting frame for animation
  #  once : Is the animation only played once?
  #  rm2k_mode : Animation pattern: 1-2-3-2 if true, 1-2-3-1 if false
  #
  # Comment by cybersam
  #
  # the rm2k_mode isnt pressent anymore...
  # if you want that feature then use rm2k or use RPG's script...
  #--------------------------------------------------------------------------
  def change(frames = 0, delay = 0, offx = 0, offy = 0,
            startf = 0, once = false)
    @frames = frames
    @delay = delay
    @offset_x, @offset_y = offx, offy
    @current_frame = startf
    @once = once
    x = @current_frame * @frame_width + @offset_x
    self.src_rect = Rect.new(x, @offset_y, @frame_width, @frame_height)
    @goingup = true
    @animated = true
  end
 
  #--------------------------------------------------------------------------
  # - Update animation and movement
  #--------------------------------------------------------------------------
  def update
    super
    if self.bitmap != nil and delay(@delay) and @animated
      x = @current_frame * @frame_width + @offset_x
      self.src_rect = Rect.new(x, @offset_y, @frame_width, @frame_height)
        @current_frame = (@current_frame + 1) unless @frames == 0
        @animated = false if @current_frame == @frames and @once
        @current_frame %= @frames
    end
  end
 
  #--------------------------------------------------------------------------
  # - Move the sprite
  #  x : X coordinate of the destination point
  #  y : Y coordinate of the destination point
  #  speed : Speed of movement (0 = delayed, 1+ = faster)
  #  delay : Movement delay if speed is at 0
  #--------------------------------------------------------------------------
  def move(x, y, speed = 1, delay = 0)
    @destx = x
    @desty = y
    @move_speed = speed
    @move_delay = delay
    @move_old = Graphics.frame_count
    @moving = true
  end
 
  #--------------------------------------------------------------------------
  # - Move sprite to destx and desty
  #--------------------------------------------------------------------------
  def update_move
    return unless @moving
    movinc = @move_speed == 0 ? 1 : @move_speed
    if Graphics.frame_count - @move_old > @move_delay or @move_speed != 0
      self.x += movinc if self.x < @destx
      self.x -= movinc if self.x > @destx
      self.y += movinc if self.y < @desty
      self.y -= movinc if self.y > @desty
      @move_old = Graphics.frame_count
    end
    if @move_speed > 1  # Check if sprite can't reach that point
      self.x = @destx if (@destx - self.x).abs % @move_speed != 0 and
                        (@destx - self.x).abs <= @move_speed
      self.y = @desty if (@desty - self.y).abs % @move_speed != 0 and
                        (@desty - self.y).abs <= @move_speed
    end
    if self.x == @destx and self.y == @desty
      @moving = false
    end
  end
 
  #--------------------------------------------------------------------------
  # - Pause animation, but still updates movement
  #  frames : Number of frames
  #--------------------------------------------------------------------------
  def delay(frames)
    update_move
    if (Graphics.frame_count - @old >= frames)
      @old = Graphics.frame_count
      return true
    end
    return false
  end
end


Dernière édition par le Ven 5 Oct - 12:29, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakervx.1fr1.net
Widowan
Chevalier
Chevalier
avatar

Masculin
Nombre de messages : 185
Age : 35
Localisation : Region Rouennaise
Projet en cours: : Utopia - Mafioso
Date d'inscription : 29/09/2007

niveau du maker
mapping:
0/100  (0/100)
events:
2/100  (2/100)
scriptage:
0/100  (0/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Jeu 4 Oct - 17:44

Inserez ensuite ce script avant Main et appelez le Battle_animation

Le script:
Code:

#===============================================================================
#
#  Full Animated Side View Battle System (CBS) (v2.5)              by cybersam
#
#
#
#  Modified version for the JAP Level Up Script...
#  the level up script is modified too
#  so be sure to use that one too...
#  else you want have a winning pose or you'll get an error...
#
#===============================================================================
#
#
# here we go...
# this makes the script very easy to implement
# just add a new script above the "Main" script
# and insert this whole thing in there
#
# as you can see the sprite changing code is from the japanese script
# so the credits for the sprite changin goes to them....
# i edit it a little so it can show more sprites and sprite animations
# and added some other stuff... the next things are player movement...
#
#
#
# i got the battler changing script in this script...
# the credits for this goes to the guy who made this...
#
# ▼▲▼ XRXS11. 戦闘・バトラーモーション ver.0 ▼▲▼
#
# since this isnt used anymore... it isnt need for credit anymore...
# but i'll let it here since it helped me a lot...
#
#
# as for the ideas... missy provided me with realy good ideas
# that helped me alot when i didnt find a way to some of these features...
#
# here one more Credit to place...
# its RPG's script...
# not the whole thing here...
# but some snipplet you'll know witch one when read the comments
#
#
# if you want some more explaines about this script...
# the most stuff are commented... but if you still have questions or
# sugestions then you can contact me
#
#-------------------------------------------------------------------------------
#
# how or where you can contact me...
# at the http://www.rmxp.net forum via pm, email: cybersam@club-anime.de
# or via AIM: cych4n or ICQ: 73130840
#
# remember this is still in testing phase...
# and i'm trying to work on some other additions... like character movements...
# but that wont be added now... couse i need to figure it out first...
#
#
#
# oh hehe.... before i forget...
# sorry for the bad english... ^-^''''
#
#
#-------------------------------------------------------------------------------
#
# ok... here... since i'm using RPG's movement script...
# there are a lot of changes...
#
# when you look at the script you'll find line with "pose(n)" or "enemy_pose(n)"
# since i want my sprites have different sprites... i added one more option
# to these...
# so now if you add a number after the n (the n stands for witch sprite is used)
# fo example 8... ("pose(4, 8)") this will tell the script that the 4th animation
# have 8 frames...
# pose is used for the player... and enemy_pose for the enemy...
# there is nothing more to this...
# i used my old sprite numbers... (this time in only one sprite...)
#
# explains about the animation sprites... (the digits)
#
#
# 0 = move (during battle)
# 1 = standby
# 2 = defend
# 3 = hit (being attacked)
# 4 = attack
# 5 = skill use
# 6 = dead
# 7 = winning pose... this idea is from RPG....
#
#
# of course this is just the begining of the code...
# so more animations can be implemented...
# but for now this should be enough...
#
# alot has changed here... and now it looks like it is done...
# of course the fine edit needs to be done so it looks and works great with your
# game too...
#
#
#
# 1st  character movement...                            done
# 2rd  character apears at the enemy while attacking...  done / replaced with movement animation
# 3nd  character movement during attack...              done
#
# 4th  enemies movement...                              done
# 5th  enemy apears at the enemy while attacking...      done  / replaced with movement animation
# 6th  enemy movement during attack...                  done
#
# 7th  each weapon has its own animation...              done
# 8th  each skill has its own animation...              done
# 9th  different poses for sickness or low hp            done
#
# 10th  automaticly select the sprite...                  done
# 11th  Fullbackground                                    implemented (done)
#
#
# bugfixes and code cleaning/improvements....            ----
#
#
#
# for some customfixes look in the rmxp.net forum...
#===============================================================================



class Game_Actor < Game_Battler
 
# you dont have to change your game actor to let the characters schows
# from the side...
# this will do it for you... ^-^

  def screen_x
    if self.index != nil
      return self.index * 40 + 460
    else
      return 0
    end
  end

  def screen_y
    return self.index * 20 + 220
  end
 
  def screen_z
    if self.index != nil
      return self.index
    else
      return 0
    end
  end
end


class Spriteset_Battle
  #RPG's stuff...
  attr_accessor :actor_sprites
  attr_accessor :enemy_sprites
  # ends here... ^-^
 
  def initialize
    @viewport0 = Viewport.new(0, 0, 640, 480)
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport4 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 101
    @viewport3.z = 200
    @viewport4.z = 5000

    @battleback_sprite = Sprite.new(@viewport0)
    # fix for reversed enemies... so it wont attack the wrong enemy...
    # this one was fixed long time ago but i added this comment
    # so you guys know about it... ^-^''
    @enemy_sprites = []
    for enemy in $game_troop.enemies#.reverse
      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
    end
   
    @actor_sprites = []
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
   
    @weather = RPG::Weather.new(@viewport0)
    @picture_sprites = []
    for i in 51..100
      @picture_sprites.push(Sprite_Picture.new(@viewport3,
        $game_screen.pictures[i]))
    end
    @timer_sprite = Sprite_Timer.new
    update
  end
 
 
  def dispose
    if @battleback_sprite.bitmap != nil
      @battleback_sprite.bitmap.dispose
    end
    @battleback_sprite.dispose
    for sprite in @enemy_sprites + @actor_sprites
      sprite.dispose
    end
    @weather.dispose
    for sprite in @picture_sprites
      sprite.dispose
    end
    @timer_sprite.dispose
    @viewport0.dispose
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
    @viewport4.dispose
  end
 
  def update
    # this fix let the active character be on top... (by Missy)
    @viewport1.z = 50 and @viewport2.z = 51 if $actor_on_top == true
    @viewport1.z = 51 and @viewport2.z = 50 if $actor_on_top == false
   
    @actor_sprites[0].battler = $game_party.actors[0]
    @actor_sprites[1].battler = $game_party.actors[1]
    @actor_sprites[2].battler = $game_party.actors[2]
    @actor_sprites[3].battler = $game_party.actors[3]
   
    if @battleback_name != $game_temp.battleback_name
      @battleback_name = $game_temp.battleback_name
      if @battleback_sprite.bitmap != nil
        @battleback_sprite.bitmap.dispose
      end
      @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
      @battleback_sprite.src_rect.set(0, 0, 640, 480)
      if @battleback_sprite.bitmap.height == 320
        @battleback_sprite.zoom_x = 1.5
        @battleback_sprite.zoom_y = 1.5
        @battleback_sprite.x = 320
        @battleback_sprite.y = 480
        @battleback_sprite.ox = @battleback_sprite.bitmap.width / 2
        @battleback_sprite.oy = @battleback_sprite.bitmap.height
      else
        @battleback_sprite.x = 0
        @battleback_sprite.y = 0
        @battleback_sprite.ox = 0
        @battleback_sprite.oy = 0
        @battleback_sprite.zoom_x = 1
        @battleback_sprite.zoom_y = 1
      end
    end
   
    for sprite in @enemy_sprites + @actor_sprites
      sprite.update
    end
   
    @weather.type = $game_screen.weather_type
    @weather.max = $game_screen.weather_max
    @weather.update
   
    for sprite in @picture_sprites
      sprite.update
    end
   
    @timer_sprite.update
   
    @viewport0.tone = $game_screen.tone
    @viewport0.ox = $game_screen.shake
   
    @viewport4.color = $game_screen.flash_color
   
    @viewport0.update
    @viewport1.update
    @viewport2.update
    @viewport4.update
  end
end

#===============================================================================
# Sprite Battler for the Costum Battle System
#===============================================================================
# here we are making some animations and stuff...
# i know its not the best way...
# but this is the first working way that i found....
# this needs propper understanding how the animation works...
# if you want to change some stuff...
# in this i'll not explain much couse its realy easy if you know what you do
# otherwise it will take you time to understand it, but i think the one who
# is trying to edit this will know what he/she do... ^-^
#
#
#
# here i'll completely replace the "Sprite_Battler" class...
# so if you've changed something in there you need to change it here as well
# (i think... i didnt tested it... so its up to you)
# i'll mark the stuff i added just with --> #
# something that need to be explained have a comment...
# but its not all commented...
# so if you dont know what it means or you just want to know why it is there and
# what it does then you need to contact me or anyone who understand this... ^-^
# how you can contact me see above... at the top of this script...


class Sprite_Battler < Animated_Sprite

  attr_accessor :battler
  attr_reader  :index
  attr_accessor :target_index
  attr_accessor :frame_width

 
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @pattern_b = 0 #
    @counter_b = 0 #
    @index = 0    #

    # this is for the state animation...
    # dont change unless you know what this do...
    # you can find further infomation on the rmxp.net forum
    $noanimation = false
   
    @frame_width, @frame_height = 64, 64
    # start sprite
    @battler.is_a?(Game_Enemy) ? enemy_pose(1) : pose(1)
   
   
    @battler_visible = false
    if $target_index == nil
      $target_index = 0
    end
  end
 
  def index=(index) #
    @index = index  #
    update          #
  end              #
 
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
    end
    super
  end
 
  def enemy                                            #
    $target_index += $game_troop.enemies.size
    $target_index %= $game_troop.enemies.size
    return $game_troop.enemies[$target_index]          #
  end                                                  #
 
  def actor                                            #
    $target_index += $game_party.actors.size
    $target_index %= $game_party.actors.size
    return $game_party.actors[$target_index]            #
  end         

#===============================================================================
# here is a snipplet from RPG's script...
# i changed only to lines from this...
#
# here you can add more sprite poses... if you have more... ^-^
#===============================================================================
  def pose(number, frames = 4)
    case number
    when 0  # run
      change(frames, 5, 0, 0, 0)
    when 1  # standby
      change(frames, 5, 0, @frame_height)
    when 2 # defend
      change(frames, 5, 0, @frame_height * 2)
    when 3 # Hurt, loops
      change(frames, 5, 0, @frame_height * 3)
    when 4 # attack no loop
      change(frames, 5, 0, @frame_height * 4, 0, true)
    when 5 # skill
      change(frames, 5, 0, @frame_height * 5)
    when 6 # death
      change(frames, 5, 0, @frame_height * 6)
    when 7 # no sprite
      change(frames, 5, 0, @frame_height * 7)
    #when 8
    # change(frames, 5, 0, @frame_height * 9)
    # ...etc.
    else
      change(frames, 5, 0, 0, 0)
    end
  end
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakervx.1fr1.net
Widowan
Chevalier
Chevalier
avatar

Masculin
Nombre de messages : 185
Age : 35
Localisation : Region Rouennaise
Projet en cours: : Utopia - Mafioso
Date d'inscription : 29/09/2007

niveau du maker
mapping:
0/100  (0/100)
events:
2/100  (2/100)
scriptage:
0/100  (0/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Jeu 4 Oct - 17:46

Code:

#--------------------------------------------------------------------------
  # - Change the battle pose for an enemy
  #  number : pose' number
  #--------------------------------------------------------------------------
  def enemy_pose(number ,enemy_frames = 4)
    case number
    when 0  # run
      change(enemy_frames, 5, 0, 0, 0)
    when 1  # standby
      change(enemy_frames, 5, 0, @frame_height)
    when 2 # defend
      change(enemy_frames, 5, 0, @frame_height * 2)
    when 3 # Hurt, loops
      change(enemy_frames, 5, 0, @frame_height * 3)
    when 4 # attack
      change(enemy_frames, 5, 0, @frame_height * 4, 0, true)
    when 5 # skill
      change(enemy_frames, 5, 0, @frame_height * 5)
    when 6 # death
      change(enemy_frames, 5, 0, @frame_height * 6)
    when 7 # no sprite
      change(enemy_frames, 5, 0, @frame_height * 7)
    # ...etc.
    else
      change(enemy_frames, 5, 0, 0, 0)
    end
  end
 
  def default_pose
    pose(1)

   
    # here we change the default pose when the character
    # dont have over 75 % percent of the max hp
   
    # if HP is too low (- 25%)
    if (@battler.hp * 100) /@battler.maxhp  < 25
      pose(9)
    # if HP is too low (- 50%)
    elsif (@battler.hp * 100) /@battler.maxhp  < 50
      pose(9)
    # if HP is too low (- 75%)
    elsif (@battler.hp * 100) /@battler.maxhp  < 75
      pose(9)
    end
   
   
    # and here we change the pose if the character is inflicted with
    # poison or other stuff like sleep, paralyzed, confused or other stuff...
    # i only added the poison and sleep for test...
    if @battler.state?(3) # poison
      # change pose to sleep pose...
      # (i dont have so much sprites... so im the defend pose)
      # you can set more status effects so each effect has its own sprite...
      pose(2)
    elsif @battler.state?(7) #sleep
      # change pose to poisoned
      pose(6)
    end
   
  end
#===============================================================================
# sniplet end...
#===============================================================================
 
 
  def update
    super
   
    if @battler == nil                                                     
      self.bitmap = nil                                                   
      loop_animation(nil)                                                 
      return                                                               
    end
    if @battler.name != @character_name
      @battler.battler_hue != @battler_hue

      @battler_hue = @battler.battler_hue
      @character_name = @battler.name
      self.bitmap = RPG::Cache.battler(@character_name, @battler_hue)
      @width = bitmap.width
      @height = bitmap.height
      self.ox = @frame_width / 2
      self.oy = @frame_height

      if @battler.dead? or @battler.hidden
        self.opacity = 0
      end
      self.x =  @battler.screen_x
      self.y =  @battler.screen_y
      self.z = @battler.screen_z
    end

    if $noanimation == false
      if @battler.damage == nil and
        @battler.state_animation_id != @state_animation_id
        @state_animation_id = @battler.state_animation_id
        loop_animation($data_animations[@state_animation_id])
      end
    else
      dispose_loop_animation
    end

    if @battler.is_a?(Game_Actor) and @battler_visible
      if $game_temp.battle_main_phase
        self.opacity += 3 if self.opacity < 255
      else
        self.opacity -= 3 if self.opacity > 207
      end
    end

    if @battler.blink
      blink_on
    else
      blink_off
    end

    unless @battler_visible
      if not @battler.hidden and not @battler.dead? and
        (@battler.damage == nil or @battler.damage_pop)
        appear
        @battler_visible = true
      end
      if not @battler.hidden and
        (@battler.damage == nil or @battler.damage_pop) and
        @battler.is_a?(Game_Actor)
        appear
        @battler_visible = true
      end
    end
    if @battler_visible
      if @battler.hidden
        $game_system.se_play($data_system.escape_se)
        escape
        @battler_visible = false
      end
      if @battler.white_flash
        whiten
        @battler.white_flash = false
      end
      if @battler.animation_id != 0
        animation = $data_animations[@battler.animation_id]
        animation(animation, @battler.animation_hit)
        @battler.animation_id = 0
      end
      if @battler.damage_pop
        damage(@battler.damage, @battler.critical)
        @battler.damage = nil
        @battler.critical = false
        @battler.damage_pop = false
      end
      if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
          collapse
          @battler_visible = false
        else
          $game_system.se_play($data_system.actor_collapse_se) unless @dead
          @dead = true
          pose(6)
        end
      else
        @dead = false
      end
    end                                                                #
  end
end


#===============================================================================
# Scene_Battle Costum  Battle System
#===============================================================================

class Scene_Battle
 
 
  def update_phase4
    case @phase4_step
    when 1
      update_phase4_step1
    when 2
      update_phase4_step2
    when 3
      update_phase4_step3
    when 4
      update_phase4_step4
    when 5
      update_phase4_step5
    when 6
      update_phase4_step6
    when 7
      update_phase4_step7
    end
  end
 
 
  def update_phase4_step1

    # Change actor poses to default
    #if @active_battler.is_a?(Game_Actor)
    #  @spriteset.actor_sprites[@active_battler.index].default_pose
    #end
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      @spriteset.actor_sprites[i].default_pose unless actor.dead?
    end

    @help_window.visible = false
    if judge
      return
    end
    if $game_temp.forcing_battler == nil
      setup_battle_event
      if $game_system.battle_interpreter.running?
        return
      end
    end
    if $game_temp.forcing_battler != nil
      @action_battlers.delete($game_temp.forcing_battler)
      @action_battlers.unshift($game_temp.forcing_battler)
    end
    if @action_battlers.size == 0
      start_phase2
      return
    end
    @animation1_id = 0
    @animation2_id = 0
    @common_event_id = 0
    @active_battler = @action_battlers.shift
    if @active_battler.index == nil
      return
    end
    if @active_battler.hp > 0 and @active_battler.slip_damage?
      @active_battler.slip_damage_effect
      @active_battler.damage_pop = true
    end
    @active_battler.remove_states_auto
    @status_window.refresh
    @phase4_step = 2
  end
 
 
  def make_basic_action_result
   
    if @active_battler.is_a?(Game_Actor)
      $actor_on_top = true
    elsif @active_battler.is_a?(Game_Enemy)
      $actor_on_top = false
    end
   
    if @active_battler.current_action.basic == 0
#===============================================================================
# WEAPONS START...
#===============================================================================
#
#================================= Different Weapons with different animations
#
# this is quite simple as you can see...
# if you want to add a weapon to the animation list then look at the script below...
# and i hope you'll find out how this works...
#
#
# if not...
# here is the way...
# first thing...
# just copy and paste "elseif @active_battler_enemy.weapon_id == ID..."
# just after the last @weapon_sprite....
#
# here the ID is you need to look in you game databse the number that stands before
# your weapon name is the ID you need to input here...
#
# same thing goes for the monster party... ^-^
# monster normaly dont need more sprites for weapons....
#
# if you want to use more... then replace the "@weapon_sprite_enemy = 4"
# with these lines... (but you need to edit them)
#
#        if @active_battler.weapon_id == 1 # <--  weapon ID number
#          @weapon_sprite_enemy = 4 # <-- battle animation
#        elsif @active_battler.weapon_id == 5 # <-- weapon ID number
#          @weapon_sprite_enemy = 2 # <-- battle animation
#        elsif @active_battler.weapon_id == 9 # <-- weapon ID number
#          @weapon_sprite_enemy = 0 # <-- battle animation
#        elsif @active_battler.weapon_id == 13 # <-- weapon ID number
#          @weapon_sprite_enemy = 6 # <-- battle animation
#        else
#          @weapon_sprite_enemy = 4
#        end
#
#================================= END

      if @active_battler.is_a?(Game_Actor)
        if @active_battler.weapon_id == 1 # <--  weapon ID number
          @weapon_sprite = 4 # <-- battle animation
        elsif @active_battler.weapon_id == 5 # <-- weapon ID number
          @weapon_sprite = 2 # <-- battle animation
        elsif @active_battler.weapon_id == 9 # <-- weapon ID number
          @weapon_sprite = 0 # <-- battle animation
        elsif @active_battler.weapon_id == 13 # <-- weapon ID number
          @weapon_sprite = 6 # <-- battle animation
        else
          @weapon_sprite = 4
        end
       
# monster section is here... ^-^

      else# @active_battler.is_a?(Game_Enemy)
          @weapon_sprite_enemy = 4
      end
       
#
#===============================================================================
# WEAPONS END....
#===============================================================================
     
     
      @animation1_id = @active_battler.animation1_id
      @animation2_id = @active_battler.animation2_id
      if @active_battler.is_a?(Game_Enemy)
        if @active_battler.restriction == 3
          target = $game_troop.random_target_enemy
        elsif @active_battler.restriction == 2
          target = $game_party.random_target_actor
        else
          index = @active_battler.current_action.target_index
          target = $game_party.smooth_target_actor(index)
        end
#======== here is the setting for the movement & animation...
          x = target.screen_x - 32
          @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0)
          @spriteset.enemy_sprites[@active_battler.index]\
          .move(x, target.screen_y, 10)
#========= here if you look at the RPG's movement settings you'll see
#========= that he takes the number 40 for the speed of the animation...
#========= i thing thats too fast so i settet it down to 10 so looks smoother...
      end
      if @active_battler.is_a?(Game_Actor)
        if @active_battler.restriction == 3
          target = $game_party.random_target_actor
        elsif @active_battler.restriction == 2
          target = $game_troop.random_target_enemy
        else
          index = @active_battler.current_action.target_index
          target = $game_troop.smooth_target_enemy(index)
        end
#======= the same thing for the player... ^-^
        x = target.screen_x + 32
        @spriteset.actor_sprites[@active_battler.index].pose(0)
        @spriteset.actor_sprites[@active_battler.index]\
        .move(x, target.screen_y, 10)
      end
      @target_battlers = [target]
      for target in @target_battlers
        target.attack_effect(@active_battler)
      end
      return
    end
    if @active_battler.current_action.basic == 1
      if @active_battler.is_a?(Game_Actor)
        @spriteset.actor_sprites[@active_battler.index].pose(2) #defence
      else
        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(2) #defence
      end
      @help_window.set_text($data_system.words.guard, 1)
      return
    end
    if @active_battler.is_a?(Game_Enemy) and
      @active_battler.current_action.basic == 2
      @help_window.set_text("Escape", 1)
      @active_battler.escape
      return
    end
    if @active_battler.current_action.basic == 3
      $game_temp.forcing_battler = nil
      @phase4_step = 1
      return
    end
   
    if @active_battler.current_action.basic == 4
      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
  end
  #--------------------------------------------------------------------------
  # skill aktion...
  #--------------------------------------------------------------------------
  def make_skill_action_result
   
    @skill = $data_skills[@active_battler.current_action.skill_id]
    unless @active_battler.current_action.forcing
      unless @active_battler.skill_can_use?(@skill.id)
        $game_temp.forcing_battler = nil
        @phase4_step = 1
        return
      end
    end
    @active_battler.sp -= @skill.sp_cost
    @status_window.refresh
    @help_window.set_text(@skill.name, 1)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakervx.1fr1.net
Widowan
Chevalier
Chevalier
avatar

Masculin
Nombre de messages : 185
Age : 35
Localisation : Region Rouennaise
Projet en cours: : Utopia - Mafioso
Date d'inscription : 29/09/2007

niveau du maker
mapping:
0/100  (0/100)
events:
2/100  (2/100)
scriptage:
0/100  (0/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Jeu 4 Oct - 17:48

Code:
#===============================================================================
# SKILL SPRITES START
#===============================================================================
# this one is the same as the one for the weapons...
# for the one who have this for the first time
# look at the script i hope it is easy to understand...
#
# the other one that have the earlier versions of this script they dont need explenation
# ... i think....
# the think that changed is the line where the animation ID is given to the sprite...
# the number after the "pose" is the animation ID... it goes for every other animation as well..
# if you have an animation for a skill that have more frames...
# then just insert the number of frames after the first number...
# so it looks like this.... "pose(5, 8)" <-- 5 is the animation...
# 8 is the max frame (that means your animation have 8 frames...) ^-^
   
    if @active_battler.is_a?(Game_Actor)
      if @skill.name == "Heal" # <-- first skill name
        @spriteset.actor_sprites[@active_battler.index].pose(5) # <-- sprite number
      elsif @skill.name == "Cross Cut" # <-- secound skill name
        @spriteset.actor_sprites[@active_battler.index].pose(6) # <-- sprite number
      elsif @skill.name == "Fire" # <-- third skill name
        @spriteset.actor_sprites[@active_battler.index].pose(6) # <-- sprite number
      end
    else
      if @skill.name == "Heal" # <-- first skill name
        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(5) # <-- sprite number
      elsif @skill.name == "Cross Cut" # <-- secound skill name
        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(6) # <-- sprite number
      elsif @skill.name == "Fire" # <-- third skill name
        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(6) # <-- sprite number
      end
    end
#===============================================================================
# SKILL SPRITES END
#===============================================================================
   
    @animation1_id = @skill.animation1_id
    @animation2_id = @skill.animation2_id
    @common_event_id = @skill.common_event_id
    set_target_battlers(@skill.scope)
    for target in @target_battlers
      target.skill_effect(@active_battler, @skill)
    end
  end
  #--------------------------------------------------------------------------
  # how here we make the item use aktions
  #--------------------------------------------------------------------------
  def make_item_action_result
 
    # sorry i didnt work on this...
    # couse i dont have a sprite that uses items....
    # so i just added the standby sprite here...
    # when i get more time for this i'll try what i can do for this one... ^-^
    # its the same as the ones above...
    if @active_battler.is_a?(Game_Actor)
      @spriteset.actor_sprites[@active_battler.index].pose(1)
    else
      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
    end
   
    @item = $data_items[@active_battler.current_action.item_id]
    unless $game_party.item_can_use?(@item.id)
      @phase4_step = 1
      return
    end
    if @item.consumable
      $game_party.lose_item(@item.id, 1)
    end
    @help_window.set_text(@item.name, 1)
    @animation1_id = @item.animation1_id
    @animation2_id = @item.animation2_id
    @common_event_id = @item.common_event_id
    index = @active_battler.current_action.target_index
    target = $game_party.smooth_target_actor(index)
    set_target_battlers(@item.scope)
    for target in @target_battlers
      target.item_effect(@item)
    end
  end
 
#===============================================================================
# here again.... snipplet from RPG's script
#===============================================================================
 
  #--------------------------------------------------------------------------
  # updating the movement
  # since RPG isnt used to comments... i'll comment it again...
  #--------------------------------------------------------------------------
  def update_phase4_step3
    if @active_battler.current_action.kind == 0 and
      @active_battler.current_action.basic == 0
      # in this one... we have our weapon animations... for player and monster
      if @active_battler.is_a?(Game_Actor)
        @spriteset.actor_sprites[@active_battler.index].pose(@weapon_sprite)
      elsif @active_battler.is_a?(Game_Enemy)
        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(@weapon_sprite_enemy)
      end
    end
    if @animation1_id == 0
      @active_battler.white_flash = true
    else
      @active_battler.animation_id = @animation1_id
      @active_battler.animation_hit = true
    end
    @phase4_step = 4
  end

  def update_phase4_step4
    # this here is for the hit animation...
    for target in @target_battlers
      if target.is_a?(Game_Actor) and !@active_battler.is_a?(Game_Actor)
        if target.guarding?
          @spriteset.actor_sprites[target.index].pose(2)
        else
          @spriteset.actor_sprites[target.index].pose(3)
        end
        elsif target.is_a?(Game_Enemy) and !@active_battler.is_a?(Game_Enemy)
        if target.guarding?
          @spriteset.enemy_sprites[target.index].enemy_pose(2)
        else
          @spriteset.enemy_sprites[target.index].enemy_pose(3)
        end
      end
      target.animation_id = @animation2_id
      target.animation_hit = (target.damage != "Miss")
    end
    @wait_count = 8
    @phase4_step = 5
  end

  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

    @help_window.visible = false
    @status_window.refresh

    if @active_battler.is_a?(Game_Actor)
      @spriteset.actor_sprites[@active_battler.index].pose(1)
    else
      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
    end
    for target in @target_battlers
      if target.damage != nil
        target.damage_pop = true
        if @active_battler.is_a?(Game_Actor)
          @spriteset.actor_sprites[@active_battler.index].pose(1)
        else
          @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
        end
      end
    end
    @phase4_step = 6
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  #--------------------------------------------------------------------------
  def update_phase4_step6
   
    # here we are asking if the player is dead and is a player or an enemy...
    # these lines are for the running back and standby animation....
    if @active_battler.is_a?(Game_Actor) and !@active_battler.dead?
      @spriteset.actor_sprites[@active_battler.index]\
      .move(@active_battler.screen_x, @active_battler.screen_y, 20)
      @spriteset.actor_sprites[@active_battler.index].pose(0)
    elsif !@active_battler.dead?
      @spriteset.enemy_sprites[@active_battler.index]\
      .move(@active_battler.screen_x, @active_battler.screen_y, 20)
      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0)
    end
    for target in @target_battlers
      if target.is_a?(Game_Actor) and !target.dead?
          @spriteset.actor_sprites[target.index].pose(1)
        elsif !target.dead?
          @spriteset.enemy_sprites[target.index].enemy_pose(1)
      end
    end
    $game_temp.forcing_battler = nil
    if @common_event_id > 0
      common_event = $data_common_events[@common_event_id]
      $game_system.battle_interpreter.setup(common_event.list, 0)
    end
    @phase4_step = 7
  end

  def update_phase4_step7
   
    # here we are asking if the player is dead and is a player or an enemy...
    # these lines are for the running back and standby animation....
    if @active_battler.is_a?(Game_Actor) and !@active_battler.dead?
      @spriteset.actor_sprites[@active_battler.index].pose(1)
    elsif !@active_battler.dead?
      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
    end

    $game_temp.forcing_battler = nil
    if @common_event_id > 0
      common_event = $data_common_events[@common_event_id]
      $game_system.battle_interpreter.setup(common_event.list, 0)
    end
    @phase4_step = 1
  end
 
# this one is an extra... without this the animation whill not work correctly...

  def update
    if $game_system.battle_interpreter.running?
      $game_system.battle_interpreter.update
      if $game_temp.forcing_battler == nil
        unless $game_system.battle_interpreter.running?
          unless judge
            setup_battle_event
          end
        end
        if @phase != 5
          @status_window.refresh
        end
      end
    end
    $game_system.update
    $game_screen.update
    if $game_system.timer_working and $game_system.timer == 0
      $game_temp.battle_abort = true
    end
    @help_window.update
    @party_command_window.update
    @actor_command_window.update
    @status_window.update
    @message_window.update
    @spriteset.update
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      if $game_temp.transition_name == ""
        Graphics.transition(20)
      else
        Graphics.transition(40, "Graphics/Transitions/" +
          $game_temp.transition_name)
      end
    end
    if $game_temp.message_window_showing
      return
    end
    if @spriteset.effect?
      return
    end
    if $game_temp.gameover
      $scene = Scene_Gameover.new
      return
    end
    if $game_temp.to_title
      $scene = Scene_Title.new
      return
    end
    if $game_temp.battle_abort
      $game_system.bgm_play($game_temp.map_bgm)
      battle_end(1)
      return
    end
    if @wait_count > 0
      @wait_count -= 1
      return
    end

    # this one holds the battle while the player moves
    for actor in @spriteset.actor_sprites
      if actor.moving
        return
      end
    end
    # and this one is for the enemy...
    for enemy in @spriteset.enemy_sprites
      if enemy.moving# and $game_system.animated_enemy
        return
      end
    end
   
    if $game_temp.forcing_battler == nil and
      $game_system.battle_interpreter.running?
      return
    end
    case @phase
    when 1
      update_phase1
    when 2
      update_phase2
    when 3
      update_phase3
    when 4
      update_phase4
    when 5
      update_phase5
    end
  end
 
#===============================================================================
# end of the snipplet
# if you want the comments that where here just look at the scene_battle 4...
#
# i added some comments since RPG hasnt add any....
#===============================================================================
end

Ouf! Je sais c'est bien long!
Les explications sont dans le script.
Désolé mais j'ai pas eu le temps de traduire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakervx.1fr1.net
the dragon
Villageois
Villageois
avatar

Masculin
Nombre de messages : 20
Age : 30
Localisation : ile de france
Date d'inscription : 06/11/2007

niveau du maker
mapping:
0/100  (0/100)
events:
0/100  (0/100)
scriptage:
0/100  (0/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Dim 11 Nov - 19:41

sa marche pas vraimant ;il me dit qu'il ne trouve pas la battler fantôme.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://ultimadragon.free.fr
jork
Ecuyer
Ecuyer
avatar

Nombre de messages : 84
Age : 26
Localisation : prés d'un paquet de chips
Projet en cours: : dominate your destiny
Date d'inscription : 27/10/2007

niveau du maker
mapping:
0/100  (0/100)
events:
0/100  (0/100)
scriptage:
0/100  (0/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Dim 11 Nov - 20:07

c'est normal il faut que dans tes battler il y en ai un qui s'appellent fantome(aussi pour arshes et les autre )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
the dragon
Villageois
Villageois
avatar

Masculin
Nombre de messages : 20
Age : 30
Localisation : ile de france
Date d'inscription : 06/11/2007

niveau du maker
mapping:
0/100  (0/100)
events:
0/100  (0/100)
scriptage:
0/100  (0/100)

MessageSujet: Re: Aide : Système de combat [CBS]   Dim 11 Nov - 21:26

cool j'ai reussi , je suis trop content , je vais pouvoir attaquer mon rpg
il me reste plus qu'a faire des battlers de côter .
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://ultimadragon.free.fr
Contenu sponsorisé




MessageSujet: Re: Aide : Système de combat [CBS]   

Revenir en haut Aller en bas
 
Aide : Système de combat [CBS]
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [A] Système de combat, classe et équipement
» 04 - Le système de combat.
» Système de combat
» [Combat] Système de combat avec un ami
» News Système de combat & Armurerie

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
rpgmakerxp.frbb.net :: Une question, un bug ? :: Un truc que vous n'arrivez pas à faire?-
Sauter vers: