AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

Partagez
 

 [VX] Drop conditionnel & multi-drop

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

[VX] Drop conditionnel & multi-drop Empty
MessageSujet: [VX] Drop conditionnel & multi-drop   [VX] Drop conditionnel & multi-drop Icon_minitimeDim 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é

­S­cript :
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 =)
Revenir en haut Aller en bas
Sylfurion
Mage Lv.11
Mage Lv.11
Sylfurion


Masculin Age : 27
Inscrit le : 02/03/2009
Messages : 513

[VX] Drop conditionnel & multi-drop Empty
MessageSujet: Re: [VX] Drop conditionnel & multi-drop   [VX] Drop conditionnel & multi-drop Icon_minitimeDim 11 Juil 2010 - 16:17

Merci Smile
Revenir en haut Aller en bas
hypraman
Poulet Lv.1
Poulet Lv.1
hypraman


Masculin Age : 29
Inscrit le : 14/06/2010
Messages : 9

[VX] Drop conditionnel & multi-drop Empty
MessageSujet: Re: [VX] Drop conditionnel & multi-drop   [VX] Drop conditionnel & multi-drop Icon_minitimeDim 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 ?
Question

EDIT : oups, il fallait séparer les codes. Razz Fausse alerte!
Revenir en haut Aller en bas
Contenu sponsorisé




[VX] Drop conditionnel & multi-drop Empty
MessageSujet: Re: [VX] Drop conditionnel & multi-drop   [VX] Drop conditionnel & multi-drop Icon_minitime

Revenir en haut Aller en bas
 

[VX] Drop conditionnel & multi-drop

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Drop conditionnel [résolu]
»  [VX] Multi Tileset
» Multi Conditions
» Multi compétences
» Multi Tilsets pour rpg maker XP

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Combat-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit