Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

180 connectés actuellement

30731851 visiteurs
depuis l'ouverture

1829 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Le Temple de Valor

Eclipso

RPG Fusion

Lunae - le bazar d'Emz0

Level Up!

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

Aller à la page 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

Reprise du message précédent:

Troma - posté le 30/08/2022 à 23:11:35 (6392 messages postés)

❤ 0

Je procrastine

Bonsoir finalement trop complexe, j'aimerais savoir quel script modifié pour les combats , j'ai trouvé un jeu avec des battler(your not prepared...xp) mais je ne trouve pas les lignes pour positionner les battler des heros sur le battleback dans sprite-battler ?! merci encore.

Edit : en fait sur la version bodomchild ils sont deja de base afficher mais en translucide et je sais pas comment les rendre opaque et les positionner autrement que sur le hud.

ꀎꀎꀎꀎꀎꀎꀎ


Suite du sujet:

Gari - posté le 31/08/2022 à 10:50:48 (5901 messages postés) - honor

❤ 0

You are not prepared il me semble que c'est l'affichage standard de XP (portraits des héros en combat). Peut-être que l'auteur a juste fait une image plus haute avec une partie transparente en bas pour pas qu'elle se trouve sur l'interface de combat ?


Troma - posté le 01/09/2022 à 02:20:57 (6392 messages postés)

❤ 0

Je procrastine

Salut Gari , non non je pense qu'il ou elle a juste rendu le texte du cadre plus serré, voir le cadre moins large, je sais pas.
j'aimerais avoir ce format et savoir comment modifier l'emplacement des battlers héro pour les positionner en "sidevew" , je trouve pas. ou un script standard sideview et savoir comment réduire l'emplacement du hud, mais surtout trouver comment déplacer les battlers et si possible comment positionner les battlers monstre plus bas que la zone qui elle reste limité a la zone standard.

image

ꀎꀎꀎꀎꀎꀎꀎ


Gari - posté le 01/09/2022 à 09:30:19 (5901 messages postés) - honor

❤ 0

J'ai regardé dans le dossier des battlers, et c'est comme je disais, Seikame n'a pas utilisé de scripts pour placer ses battlers, il a juste joué sur la hauteur des images.
Pour le positionnement de côté, je sais pas pas, mais ça a l'air d'être à la fin de Sprite_Battler. Il y a des chances que les sprites n'aient pas une position fixe dans le système de base.

Portion de code : Tout sélectionner

1
2
3
4
    # Set sprite coordinates
    self.x = @battler.screen_x
    self.y = @battler.screen_y-30
    self.z = @battler.screen_z




Troma - posté le 01/09/2022 à 19:12:20 (6392 messages postés)

❤ 0

Je procrastine

Oui , déja fait, ca déplace la rangée de héros, moi j'ai besoin de ca pour chaqun des 4 héros principaux afin de les placer sur la carte et pas en ligne horizontale mais je ne sais pas ce qu'il faut rajouter pour que ca prenne effet sur les un seul battler un par un.

ꀎꀎꀎꀎꀎꀎꀎ


Roi of the Suisse - posté le 02/09/2022 à 10:36:03 (30339 messages postés) - honor -

❤ 0

Chanter l'hyperchleuasme

Si tu arrives à récupérer le numéro du Battler à cet endroit du code, tu peux ajouter ce que tu veux sur le x et le y de chacun.

Quelque chose comme ça non ?:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
if @battler.numero == 1
  decalage_x = 30
  decalage_y = 12
elsif @battler.numero == 2
  decalage_x = 48
  decalage_y = 76
end
 
self.x = @battler.screen_x + decalage_x 
self.y = @battler.screen_y + decalage_y
self.z = @battler.screen_z



Je n'ai pas le script sous les yeux, donc je ne sais pas à quel point c'est facile d'obtenir le numéro du Battler ici. Peut-être qu'il faudra le passer en paramètre de la fonction.
Il faut se demander : je suis dans quelle fonction ? Qui appelle cette fonction ? Est-ce que celui qui appelle la fonction a les infos dont j'ai besoin ?

Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte


Mack - posté le 02/09/2022 à 10:48:06 (2310 messages postés) - staff -

❤ 0

Dans le @battler, ils doivent surement stocké soit l'ID dans la BDD, soit l'index dans la file du groupe je suppose.
Sinon, comme dis RoTS, t'as forcément pas trop loin dans le code un truc qui te permet de savoir à qui appartient le sprite lors de l'appel ^^

