Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: [VX] Drop conditionnel & multi-drop Dim 11 Juil 2010 - 15:41 | |
| Drop conditionnel & multi-drop Auteur : Blockade Date : 11/07/2010 Niveau : Facile Version : 1.0 Grâce à ce script, vous ne serez plus limité à 2 objets, droppable sur chaque monstre ! De plus vous pourrez faire en sorte que le l'objet soit obtenu à condition qu'un interrupteur est activé, ce qui peut être pratique pour dropper du contenu uniquement si une quête est activée. Description du script : - Permet d'avoir du drop supplémentaire - Permet d'avoir le drop que si un interrupteur est activé Script : - Code:
-
#=============================================================================== # ▼ [VX] Drop conditionnel #------------------------------------------------------------------------ # Blockade script Library - Drop conditionnel # Date : 11/07/2010 # Niveau : Facile # Version : 1.0 # Forum d'origine : http://rpg-maker-vx.bbactif.com/forum.htm # # Grâce à ce script, vous ne serez plus limité à 2 objets, droppable sur chaque monstre. De plus # vous pourrez faire en sorte que le l'objet soit obtenu à condition qu'un interrupteur est activé. #======================================================================= # ▼ Mises à jour # ------------------------------------------------------------------------- # ¤ 11/07/2010 - Version 1.0 - Création du script #======================================================================= # ▼ Fonctionnalités # ------------------------------------------------------------------------- # - Permet d'avoir du drop supplémentaire # - Permet d'avoir le drop que si un interrupteur est activé #======================================================================= # ▼ Installation # -------------------------------------------------------------------------- # Mettre le script au dessus de Main. #======================================================================= # ▼ Utilisation # -------------------------------------------------------------------------- # Tout se fait dans la base de données par besoin de toucher au script ! # Dans la partie "note" de l'ennemi mettez une expression sous la forme : # - <drop type_objet:id_objet chance_de_drop,interrupteur> # # > type_objet : O si votre drop, est un Objet # A si votre drop est une Arme # E si votre drop est un Equipement (armure,bouclier etc...) # # > id_objet : mettez l'ID de l'objet/arme/equipement ici # # > chance_de_drop : mettez ici un nombre qui permettra de définir la chance que l'objet # soit droppé (comme dans la base de données). Si vous mettez 45 # par exemple la chance de le dropper sera d'1/45. # # > interrupteur : si vous voulez que votre drop soit uniquement droppable si un interrupteur # soit activé, mettez l'ID de votre interrupteur ici, sinon mettez 0. # # Par exemple si vous voulez droper l'arme d'ID 71 avec une chance de 1/88 uniquement si # l'interrupteur 2 est activé mettez : <drop A:71 88,2> # Et un dernier exemple, si vous voulez dropper un bouclier d'ID 42 avec une chance de 1/2 # et qui ne requiert aucun interrupteur d'activé (drop supplémentaire) : <drop E:42 2,0> #======================================================================= # ▼ Alias et compatibilité # -------------------------------------------------------------------------- # ► Méthodes réecrites : # > Game_Troop : make_drop_items #===============================================================================
$imported = {} if $imported == nil $imported["DropConditionnel"] = true
module BSL module DCO #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # TAG_DROPENNEMI #------------------------------------------------- # Niveau : Avancé # Ici vous pourrez changer les tags qui récupèrent les données dans la partie note # des ennemis. Je vous déconseille vivement de modifier cette partie. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= TAG_DROPENNEMI = /<(?:drop)[ ]([OAE]):(\d+)[ ](\d+),(\d+)>/i end end
#============================================================================== # ** Game_Troop #------------------------------------------------------------------------------ # Cette class gère l'ensemble des ennemis en combat. #============================================================================== class Game_Troop < Game_Unit #-------------------------------------------------------------------------- # * overwrite method : make_drop_items #-------------------------------------------------------------------------- def make_drop_items drop_items = [] for enemy in dead_members for di in enemy.enemy.items_drop next if di.kind == 0 next if rand(di.denominator) != 0 if di.kind == 1 drop_items.push($data_items[di.item_id]) elsif di.kind == 2 drop_items.push($data_weapons[di.weapon_id]) elsif di.kind == 3 drop_items.push($data_armors[di.armor_id]) end end end return drop_items end end
#============================================================================== # ** RPG::Enemy #------------------------------------------------------------------------------ # Class qui gère les données relatives aux ennemis. #============================================================================== class RPG::Enemy include BSL::DCO # Inclusion du module #-------------------------------------------------------------------------- # * new method : items_drop #-------------------------------------------------------------------------- def items_drop items_drop = [drop_item1, drop_item2] # On récupère le drop "normalement" défini (dans le BBD) self.note.split(/[\r\n]+/).each { |line| case line when TAG_DROPENNEMI # Si on repérer un expression régulière type = $1.to_s.upcase id = $2.to_i pourcentage = $3.to_i id_inter = $4.to_i next unless id_inter == 0 or $game_switches[id_inter] #On passe à la ligne suivant si les conditions sont pas remplies drop_item = DropItem.new # Création de l'objet case type when "O" # Si c'est un objet drop_item.item_id = id drop_item.kind = 1 when "A" # Si c'est une arme drop_item.weapon_id = id drop_item.kind = 2 when "E" #Si c'est un équipement (armure) drop_item.armor_id = id drop_item.kind = 3 end drop_item.denominator = pourcentage items_drop.push(drop_item) # On met l'objet dans la liste des items obtenus end} return items_drop end end Installation :Mettez juste au dessus de main ! Utilisation : - Code:
-
# Tout se fait dans la base de données par besoin de toucher au script ! # Dans la partie "note" de l'ennemi mettez une expression sous la forme : # - <drop type_objet:id_objet chance_de_drop,interrupteur> # # > type_objet : O si votre drop, est un Objet # A si votre drop est une Arme # E si votre drop est un Equipement (armure,bouclier etc...) # # > id_objet : mettez l'ID de l'objet/arme/equipement ici # # > chance_de_drop : mettez ici un nombre qui permettra de définir la chance que l'objet # soit droppé (comme dans la base de données). Si vous mettez 45 # par exemple la chance de le dropper sera d'1/45. # # > interrupteur : si vous voulez que votre drop soit uniquement droppable si un interrupteur # soit activé, mettez l'ID de votre interrupteur ici, sinon mettez 0. # # Par exemple si vous voulez droper l'arme d'ID 71 avec une chance de 1/88 uniquement si # l'interrupteur 2 est activé mettez : <drop A:71 88,2> # Et un dernier exemple, si vous voulez dropper un bouclier d'ID 42 avec une chance de 1/2 # et qui ne requiert aucun interrupteur d'activé (drop supplémentaire) : <drop E:42 2,0> Démo : http://www.megaupload.com/?d=10A05QZY Enjoy =) |
|
Mage Lv.11
Age : 27 Inscrit le : 02/03/2009 Messages : 513
| Sujet: Re: [VX] Drop conditionnel & multi-drop Dim 11 Juil 2010 - 16:17 | |
| Merci |
|
Poulet Lv.1
Age : 29 Inscrit le : 14/06/2010 Messages : 9
| Sujet: Re: [VX] Drop conditionnel & multi-drop Dim 10 Oct 2010 - 1:49 | |
| Super, il marche super bien, mais j'ai une question. ^^ -J'aimerais que mon monstre drop 4 objet -Je met, comme il est écrit les 2 code pour les drop supplémentaire Mais ça ne marche pas -lorsque j'en enlève 1 des 2, la ça fonctionne #1 Aurais-je sauter une étape, ou bien il y aurais une limite de 1 objet supplémentaire ? EDIT : oups, il fallait séparer les codes. Fausse alerte! |
|
| Sujet: Re: [VX] Drop conditionnel & multi-drop | |
| |
|