La Forge des Rêves
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilAccueil  PortailPortail  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  
Le Deal du moment :
Pokémon EV06 : où acheter le Bundle Lot ...
Voir le deal

 

 Script Tactical RPG

Aller en bas 
2 participants
AuteurMessage
Luck
> Administrateur
> Administrateur
Luck


Masculin
Nombre de messages : 507
Age : 31
Localisation : 35
Avez vous RPGMXP ? : Oui
Quels sont vos projets ? : Nightmares of Apocalypsia - Mario Kart XP
Date d'inscription : 17/11/2006

Fiche Créateur
Points de Créativité:
Script Tactical RPG Left_bar_bleue50/50Script Tactical RPG Empty_bar_bleue  (50/50)
Commentaires: Administrateur du forum.

Script Tactical RPG Empty
MessageSujet: Script Tactical RPG   Script Tactical RPG Icon_minitimeMar 10 Juil - 3:36

Et oui, vous pouvez d'ors et déja faire des combats tactics sur RPG Maker.

Voici le lien du projet .:> http://www.megaupload.com/?d=FGZ513P2 .

Il est fortement conseillé de commencer son projet sur cette démo, et non de recopier les scripts sur votre projet, car il y a peu de chance que cela puisse marcher.

> De Masaru Kato

---


Sinon, voici quelques scripts qui donnent des options complémentaires à cette démo.

---
SYSTEME DE RESTRICTION DE MOUVEMENT

Parrallelement a l'agilite d'un heros ou d'un monstre. Une restriction de mouvement peu etre ajouter en fonctionde la Topographie de la Mapsur les Heros et enemi....
Voila le script est assez clair j'ai tout traduit il suffit de lire les commentaires
Bon la gestion des stats peux devenir vraiment complexe quand on a une base de donnee de monstre de Map etc... vraiment longue mais le but du jeux tactique est bien d'elaborer une tactique performante donc donnons le choix au joueur !


Code:
#==============================================================================
#¡¡[ZTBS] -Zenith Tactical Battle System - Portable cost setting
#¡¡  En fonction de la topographie      by ¿åÌë(water night)
#¡¡  ver0.90    Zenith Creation (http://zenith.ifdef.jp/)
#    TRANSLATED BY MAKENSHI
#------------------------------------------------------------------------------
# Actualisation du combat tactique en fonction de L'ID de la MAP
#==============================================================================

#==============================================================================
#¡¡[ZTBS] -Zenith Tactical Battle System- (takuteikarubatorushisutemu)
#  acces au information de "case tag"
#==============================================================================
module ZTBS
  def self.tag_cost(tag, battler)
    case tag
#==============================================================================
#
#  When type de terrain
#    return diminuer les mouvements de X Nombre de pas
#    Il est aussi possible de modifier les mouvements
#    en fonction de L'ID de l'hote
#
#==============================================================================
    when 0
      return 1
    when 1
      return 1
    when 2
      return 1
    when 3
      return 1
    when 4
      return 1
    when 5
      return 1
    when 6
      return 1
    when 7
      return 1
    end
  end
  def self.point_cost(battler, mapid, point)
    case [mapid, point]
#==============================================================================
#
#  when [map ID,tileset number]
#    return diminuer les mouvements de X Nombre de pas
#    Il est aussi possible de modifier les mouvements
#    en fonction de L'ID de l'hote
#
#==============================================================================
    when [0, 0]
      return 1
    else
      return 1
    end
  end
  def self.event_cost(battler, x, y)
#==============================================================================
#
#  Le script est ecrit de maniere simple...
#  Toute modification est possible si vous pouvez le faire. FAITE LE !
#
#==============================================================================
    result = 1
    for event in $game_map.point_events(x, y)
    end
    return result
  end
end

#==============================================================================
# ¢£ Game_Battler
#==============================================================================
class Game_Battler
  #--------------------------------------------------------------------------
  #  - Acquisition de la possible restriction de mouvement
  #--------------------------------------------------------------------------
  def movable
    n = ztbs_agi / ZTBS::C_MOVABLE
    n = [[n.floor, 1].max, ZTBS::MOVABLE_MAX].min
    return n
  end
