RMEx / RME

Extension tool for RPGMaker VXAce
http://rmex.github.io/
MIT License
40 stars 10 forks source link

[Nouvelle Commande] stop_balloon(id) #359

Closed Zer0xxxxx closed 6 years ago

Zer0xxxxx commented 6 years ago

Salut ! Les émoticônes d'RPG Maker VX Ace sont chouettes.

En revanche, il est assez dommage de ne pas pouvoir les stopper brutalement. Notamment parce que lorsque l'on demande à lancer un balloon à un événement, s'il y en a déjà un en cours, notre demande sera tout simplement ignorée. Et pas moyen de faire autrement (?) que d'attendre la fin de l'animation pour pouvoir en lancer une nouvelle... !

Je pense donc qu'une commande stop_balloon(id) serait chouette. J'espère aussi qu'elle ne sera pas trop pénible à écrire...

BastienDuplessier commented 6 years ago

Non, cette fonctionnalité de RPG maker n'est pas faite pour être stoppée brutalement. De plus, graphiquement ça risque de mal rendre. Maintenant, je l'ai faite dans ce script, comme ça tu pourras l'utiliser à loisir :

#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
#  This script allow to interrupt balloons animations with other ballons
#==============================================================================

class Sprite_Character
  #--------------------------------------------------------------------------
  # * Set New Effect
  #--------------------------------------------------------------------------
  def setup_new_effect
    if !animation? && @character.animation_id > 0
      animation = $data_animations[@character.animation_id]
      start_animation(animation)
    end
    if !@balloon_sprite && @character.balloon_id > 0 || balloon_id_changed?
      @balloon_id = @character.balloon_id
      @current_balloon_id = @balloon_id
      start_balloon
    end
  end
  #--------------------------------------------------------------------------
  # * Have balloon id changed ?
  #--------------------------------------------------------------------------
  def balloon_id_changed?
    @current_balloon_id ||= 0
    @current_balloon_id != @character.balloon_id
  end
  #--------------------------------------------------------------------------
  # * End Balloon Icon
  #--------------------------------------------------------------------------
  alias_method :old_end_balloon, :end_balloon
  def end_balloon
    old_end_balloon
    @current_balloon_id = 0
  end
end

Lance un show_balloon(id, 0) pour stopper l'animation. Tu peux utiliser un autre balloon pour le remplacer.