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

Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Sorties: Dread Mac Farlane - episode 6 / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

353 connectés actuellement

29371248 visiteurs
depuis l'ouverture

1007692 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Le Comptoir Du clickeur

Le Temple de Valor

Alex d'Or

Kingdom Ultimate

Eclipso

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [MV][plugin] Erreur dans un plugin que j'ai créé


LizyEe - posté le 22/08/2016 à 12:15:13 (22 messages postés)

❤ 0

Domaine concerné: javascript
Logiciel utilisé: MV
Bonjour, j'ai une erreur que je n'arrive pas à comprendre dans mon script, je pense que ça a un rapport avec la porter des fonctions/variables mais je ne trouve aucun moyen de résoudre l'erreur :(.

Ici je crée une variable 'this._selfConditions = {};' dans initialize de Game_Event, puis je crée deux nouvelle fonctions pour y avoir accès :
- setSelfConditionTemp(key, value)
- getSelfConditionTemp(key)

Je fait une sorte de Game_SelfSwitches mais dans l'événement même, pour le moment tout fonctionne même avec une commande script :
- $gameMap.event(this._eventId).setSelfConditionTemp([this._mapId, this._eventId, "A"], true);.
et une condition script :
- $gameMap.event(this._eventId).getSelfConditionTemp([this._mapId, this._eventId, "A"]);

La ou arrive l'erreur c'est quand je test directement dans la fonction 'meetsConditions(page)' de Game_Event, lorsque j'utilise this.getSelfConditionTemp(key) sa ne fonctionne plus :x.

Pastebin : http://pastebin.com/396YLcb2

Vous savez pourquoi j'ai une erreur ?


Tassle - posté le 22/08/2016 à 13:32:03 (5234 messages postés)

❤ 0

Disciple de Pythagolf

Jamais fait de javascript donc je vais ptêt' dire une connerie mais tu as bien défini la valeur de _selfConditions[key] avant de tenter d'y accéder ? Parce que si tu appelles pas setSelfConditionTemp avant ton hash est vide.

~~


LizyEe - posté le 22/08/2016 à 14:33:12 (22 messages postés)

❤ 0

Bah en faite non car en événement quand je fait ceci ça fonctionne:

> Condition : $gameMap.event(this._eventId).getSelfConditionTemp([this._mapId, this._eventId, "A"]);
--> Message : "Ok"
> Sinon :
--> $gameMap.event(this._eventId).setSelfConditionTemp([this._mapId, this._eventId, "A"], true);
> Fin

J'ai placer un 'alert("La fonction a été appeler ! (Key : " + key + ")");' dans la fonction 'getSelfConditionTemp(key)' c'est comme un print("") en ruby, et les deux appels différent ont la même valeur key.

Portion de code : Tout sélectionner

1
2
3
4
5
Game_Event.prototype.getSelfConditionTemp = function(key) {
    alert("La fonction a été appeler ! (Key : " + key + ")");
    // Problème avec this.getSelfConditionTemp(key) : Cannot read property '[object Array]' of undefined
    return this._selfConditions[key] == true ? true : false;
};



Du coup en événement et avec 'this.getSelfConditionTemp(key)' il me dit bien l'alerte, sauf que avec 'this.getSelfConditionTemp(key)' sa me dit que le key n'est pas défini, hors le key est bien égale à [this._mapId, this._eventId, c.selfSwitchCh] :surpris3.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
var _Game_Event_meetsConditions = Game_Event.prototype.meetsConditions;
Game_Event.prototype.meetsConditions = function(page) {
    var c = page.conditions;
    if (c.selfSwitchValid) {
        var key = [this._mapId, this._eventId, c.selfSwitchCh];
        // Appel de this.getSelfConditionTemp(key)
        if ($gameSelfSwitches.value(key) !== true && this.getSelfConditionTemp(key)) {
            return false;
        }
    }
    return true;
};




Tassle - posté le 22/08/2016 à 15:38:52 (5234 messages postés)

❤ 0

Disciple de Pythagolf

Ouais en fait je crois que je capte que dalle à comment fonctionne la syntaxe du javascript x) Désolé
Par contre ça je pense que même en javascript c'est caca :

Portion de code : Tout sélectionner

1
return this._selfConditions[key] == true ? true : false;


T'as pas besoin d'un opérateur ternaire pour ça :V
(ça corrige pas ton problème mais voilà, faudra attendre qu'un mec qui s'y connaisse passe ici)

~~


LizyEe - posté le 22/08/2016 à 16:24:54 (22 messages postés)

❤ 0

Pas de souci ahah, moi ça fait que 2 jours que j'ai commencer le javascript et c'est plus dur/bordélique que le ruby :grah1.

Ah oui ta raison, je test un boolean pour renvoyer un boolean :lol.


Aminomad - posté le 22/08/2016 à 19:49:58 (150 messages postés)

❤ 0

En fait au moment de l'initialisation de Game_Event, tu appelles l'ancienne définition de initialize, qui appelle la fonction refresh(), qui appelle la fonction findProperPageIndex(), qui appelle la fonction meetsConditions, qui essaie d'accéder à _selfConditions.
Or à ce moment là, cet objet n'existe pas puisque c'est la ligne suivante dans ton nouveau initialize qui le définit.

Du coup je pense qu'en inversant les deux lignes, ça devrait marcher:

Portion de code : Tout sélectionner

1
2
3
4
    Game_Event.prototype.initialize = function(mapId, eventId) {
        this._selfConditions = {};
        _Game_Event_initialize.call(this, mapId, eventId);
    };



The Lone Chameleon


LizyEe - posté le 22/08/2016 à 22:02:16 (22 messages postés)

❤ 0

Hannnnn mais alors c'était juste à cause de ça !, je me sans vraiment nulle tout d'un coup car j'ai eu du mal à trouver l'erreur, je suis aller plein de fois dans Game_Event pour finalement passer à coter du plus évident, Tassle avais presque raison 'this._selfConditions = {};' n'était pas défini X).
Au final c'est comme les blagues, la réponse est tellement évidente qu'on la trouve pas :sriden.

Bon à l'avenir si j'ai une erreur la première chose que je vais faire c'est de regarder les appel des fonctions !

Merci pour votre aide ! :sourit


Aminomad - posté le 22/08/2016 à 22:31:50 (150 messages postés)

❤ 0

C'est souvent comme ça que ça se passe, on peut passer des heures à chercher pour une virgule mal placée. :fou
En tout cas, tu as l'air de bien gérer, ton code est propre et méthodique (tout le contraire du mien).
Je suis un peu jaloux... :doute6
Bonne continuation !

The Lone Chameleon

Index du forum > Entraide > [RESOLU] [MV][plugin] Erreur dans un plugin que j'ai créé

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