( Je prend note de tout les commentaires, même si je n'y répond pas )


Troma - posté le 02/09/2022 à 22:05:43 (6392 messages postés)

❤ 0

Je procrastine

Spoiler (cliquez pour afficher)



Je ne sais pas trop ce que je dois chercher ou modifier la

ꀎꀎꀎꀎꀎꀎꀎ


Mack - posté le 03/09/2022 à 09:51:18 (2310 messages postés) - staff -

❤ 0

J'ai un peu regardé ( et j'avais oublié à quel point c'était mal branlé par fois xD ) bon, comme j'ai aucune idée de ce que tu veux vraiment faire ( :F ), j'sais pas si ça te sera très utile mais, en gros :

Le script Sprite_Battler gère les battlers de tout les combattants à l'unité, c'est à dire que pour chaque instance, est associé un seul et unique personnage ( soit un Game_Actor pour les héros, soit un Game_Enemy pour les monstres ).

Pour savoir si ton battler est un Héros :

Portion de code : Tout sélectionner

1
2
3
if @battler.is_a?(Game_Actor)
 # Blablabla
end



Mais en soit, c'est un peu débile de modifier ça ici.

Dans le script "Game_Actor", tout à la fin on trouve :

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
#--------------------------------------------------------------------------
  # * Get Battle Screen X-Coordinate
  #--------------------------------------------------------------------------
  def screen_x
    # Return after calculating x-coordinate by order of members in party
    if self.index != nil
      return self.index * 160 + 80
    else
      return 0
    end
  end
  #--------------------------------------------------------------------------
  # * Get Battle Screen Y-Coordinate
  #--------------------------------------------------------------------------
  def screen_y
    return 464
  end
  #--------------------------------------------------------------------------
  # * Get Battle Screen Z-Coordinate
  #--------------------------------------------------------------------------
  def screen_z
    # Return after calculating z-coordinate by order of members in party
    if self.index != nil
      return 4 - self.index
    else
      return 0
    end
  end



Donc ça serait plutôt ici qu'il faut changer.

Pour le Y, rien de plus simple, c'est une valeur fixe, donc t'as juste à la changer jusqu'à en trouver une qui te va.

Pour le X, c'est à peine plus compliqué, pour faire très simple :

Portion de code : Tout sélectionner

1
self.index


Peut renvoyer 2 types de valeurs, nil si le héros n'est pas dans le groupe ( bon, je suppose que ça c'est purement théorique, t'es pas censé avoir un battler en combat, alors que t'as pas le héros ), ou un entier renvoyant sa position dans le groupe ( 0 pour le premier héros, 1 pour le second, ... )

Donc de base, ils se contentent d'espacer chaque héros de 160 pixels, et de tous les décaler de 80 pixels vers la droite.

Edit :
J'ai jeté un œil à la démo du site, ils changent pas la position des héros, c'est celle de base, ils ont absolument pas touché aux positions des héros

( Je prend note de tout les commentaires, même si je n'y répond pas )


Troma - posté le 03/09/2022 à 15:24:17 (6392 messages postés)

❤ 0

Je procrastine

Merci, Ce que je veux faire c'est un sideview fixe, pouvoir aligner verticalement les personnages, les positionner un peu a l'arrache mais en verticale.
j'ai essayer de feinter en faisant des battler sur carte standard déjà prés positionner mais je n'avais pas fait le calcule logique que les points de degats seraient compté sur l'image entière et donc apparaitrait au centre de l'image, un peu n'importe ou (dans mes souvenir j’étais persuader que ca apparaissait sur les boites du hud, mais je dois confondre, je n'utilisez pas le system de base)
Je vais essayer de voir ton truc mais jai déjà passer du temps hier et je sature, si ca marche pas tant pis , je les incrusterais directement sur le battlback , j'ai au moins regler le probleme du hud en trifouillant.

Edit : oui ok on avance , ca regle le probleme d'espace entre personnage mais pas leurs position horizontal ni l'alignement vertical, désolé j'y connais pas grand chose.
Je sais pas si ca a un rapport mais dans la démo du site le battler screen y de Sprite battler est de -30 par apport a l'original , les battler hero semble un peu plus haut.
image

