Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Packs de ressources: Monstres des RTP / Jeux: Projet-Z / Packs de ressources: Tilesets médiévaux (...) / News: Et le grand gagnant est... (...) / Scripts: Texte ondulant et texte (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

73 connectés actuellement

26587715 visiteurs
depuis l'ouverture

1830 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Le Temple de Valor

Lumen

Eclipso

Alex d'Or

RPG Maker VX

Tous nos partenaires

Devenir
partenaire



Animation Partout 1.1

Permet d'afficher des animations n'importe où sans utiliser d'évènement.

Script pour RPG Maker XP
Ecrit par Zeus81
Publié par zeus81 (lui envoyer un message privé)
Signaler un script cassé

❤ 0

Normalement les animations s'affichent uniquement sur des évènements. Ce script permet d'afficher des animations n'importe où sans utiliser d'évènement. Il suffit d'indiquer les coordonnées X et Y et le tour est joué.
Si vous avez du mal avec les coordonnées, cliquez sur l'endroit où vous voulez faire l'animation.
Vous pouvez voir les coordonnées en bas à droite de votre écran.
image

Le reste est expliqué au début du script.
Le script est à mettre au dessus du main comme d'habitude.

</p>

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#=================================
# Animation Partout v1.1
# Script créé par Zeus81
#=================================
#
#
# Manuel d'utilisation :
#
# Faire insérer un script et écrire :
#             $game_temp.animations.push([id, hit, x, y])
#
# id      =   Id de l'animation.
#
# hit     =   Animation Touché ou Manqué (Voir les réglages des animations).
#             Pour Touché -> hit = true
#             Pour Manqué -> hit = false
#
# x et y  =   Position ou sera affichée l'animation.
#             On peux mettre des nombres décimaux pour plus de précision.
#
# Exemple d'utilisation :
#             id  = 1
#             hit = true
#             x   = 14
#             y   = 7
#             $game_temp.animations.push([id, hit, x, y])
#
# Note :
#             Dans les animations seuls les "Flash" sur l'écran seront visible, pas ceux sur la cible.
#             (Forcement vu qu'il n'y a pas de cible)
#             La portée de l'animation ("Haut", "Milieu", "Bas") ne changera rien à sa position.
#             Par contre si c'est "Ecran", ce sera comme si l'animation était faite sur n'importe quel évènement.
#             Les animations s'affichent uniquement quand on est sur la map (c-à-d pas pendant les combats ou les menus).
 
class Game_Temp
  
  attr_accessor :animations
  
  alias zeus81_animation_partout_game_temp_initialize initialize
  def initialize
    zeus81_animation_partout_game_temp_initialize
    @animations = []
  end
  
end
 
 
class Spriteset_Map
  
  alias zeus81_animation_partout_spriteset_map_initialize initialize
  def initialize
    @animations_sprites = []
    zeus81_animation_partout_spriteset_map_initialize
  end
  
  alias zeus81_animation_partout_spriteset_map_dispose dispose
  def dispose
    @animations_sprites.each {|sprite| sprite.dispose}
    zeus81_animation_partout_spriteset_map_dispose
  end
  
  alias zeus81_animation_partout_spriteset_map_update update
  def update
    $game_temp.animations.each {|data| @animations_sprites.push(Sprite_Animation.new(@viewport1, data))}
    $game_temp.animations.clear
    need_compact = false
    for i in 0...@animations_sprites.size
      @animations_sprites[i].update
      if @animations_sprites[i].disposed?
        @animations_sprites[i] = nil
        need_compact = true
      end
    end
    @animations_sprites.compact! if need_compact
    zeus81_animation_partout_spriteset_map_update
  end
  
end
 
 
class Sprite_Animation < RPG::Sprite
  
  def initialize(viewport, data)
    super(viewport)
    animation($data_animations[data[0]], data[1])
    @real_x = data[2] * 128
    @real_y = data[3] * 128
  end
  
  def update
    super
    self.x = (@real_x - $game_map.display_x + 3) / 4 + 16
    self.y = (@real_y - $game_map.display_y + 3) / 4
    self.dispose if @_animation_duration == 0
  end
  
end



Mis à jour le 4/7/2020.




Erol - posté le 14/08/2010 à 18:38:09 (1 messages postés)

❤ 0

Zeus81, t'es un dieu!
C'est pas précisé, mais on peut utiliser les variables pour les coordonnées et l'ID de l'animation, ce qui est hyper pratique!
Exemple:

Portion de code : Tout sélectionner

1
$game_temp.animations.push([$game_variables[1], true, $game_variables[50], 7])


affichera l'animation "\V[1]" aux cordonnées "\V[50]; 7" en mode "touché".
Par contre, utiliser un interrupteur pour remplacer le booléen ne semble pas marcher (ou alors j'utilise pas la bonne commande)


loly74 - posté le 06/02/2012 à 21:55:54 (827 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Merci, mais les animations passent sous les images chez moi, c'est assez embêtant...

Sylvan Melody, c'est par ici ! | Mes Musiques! | "Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Zeus81 - posté le 07/02/2012 à 03:26:20 (11071 messages postés)

❤ 0

Ah oui, pour la peine j'ai fait une nouvelle version avec une option pour mettre des coordonnées écran (avant c'était des coordonnées map) vu que c'est ce dont t'as besoin, non ?

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Animation Partout v1.3 par Zeus81
#
# Faire insérer un script et écrire :
#             $game_temp.animations << [id, hit, x, y, screen]
# id      =   Id de l'animation.
# hit     =   Animation Touché ou Manqué (Voir les réglages des animations).
#             Pour Touché -> hit = true
#             Pour Manqué -> hit = false
# x et y  =   Position ou sera affichée l'animation.
#             On peux mettre des nombres décimaux pour plus de précision.
# screen  =   true pour considérer la position en pixels par rapport à l'écran.
#             false pour la considérer en carreaux par rapport à la map.
# Exemple :
#             $game_temp.animations << [1, true, 14, 7, false]
# Note :
#             Dans les animations seuls les "Flash" sur l'écran seront visible,
#             pas ceux sur la cible (forcement vu qu'il n'y en a pas).
#             La portée de l'animation "Haut", "Milieu", "Bas" ne changera rien
#             à sa position et si c'est "Ecran", ce sera comme si l'animation
#             était faite sur n'importe quel évènement.
#             Les animations s'affichent uniquement quand on est sur la map.
 
class Game_Temp
  attr_accessor :animations
  alias zeus81_animation_partout_game_temp_initialize initialize
  def initialize
    zeus81_animation_partout_game_temp_initialize
    @animations = []
  end
end
 
class Spriteset_Map
  alias zeus81_animation_partout_spriteset_map_initialize initialize
  def initialize
    @animations_sprites = []
    zeus81_animation_partout_spriteset_map_initialize
  end
  alias zeus81_animation_partout_spriteset_map_dispose dispose
  def dispose
    @animations_sprites.each {|sprite| sprite.dispose}
    zeus81_animation_partout_spriteset_map_dispose
  end
  alias zeus81_animation_partout_spriteset_map_update update
  def update
    $game_temp.animations.each {|data| @animations_sprites << Sprite_Animation.new(@viewport3, *data)}
    $game_temp.animations.clear
    @animations_sprites.each {|sprite| sprite.update}
    @animations_sprites.delete_if {|sprite| sprite.disposed?}
    zeus81_animation_partout_spriteset_map_update
  end
end
  
class Sprite_Animation
  def initialize(viewport, animation, hit, x, y, screen=false)
    return unless @animation = $data_animations[animation]
    @viewport, @hit, @x, @y, @screen, @frame, @sprites, @bitmap =
      viewport, hit, x, y, screen, -1, [], 
      RPG::Cache.animation(@animation.animation_name, @animation.animation_hue)
  end
  def dispose
    @sprites.each {|sprite| sprite.dispose} if @sprites
    @sprites = @animation = nil
  end
  def disposed?() !@animation end
  def update
    return unless @animation and Graphics.frame_count % 2 == 0
    if (@frame += 1) < @animation.frame_max
      if @animation.position == 3
        x, y = @viewport.rect.width/2, @viewport.rect.height/2
      elsif @screen
        x, y = @x, @y
      else
        x, y = (@x*128-$game_map.display_x+3)/4+16, (@y*128-$game_map.display_y+3)/4
      end
      sprite_count, cell_data = -1, @animation.frames[@frame].cell_data
      @sprites.each {|sprite| sprite.visible = false}
      16.times do |i|
        next unless pattern = cell_data[i, 0] and pattern != -1
        @sprites << Sprite.new(@viewport) unless @sprites[sprite_count+=1]
        sprite = @sprites[sprite_count]
        sprite.bitmap = @bitmap
        sprite.src_rect.set(pattern%5*192, pattern/5*192, 192, 192)
        sprite.x = x + cell_data[i, 1]
        sprite.y = y + cell_data[i, 2]
        sprite.z = 2000
        sprite.ox = sprite.oy = 96
        sprite.zoom_x = sprite.zoom_y = cell_data[i, 3] / 100.0
        sprite.angle = cell_data[i, 4]
        sprite.mirror = (cell_data[i, 5] == 1)
        sprite.opacity = cell_data[i, 6]
        sprite.blend_type = cell_data[i, 7]
        sprite.visible = true
      end
      for timing in @animation.timings
        if timing.frame == @frame and (timing.condition == 0 or @hit == (timing.condition == 1))
          $game_system.se_play(timing.se)
          @viewport.flash(timing.flash_color, timing.flash_duration*2) if timing.flash_scope == 2
        end
      end
    else dispose
    end
  end
end




VRP024 - posté le 22/02/2021 à 05:33:08 (24 messages postés)

❤ 0

Les mentions #Zeub81# dans le script encore.
Peu utile mais le progrès approche!


NanakyTim - posté le 03/05/2021 à 11:58:58 (23734 messages postés) - staff

❤ 0

Leader Bocaliste Floodeur Légendaire

Ça fait juste office de crédit, c'est complètement inutile, mais dans la mesure où c'est lui qui a codé et partagé ça sans demander rémunération,
tu peux faire comme toutes les personnes sensées et passer outre en le remerciant plutôt. :flaco

Héros ou Fléau ? Devenez le Roi de Quineroy ! ~ Plongez dans l'univers sombre du Darkans ! ~ Dimens Reis... Allez y faire un tour. ~ Rangez votre chambre ! ~ Avez-vous peur du noir ? ~ Sauvez le futur, en allant dans le passé: BOCALATOR...


Roi of the Suisse - posté le 04/05/2021 à 08:38:45 (27862 messages postés) - admin -

❤ 0

Alerte neige !

Les "zeus81_" disséminés un peu partout dans le script ne sont pas des marques de fatuité, ce sont des alias, ils permettent d'éviter les conflits avec d'autres scripts. C'est une bonne pratique en langage Ruby, car une des particularités de ce langage est qu'on peut annuler de l'ancien code en insérant du nouveau code.

Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers