RPG-Maker Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion


 Bienvenue 
     Bienvenue sur Planette Rpg Maker. Nous sommes heureux de vous accueillir sur ce forum créer pour  RPG Maker. Vous y
   trouverez des Tutoriaux, des  Ressources,des scripts, des tests ainsi que des news regulieres sur l'actualité de l'informatique.
                                   Vous trouverez aussi de multiples solutions au problèmes concernant votre P.C
                                   Pour toutes questions ou problèmes éventuelles Planette rpg maker met à votre
                                                              disposition une adresse de messagerie     
                                                                 planette-rpg-maker@hotmail.fr

                                                                                  Bonne visites
                                                                                    ADMIN
A-RPG (Combat en temps réél)

 
Répondre au sujet    RPG-Maker Index du Forum » Rpg maker » Rpg maker XP » Script Sujet précédent
Sujet suivant
A-RPG (Combat en temps réél)
Auteur Message
N♦N¥
Administrateur

Hors ligne

Inscrit le: 24 Mai 2008
Messages: 275
Localisation: St Etienne
Masculin Gémeaux (21mai-20juin) 狗 Chien
Point(s): 190
Moyenne de points: 0,69

Message A-RPG (Combat en temps réél) Répondre en citant
Uttisation:

Ce script permet de faire des combat entemps réel (ARPG)
Pour faire un ennemi :
Créez un évènement et mettez en commentaire :
- "Enemy ID" où "ID" est le numéro de l'ennemi dans la base de données
- "Die 1" ou "Die 2". Le chiffre correspond à l'interrupteur enclenché
après la défaite de l'ennemi. 1 permet de désactiver l'interrupteur et
2 pour passer à l'interrupteur local 1
- "Follow"
(c'est en deux script. Ouvrez l'éditeur de script (F11). Créez en un nouveau au dessus de "Main" et collez le code ci-dessous.
)
1er script code :
#=============================================================================
# Window Hud
#=============================================================================

class Window_Hud < Window_Base
def initialize
super(0,0,128,96)
self.opacity = 0
# self.visible = false
refresh
end
def refresh
self.contents.clear
actor = $game_actors[1]
draw_actor_hp(actor, 0, 0, 96)
draw_actor_mp(actor, 0, 32, 96)
end
def update
# self.visible = true if $game_switches[1] == true # 1=interruptor que activa y desactiva el HUD
refresh
end
end

class Scene_Map
alias hud_main main
alias hud_update update
alias hud_terminate terminate
def main
@hud = Window_Hud.new
hud_main
end
def update
@hud.update
hud_update
end
def terminate
@hud.dispose
end
end


_________________
http://world5.monstersgame.fr/?ac=vid&vid=324044164

Dernière édition par N♦N¥ le Dim 26 Oct - 21:01 (2008); édité 1 fois
Sam 24 Mai - 18:54 (2008) MSN
Publicité






Message Publicité
PublicitéSupprimer les publicités ?

Sam 24 Mai - 18:54 (2008)
N♦N¥
Administrateur

Hors ligne

Inscrit le: 24 Mai 2008
Messages: 275
Localisation: St Etienne
Masculin Gémeaux (21mai-20juin) 狗 Chien
Point(s): 190
Moyenne de points: 0,69

Message A-RPG (Combat en temps réél) Répondre en citant
Ouvrez l'éditeur de script (F11). Créez en un nouveau au dessus de "Main" et collez le code ci-dessous.
Code:


#===================================
# Vlad ABS
#===================================
#--------------------------------------------------------------
# Créditos a Vlad
#--------------------------------------------------------------
# Para Crear un Enemigo, coloca las siguientes anotaciones:
# Enemy ID - donde ID es la ID del enemigo en la base de datos.
# Die X - donde X = 1 o 2 (1 borra el evento de enemigo, 2 pasa al interruptor local 'A')
# Follow - Para que el evento siga al personaje automáticamente.
#--------------------------------------------------------------
# Configuración General
#--------------------------------------------------------------
#--------------------------------------------------------------
# Tecla de Ataque, cambia X por la letra que quieras:
Attack_Button = Input::X
#--------------------------------------------------------------
# Tecla de Habilidad, cambia Y por la letra que quieras:
Skill_Button = {Input::Y => 0}
#--------------------------------------------------------------
# Animación cuando el Héroe sube de Nivel:
LevelUp_Ani = 40
#--------------------------------------------------------------
# Animación de ataque del enemigo, copia Enemy_atk_ani[2] = 13
# y cambia el 2 por la ID del enemigo, y el 13 por la ID de animación.
Enemy_atk_ani = {}
Enemy_atk_ani[2] = 13
#--------------------------------------------------------------

#--------------------------------------------------------------
# Game Character
#--------------------------------------------------------------
class Game_Character
  attr_accessor :hp
  attr_accessor :mp
  attr_accessor :damage
  attr_accessor :critical
  attr_accessor :wait_ataque
  attr_accessor :die
  alias vlad_abs_gchar_initialize initialize
  def initialize
    @hp = 0
    @mp = 0
    @die = 0
    $skill_for_use = 0
    @wait_ataque = 0
    @damage = nil
    @critical = false
    vlad_abs_gchar_initialize
  end 
  def recebe_atk(attacker)
    attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1])
    receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1])
    self.damage = attacker_status.atk - receptor_status.def
    self.damage *= attacker_status.elements_max_rate(attacker_status.element_set)
    self.damage /= 100
    self.damage = 0 if self.damage < 0
    self.critical = (rand(100) < 4)
    self.damage *= 2 if self.critical
    if self.is_a?(Game_Player)
    $game_actors[1].hp -= self.damage
    if $game_actors[1].hp <= 0
      $scene = Scene_Gameover.new
    end
    elsif self.is_a?(Game_Event)
      self.hp -= self.damage
      if self.hp <= 0
        self.animation_id = 88
          $game_actors[1].gain_exp(enemy_status.exp, 1)
          if @die == 1
          self.erase
        elsif @die == 2
          key = [$game_map.map_id, self.id, "A"]
          $game_self_switches[key] = true
          end
          refresh
        end
    end
  end
   def recebe_skl(attacker)
     for key in Skill_Button.keys
    sklid = Skill_Button[key]
    attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1])
    receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1])
    self.damage = $data_skills[sklid].atk_f - receptor_status.def
    self.damage *= attacker_status.elements_max_rate(attacker_status.element_set)
    self.damage /= 100
    self.damage = 0 if self.damage < 0
    self.critical = (rand(100) < 4)
    self.damage *= 2 if self.critical
    attacker_status.mp -= $data_skills[sklid].mp_cost
    if self.is_a?(Game_Player)
    $game_actors[1].hp -= self.damage
    $scene = Scene_Gameover.new if $game_actors[1].hp <= 0
    elsif self.is_a?(Game_Event)
      self.hp -= self.damage
      if self.hp <0> 0 ? move_up : move_down
          if not moving? and sx != 0
            sx > 0 ? move_left : move_right
          end
          return
        elsif abs_sy == 0
          sx > 0 ? move_left : move_right
          if not moving? and sy != 0
            sy > 0 ? move_up : move_down
          end
          return
        end
        if abs_sx == abs_sy
          rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
        end
        if abs_sx > abs_sy
          sx > 0 ? move_left : move_right
          if not moving? and sy != 0
            sy > 0 ? move_up : move_down
          end
        else
          sy > 0 ? move_up : move_down
          if not moving? and sx != 0
            sx > 0 ? move_left : move_right
          end
        end
      end
      def raio(dx, dy)
        ax = (@x - dx) ** 2
        ay = (@y - dy) ** 2
        return Math.sqrt(ax + ay)
      end
end

#--------------------------------------------------------------
# Game Event
#--------------------------------------------------------------
class Game_Event < Game_Character
  attr_reader :inimigo
  attr_reader :enemy_status
  alias vlad_abs_gevent_initialize initialize
  alias vlad_abs_gevent_update update
  alias vlad_abs_gevent_refresh refresh
  def initialize(map_id, event)
    @inimigo = false
    @automove = false
    vlad_abs_gevent_initialize(map_id, event)
  end
  def check_com(comentario)
    return false if @list.nil? or @list.size <= 0
    for item in @list
      if item.code == 108 or item.code == 408
        if item.parameters[0].downcase.include?(comentario.downcase)
          return true
        end
      end
    end
  end
  def check_comment(comentario)
    com = comentario.downcase
    return 0 if @list.nil? or @list.size <0> 0
        self.wait_ataque -= 1
      elsif $game_player.x == new_x and $game_player.y == new_y
         $game_player.recebe_atk(self)
         $game_player.animation_id = self.enemy_atk_animation_id
         $game_player.jump(0,0)
        self.wait_ataque = 60
      end
    end
     if @automove
          unless moving?
            self.follow_hero($game_player.x, $game_player.y)
          end
        end
  end
  def refresh
    vlad_abs_gevent_refresh
    @inimigo = false
    @enemy_id = check_comment("Enemy")
    @automove = true if check_com("Follow") == true
    @die = check_comment("Die")
    if @enemy_id > 0
      @inimigo = true
      @enemy_status = Game_Enemy.new(@enemy_id, @enemy_id)
        self.hp = @enemy_status.maxhp
        self.mp = @enemy_status.maxmp
    end
  end
  def enemy_atk_animation_id
    if Enemy_atk_ani[@enemy_id]
    return (@enemy_status.nil? ? 0 : Enemy_atk_ani[@enemy_id])
  else
    return (@enemy_status.nil? ? 0 : 1)
  end
  end
  def Enemy_atk_ani
    return Enemy_atk_ani
  end