end

#==============================================================================
# ¢£ Game_Map
#==============================================================================
class Game_Map
  #--------------------------------------------------------------------------
  # - Enregistrement des coordonnees de l'event
  #--------------------------------------------------------------------------
  def point_events(x, y)
    result = []
    for event in self.events
      if event[1].x == x and event[1].y == y
        result.push(event)
      end
    end
    return result
  end
  #--------------------------------------------------------------------------
  #  - Acquisition de la restriction de mouvement
  #--------------------------------------------------------------------------
  def move_cost(battler, x, y)
    max = 1
    for i in 0..2
      real_point = self.data[x, y, i]
      if real_point >= 384
        point = real_point - 378
      else
        point = (real_point / 48.0).floor
      end
      if point > 0
        tags = ZTBS.tag_cost(@terrain_tags[real_point], battler)
        pots = ZTBS.point_cost(battler, self.id, point)
        evts = ZTBS.event_cost(battler, x, y)
        max = [tags, pots, evts].max
      end
    end
    return max
  end
end

#==============================================================================
# ¢£ Scene_Map
#==============================================================================
class Scene_Map
  #--------------------------------------------------------------------------
  # Redefinition de la mobilite
  #--------------------------------------------------------------------------
  def search_route
    if $game_system.tactics_actors.keys.include?(@battler.id)
      battler = $game_system.tactics_actors[@battler.id]
    else
      battler = $game_system.tactics_enemies[@battler.id]
    end
    @position = [[@battler.x, @battler.y]]
    @route = [[]]
    cost = [0]
    more_step = [0]
    for i in more_step
      x = @position[i][0]
      y = @position[i][1]
      # Up
      if !@position.include?([x, y + 1]) and @battler.passable?(x, y, 2)
        mikomi = cost[i] + $game_map.move_cost(battler, x, y + 1)
        if mikomi < battler.movable
          @position.push([x, y + 1])
          @route.push(@route[i] + [2])
          cost.push(mikomi)
          if cost.last < battler.movable
            more_step.push(@route.index(@route[i] + [2]))
          end
        end
      end
      # Left
      if !@position.include?([x - 1, y]) and @battler.passable?(x, y, 4)
        mikomi = cost[i] + $game_map.move_cost(battler, x - 1, y)
        if mikomi < battler.movable
          @position.push([x - 1, y])
          @route.push(@route[i] + [4])
          cost.push(mikomi)
          if cost.last < battler.movable
            more_step.push(@route.index(@route[i] + [4]))
          end
        end
      end
      # Right
      if !@position.include?([x + 1, y]) and @battler.passable?(x, y, 6)
        mikomi = cost[i] + $game_map.move_cost(battler, x + 1, y)
        if mikomi < battler.movable
          @position.push([x + 1, y])
          @route.push(@route[i] + [6])
          cost.push(mikomi)
          if cost.last < battler.movable
            more_step.push(@route.index(@route[i] + [6]))
          end
        end
      end
      # Down
      if !@position.include?([x, y - 1]) and @battler.passable?(x, y, 8)
        mikomi = cost[i] + $game_map.move_cost(battler, x, y - 1)
        if mikomi < battler.movable
          @position.push([x, y - 1])
          @route.push(@route[i] + [8])
          cost.push(mikomi)
          if cost.last < battler.movable
            more_step.push(@route.index(@route[i] + [8]))
          end
        end
      end
    end
  end
end



Dernière édition par le Mar 10 Juil - 3:42, édité 1 fois
Revenir en haut Aller en bas
Luck
> Administrateur
> Administrateur
Luck


Masculin
Nombre de messages : 507
Age : 31
Localisation : 35
Avez vous RPGMXP ? : Oui
Quels sont vos projets ? : Nightmares of Apocalypsia - Mario Kart XP
Date d'inscription : 17/11/2006

Fiche Créateur
Points de Créativité:
Script Tactical RPG Left_bar_bleue50/50Script Tactical RPG Empty_bar_bleue  (50/50)
Commentaires: Administrateur du forum.

Script Tactical RPG Empty
MessageSujet: Re: Script Tactical RPG   Script Tactical RPG Icon_minitimeMar 10 Juil - 3:40

CUSTOMISATION DE LA MOBILITE

Bon peut etre ne l'avez vous pas remarquer mais un defaut majeur du script Tactic se trouve dans la mobilite en effet. La mobilite etant fonction des valeurs d'agiliter des Heros et monstres dans la base de donner de RPG MAKER XP. Pour les monstres ca ne pose pas de probleme ca les valeurs sont fixes. Mais pour le heros qui evolu en niveau tout le temps ces valeurs se modifie tres rapidement et il n'est pas etonnant de rencontrer un Heros de niveau 20 capable de se deplacer dans toute la map sans probleme...

La solution pourrait etre de de modifier les stats etc... Mais le rapport entre les valeurs chiffrees et le nombres de case que le heros peut faire en avant est parfois tres flou.... Ce script permet de definir des valeurs fixe qui se compte en nombre de case.... Elles peuvent etre definie pour les Heros et enemies...


Code:

#==============================================================================
#¡¡[ZTBS] -Zenith Tactical Battle System-  Modification de la mobilite
#¡¡ [takuteikarubatorushisutemu]      by  night  water
#¡¡  ver0.90                          Zenith Creation (http://zenith.ifdef.jp/)
# Traduit par Makenshi
#------------------------------------------------------------------------------
# Actualisation du combat tactique en fonction de L'ID de la MAP
#==============================================================================
module ZTBS
  MOVABLE_TEXT = "MouvementEX"
end

class Game_Actor < Game_Battler
  def base_movable
    case self.id
#==============================================================================
#
# when actor ID
#  return Longueur de la mobilite
#  des modifications au code sont possible il est possible aussi de
#  creer des conditions plus compliquer
#==============================================================================
    when 1 # arushiesu(ARSHES)
      return 5
    when 2 # basilico(BASIL)
      return 5
    when 3 # rhinoceros
      return 4
    when 4 # [doroshi]
      return 7
    when 5 # ester
      return 6
    when 6 # [hueritsukusu]
      return 6
    when 7 # Grolier
      return 5
    when 8 # [hiruda]
      return 5
    else
      return 5
    end
  end
end

class Game_Enemy < Game_Battler
  def base_movable
    case self.id
#==============================================================================
#
# when enemy ID
#  return Longueur de la mobilite
#  des modifications au code sont possible il est possible aussi de
#  creer des conditions plus compliquer
#==============================================================================
    when 1 # fantome
      return 5
    when 2 # [bajirisuku]
      return 5
    when 3 # [sahagin]
      return 4
    when 4 # hell hound
      return 6
    when 5 # [koboruto]
      return 6
    when 6 # coca tris
      return 5
    when 7 # [inpu]
      return 5
    when 8 # ¥¨¥ó¥¸¥§¥ë
      return 5
    when 9 # ¥¾¥ó¥Ó
      return 4
    when 10 # ¥é¥ß¥¢
      return 4
    when 11 # ¥ê¥¶¡¼¥É¥Þ¥ó
      return 5
    when 12 # ¥±¥ë¥Ù¥í¥¹
      return 7
    when 13 # ¥´¥Ö¥ê¥ó
      return 6
    when 14 # ¥Ï¡¼¥Ô¡¼
      return 6
    when 15 # ¥¬¡¼¥´¥¤¥ë
      return 5
    when 16 # ¥¢¡¼¥¯¥¨¥ó¥¸¥§¥ë
      return 5
    when 17 # ¥¹¥±¥ë¥È¥ó
      return 5
    when 18 # ¥Ò¥É¥é
      return 4
    when 19 # ¥¯¥é¡¼¥±¥ó
      return 4
    when 20 # ¥°¥ê¥Õ¥©¥ó
      return 6
    when 21 # ¥ª¡¼¥¬
      return 6
    when 22 # ¥ï¥¤¥Ð¡¼¥ó
      return 7
    when 23 # ¥Ç¡¼¥â¥ó
      return 5
    when 24 # ¥±¥ë¥Ó¥à
      return 4
    when 25 # ¥ê¥Ã¥Á
      return 4
    when 26 # ¥±¥Ä¥¡¥ë¥³¥¢¥È¥ë
      return 5
    when 27 # ¥ê¥ô¥¡¥¤¥¢¥µ¥ó
      return 6
    when 28 # ¤Ù¥Ò¡¼¥â¥¹
      return 6
    when 29 # ¥È¥í¡¼¥ë
      return 4
    when 30 # ¥¬¥ë¡¼¥À
      return 5
    when 31 # ¥Ç¥£¥¢¥Ü¥í¥¹
      return 4
    when 32 # ¥»¥é¥Õ¥£¥à
      return 4
    else
      return 5
    end
  end
end

class Game_Battler
  #--------------------------------------------------------------------------
  # ¡ü - Acquisition # of portable possible distance
  #--------------------------------------------------------------------------
  def movable
    n = base_movable + 1
    if defined?(XRXS) != nil
      if self.class.method_defined?("multy_element_set")
        n += XRXS.element_amount(self.multy_element_set, ZTBS::MOVABLE_TEXT)
      else
        n += XRXS.element_amount(self.equip_element_set, ZTBS::MOVABLE_TEXT)
      end
    end
    n = [[n.floor, 1].max, ZTBS::MOVABLE_MAX].min
    return n
  end
end

Revenir en haut Aller en bas
Luck
> Administrateur
> Administrateur
Luck


Masculin
Nombre de messages : 507
Age : 31
Localisation : 35
Avez vous RPGMXP ? : Oui
Quels sont vos projets ? : Nightmares of Apocalypsia - Mario Kart XP
Date d'inscription : 17/11/2006

Fiche Créateur
Points de Créativité:
Script Tactical RPG Left_bar_bleue50/50Script Tactical RPG Empty_bar_bleue  (50/50)
Commentaires: Administrateur du forum.

Script Tactical RPG Empty
MessageSujet: Re: Script Tactical RPG   Script Tactical RPG Icon_minitimeMar 10 Juil - 3:41

---
RESTRICTION DE LA LIBERTE DU CURSEUR
par Bluv club.(Zenith)

Ce
script empeche le cuseur de se deplacer en dehors de la portee des
Acteurs quand ils sont selectionner et quand les technique sont
selectionner.


Code:
#==============================================================================
#¡¡[ZTBS] -Zenith Tactical Battle System- ¥¿¥¯¥Æ¥£¥«¥ë¥Ð¥È¥ë¥·¥¹¥Æ¥à
#¡¡  ¡Á+B5:¥¨¥ê¥¢Æ⥫¡¼¥½¥ë¡Á        by ¿åÌë
#¡¡  ver0.90                          Zenith Creation (http://zenith.ifdef.jp/)
#------------------------------------------------------------------------------
# ¥Þ¥Ã¥×¾å¤Ç¤ÎÀïάŪ¤Ê¥Ð¥È¥ë¤ò¼Â¸½¡£
#==============================================================================

#==============================================================================
# ¢£ Game_Character
#==============================================================================
class Game_Character
  #--------------------------------------------------------------------------
  # ¡ü »ØÄêÊý¸þ¤ò¸þ¤¯
  #--------------------------------------------------------------------------
  def turn(direct)
    unless @direction_fix
      @direction = direct
      @stop_count = 0
    end
  end
end