En fait ca ca regle mon probleme d'espace pour caler des monstres plus gros que je ne pouvait pas descendre en dessous de la limite du cadre d'origine de texte, c'est toujours ca en moins, j'ai donc regler le probleme du hud plus bas et le positionnement des monstres plus bas en cons"quence.
reste plus qu'a savoir comment positionner verticalement en biais les battler "hero".
En tout cas merci j'ai pris des notes pour pouvoir modifier des trucs tout seul la prochaine fois .

Edit : ouais c'est bon je sature, je vais coller directement mes battlers sur le fond et j'utiliserais des boites de hud a la place des battler pour que les dégâts apparaissent sur les boites et pas n'importe ou, comme ca ca réglera le probleme et j'aurais un hud moins fade, désolé de vous avoir fait perdre votre temps.

ꀎꀎꀎꀎꀎꀎꀎ


Mack - posté le 03/09/2022 à 15:32:19 (2310 messages postés) - staff -

❤ 0

Fait une image avec les 4 héros positionnés aux bon endroits, j'te change les lignes qu'il faut si tu veux
( Et envoie aussi les 4 battlers que tu utilises, sauf si des RTP, comme ça je serais sur que c'est bon xD )

( Je prend note de tout les commentaires, même si je n'y répond pas )


Troma - posté le 03/09/2022 à 17:02:15 (6392 messages postés)

❤ 0

Je procrastine

Ok, je te fais ca , du coups c'est possible de conserver l'emplacement en ligne pour une picture en plus ou pas pour aligner sous le hud pour l'embelir un peu ? je te met la picture et l'image test, sinon c'est pas grave, te casse pas la tête la dessu, et merci.

https://sd-1.archive-host.com/membres/up/10090501126874946/test_combat_et_battler_test.rar

ꀎꀎꀎꀎꀎꀎꀎ


Mack - posté le 03/09/2022 à 17:53:41 (2310 messages postés) - staff -

❤ 0

Ah oui, okay, tu veux un bête Sideview, y a pas grand chose à voir avec le screen plus haut quoi x)

Dans un nouveau script :

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
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Get Battle Screen X-Coordinate
  #--------------------------------------------------------------------------
  def screen_x
    # Return after calculating x-coordinate by order of members in party
    if self.index != nil
      # Plus la variable x est grande plus les perso sont à droite
      x = 221
      return x - self.index * 30
    else
      return 0
    end
  end
  #--------------------------------------------------------------------------
  # * Get Battle Screen Y-Coordinate
  #--------------------------------------------------------------------------
  def screen_y
    return self.index * 40 + 205
  end
  
  #--------------------------------------------------------------------------
  # * Get Battle Screen Z-Coordinate
  #--------------------------------------------------------------------------
  def screen_z
    # Return after calculating z-coordinate by order of members in party
    if self.index != nil
      return self.index
    else
      return 0
    end
  end
end



Par contre deux petits points, j'ai callé tout le monde de manière à avoir une répartition uniforme, donc c'est pas exactement comme toi, et aussi :
image

J'espère donc que t'as prévu de déplacer / changer la fenêtre :F

Si tu veux mettre tes héros plus à droite, il suffit d'augmenter la valeur de la variable x à la ligne 9.


Pour les pictures en fond, t'as un Windowskin transparent, et / ou un Script pour modifier l'affichage de l'interface ?

Edit : Ah, ben surement les même que la démo du screen précédent en faite

Du coup :
image
comment mettre photo

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
#==============================================================================
# ** Window_BattleStatus
#------------------------------------------------------------------------------
#  This window displays the status of all party members on the battle screen.
#==============================================================================
 
class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 380, 640, 100)
    self.contents = Bitmap.new(width - 32, height - 32)
    @level_up_flags = [false, false, false, false]
    refresh
  end
  
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    
    bitmap = RPG::Cache.picture("hud_back")
    
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      actor_x = i * 160 + 4
      
      self.contents.blt(actor_x-25, 3, bitmap, Rect.new(0, 0, 170, 93), 255)
      
      draw_actor_name(actor, actor_x, -9)
      draw_actor_hp(actor, actor_x, 10, 120)
      draw_actor_sp(actor, actor_x, 25, 120)
      if @level_up_flags[i]
        self.contents.font.color = normal_color
        self.contents.draw_text(actor_x, 40, 120, 32, "LEVEL UP !")
      else
        draw_actor_state(actor, actor_x, 40)
      end
    end
  end
 
end
 



Avec dans ton dossier Pictures, l'image que tu m'as fait passer avec comme nom "hud_back".

( Je prend note de tout les commentaires, même si je n'y répond pas )


Troma - posté le 03/09/2022 à 19:10:34 (6392 messages postés)

❤ 0

Je procrastine

Super c'est exactement ca c'est nickel merci , il y a juste les boites qui défile "attaquer,défense etc" horizontalement mais je vais chercher, encore une fois merci beaucoup.

Edit : Pff merci je serais jamais aller chercher la dedans.

ꀎꀎꀎꀎꀎꀎꀎ


Mack - posté le 03/09/2022 à 20:03:39 (2310 messages postés) - staff -

❤ 0

Ligne 81 du script "Scene_Battle 3" ;)
Suffit de remplacer

Portion de code : Tout sélectionner

1
 @actor_index * 160

par ce que tu veux ^^

( Je prend note de tout les commentaires, même si je n'y répond pas )


Troma - posté le 08/09/2022 à 20:16:46 (6392 messages postés)

❤ 0

Je procrastine

Salut c'est encore le relou, il y a moyen de changer les images des personnages quand leurs points de vie est a zéro plutôt qu'ils disparaissent et de savoir comment monter le cadre "attaque défense etc...).

ꀎꀎꀎꀎꀎꀎꀎ


Mack - posté le 08/09/2022 à 20:20:26 (2310 messages postés) - staff -

❤ 0

Pour remonter la boite, rajoutes cette ligne :

Portion de code : Tout sélectionner

1
@actor_command_window.y = 0


Juste en dessous de la ligne 81, celle où tu as déjà bougé la position X.
( Evidemment tu remplaces 0 par ce que tu veux ^^ )


Pour l'image, faut que je regarde, mais ça risque d'être un peu plus chiant.

Edit :
Dans Sprite_Battler, cherche les lignes :

Portion de code : Tout sélectionner

1
2
collapse
@battler_visible = false


C'est vers la fin, ligne 13X.

Devant les deux lignes tu mets un #, et après les deux lignes tu rajoutes :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
@battler_name = @battler.battler_name + "_dead"
        @battler_hue = @battler.battler_hue
        self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
        @width = bitmap.width
        @height = bitmap.height
        self.ox = @width / 2
        self.oy = @height



Tu as juste a rajouter dans ton dossier Battlers une image qui porte le même nom que le battler de base, mais avec un "_dead" à la fin.

Grosso merdo ça doit ressembler à ça :
image

( Je prend note de tout les commentaires, même si je n'y répond pas )


Troma - posté le 09/09/2022 à 01:11:12 (6392 messages postés)

❤ 0

Je procrastine

Ok merci je vais regarder mais je pense que j'ai pas le meme sprite battler parceque le miens fait 131 lignes en tout et les deux lignes sont a 115.
J'ai essayer sur celui que j'ai , ca ne marche pas et ca joue infiniment le SE de fin de combat quand le monstre est mort.

ꀎꀎꀎꀎꀎꀎꀎ


Mack - posté le 10/09/2022 à 18:04:34 (2310 messages postés) - staff -

❤ 0

Fais voir ton script

( Je prend note de tout les commentaires, même si je n'y répond pas )


Troma - posté le 10/09/2022 à 19:01:53 (6392 messages postés)

❤ 0

Je procrastine

Spoiler (cliquez pour afficher)



ꀎꀎꀎꀎꀎꀎꀎ


Mack - posté le 10/09/2022 à 19:48:22 (2310 messages postés) - staff -

❤ 0

Edit :
G rien dit :F



Essaye avec ça :

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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
#  This sprite is used to display the battler.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================
 
class Sprite_Battler < RPG::Sprite
 
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # If battler is nil
    if @battler == nil
      self.bitmap = nil
      loop_animation(nil)
      return
    end
    # If file name or hue are different than current ones
    if @battler.battler_name != @battler_name or
       @battler.battler_hue != @battler_hue
      # Get and set bitmap
      @battler_name = @battler.battler_name
      @battler_hue = @battler.battler_hue
      self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
      @width = bitmap.width
      @height = bitmap.height
      self.ox = @width / 2
      self.oy = @height
      # Change opacity level to 0 when dead or hidden
      if @battler.hidden
        self.opacity = 0
      end
      if @battler.dead? 
        @battler_name = @battler.battler_name + "_dead"
        @battler_hue = @battler.battler_hue
        self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
        @width = bitmap.width
        @height = bitmap.height
        self.ox = @width / 2
        self.oy = @height
      end
    end
    # If animation ID is different than current one
    if @battler.damage == nil and
       @battler.state_animation_id != @state_animation_id
      @state_animation_id = @battler.state_animation_id
      loop_animation($data_animations[@state_animation_id])
    end
    # If actor which should be displayed
    if @battler.is_a?(Game_Actor) and @battler_visible
      # Bring opacity level down a bit when not in main phase
      if $game_temp.battle_main_phase
        self.opacity += 3 if self.opacity < 255
      else
        self.opacity -= 3 if self.opacity > 207
      end
    end
    # Blink
    if @battler.blink
      blink_on
    else
      blink_off
    end
    # If invisible
    unless @battler_visible
      # Appear
      if not @battler.hidden and not @battler.dead? and
         (@battler.damage == nil or @battler.damage_pop)
        appear
        @battler_visible = true
      end
    end
    # If visible
    if @battler_visible
      # Escape
      if @battler.hidden
        $game_system.se_play($data_system.escape_se)
        escape
        @battler_visible = false
      end
      # White flash
      if @battler.white_flash
        whiten
        @battler.white_flash = false
      end
      # Animation
      if @battler.animation_id != 0
        animation = $data_animations[@battler.animation_id]
        animation(animation, @battler.animation_hit)
        @battler.animation_id = 0
      end
      # Damage
      if @battler.damage_pop
        damage(@battler.damage, @battler.critical)
        @battler.damage = nil
        @battler.critical = false
        @battler.damage_pop = false
      end
      # Collapse
      if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
        else
          $game_system.se_play($data_system.actor_collapse_se)
        end
        #collapse
        #@battler_visible = false
        @battler_name = @battler.battler_name + "_dead"
        @battler_hue = @battler.battler_hue
        self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
        @width = bitmap.width
        @height = bitmap.height
        self.ox = @width / 2
        self.oy = @height
      end
    end
    self.x = @battler.screen_x
    self.y = @battler.screen_y + 25
    self.z = @battler.screen_z
  end
end



( Je prend note de tout les commentaires, même si je n'y répond pas )


Troma - posté le 10/09/2022 à 23:48:14 (6392 messages postés)

❤ 0

Je procrastine

Error

image

ꀎꀎꀎꀎꀎꀎꀎ


Mack - posté le 11/09/2022 à 01:37:33 (2310 messages postés) - staff -

❤ 0

T'as créer un nouveau script ou remplacer l'ancien ?

Si t'as rempalcer l'ancien, pardon, c'est ma faute j'ai fait en sorte que le script du dessus soit à mettre dans un nouveau, j'ai pas pensé à le préciser désolé ><

La t'as le script qui devrait être complet :

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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
#  This sprite is used to display the battler.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================
 
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :battler                  # battler
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     viewport : viewport
  #     battler  : battler (Game_Battler)
  #--------------------------------------------------------------------------
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @battler_visible = false
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
    end
    super
  end
  def update
    super
    # If battler is nil
    if @battler == nil
      self.bitmap = nil
      loop_animation(nil)
      return
    end
    # If file name or hue are different than current ones
    if @battler.battler_name != @battler_name or
       @battler.battler_hue != @battler_hue
      # Get and set bitmap
      @battler_name = @battler.battler_name
      @battler_hue = @battler.battler_hue
      self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
      @width = bitmap.width
      @height = bitmap.height
      self.ox = @width / 2
      self.oy = @height
      # Change opacity level to 0 when dead or hidden
      if @battler.hidden
        self.opacity = 0
      end
      if @battler.dead? 
        @battler_name = @battler.battler_name + "_dead"
        @battler_hue = @battler.battler_hue
        self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
        @width = bitmap.width
        @height = bitmap.height
        self.ox = @width / 2
        self.oy = @height
      end
    end
    # If animation ID is different than current one
    if @battler.damage == nil and
       @battler.state_animation_id != @state_animation_id
      @state_animation_id = @battler.state_animation_id
      loop_animation($data_animations[@state_animation_id])
    end
    # If actor which should be displayed
    if @battler.is_a?(Game_Actor) and @battler_visible
      # Bring opacity level down a bit when not in main phase
      if $game_temp.battle_main_phase
        self.opacity += 3 if self.opacity < 255
      else
        self.opacity -= 3 if self.opacity > 207
      end
    end
    # Blink
    if @battler.blink
      blink_on
    else
      blink_off
    end
    # If invisible
    unless @battler_visible
      # Appear
      if not @battler.hidden and not @battler.dead? and
         (@battler.damage == nil or @battler.damage_pop)
        appear
        @battler_visible = true
      end
    end
    # If visible
    if @battler_visible
      # Escape
      if @battler.hidden
        $game_system.se_play($data_system.escape_se)
        escape
        @battler_visible = false
      end
      # White flash
      if @battler.white_flash
        whiten
        @battler.white_flash = false
      end
      # Animation
      if @battler.animation_id != 0
        animation = $data_animations[@battler.animation_id]
        animation(animation, @battler.animation_hit)
        @battler.animation_id = 0
      end
      # Damage
      if @battler.damage_pop
        damage(@battler.damage, @battler.critical)
        @battler.damage = nil
        @battler.critical = false
        @battler.damage_pop = false
      end
      # Collapse
      if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
        else
          $game_system.se_play($data_system.actor_collapse_se)
        end
        #collapse
        #@battler_visible = false
        @battler_name = @battler.battler_name + "_dead"
        @battler_hue = @battler.battler_hue
        self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
        @width = bitmap.width
        @height = bitmap.height
        self.ox = @width / 2
        self.oy = @height
      end
    end
    self.x = @battler.screen_x
    self.y = @battler.screen_y + 25
    self.z = @battler.screen_z
  end
end
 



( Je prend note de tout les commentaires, même si je n'y répond pas )


Troma - posté le 11/09/2022 à 04:50:57 (6392 messages postés)

❤ 0

Je procrastine

Salut, ah oui ok, maintenant ca fonctionne mais ca joue en continu l'effet sonore de la mort des personnages comme des monstres, mais c'est pas tres grave je peux les supprimer en en mettant pas, merci.

ꀎꀎꀎꀎꀎꀎꀎ


pepette - posté le 13/09/2022 à 13:59:11 (61 messages postés)

❤ 0

RPGM : VX ace

Bonjour à tous

Je suis vraiment novice en RUBY, pour le moment, je me contente de modifier des script existants.
Des fois ça marche, des fois ça marche pas...

Comme mon jeu est jouable en plusieurs langues, j'ai essayé d’intégrer une série de "if/else" dans un module audio afin que les fonctions affichées soient traduites.

Quand la langue est choisie, ça actionne l'interrupteur correspondant à la langue, et par défaut, ça affiche la version Anglaise.

Quand je lance, ça crash direct et j'ai le message :

Citation:

script 'mastervolume' line 61: NoMethodError occured
undefined method '[]' for nil:NilClass



La ligne 61 correspond ici à la ligne 28

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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
 
===============================================================================
# ● Item settings
#===============================================================================
module HZM_VXA
  module AudioVol
    # ● Do you want to display the volume adjustment on the title screen?
    #    ※To redefine the menu items on the title screen,
    #      If you introduce another script that tamper with the menu titles
    #      There's a possibility of conflict.
    #  true  …… Display
    #  false …… Don't display
    TITLE_FLAG = true
 
 
    # ● Do you want the volume adjustment displayed on the menu screen?
    #  true  …… Display
    #  false …… Don't display
    MENU_FLAG = true
 
    # ● Types of Volume arrangement
    #  0 …… BGM/BGS/SE/ME Set all at once
    #   1 …… BGM+BGS と SE+ME Set with 2 kinds of
    #   2 …… BGM/BGS/SE/ME Set by each of 4 types
    TYPE = 2
 
    # ● Volume Control Settings Name.
    if $game_switches[36]#Français     <=== Ligne 61 = début du code que j'ai ajouté
      TITLE_NAME       = "Volume"  # Item name to be displayed on title screen
      MENU_NAME        = "Volume"   # Name of the setting in Main Menu.
      CONFIG_ALL_NAME  = "GENERAL"   # Used when type "0" is selected
      CONFIG_BGM_NAME  = "Musique"    # Used when type "1" "2" is selected
      CONFIG_BGS_NAME  = "Ambiance"  # Used when type "2" is selected
      CONFIG_SE_NAME   = "Effet"       # Used when type "1" "2" is selected
      CONFIG_ME_NAME   = "Autres"       # Used when type "2" is selected
      CONFIG_EXIT_NAME = "OK"
      else
      if $game_switches[597] # Allemand
        TITLE_NAME       = "Lautstärke"  # Item name to be displayed on title screen
        MENU_NAME        = "Lautstärke"   # Name of the setting in Main Menu.
        CONFIG_ALL_NAME  = "MASTER"   # Used when type "0" is selected
        CONFIG_BGM_NAME  = "Musik"    # Used when type "1" "2" is selected
        CONFIG_BGS_NAME  = "Ambiante"  # Used when type "2" is selected
        CONFIG_SE_NAME   = "Effekt"       # Used when type "1" "2" is selected
        CONFIG_ME_NAME   = "Andere"       # Used when type "2" is selected
        CONFIG_EXIT_NAME = "OK"
      else
        if $game_switches[598] # Espagnol
          TITLE_NAME       = "Volumen"  # Item name to be displayed on title screen
          MENU_NAME        = "Volumen"   # Name of the setting in Main Menu.
          CONFIG_ALL_NAME  = "MASTER"   # Used when type "0" is selected
          CONFIG_BGM_NAME  = "Mùsica"    # Used when type "1" "2" is selected
          CONFIG_BGS_NAME  = "Ambiante"  # Used when type "2" is selected
          CONFIG_SE_NAME   = "Efecto"       # Used when type "1" "2" is selected
          CONFIG_ME_NAME   = "Otros"       # Used when type "2" is selected
          CONFIG_EXIT_NAME = "OK"
        else
          if $game_switches[599] # Russe
            TITLE_NAME       = "Громкость"  # Item name to be displayed on title screen
            MENU_NAME        = "Громкость"   # Name of the setting in Main Menu.
            CONFIG_ALL_NAME  = "MASTER"   # Used when type "0" is selected
            CONFIG_BGM_NAME  = "Музыка"    # Used when type "1" "2" is selected
            CONFIG_BGS_NAME  = "окружающая среда"  # Used when type "2" is selected
            CONFIG_SE_NAME   = "Эффект"       # Used when type "1" "2" is selected
            CONFIG_ME_NAME   = "Другие"       # Used when type "2" is selected
            CONFIG_EXIT_NAME = "OK"
          else
            if $game_switches[600] # Portugais
              TITLE_NAME       = "Volume"  # Item name to be displayed on title screen
              MENU_NAME        = "Volume"   # Name of the setting in Main Menu.
              CONFIG_ALL_NAME  = "MESTRE"   # Used when type "0" is selected
              CONFIG_BGM_NAME  = "Mùsica"    # Used when type "1" "2" is selected
              CONFIG_BGS_NAME  = "Ambiante"  # Used when type "2" is selected
              CONFIG_SE_NAME   = "Efeito"       # Used when type "1" "2" is selected
              CONFIG_ME_NAME   = "Outros"      # Used when type "2" is selected
              CONFIG_EXIT_NAME = "OK"
            else
              if $game_switches[601] # Turc
                TITLE_NAME       = "Cilt"  # Item name to be displayed on title screen
                MENU_NAME        = "Cilt"   # Name of the setting in Main Menu.
                CONFIG_ALL_NAME  = "USTA"   # Used when type "0" is selected
                CONFIG_BGM_NAME  = "Müzik"    # Used when type "1" "2" is selected
                CONFIG_BGS_NAME  = "Ortam"  # Used when type "2" is selected
                CONFIG_SE_NAME   = "Etki"       # Used when type "1" "2" is selected
                CONFIG_ME_NAME   = "Diğerleri"       # Used when type "2" is selected
                CONFIG_EXIT_NAME = "TAMAN"
              else
                if $game_switches[602] # Italien
                  TITLE_NAME       = "Volume"  # Item name to be displayed on title screen
                  MENU_NAME        = "Volume"   # Name of the setting in Main Menu.
                  CONFIG_ALL_NAME  = "MASTER"   # Used when type "0" is selected
                  CONFIG_BGM_NAME  = "Musica"    # Used when type "1" "2" is selected
                  CONFIG_BGS_NAME  = "Ambiante"  # Used when type "2" is selected
                  CONFIG_SE_NAME   = "Effetto"       # Used when type "1" "2" is selected
                  CONFIG_ME_NAME   = "Altro"       # Used when type "2" is selected
                  CONFIG_EXIT_NAME = "OK"
                else
                  if $game_switches[603] # Ukrainien
                    TITLE_NAME       = "Volume"  # Item name to be displayed on title screen
                    MENU_NAME        = "Volume"   # Name of the setting in Main Menu.
                    CONFIG_ALL_NAME  = "MASTER"   # Used when type "0" is selected
                    CONFIG_BGM_NAME  = "Music"    # Used when type "1" "2" is selected
                    CONFIG_BGS_NAME  = "ambiant"  # Used when type "2" is selected
                    CONFIG_SE_NAME   = "SE"       # Used when type "1" "2" is selected
                    CONFIG_ME_NAME   = "ME"       # Used when type "2" is selected
                    CONFIG_EXIT_NAME = "Exit" 
                  else
                    if $game_switches[761] # Neerlandais
                      TITLE_NAME       = "Обсяг"  # Item name to be displayed on title screen
                      MENU_NAME        = "Обсяг"   # Name of the setting in Main Menu.
                      CONFIG_ALL_NAME  = "MASTER"   # Used when type "0" is selected
                      CONFIG_BGM_NAME  = "Музика"    # Used when type "1" "2" is selected
                      CONFIG_BGS_NAME  = "ембієнт"  # Used when type "2" is selected
                      CONFIG_SE_NAME   = "Ефект"       # Used when type "1" "2" is selected
                      CONFIG_ME_NAME   = "Інші"       # Used when type "2" is selected
                      CONFIG_EXIT_NAME = "ДОБРЕ" 
                    else
                      if $game_switches[762] # Chinois
                        TITLE_NAME       = "音量"  # Item name to be displayed on title screen
                        MENU_NAME        = "音量"   # Name of the setting in Main Menu.
                        CONFIG_ALL_NAME  = "主人"   # Used when type "0" is selected
                        CONFIG_BGM_NAME  = "音乐"    # Used when type "1" "2" is selected
                        CONFIG_BGS_NAME  = "环境"  # Used when type "2" is selected
                        CONFIG_SE_NAME   = "效果"       # Used when type "1" "2" is selected
                        CONFIG_ME_NAME   = "其他"       # Used when type "2" is selected
                        CONFIG_EXIT_NAME = "確定" 
                      else #$game_switches[37] #Anglais
                          TITLE_NAME       = "Volume"  # Item name to be displayed on title screen
                           MENU_NAME        = "Volume"   # Name of the setting in Main Menu.
                           CONFIG_ALL_NAME  = "MASTER"   # Used when type "0" is selected
                           CONFIG_BGM_NAME  = "Music"    # Used when type "1" "2" is selected
                           CONFIG_BGS_NAME  = "Ambiant"  # Used when type "2" is selected
                           CONFIG_SE_NAME   = "Effect"       # Used when type "1" "2" is selected
                           CONFIG_ME_NAME   = "Others"       # Used when type "2" is selected
                           CONFIG_EXIT_NAME = "OK"
                      end
                    end
                  end
                end
              end
            end
          end
        end
      end
    end
# fin du code que j'ai ajouté
 
    # ● Volume adjustment by Increments
    ADD_VOL_NORMAL =  5              # Amount of increment of left and right keys
    ADD_VOL_HIGH   = 25              # LR Variation amount of key
 
    # ● Window width of volume setting screen
    WINDOW_WIDTH   = 200
 
    # ● Volume gauge color from the menu interface
    COLOR1 = Color.new(255, 255, 255)
    COLOR2 = Color.new( 64,  64, 255)
 
    # ● Save function of volume setting
    #    Game.ini, By storing volume information in
    #    You can also adjust the volume when you start up
    #    true  …… Save
    #    false …… Don't save
    USE_INI = true
  end
end
 



J'utilise la même série de "IF / ELSE" dans d'autres script et ça fonctionne. (mais ils sont insérés dans un "DEF"
Est ce que le IF/ELSE est interdit dans un "module" ?


Gari - posté le 13/09/2022 à 15:20:16 (5901 messages postés) - honor

❤ 0

Il te manque un # devant ta première ligne de ==================, déjà. Mais il est sans doute présent dans ton script d'origine.
Et il te manque un true/false sur tes switches, là on sait pas trop ce qu'ils font.

Portion de code : Tout sélectionner

1
if $game_switches[x] = true



Aller à la page 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

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

repondre up

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