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: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / News: RPG Maker With / Site: Oniro va mieux / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

173 connectés actuellement

30694713 visiteurs
depuis l'ouverture

1362 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Leo-Games

ConsoleFun

Guelnika & E-magination

RPG Maker - La Communauté

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RPG Maker XP] Désactiver le crash "script is hanging"


Roi of the Suisse - posté le 05/11/2024 à 22:14:16 (30306 messages postés) - honor -

❤ 0

Chanter l'hyperchleuasme

Domaine concerné: script
Logiciel utilisé: RPG Maker XP
Ohé ohé :salut

Connaissez-vous le fameux crash "script is hanging" de RPG Maker XP ? C'est une protection merdique native du logiciel quand la map met plus de 10 secondes à charger.

image

J’ai un joueur qui rencontre le souci sur une map avec 50 événements. Mais bon parfois dans un jeu c’est normal d’avoir une map avec 50 événements. C’est assez rare mais ça arrive. J’essaye toujours d’être économe, je sais que RMXP est vite ralenti quand on lui en demande trop.

Ça arrive plus sur les vieux PC lents que sur les PC de gamers neufs évidemment. Le jeu tourne bien sur certains PC, et sur d'autres pas.

On conseille aux gens qui ont ça :
- de redémarrer leur ordi, peut-être qu'il sera plus rapide au démarrage (la mémoire une fois vidée)
- de démarrer le jeu en mode administrateur
- d'éteindre les autres logiciels (navigateur, Skype, antivirus, ...)

Mais bon, quand même, c'est un peu insatisfaisant comme conseils.

Est-ce qu'il y a un moyen connu de désactiver cette protection de RPG Maker XP ? Je n'ai rien trouvé sur internet.
Il faudrait décompiler l'exécutable de RPG Maker, et remplacer la limite de 10 secondes à 60 secondes, voire la virer carrément ? :fache2:fache2:fache2

Si quelqu'un a une piste, je suis preneur :doute2

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


Roi of the Suisse - posté le 05/11/2024 à 22:53:40 (30306 messages postés) - honor -

❤ 0

Chanter l'hyperchleuasme

Une solution connue est de repérer l'endroit du code un peu lent (souvent une boucle), et y mettre un Graphics.update. Ça marche, mais ça ne garantit pas à 100% que le jeu ne crashera pas ailleurs, s'il y a une autre cause de lenteur :-/

Je vais faire ça dans un premier temps. C'est un bon compromis.

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


Crystal - posté le 05/11/2024 à 23:01:25 (2138 messages postés) -

❤ 1

La seule façon, à ma connaissance, est d'appeler Graphics.update dans la boucle en question. Le comportement est implémenté dans le code du moteur, et même si tu étais en mesure de modifier le code décompilé de la DLL, c'est très difficile sans expertise en code assembleur.

Optionnellement, tu peux enregistrer la valeur de Time.now et la comparer dans une condition style:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
t = Time.now
while (something)
    do_something
    if Time.now - t > 5
        Graphics.update
        t = Time.now
    end
end



Cette comparaison avec Time.now permet de ne pas rallonger la durée de la boucle inutilement. La valeur 5 correspond à 1 frame ajoutée par 5 secondes, décidée arbitrairement, mais n'importe quoi sous 10 devrait être bon, quoique ça ne changera vraiment pas grand-chose à cette échelle. Tu peux aussi avoir une fonction style safe_loop pour la réutiliser ergonomiquement:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
def safe_loop
    t = Time.now
    while true
        yield
        if Time.now - t > 5
            Graphics.update
            t = Time.now
        end
    end
end



Et ensuite dans ton code l'utiliser comme une boucle loop do:

Portion de code : Tout sélectionner

1
2
3
4
safe_loop do
    do_something
    break if (something)
end




Roi of the Suisse - posté le 05/11/2024 à 23:32:28 (30306 messages postés) - honor -

❤ 1

Chanter l'hyperchleuasme

Oui, j’ai fait un truc exactement comme ça, avec un Graphics.update toutes les 5 secondes :sourit

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

Index du forum > Entraide > [RPG Maker XP] Désactiver le crash "script is hanging"

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