#==============================================================================
# ¢£ Game_Player
#==============================================================================
class Game_Player
  unless defined?(ZTBS4_DEFINED)
    #--------------------------------------------------------------------------
    # ¡ü ²¼¤Ë°ÜÆ°
    #--------------------------------------------------------------------------
    alias ztbs_move_down move_down
    def move_down
      if !$game_system.in_tactics
        ztbs_move_down
      elsif $game_system.tactics_phase == 2
        ztbs_move_down
      elsif $scene.in_area?(@x, @y + 1)
        ztbs_move_down
      elsif ($scene.active_battler.x - @x).abs <= 1 and ($scene.active_battler.y - @y - 1).abs <= 1
        ztbs_move_down
      elsif @x == $scene.active_battler.x and @y == $scene.active_battler.y
        $scene.active_battler.turn_down
      end
    end
    #--------------------------------------------------------------------------
    # ¡ü º¸¤Ë°ÜÆ°
    #--------------------------------------------------------------------------
    alias ztbs_move_left move_left
    def move_left
      if !$game_system.in_tactics
        ztbs_move_left
      elsif $game_system.tactics_phase == 2
        ztbs_move_left
      elsif $scene.in_area?(@x - 1, @y)
        ztbs_move_left
      elsif ($scene.active_battler.x - @x + 1).abs <= 1 and ($scene.active_battler.y - @y).abs <= 1
        ztbs_move_left
      elsif @x == $scene.active_battler.x and @y == $scene.active_battler.y
        $scene.active_battler.turn_left
      end
    end
    #--------------------------------------------------------------------------
    # ¡ü ±¦¤Ë°ÜÆ°
    #--------------------------------------------------------------------------
    alias ztbs_move_right move_right
    def move_right
      if !$game_system.in_tactics
        ztbs_move_right
      elsif $game_system.tactics_phase == 2
        ztbs_move_right
      elsif $scene.in_area?(@x + 1, @y)
        ztbs_move_right
      elsif ($scene.active_battler.x - @x - 1).abs <= 1 and ($scene.active_battler.y - @y).abs <= 1
        ztbs_move_right
      elsif @x == $scene.active_battler.x and @y == $scene.active_battler.y
        $scene.active_battler.turn_right
      end
    end
    #--------------------------------------------------------------------------
    # ¡ü ¾å¤Ë°ÜÆ°
    #--------------------------------------------------------------------------
    alias ztbs_move_up move_up
    def move_up
      if !$game_system.in_tactics
        ztbs_move_up
      elsif $game_system.tactics_phase == 2
        ztbs_move_up
      elsif $scene.in_area?(@x, @y - 1)
        ztbs_move_up
      elsif ($scene.active_battler.x - @x).abs <= 1 and ($scene.active_battler.y - @y + 1).abs <= 1
        ztbs_move_up
      elsif @x == $scene.active_battler.x and @y == $scene.active_battler.y
        $scene.active_battler.turn_up
      end
    end
    #--------------------------------------------------------------------------
    # ¡ü º¸²¼¤Ë°ÜÆ°
    #--------------------------------------------------------------------------
    alias ztbs_move_lower_left move_lower_left
    def move_lower_left
      if !$game_system.in_tactics
        ztbs_move_lower_left
      elsif $game_system.tactics_phase == 2
        ztbs_move_lower_left
      elsif $scene.in_area?(@x - 1, @y + 1)
        ztbs_move_lower_left
      elsif ($scene.active_battler.x - @x + 1).abs <= 1 and ($scene.active_battler.y - @y - 1).abs <= 1
        ztbs_move_lower_left
      elsif @x == $scene.active_battler.x and @y == $scene.active_battler.y
        $scene.active_battler.turn_left
      end
    end
    #--------------------------------------------------------------------------
    # ¡ü ±¦²¼¤Ë°ÜÆ°
    #--------------------------------------------------------------------------
    alias ztbs_move_lower_right move_lower_right
    def move_lower_right
      if !$game_system.in_tactics
        ztbs_move_lower_right
      elsif $game_system.tactics_phase == 2
        ztbs_move_lower_right
      elsif $scene.in_area?(@x + 1, @y + 1)
        ztbs_move_lower_right
      elsif ($scene.active_battler.x - @x - 1).abs <= 1 and ($scene.active_battler.y - @y - 1).abs <= 1
        ztbs_move_lower_right
      elsif @x == $scene.active_battler.x and @y == $scene.active_battler.y
        $scene.active_battler.turn_right
      end
    end
    #--------------------------------------------------------------------------
    # ¡ü º¸¾å¤Ë°ÜÆ°
    #--------------------------------------------------------------------------
    alias ztbs_move_upper_left move_upper_left
    def move_upper_left
      if !$game_system.in_tactics
        ztbs_move_upper_left
      elsif $game_system.tactics_phase == 2
        ztbs_move_upper_left
      elsif $scene.in_area?(@x - 1, @y - 1)
        ztbs_move_upper_left
      elsif ($scene.active_battler.x - @x + 1).abs <= 1 and ($scene.active_battler.y - @y + 1).abs <= 1
        ztbs_move_upper_left
      elsif @x == $scene.active_battler.x and @y == $scene.active_battler.y
        $scene.active_battler.turn_left
      end
    end
    #--------------------------------------------------------------------------
    # ¡ü ±¦¾å¤Ë°ÜÆ°
    #--------------------------------------------------------------------------
    alias ztbs_move_upper_right move_upper_right
    def move_upper_right
      if !$game_system.in_tactics
        ztbs_move_upper_right
      elsif $game_system.tactics_phase == 2
        ztbs_move_upper_right
      elsif $scene.in_area?(@x + 1, @y - 1)
        ztbs_move_upper_right
      elsif ($scene.active_battler.x - @x - 1).abs <= 1 and ($scene.active_battler.y - @y + 1).abs <= 1
        ztbs_move_upper_right
      elsif @x == $scene.active_battler.x and @y == $scene.active_battler.y
        $scene.active_battler.turn_right
      end
    end
  end
end

#==============================================================================
# ¢£ ZTBS
#==============================================================================
module ZTBS
  ZTBSB4_DEFINED = true
end

#==============================================================================
# ¢£ Scene_Map
#==============================================================================
class Scene_Map
  #--------------------------------------------------------------------------
  # ¡ü ¸ø³«¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô
  #--------------------------------------------------------------------------
  attr_reader  :active_battler          # ¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ð¥È¥é¡¼
  #--------------------------------------------------------------------------
  # ¡ü ¹¶·â¥¨¥ê¥¢¸¡º÷
  #--------------------------------------------------------------------------
  def search_attack_area
    position = [[@battler.x, @battler.y]]
    if $game_system.tactics_actors.keys.include?(@battler.id)
      battler = $game_system.tactics_actors[@battler.id]
    else
      battler = $game_system.tactics_enemies[@battler.id]
    end
    case battler.current_action.kind
    when 0
      if (defined? ACTOR_RANGE and @attacker.is_a?(Game_Actor)) or
        (defined? ENEMY_RANGE and @attacker.is_a?(Game_Enemy))
        form = battler.attack_range[0][0]
        max = battler.attack_range[0][1]
        through = battler.attack_range[0][2]
        cannot_near = battler.attack_range[0][3]
        if cannot_near == nil
          cannot_near = false
        end
      else
        form = 0
        max = 1
        through = false
        cannot_near = false
      end
      if battler.is_a?(Game_Actor)
        type = 1
      else
        type = 0
      end
    when 1
      skill = $data_skills[battler.current_action.skill_id]
      form = skill.range[0][0]
      max = skill.range[0][1]
      through = skill.range[0][2]
      cannot_near = skill.range[0][3]
      if cannot_near == nil
        cannot_near = false
      end
      return position if max == 0
      case skill.scope
      when 0, 5, 6
        type = 4
      when 1, 2
        if battler.is_a?(Game_Actor)
          type = 1
        else
          type = 0
        end
      when 3, 4
        if battler.is_a?(Game_Actor)
          type = 0
        else
          type = 1
        end
      when 7
        return position
      end
    when 2
      item = $data_items[battler.current_action.item_id]
      form = item.range[0][0]
      max = item.range[0][1]
      through = item.range[0][2]
      cannot_near = item.range[0][3]
      if cannot_near == nil
        cannot_near = false
      end
      case item.scope
      when 0, 5, 6
        type = 4
      when 1, 2
        if battler.is_a?(Game_Actor)
          type = 1
        else
          type = 0
        end
      when 3, 4
        if battler.is_a?(Game_Actor)
          type = 0
        else
          type = 1
        end
      when 7
        return position
      end
    end
 
    more_step = [0]
    route = [[]]
    case form
    # ¤Ò¤··Áor»Í³Ñ·Á¤Î¾ì¹ç
    when 0, 2, 3
      if form == 2 or form == 3
        max *= 2
      end
      for i in more_step
        x = position[i][0]
        y = position[i][1]
        # ¾ã³²ÊªÌµ»ë¤Î¾ì¹ç
        if through
          # ²¼
          if !position.include?([x, y + 1])
            position.push([x, y + 1])
            route.push(route[i] + [2])
            if route[i].size + 1 < max
              more_step.push(route.index(route[i] + [2]))
            end
          end
          # º¸
          if !position.include?([x - 1, y])
            position.push([x - 1, y])
            route.push(route[i] + [4])
            if route[i].size + 1 < max
              more_step.push(route.index(route[i] + [4]))
            end
          end
          # ±¦
          if !position.include?([x + 1, y])
            position.push([x + 1, y])
            route.push(route[i] + [6])
            if route[i].size + 1 < max
              more_step.push(route.index(route[i] + [6]))
            end
          end
          # ¾å
          if !position.include?([x, y - 1])
            position.push([x, y - 1])
            route.push(route[i] + [8])
            if route[i].size + 1 < max
              more_step.push(route.index(route[i] + [8]))
            end
          end
        # ¾ã³²ÊªÌµ»ë¤Ç¤Ê¤¤¾ì¹ç
        else
          # ²¼
          if !position.include?([x, y + 1]) and !on_area?(x, y, type) and
            (@battler.passable?(x, y, 2) or (on_area?(x, y + 1, type) and type != 4))
            position.push([x, y + 1])
            route.push(route[i] + [2])
            if route[i].size + 1 < max
              more_step.push(route.index(route[i] + [2]))
            end
          end
          # º¸
          if !position.include?([x - 1, y]) and !on_area?(x, y, type) and
            (@battler.passable?(x, y, 4) or (on_area?(x - 1, y, type) and type != 4))
            position.push([x - 1, y])
            route.push(route[i] + [4])
            if route[i].size + 1 < max
              more_step.push(route.index(route[i] + [4]))
            end
          end
          # ±¦
          if !position.include?([x + 1, y]) and !on_area?(x, y, type) and
            (@battler.passable?(x, y, 6) or (on_area?(x + 1, y, type) and type != 4))
            position.push([x + 1, y])
            route.push(route[i] + [6])
            if route[i].size + 1 < max
              more_step.push(route.index(route[i] + [6]))
            end
          end
          # ¾å
          if !position.include?([x, y - 1]) and !on_area?(x, y, type) and
            (@battler.passable?(x, y, 8) or (on_area?(x, y - 1, type) and type != 4))
            position.push([x, y - 1])
            route.push(route[i] + [8])
            if route[i].size + 1 < max
              more_step.push(route.index(route[i] + [8]))
            end
          end
        end
      end
      # »Í³Ñ·Á¤Î¾ì¹ç
      case form
      when 2
        delete = []
        for pos in position
          if (pos[0] - @battler.x).abs > max/2 or (pos[1] - @battler.y).abs > max/2
            delete.push(pos)
          end
        end
        for i in delete
          position.delete(i)
        end
      when 3
        delete = []
        for pos in position
          if (pos[0] - @battler.x).abs != max/2 and (pos[1] - @battler.y).abs != max/2
            delete.push(pos)
          end
        end
        for i in delete
          position.delete(i)
        end
        return position
      end
    # ½½»ú·Á¤Î¾ì¹ç
    when 1
      for i in 1..max
        x = position[0][0]
        y = position[0][1]
        # ¾ã³²ÊªÌµ»ë¤Î¾ì¹ç
        if through
          position.push([x, y + i])
          position.push([x - i, y])
          position.push([x + i, y])
          position.push([x, y - i])
        # ¾ã³²ÊªÌµ»ë¤Ç¤Ê¤¤¾ì¹ç
        else
          if position.include?([x, y + i - 1]) and !on_area?(x, y + i - 1, type) and
            (@battler.passable?(x, y + i - 1, 2) or on_area?(x, y + i, type))
            position.push([x, y + i])
          end
          if position.include?([x - i + 1, y]) and !on_area?(x - i + 1, y, type) and
            (@battler.passable?(x - i + 1, y, 4) or on_area?(x - i, y, type))
            position.push([x - i, y])
          end
          if position.include?([x + i - 1, y]) and !on_area?(x + i - 1, y, type) and
            (@battler.passable?(x + i - 1, y, 6) or on_area?(x + i, y, type))
            position.push([x + i, y])
          end
          if position.include?([x, y - i + 1]) and !on_area?(x, y - i + 1, type) and
            (@battler.passable?(x, y - i + 1, 8) or on_area?(x, y - i, type))
            position.push([x, y - i])
          end
        end
      end
    end
    # ¶áÀÜÉԲĤξì¹ç
    if cannot_near
      position.delete([@battler.x, @battler.y + 1])
      position.delete([@battler.x - 1, @battler.y])
      position.delete([@battler.x + 1, @battler.y])
      position.delete([@battler.x, @battler.y - 1])
    end
    return position
  end
  #--------------------------------------------------------------------------
  # ¡ü ¥¨¥ê¥¢ÆâȽÄê
  #--------------------------------------------------------------------------
  def in_area?(x, y)
    return true if @spriteset.area_sprites.empty?
    for sprite in @spriteset.area_sprites
      if sprite.map_x == x and sprite.map_y == y
        return true
      end
    end
    return false
  end
