Partagez
Aller en bas
avatar
Masouf
Membre

Nombre de messages : 284
Age : 25
Localisation : Rennes
Distinction : aucune
Date d'inscription : 24/12/2008

Script 8 directions, activation/désactivation par interupteur (Résolu)

le Sam 2 Nov 2013 - 15:03
Bonjour, je recherche un script 8 directions qui s'active et se désactive par un event.
Passer de 4 directions à 8 directions (par l'activation d'un interrupteur ou d'un appel de script par exemple) et inversement.
J'ai chercher partout mais en vain..
Cordialement.

PS: je suis sous RPG maker vx donc je recherche en RGSS2


Dernière édition par Micro le Sam 2 Nov 2013 - 17:05, édité 1 fois
avatar
Hareck
Membre

Nombre de messages : 359
Age : 25
Distinction : aucune
Date d'inscription : 26/09/2013

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

le Sam 2 Nov 2013 - 15:09
Tu veux bien me trouver un script qui gère les 8 directions? Je vais essayer quelque chose...
Je suis presque sur que ça ne marchera pas, mais on sait jamais... Very Happy
avatar
Masouf
Membre

Nombre de messages : 284
Age : 25
Localisation : Rennes
Distinction : aucune
Date d'inscription : 24/12/2008

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

le Sam 2 Nov 2013 - 15:59
En voila un :
http://www.rpg-maker.fr/scripts-402-8-directions.html
avatar
Spytje
Administrateur

Nombre de messages : 5901
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

le Sam 2 Nov 2013 - 16:13
Voila ton script modifié.

Si interrupteur ID 1 est activé le mode 8 direction est activé sinon le personnage se déplacera dans 4 directions seulement.

Code:
#==============================================================================
# 8 Way Directional Movement
#------------------------------------------------------------------------------
# Kylock
# 21.3.2008
# Version 1.1
#==============================================================================
# Special thanks to Arrow-1 for the script request and supplying sprites for
#  testing purposes.
#==============================================================================
# Instructions:
#    Add this script towards the top, since methods are rewritten and not
#      aliased.  Once you add it and run your game, the script will
#      automagically enable 8-way directional movement for your hero.
# Features:
#    * Added movement functionality to allow your hero to move in diagonal
#        directions
#    * Corrects directional issues resulting from trying to activate events
#        while facing a diaganol direction. (could be better implemented,
#        but does work as it is)
#==============================================================================
# Changelog
#  1.0 Initial Release
#  1.1 Added support for no custom sprites and added compatibility with
#        Anaryu's Anti-Lag script (must be loaded above the anti-lag script)
#==============================================================================
 
#==============================================================================
# ** Script Configuration
#==============================================================================
module KMDM
  DIRSPRITE = false          # set to true if you are using a custom
                            # character sprite for diagonal movement
end
 
#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
#  rewrote def move_by-input to enable extra directions
#==============================================================================
 
class Game_Player < Game_Character
  def move_by_input
    return unless movable?
    return if $game_map.interpreter.running?
    if $game_switches[1] == true
    case Input.dir8
      when 1;  move_lower_left
      when 2;  move_down
      when 3;  move_lower_right
      when 4;  move_left
      when 7;  move_upper_left
      when 6;  move_right
      when 8;  move_up
      when 9;  move_upper_right
        end
      else
        case Input.dir4
      when 2;  move_down
      when 4;  move_left
      when 6;  move_right
      when 8;  move_up
      end
      end
  end
end
 
#==============================================================================
# ** Game_Character
#------------------------------------------------------------------------------
# Corrects direction so events will respond when hero is facing diagonal.
#  Modifies: def move_lower_left, def move_lower_right, def move_upper_left,
#            and def move_upper_right
#==============================================================================
 
class Game_Character
  #--------------------------------------------------------------------------
  # * Move Lower Left
  #--------------------------------------------------------------------------
  def move_lower_left(turn_ok = true)
    set_direction(5)
    if (passable?(@x, @y+1) and passable?(@x-1, @y+1)) or
      (passable?(@x-1, @y) and passable?(@x-1, @y+1))
      @x -= 1
      @y += 1
      increase_steps
      @move_failed = false
    else
      @move_failed = true
    end
  end
  #--------------------------------------------------------------------------
  # * Move Lower Right
  #--------------------------------------------------------------------------
  def move_lower_right(turn_ok = true)
    set_direction(3)
    if (passable?(@x, @y+1) and passable?(@x+1, @y+1)) or
      (passable?(@x+1, @y) and passable?(@x+1, @y+1))
      @x += 1
      @y += 1
      increase_steps
      @move_failed = false
    else
      @move_failed = true
    end
  end
  #--------------------------------------------------------------------------
  # * Move Upper Left
  #--------------------------------------------------------------------------
  def move_upper_left(turn_ok = true)
    if KMDM::DIRSPRITE == true
      set_direction(7)
    else
      set_direction(8)
    end
    if (passable?(@x, @y-1) and passable?(@x-1, @y-1)) or
      (passable?(@x-1, @y) and passable?(@x-1, @y-1))
      @x -= 1
      @y -= 1
      increase_steps
      @move_failed = false
    else
      @move_failed = true
    end
  end
  #--------------------------------------------------------------------------
  # * Move Upper Right
  #--------------------------------------------------------------------------
  def move_upper_right(turn_ok = true)
    set_direction(9)
    if (passable?(@x, @y-1) and passable?(@x+1, @y-1)) or
      (passable?(@x+1, @y) and passable?(@x+1, @y-1))
      @x += 1
      @y -= 1
      increase_steps
      @move_failed = false
    else
      @move_failed = true
    end
  end
end
 
#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
# Adds functionality for diagonal character sprites.
#  Modifies: def update_src_rect
#==============================================================================
 
class Sprite_Character < Sprite_Base
  #--------------------------------------------------------------------------
  # * Update Transfer Origin Rectangle
  #--------------------------------------------------------------------------
  def update_src_rect
    if @tile_id == 0
      index = @character.character_index
      #if the character is facing diagonally, use the second spriteset
      if @character.direction % 2 != 0 && KMDM::DIRSPRITE == true
        index = @character.character_index + 1
      end
      pattern = @character.pattern < 3 ? @character.pattern : 1
      sx = (index % 4 * 3 + pattern) * @cw
      sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
      self.src_rect.set(sx, sy, @cw, @ch)
    end
  end
end

...
avatar
Hareck
Membre

Nombre de messages : 359
Age : 25
Distinction : aucune
Date d'inscription : 26/09/2013

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

le Sam 2 Nov 2013 - 16:17
Allé! T'es un pirate! C'est exactement ce que je voulais faire!!! Brigand!
Oui, je râle...


Bon, au final, c'est fait et fonctionnel donc c'est bon! Smile
avatar
Spytje
Administrateur

Nombre de messages : 5901
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

le Sam 2 Nov 2013 - 16:21
HS : Hareck t'es trop lent, et ça, ça me fais râler :p

Ravis d'avoir pu aider Smile
avatar
Masouf
Membre

Nombre de messages : 284
Age : 25
Localisation : Rennes
Distinction : aucune
Date d'inscription : 24/12/2008

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

le Sam 2 Nov 2013 - 17:04
Merci a vous deux, c'est exactement ce que je recherchait Very Happy 
avatar
Ssozi
Membre

Nombre de messages : 474
Age : 22
Distinction : Sojin nuna, salanghaeyo !
Date d'inscription : 24/07/2009
http://rpgmakertgs.tumblr.com/

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

le Sam 2 Nov 2013 - 18:35
C'est ça t'as géré Spy ! Smile
Mais il y a des trucs que t'aurais pu améliorer, du style laisser le choix de l'interrupteur (c'est un détail, mais ça fait son importantce, uh).
Ah et aussi ! if $game_switches[1] == true revient à faire if $game_switches[1], ce qui est plus...court
avatar
Spytje
Administrateur

Nombre de messages : 5901
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

le Sam 2 Nov 2013 - 19:24
Merci de ton intervention Biwy je retiens ton "astuce" Smile
avatar
Hareck
Membre

Nombre de messages : 359
Age : 25
Distinction : aucune
Date d'inscription : 26/09/2013

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

le Dim 3 Nov 2013 - 12:30
Biwy, perso, je connaissais déjà, mais j'aime bien faire comme Spy a fait juste pour quand je me relis... Au moins, je sais parfaitement du premier regard ce qu'il se passe... Smile
Après, c'est moi et ma façon chelou de penser... Smile
Contenu sponsorisé

Re: Script 8 directions, activation/désactivation par interupteur (Résolu)

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum