Day.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

Scripts: [XP] SE au volume variable / Scripts: [XP] Déplacements en (...) / Partenaires: Vidéo rewind 2024 / News: Les actualités de fin d'année / Jeux: Glixel en version complète / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

428 connectés actuellement

30916684 visiteurs
depuis l'ouverture

3081 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Lumen

Level Up!

Eclipso

Tashiroworld

RPG Maker Détente

Tous nos partenaires

Devenir
partenaire



Système de vol pour RPG Maker MV

Hello, voici un petit plugin pour une compétence de vol. Le taux de réussite du vol correspond à la moitié du taux de drop des objets, mais il peut être augmenté grâce à des armes ou des armures.

Script pour RPG Maker MV
Publié par Founix (lui envoyer un message privé)
Signaler un script cassé

❤ 2

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*:
 * @plugindesc Système de vol avec ou sans bonus, incluant les logs pour débogage.
 * @author ChatGPT 4o et accessoirement Founix ^^
 *
 * @help
 * Ce plugin ajoute un système de vol basé sur :
 * - 50% du taux de drop configuré dans l'éditeur.
 * - Un bonus optionnel avec <StealBoost:X> dans les équipements pour augmenter les chances de vol.
 * 
 * Fonctionnalités :
 * - Gestion indépendante des objets volés pour chaque ennemi.
 * - Choix aléatoire des objets volés parmi les objets disponibles.
 * - Affichage des chances de vol dans la console pour débogage.
 * 
 * Instructions :
 * 1. Ajoutez <Steal> dans les remarques d'une compétence pour activer la fonction de vol.
 * 2. Configurez les "Drops d'objets" des ennemis dans l'éditeur avec leurs probabilités (en fraction comme d'habitude).
 * 3. Ajoutez <StealBoost:X> dans les remarques des équipements pour augmenter les chances de vol.
 * 
 * Exemple :
 * - <StealBoost:10> sur un équipement ajoute 10% aux chances de vol.
 * - Un objet avec un taux de drop de 50% (1/2) aura une chance de vol de 25%, augmentée à 35% avec un bonus StealBoost de 10%.
 *
 * Utilisation :
 * -Internet c'est free, faites-en ce que vous voulez !
 */
 
(function() {
    // Initialise les objets volés pour chaque ennemi
    const _Game_Enemy_initMembers = Game_Enemy.prototype.initMembers;
    Game_Enemy.prototype.initMembers = function() {
        _Game_Enemy_initMembers.call(this);
        this._stolenItems = []; // Liste des objets volés pour cet ennemi
    };
 
    // Fonction pour voler un objet
    Game_Enemy.prototype.stealItem = function(user) {
        const dropItems = this.enemy().dropItems.filter(di => di.kind > 0);
        if (dropItems.length === 0) return "Il n'y a rien à voler !";
 
        // Filtrer les objets encore volables
        const availableItems = dropItems.filter(drop => {
            const item = this.itemObject(drop.kind, drop.dataId);
            return item && !this._stolenItems.includes(item);
        });
 
        if (availableItems.length === 0) {
            return "Il n'y a plus rien à voler !";
        }
 
        // Vérifier si l'acteur est détecté
        if (!user) {
            console.error("Erreur : Aucun utilisateur d'action détecté !");
            return "Erreur interne : Aucun utilisateur trouvé.";
        }
        console.log(`Utilisateur détecté : ${user.name()}`); // Debug : Utilisateur
 
        // Déboguer les équipements de l'utilisateur
        const equips = user.equips();
        if (!equips || equips.length === 0) {
            console.error("Erreur : Aucun équipement détecté pour cet utilisateur !");
            return "Erreur interne : Aucun équipement trouvé.";
        }
        console.log(`Équipements détectés : ${equips.map(equip => (equip ? equip.name : "Aucun"))}`); // Debug
 
        // Calculer le bonus StealBoost
        let stealBonus = 0;
        equips.forEach(equip => {
            if (equip && equip.meta.StealBoost) {
                console.log(`Équipement détecté avec StealBoost : ${equip.name}`); // Debug
                const boost = parseInt(equip.meta.StealBoost) || 0;
                console.log(`StealBoost trouvé : ${boost}%`); // Debug
                stealBonus += boost;
            } else if (equip) {
                console.log(`Équipement sans StealBoost : ${equip.name}`); // Debug
            }
        });
 
        // Sélectionner un objet aléatoire parmi les disponibles
        const randomDrop = availableItems[Math.floor(Math.random() * availableItems.length)];
        const item = this.itemObject(randomDrop.kind, randomDrop.dataId);
 
        // Calculer les chances de vol
        const dropRate = randomDrop.denominator ? 1 / randomDrop.denominator : 0;
        let stealChance = dropRate / 2 + stealBonus / 100;
 
        // Limiter les chances de vol à 100%
        stealChance = Math.min(stealChance, 1);
 
        // Debug : Afficher les chances de vol dans la console
        console.log(
            `Objet : ${item.name}, Taux de drop : ${(dropRate * 100).toFixed(2)}%, StealBoost : ${stealBonus}%, Taux final : ${(stealChance * 100).toFixed(2)}%`
        );
 
        if (Math.random() < stealChance) {
            this._stolenItems.push(item); // Marque l'objet comme volé
            return `Vous avez volé ${item.name} !`;
        } else {
            return "Vol échoué !";
        }
    };
 
    // Ajoute un message après le vol
    const _Game_Action_apply = Game_Action.prototype.apply;
    Game_Action.prototype.apply = function(target) {
        _Game_Action_apply.call(this, target);
        if (this.item() && this.item().meta.Steal) {
            const user = this.subject(); // Récupère directement l'utilisateur de l'action
            console.log(`Action exécutée par : ${user ? user.name() : "Aucun utilisateur"}`); // Debug : Utilisateur
            const message = target.stealItem(user);
            $gameMessage.add(message);
        }
    };
})();
 





Aucun commentaire n'a été posté pour le moment.

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