[RPG-MAKER.FR] Oniromancie: tout l'univers de RPG Maker en français - Les forums - [MV] Codeur - Seller un équipement

Oniromancie: Les forums - [MV] Codeur - Seller un équipement


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Nylu
Par NanakyTim

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

Jeux: The Best Game In The World / News: Le samedi, c'est best of des (...) / Sorties: Superstar Hero / Tutos: Event-scripting001 - (...) / News: 10 000 000 /

Chat  (56 connectés)

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

132 connectés actuellement

10014045 visiteurs
depuis l'ouverture

800 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires






TOP
GAMEMAKING


Les 5 plus
visités

Akademiya RPG Maker

Alex d'Or

Blog of Chaos17

BloGecko

ConsoleFun

Au hasard

Lumen

Lunae - le bazar d'Emz0

RPG Maker Détente

Les deux derniers

Zarok

Akademiya RPG Maker

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs




forums

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


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

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

Astyria~RM Test


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

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. (244 messages postés)

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 )

Astyria~RM Test


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

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. (244 messages postés)

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

Astyria~RM Test


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

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. (244 messages postés)

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

Astyria~RM Test


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

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. (244 messages postés)

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

Astyria~RM Test

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

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:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Blogs | Screen de la semaine | Sorties | Articles perso | Palmarès | Livre d'or | Recherche
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | Collection Oniro | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Tutoriels | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers
Hébergés: Aëdemphia | Fighting Robots Quest | Geex | Inexistence | La Légende d'Ibabou | Nylu | Sarcia | Super Mario RPG - Lost Souls
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