end

POSTS de Makenshi
Revenir en haut Aller en bas
Koss
> Administrateur
> Administrateur
Koss


Masculin
Nombre de messages : 404
Age : 31
Quels sont vos projets ? : Glandage total...
Date d'inscription : 18/04/2007

Fiche Créateur
Points de Créativité:
Script Tactical RPG Left_bar_bleue0/50Script Tactical RPG Empty_bar_bleue  (0/50)
Commentaires: -

Script Tactical RPG Empty
MessageSujet: Re: Script Tactical RPG   Script Tactical RPG Icon_minitimeMar 10 Juil - 3:46

Pas mal, assez complet...
Perso j'ai jamais réussi a retranscrire les scripts, et le petit problème, c'est qu'il faut la version 1.02 de rpg maker, enfin je crois.
J'aime bien les scripts de restriction^^
Désolé, mais a ce stade là, on peut plus te donner de PA ^^
Revenir en haut Aller en bas
Luck
> Administrateur
> Administrateur
Luck


Masculin
Nombre de messages : 507
Age : 31
Localisation : 35
Avez vous RPGMXP ? : Oui
Quels sont vos projets ? : Nightmares of Apocalypsia - Mario Kart XP
Date d'inscription : 17/11/2006

Fiche Créateur
Points de Créativité:
Script Tactical RPG Left_bar_bleue50/50Script Tactical RPG Empty_bar_bleue  (50/50)
Commentaires: Administrateur du forum.

Script Tactical RPG Empty
MessageSujet: Re: Script Tactical RPG   Script Tactical RPG Icon_minitimeMar 10 Juil - 3:50

ah ? ... Et bien moi ça marche pourtant
Revenir en haut Aller en bas
Koss
> Administrateur
> Administrateur
Koss


Masculin
Nombre de messages : 404
Age : 31
Quels sont vos projets ? : Glandage total...
Date d'inscription : 18/04/2007

Fiche Créateur
Points de Créativité:
Script Tactical RPG Left_bar_bleue0/50Script Tactical RPG Empty_bar_bleue  (0/50)
Commentaires: -

Script Tactical RPG Empty
MessageSujet: Re: Script Tactical RPG   Script Tactical RPG Icon_minitimeMar 10 Juil - 3:51

Tu as installé la version 1.02 ? Bref c'est bien pratique quand même^^
Revenir en haut Aller en bas
Contenu sponsorisé





Script Tactical RPG Empty
MessageSujet: Re: Script Tactical RPG   Script Tactical RPG Icon_minitime

Revenir en haut Aller en bas
 
Script Tactical RPG
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Script Anti lag
» Script PHS (Changer de persos)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
La Forge des Rêves :: > Salle technique :: Outils courants-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser