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

News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / News: RPG Maker With / Site: Oniro va mieux / Site: Problèmes sur Oniro / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

563 connectés actuellement

30679041 visiteurs
depuis l'ouverture

1338 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Tashiroworld

Kingdom Ultimate

Level Up!

Le Temple de Valor

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RPG Maker MV] Perte de TP via Script (Résolu)


La Machine Infernal - posté le 06/09/2017 à 15:03:23 (172 messages postés)

❤ 0

Domaine concerné: Script
Logiciel utilisé: RPG Maker MV
Alors voila, je cherche a faire un système de forme. Le personnages a le choix entre trois formes, l'une d'entre elle, la forme défensive, fait que les les dégâts subis sont diminués mais a chaque fois que le perso se prend des dégâts, son endurance (le nom que j'ai donné a la barre de TP dans mon jeu) diminue d'une valeur fixe.

Sauf que voila, tout marche correctement mis a part le fait que quand le joueur subis des dégâts, il se passe rien, les TP ne changent pas.

J'utilise le plugin Buff and State Core de Yanfly.
Voila le notetag que j'ai mis dans l'état.
image

Ce qui est étrange, c'est que j'ai un autre état similaire qui fonctionne. Du coup, je sais plus trop pourquoi ça ne fonctionne pas :

image

Ça fait un petit bout de temps que je me casse les dents sur ce problème. Du coup me voila !!
Merci d'Avance pour vos réponses !!


HuLijin - posté le 06/09/2017 à 16:39:20 (1004 messages postés)

❤ 0

Yeoun, mage-archère-louve

Buff ans State de Yanfly

Custom Respond Effect = This effect will run when the battler is selected as a target. This will occur only if the action connects and will occur after damage execution. This effect will run after damage calculation occurs. The ‘value’ variable is equal to the damage dealt to the battler. This is the first effect to run after damage execution has taken place.
Ok, donc tu veux que ton perso perde des TP à chaque fois qu'il se fait toucher. Mais, d'après ton code, uniquement s'il se fait toucher par des dommages physiques qui ne le régénèrent pas. J'ai bon ?

T'es sûr que tu vérifies ta condition this.isPhysical() ?
Pour tester, écris ça dans ton notetag :
if (this.isPhysical()){
console.log("premiere condition verifiee");
if (value>0) {
console.log("seconde condition verifiee");
user.gainTp(-5);
}
}

Appuies sur f8 pour accéder à la console.
Ça t'apporte pas la solution, mais t'y verras plus clair.

M.V.


La Machine Infernal - posté le 06/09/2017 à 17:00:11 (172 messages postés)

❤ 0

Ha c'est bien ce que je craignait.
Il me met condition vérifiée pour les deux. Le problème doit donc venir du gain de TP en lui même. parce que le gain de TP positifs fonctionne (comme dans mon second exemple) mais apparemment, le gain de TP avec une valeur négative ne fonctionne pas. C'est la conclusion a laquelle j'arrive si mon raisonnement n'est pas mauvais.

Du coup, la vrai question, c'est pas plutôt, comment faire perdre des TP via un appel de script ?

Si quelqu'un connait la solution, je la veux bien. Je peux toujours chercher dans le code de base de RPG Maker, ça va me prendre du temps mais je finirait par la trouver.


HuLijin - posté le 06/09/2017 à 17:04:46 (1004 messages postés)

❤ 0

Yeoun, mage-archère-louve

Je vais regarder ça.
La focntion doit bien exister quelque part.

Edit : vla la fonction (ce genre de trucs, tu le trouveras dans rpg_objects.js)

Portion de code : Tout sélectionner

1
2
3
4
Game_Battler.prototype.gainTp = function(value) {
    this._result.tpDamage = -value;
    this.setTp(this.tp + value);
};



Et sa copine :

Portion de code : Tout sélectionner

1
2
3
4
Game_BattlerBase.prototype.setTp = function(tp) {
    this._tp = tp;
    this.refresh();
};



Et pour finir

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
Game_BattlerBase.prototype.refresh = function() {
    this.stateResistSet().forEach(function(stateId) {
        this.eraseState(stateId);
    }, this);
    this._hp = this._hp.clamp(0, this.mhp);
    this._mp = this._mp.clamp(0, this.mmp);
    this._tp = this._tp.clamp(0, this.maxTp());
};



Donc a priori rien qui bloque.

Il n'y aurait pas un script de Yanfly qui vient mettre le boxon là-dedans par hasard ?
Ou alors tu n'appliques pas la fonction au bon user ?

(console.log(user.name());)

M.V.


La Machine Infernal - posté le 06/09/2017 à 18:13:00 (172 messages postés)

❤ 0

Je me demande si le problème viendrait pas de ce plugin que j'utilise pour modifier le fonctionnement de la barre de TP. Parce que c'est le bon user. C'est vraiment la fonction qui ne fonctionne pas apparemment.


HuLijin - posté le 06/09/2017 à 18:37:03 (1004 messages postés)

❤ 0

Yeoun, mage-archère-louve

Je te laisse regarder. C'est peut-être lui, peut-être un autre. Mais vu qu'il a des commandes pour bypasser le setTp(), de ce que j'ai compris, c'est possible.

Ou alors j'ai raté quelque chose d'obvious dans le code.

Le plus simple, c'est de créer un nouveau fake projet, y transférer tous tes plugins, refaire le minimum syndical dans la BDD pour pouvoir faire un combat avec ton état custom. Et tu actives dans un premier temps uniqument ton script yanfly (et éventuellement ses dépendances).

Si ça fonctionne comme prévu, c'est que t'as un autre plugin qui vient tout casser. Tu les réactives jusqu'à trouver ton (tes?) fautif.

Si ça fonctionne pas comme prévu, soit c'est dans le plugin de Yanfly ou ses dépendances qu'il se passe quelque chose, soit j'ai définitivement loupé quelque chose dans le code.

À ce stade, je peux plus faire grand chose :/
Bon courage.

M.V.


La Machine Infernal - posté le 07/09/2017 à 21:01:58 (172 messages postés)

❤ 0

J'ai testé plein de truc ça fonctionnait pas. Finalement, il semble que le plugin dont j'ai parlé n'est pas la cause du problème.

Malgré tout j'ai trouvé une solution. J'ai tout simplement créé un événement commun qui fait perdre des TP a l'acteur que j'ai appelé via le ce script :

$gameTemp.reserveCommonEvent(n);

Comme chaque acteurs a des compétences uniques, ça n'a pas posé de problème.

Index du forum > Entraide > [RESOLU] [RPG Maker MV] Perte de TP via Script (Résolu)

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