end

#--------------------------------------------------------------
# Game Player
#--------------------------------------------------------------
class Game_Player 0
      self.wait_ataque -= 1
    end
  def refresh
    vlad_abs_gplayer_refresh
    self.hp = $game_actors[1].hp
    self.mp = $game_actors[1].mp
  end
    if Input.trigger?(Attack_Button) and self.wait_ataque <0>= $data_skills[Skill_Button[key]].mp_cost and self.wait_ataque <0>= @exp_list[@level+1] and @exp_list[@level+1] > 0
      level_up
    end
    while @exp last_level
      show_level_up
    end
    vlad_abs_change_exp(exp,show)
  end
  def show_level_up
    $game_player.animation_id = LevelUp_Ani
    $game_actors[1].hp = $game_actors[1].maxhp
    $game_actors[1].mp = $game_actors[1].maxmp
  end
  def LevelUp_Ani
    return LevelUp_Ani
  end
end

#--------------------------------------------------------------
# Sprite Base
#--------------------------------------------------------------
  class Sprite_Base
  alias animation animation_set_sprites
 def animation_set_sprites(frame)
    cell_data = frame.cell_data
    for i in 0..15
      sprite = @animation_sprites[i]
      next if sprite == nil
      pattern = cell_data[i, 0]
      if pattern == nil or pattern == -1
        sprite.visible = false
        next
      end
      if pattern < 100
        sprite.bitmap = @animation_bitmap1
      else
        sprite.bitmap = @animation_bitmap2
      end
      sprite.visible = true
      sprite.src_rect.set(pattern % 5 * 192,
        pattern % 100 / 5 * 192, 192, 192)
      if @animation_mirror
        sprite.x = @animation_ox - cell_data[i, 1] / 2
        sprite.y = @animation_oy - cell_data[i, 2] / 2
        sprite.angle = (360 - cell_data[i, 4])
        sprite.mirror = (cell_data[i, 5] == 0)
      else
        sprite.x = @animation_ox + cell_data[i, 1] / 2
        sprite.y = @animation_oy + cell_data[i, 2] / 2
        sprite.angle = cell_data[i, 4]
        sprite.mirror = (cell_data[i, 5] == 1)
      end
      sprite.z = self.z + 300
      sprite.ox = 96
      sprite.oy = 96
      sprite.zoom_x = cell_data[i, 3] / 200.0
      sprite.zoom_y = cell_data[i, 3] / 200.0
      sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
      sprite.blend_type = cell_data[i, 7]
    end
  end
end
#--------------------------------------------------------------
# Sprite Character
#--------------------------------------------------------------
class Sprite_Character 0
      @_damage_duration -=1
        @_damage_sprite.x = self.x
        if @_damage_duration <= 0
          dispose_damage
        end
      end
      if @character != nil and @character.damage != nil
      damage(@character.damage, @character.critical)
      @character.damage = nil
      @character.critical = false
    end
    vlad_abs_spchar_update
  end
