Closed Zer0zer0x closed 6 years ago
Je suis en train de voir cette histoire et je pense que l'on ne va rien changer. Je pense que c'est une très mauvaise pratique de "balayer" les ID d'events principalement à cause de ce genre de problèmes là. Pour éviter ce genre de soucis, je pense que tu devrais essayer d'utiliser les sélecteurs 'évènement. http://www.rpgmakervx-fr.com/t20432-tuto-rme-base-selecteurs Ils vont te renvoyer une liste d'ids que tu vas pouvoir exploiter ensuite. Là tu seras sur de ne jamais taper dans un évent qui n'existe pas.
Je connais déjà ces sélecteurs et ne peux pas m'en servir dans mon cas de figure. :( (Réinitialiser totalement une map quand on en sort, y compris les événements qui ont été invoke dessus.)
Suffit que tu gardes dans une variable l'ID de tous les events que t'as créé non ?
ou alors utiliser http://rmex.github.io/RMEDoc/#fresh_event_id qui construit intelligement les ID d'event en cas d'invocation :)
J'utilise déjà fresh_event_id... :/ Pourquoi s'obstiner à ne pas laisser le jeu tourner en ignorant l'erreur comme je l'ai demandé ? :(
Vous êtes vilains.
Après, si tu veux vraiment empècher de planter... t'as juste à faire ça :
erase_event(id) rescue nil
Ca te permet d'ignorer l'erreur toi même. Si on bloque l'erreur comme tu le souhaite, ça risque d'induire en erreur les gens qui vont executer la commande, croire que tout s'est bien passé alors que l'event existe pas. Maintenant si nous, programmeurs expérimentés, te disons que ta méthode n'est pas une bonne idée c'est peut être que c'est vraiment une mauvaise idée et que ça risque d'avoir des impacts très négatifs sur les performances de ton jeu. Bref, tu as tes deux solutions.
Je vais faire crade avec rescue (je connaissais pas) ! Merci beaucoup ! ^^
Salut ! Si j'utilise event_erase(4) et que l'événement "4" n'existe pas, le jeu plante.
Ca arrive malheureusement dans certains processus par balayage que je ne peux pas autant contrôler que ça... :(
C'est d'autant plus embêtant que RPG Maker crée parfois des "Trous" entre les ID (genre 4, 5, 7 avec un 6 manquant, parce qu'on l'a delete dans l'éditeur et qu'RM n'adapte pas à la volée).
Serait-il possible de simplement ignorer la commande dans ce genre de cas, pour éviter le crash ? :)
Des bisous !