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

Apprendre
RPG Maker

Guides
Tutoriels
Making-of

Dans le
Forum

Section Entraide

Tutos: Approximer les fonctions cos et (...) / News: RMN Music Pack 2 enfin sorti ! / Divers: RPG Maker Paper patch 1.5.6 / Interviews: FoxFiesta (Aurélien Dos (...) / News: Alex d'or 2020 : Fin des tests et (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

118 connectés actuellement

10768817 visiteurs
depuis l'ouverture

8 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Level Up!

Alex d'Or

Zarok

Lumen

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [MV] Codeur - Seller un équipement


kingdommangas - posté le 04/06/2018 à 13:26:12 (353 messages postés)

❤ 0

Youtubeur/Scenariste

Domaine concerné: Script
Logiciel utilisé: MV
Yahallo,

Je viens implorer votre aide cher camarade maker ^^

Alors voici le topo:

-Dans mon jeu, j'utilise le plugin Magic Shard de Galv. (Vous pouvez regarder mais vous en aurait pas besoin normalement) pour faire un systeme d'orbe.

-Je m'en sert pour donner des compétences passives a mes personnages.

-Les orbes sont ranger dans les armes de la BBD et sous le type d'arme "Orbe" comme le plugin le veut.

-Parmi les compétences passive, il y a les bonus de stat: CAD
--> PV Max + 10%
--> Att + 10%
Mais j'ai également un bonus de stats + qui réunit les 8 stats de bases.

-J'ai un autre plugin qui m'interdit de m'équiper 2 fois d'un bonus ayant le même ID sachant que j'attribue moi même les ID aux bonus.

Concrètement voici le problème:
-Je ne veux pas que le joueur cumule les bonus stats simples et les bonus stats +

Pour cela j'ai déjà réfléchis à 3 solutions:
-Donner le même ID a tous les Bonus Stat, ainsi pas de cumul, mais le joueur ne pourra s'équiper que d'un bonus stat à la fois et autant je ne veux pas qu'il cumule 2 stats identiques, autant le cumul de différents stats ne me dérange pas.

-Supprimer les bonus Stats +, ca m'ennuierai d'en arriver là imageimage :triste2

-Interdire de s'équiper de bonus stats simple lorsqu'on est équipé d'un bonus stats + et inversement.
Mon idéal :D

Le problème c'est que la BBD me donne la possibilité de seller une compétence, un type de compétence ou une partie de l'armure (tete, bras, acessoire, etc...) sans inclure le type d'arme ou d'armure.

Je voudrais donc l'y inclure en code au moyen d'un notetag mais je dois avoué que je n'ai pas la moindre idée de comment m'y prendre.
Pouvez vous m'aider ?

:sourire2

Mes jeux: Astyria~Ouroboros~Chaine Youtube: RM Test| Inscription Chaine Youtube


HuLijin - posté le 04/06/2018 à 14:31:59 (853 messages postés)

❤ 0

Yeoun, mage-archère-louve

Fais voir ton autre plugin, ce sera sans doute plus simple d'altérer celui-là en attribuant plusieurs "ID" à un seul objet.

Accessoirement, chez moi je peux sceller un type d'équipement justement (ou un slot en l'occurence, la traduction en anglais est zarb). Qu'est ce que t'appelles type d'équipement ? Un sous-groupe des types que tu peux définir avec tes ID ?

Ça peut se faire aussi avec les notetags mais je m'y suis pas spécialement intéressée encore. Il y a des tutos qui trainent pour apprendre comme celui-ci. Le plus chiant, c'est de comprendre les expressions régulières, ensuite ça va tout seul. Pareil, il y a des sites sur le net pour s'aider à créer des expressions régulières en JS.

Tu peux faire quelque chose de beaucoup plus simple aussi avec des notetabs simplifiés (du style <nom:valeur>).
Pour vérifier qu'un objet (appelé object ici) a bien ce tag :

Portion de code : Tout sélectionner

1
object.meta.nom === 'valeur' 



Pour accéder à la valeur :

Portion de code : Tout sélectionner

1
object.meta.nom



(Faut bien sûr changer objet par ce que tu veux manipuler, ça peut être plein de choses en fonction de ce que tu veux faire. Je peux pas trop te dire ce que tu dois écrire pour remplacer object dans le code. Edit : t'as un exemple plus bas, item.data.shard par exemple.)

Ensuite, pour la partie de code à modifier pour les équipements pour tenir compte de ton notetag, je peux te dire où elle se trouve dans le code de base, mais je suppose fortement que ton 2eme plugin la modifie déjà. Du coup ça ne servirait pas à grand chose.

M.V.


kingdommangas - posté le 04/06/2018 à 15:20:57 (353 messages postés)

❤ 0

Youtubeur/Scenariste

Citation:

Fais voir ton autre plugin, ce sera sans doute plus simple d'altérer celui-là en attribuant plusieurs "ID" à un seul objet.


Ca, je le ferais ce soir, je suis au taf oui je sait c'est pas bien :p

Citation:

Qu'est ce que t'appelles type d'équipement ?


Admettons tu crée deux armes:
-épée a une main
-épée a deux mains
et deux classes:
-paladin
-soldat

Dans les classes tu indique que le soldat peut s'équiper de l'arme a une main alors que le paladin peu s'équiper des deux.
C'est cela le type d'équipement

Ce que l'on peu sceller c'est le slot tête, bras, acessoire, etc...
sauf que le plugin de galv crée une page spéciale pour s'équiper des orbes, ce n'est pas dépendant du système de base.

Pour le notetag c'est parce que le plugin de galv en utilise de base, pour donner un ID aux armes concerné.
Il y a aussi un block note associer aux fichier data, ca peu être utile aussi.
Celui de galv sert a associer 2 armes pour obtenir une compétence Y mais je ne l'utilise pas, en tout cas pas en l'état.

Pour le reste j'y répondrais ce soir car c'est la fin de ma pause ( TT ~ TT )

Mes jeux: Astyria~Ouroboros~Chaine Youtube: RM Test| Inscription Chaine Youtube


HuLijin - posté le 04/06/2018 à 15:38:19 (853 messages postés)

❤ 0

Yeoun, mage-archère-louve

Ok, ce que tu appelles type d'équipement, c'est ce qui s'appelle type d'arme et type d'armure dans la version anglaise. Y a une autre catégorie qui s'appelle réellement type d'équipement et qui correspond effectivement aux slots. La VF doit être moins pourrie.

En fait au fin fond de ton fichier d'aide pour le plugin de Galv, t'as des indications sur les fonctions à utiliser.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
 *  $gameActors.actor(x).hasShard(id,type)   - x is the actor's ID 
 *                                           - type can be 'weapon' or 'armor'
 *                                           - (including quotes on those)
 *                                           - id is the equip's databse ID
 *
 *  $gameActors.actor(x).hasShard(id)   - x is the actor's ID
 *                                      - id is the Shard ID (specified in the
 *                                      - external text file)



Faut que tu montres ton second plugin pour voir comment il édite les fonctions Game_BattlerBase.prototype.canEquip(item) ou Game_BattlerBase.prototype.canEquipWeapon(item) et ajouter une condition du style !(this.hasShard(ID1) && item.data.shard === ID2) avec ID1 et ID2 les indices qui ne peuvent pas coexister.
A priori t'as 8 conditions à tester si j'ai tout suivi. (x2 si c'est le cas inverse qui se présente).
À noter que le plugin de Galv modifie déjà une première fois Game_BattlerBase.prototype.canEquip(item).

Tes armes ont combien d'ID finalement ? Un pour chaque plugin ou ton deuxième plugin est une extension de celui de Galv et reprend l'ID du tag shard ?

M.V.


kingdommangas - posté le 04/06/2018 à 20:17:03 (353 messages postés)

❤ 0

Youtubeur/Scenariste

Le second code

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var SagePanda = SagePanda || {};
SagePanda.MS = SagePanda.MS || {};
 
(function() {
 
// Can't equip same shard id
SagePanda.MS.Game_BattlerBase_canShardEquip = Game_BattlerBase.prototype.canShardEquip;
Game_BattlerBase.prototype.canShardEquip = function(item) {
if(!item) return false;
if(this.hasShard(item.isShard)) return false;
return SagePanda.MS.Game_BattlerBase_canShardEquip.call(this,item);
};
 
})();



Citation:

Tes armes ont combien d'ID finalement ? Un pour chaque plugin ou ton deuxième plugin est une extension de celui de Galv et reprend l'ID du tag shard ?



Le second plugin réutilise l'ID du 1er

Citation:

-- To check if anyone in the party has the shard:

$gameParty.hasShard(id,type)
$gameParty.hasShard(id)



Ca donne effectivement une partie de la solution, avec l'appel de plugin :pense

Portion de code : Tout sélectionner

1
 MSHARDS CHANGE ACTORID X S   // Change an actor's shard in a certain slot

Mes jeux: Astyria~Ouroboros~Chaine Youtube: RM Test| Inscription Chaine Youtube


HuLijin - posté le 04/06/2018 à 21:58:04 (853 messages postés)

❤ 0

Yeoun, mage-archère-louve

Bon ben du coup t'as tout ce qu'il te faut pour modifier ta fonction là.
Faut que je re regarde ce que renvoie item.isShard (a priori une fonction qui renvoie item.data.shard). Suffit ensuite de rajouter la condition énoncée plus haut, sous une forme plus élégante, avant le return, et ça devrait être suffisant.
Essaie un peu de voir comment faire de ton coté et si vraiment tu trouves pas, je te proposerai un truc.

(si dernier cas, je veux bien que tu me files les fichiers de ta base de données histoire que je puisse tester sans avoir à recréer moi-même des orbes)


L'appel de plugin a rien à voir là-dedans.

M.V.


kingdommangas - posté le 05/06/2018 à 05:52:02 (353 messages postés)

❤ 0

Youtubeur/Scenariste

:doute6
J'ai pas la possibilité d'entrée du code ou un event commun dans une arme

Mes jeux: Astyria~Ouroboros~Chaine Youtube: RM Test| Inscription Chaine Youtube


HuLijin - posté le 05/06/2018 à 10:36:27 (853 messages postés)

❤ 0

Yeoun, mage-archère-louve

Non, effectivement. Si tu es toujours sur l'idée d'altérer les notetags, oublie ça, c'est la méthode la plus longue.

Modifie plutôt le plugin de SagePanda. Son plugin est lui-même une altération de celui de Galv. En faisant comme ça, tu n'as pas besoin de toucher à ta base de données.
(.isShard renvoie 0 si ton objet en base de données n'a pas d'ID et renvoie l'ID sinon. Tu peux le considérer comme une variable supplémentaire attachée aux armes et armures.)

Au niveau des crédits, tu précises quelque part que le plugin de Sage Panda n'est pas la version originelle pour quand tu déploieras ton jeu, et tu mets un lien vers le plugin originel, et c'est tout bon.

Edit : j'ai testé directement dans la démo de Galv, et ce bout de code fonctionne.
Je en sais pas si chez toi ça fonctionnera, si t'as d'autres plugins qui viennent rajouter leur grain de sel dans les fonctions modifiées.
Je te le laisse en spoiler, histoire que tu puisses chercher comment faire par toi-même sans être influencée. Jettes-y un oeil en dernier recours si t'es vraiment paumée.

Spoiler (cliquez pour afficher)



Edit 2 : tel que j'ai compris ta façon d'attribuer tes ID sans voir ta base de données, chaque orbe ayant le bonus stat+ a la même ID. Mon bout de code est écrit avec ça en tête. Si tu as plusieurs ID différents pour chaque orbe ayant le bonus stat+ (ce qui serait étrange parce que tu pourrais cumuler des bonus stat+ entre eux), il faudra adapter un peu le code sous spoiler.

M.V.


kingdommangas - posté le 05/06/2018 à 12:30:20 (353 messages postés)

❤ 0

Youtubeur/Scenariste

Thx je testerai ca ce soir ^^

Citation:

chaque orbe ayant le bonus stat+ a la même ID. Mon bout de code est écrit avec ça en tête.


exactement chaque orbe (autre que les stats) a un ID unique.
Pour les orbes stats il existe:

pv max: +10% : ID 50
pv max: +20% : ID 50
pv max: +30% : ID 50

pm max: +10% : ID 51
pm max: +20% : ID 51
pm max: +30% : ID 51
[...]
Stats+: + 10% : ID 59
Stats+: + 20% : ID 59
Stats+: + 30% : ID 59



Et comme il y a 8 slots d'équipement max, je préfère éviter que le joueur se fasse un 30*8= pv max + 240% :goutte

EDIT: :pense
Bizarre ca ne marche pas du tout chez moi, pire le plugin de sage panda ne fonctionne plus, pourtant tu n'y a pas toucher c'est vraiment étrange.

Spoiler (cliquez pour afficher)



Question autre plugin j'utilise bien Equip Core de Yanfly mais je ne pense pas que ca entre en conflit :susp

Mes jeux: Astyria~Ouroboros~Chaine Youtube: RM Test| Inscription Chaine Youtube

Index du forum > Entraide > [MV] Codeur - Seller un équipement

repondre up

Marquer le sujet comme résolu

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 | Articles perso | 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 | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Jeux complets | Tous les jeux | 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