def damage(value, critical)
      dispose_damage
      if value.is_a?(Numeric)
        damage_string = value.abs.to_s
      else
        damage_string = value.to_s
      end
      bitmap = Bitmap.new(160, 48)
      bitmap.font.name = "Georgia"
      bitmap.font.size = 22
      bitmap.font.italic = true
      if value.is_a?(Numeric) and value <= 0
        bitmap.font.color.set(0, 0, 0)
        bitmap.draw_text(1, 13, 160, 36, "Fallo", 1)
        bitmap.font.color.set(255, 245, 155)
        bitmap.draw_text(0, 12, 160, 36, "Fallo", 1)
      else
        bitmap.font.color.set(0, 0, 0)
        bitmap.draw_text(1, 13, 160, 36, damage_string, 1)
        bitmap.font.color.set(255, 255, 255)
        bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
      end
      if critical
        bitmap.font.color.set(0, 0, 0)
        bitmap.draw_text(1, 6, 160, 20, "Crítico", 1)
        bitmap.font.color.set(255, 245, 155)
        bitmap.draw_text(0, 5, 160, 20, "Crítico", 1)
      end
      @_damage_sprite = ::Sprite.new(self.viewport)
      @_damage_sprite.bitmap = bitmap
      @_damage_sprite.ox = 80
      @_damage_sprite.oy = 20
      @_damage_sprite.x = self.x
      @_damage_sprite.y = self.y - self.oy / 2 - 40
      @_damage_sprite.z += 99999
      @_damage_duration = 30
    end
    def show_text(string, size=16, color=0)
      dispose_damage
      damage_string = string
      if string.is_a?(Array)
        array = true
      else
        array = false
      end
      bitmap = Bitmap.new(160, 48)
      bitmap.font.name = "Georgia"
      bitmap.font.size = size
      bitmap.font.italic = true
      if array
        for i in 0..string.size
          next if damage_string[i] == nil
          bitmap.font.color.set(96, 96-20, 0) if color == 0
          bitmap.font.color.set(0, 0, 0) if color != 0
          bitmap.draw_text(-1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1)
          bitmap.draw_text(+1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1)
          bitmap.draw_text(-1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1)
          bitmap.draw_text(+1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1)
          bitmap.font.color.set(255, 245, 155) if color == 0
          bitmap.font.color.set(144, 199, 150) if color == 1
          bitmap.font.color.set(197, 147, 190)if color == 2
          bitmap.font.color.set(138, 204, 198)if color == 3
          bitmap.draw_text(0, (12+(16*i))-16, 160, 36, damage_string[i], 1)
        end
      else
        bitmap.font.color.set(96, 96-20, 0) if color == 0
        bitmap.font.color.set(0, 0, 0) if color != 0
        bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
        bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
        bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
        bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
        bitmap.font.color.set(255, 245, 155) if color == 0
        bitmap.font.color.set(144, 199, 150) if color == 1
        bitmap.font.color.set(197, 147, 190)if color == 2
        bitmap.font.color.set(138, 204, 198)if color == 3
        bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
      end
      @_damage_sprite = ::Sprite.new(self.viewport)
      @_damage_sprite.bitmap = bitmap
      @_damage_sprite.ox = 80
      @_damage_sprite.oy = 20
      @_damage_sprite.x = self.x
      @_damage_sprite.y = self.y - self.oy / 2
      @_damage_sprite.z = 3000
      @_damage_duration = 30
    end
    def dispose_damage
    if @_damage_sprite != nil
      @_damage_sprite.dispose
      @_damage_sprite = nil
    end
  end
end
 
#--------------------------------------------------------------
# Window Skill
#--------------------------------------------------------------
class Scene_Skill
  alias vlad_abs_sskill_initialize initialize
  alias vlad_abs_sskill_update update
  def initialize(actor_index = 0, equip_index = 0)
    @memory = Window_Command.new(150, ["¡Memorizada!"])
    @memory.active = false
    @memory.visible = false
    @memory.x = (544 - @memory.width) / 2
    @memory.y = (416 - @memory.height) / 2
    @memory.z = 1500
    vlad_abs_sskill_initialize
  end
def update
  update_skill
  @memory.update if @memory.active
  return update_memory if @memory.active
  vlad_abs_sskill_update
end
def update_skill
  for key in Skill_Button.keys
  if Input.trigger?(key)
  Sound.play_decision
  Skill_Button[key] = @skill_window.skill.id
  @memory.active = @memory.visible = true
  @skill_window.active = false
end
end
end
  def update_memory
if Input.trigger?(Input::C)
  Sound.play_decision
  @memory.active = @memory.visible = false
  @skill_window.active = true
end
end
  def Skill_Button
    return Skill_Button
  end
end

#--------------------------------------------------------------
# Fin del ABS
#--------------------------------------------------------------


_________________
http://world5.monstersgame.fr/?ac=vid&vid=324044164

Sam 24 Mai - 18:56 (2008) MSN
Montrer les messages depuis:    
Répondre au sujet    RPG-Maker Index du Forum » Rpg maker » Rpg maker XP » Script Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers: 

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Design by Freestyle XL / Music Lyrics.Traduction par : phpBB-fr.com