RME icon indicating copy to clipboard operation
RME copied to clipboard

L'utilisation de «event_tone» avec wait_flag == true annule les modifications aux variables locales

Open mamie-nani opened this issue 5 years ago • 1 comments

Problème lié à une commande

Configuration (lorsque le bug a été rencontré)

  • Version de RME : 2.0 ou 2.1 (testé sur 2.0.0, présent a priori identiquement sur 2.1.0)
  • Commande : event_tone avec wait_flag == true

Description du bug

Lorsque j'utilise la commande event_tone avec un wait_flag == true ; les variables locales / labels locaux dont j'ai changé la valeur dans le même appel de script vont revenir à la valeur qu'ils avaient avant l'appel de script, à la fin de celui-ci. Self-switch non-testés. Les labels et variables globaux ne sont pas concernés. Seule event_tonea été testée, mais d'autres commandes peuvent être également porteuses du même bug je suppose.

Étapes permettant de reproduire le problème

Appel de script event_tone(me, tone(255, 170, 170, 255), 20, true) SL[ :a2 ] = 80 p "#{ SL[ :a2 ] } premier appel de script" #=> 80

Appel de script p "#{ SL[ :a2 ] } second appel de script" # => 0

mamie-nani avatar Jan 13 '20 20:01 mamie-nani

Salut ! En fait, les commandes qui peuvent attendre doivent être "unique" dans un appel de script et "tout dernier". Cela s'explique par la manière dont RPGMaker (pas RME) gère la notion de parallélisme.

Une solution, pour résoudre ton problème serait de faire :

script: event_tone(me, tone(255, 170, 170, 255), 20, true)
script: SL[:a2] = 80 # dans un autre appel de script

Actuellement, je ne sais pas encore comment documenter ça, donc je laisse l'issue ouverte.

xvw avatar Jan 14 '20 14:01 xvw