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



Le Deal du moment : -40%
Tefal Ingenio Emotion – Batterie de cuisine 10 ...
Voir le deal
59.99 €

Partagez
 

 [ACE]supplément pour les formules de dégat

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
heos
Noble Lv.8
Noble Lv.8
avatar


Masculin Inscrit le : 08/07/2009
Messages : 228

[ACE]supplément pour les formules de dégat Empty
MessageSujet: [ACE]supplément pour les formules de dégat   [ACE]supplément pour les formules de dégat Icon_minitimeJeu 15 Nov 2012 - 18:50

Code:
##############################################################################
# variables pour les formules de dégâts                                      #
##############################################################################
# use # Le nombre de fois que le lanceur a utilisé l'objet, le sort.        #
# sfr # Le nombre de fois que la cible a utilisé le sort, l'objet.          #
##############################################################################
# Exemple d'utilisation : Objet de soin qui sont de moin en moin efficasse  #
# value = 1000 - 50*sfr; value = 100 if value < 100; value                  #
# La potion soigne 1000PV a l'utilisation se nombre diminue de 50.          #
# Jusqu'a un minimun de 100.                                                #
##############################################################################
# V2 -  21/11/12 # Auteur heos - http://rpg-maker-vx.bbactif.com/            #
# Remerciement : Grim - http://blog.gri.im/                                  #
##############################################################################

#==============================================================================

#==============================================================================
class Stat_Array  < Array 
  alias base []
  def [](id)
    return 0 unless base(id)
    return base(id)
  end
end

#==============================================================================
# ** String
#------------------------------------------------------------------------------

#==============================================================================
class String
 
  def chars # Lettres minucules, Lettres majuscules, Chiffres.
      ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
   end
 
   def is_char?; chars.include?(self); end
   
  def switch_running(from,regexp)
    return false if not (self =~ regexp) # Ne comprend pas from
    id = (self =~ regexp)
    return false if (id != 0) && (self[id-1].is_char?)# la case avant from est une lettre
    id2 = id+from.size+1
    return false if (id2 < self.size) && (self[id2].is_char? rescue false) # la apres from est une lettre
    return true
  end 
 
  def switch(from,to) # Replace string1 par string2
    regexp = Regexp.new(from)
    while(self.switch_running(from,regexp))
    id = (self =~ regexp)
    self[id..(id+from.size-1)] = to
    end
    return self
  end
end



#==============================================================================
# ** Game_BattlerBase
#------------------------------------------------------------------------------
#  This base class handles battlers. It mainly contains methods for calculating
# parameters. It is used as a super class of the Game_Battler class.
#==============================================================================
class Game_BattlerBase
  attr_reader :item_used, :item_suffered, :skill_used, :skill_suffered

  alias cls_initialize initialize
  def initialize
    cls_initialize #Normal
    @item_used = Stat_Array.new    # Information suplementaire
    @item_suffered = Stat_Array.new # Nonbre de fois Utiliser
    @skill_used = Stat_Array.new    # ou subis. Objet et Sort
    @skill_suffered = Stat_Array.new#
  end
  def ucount(item) #use                                    #       
    return @item_used[item.id] if item.class == RPG::Item  #  Nombre d'utilisation
    return @skill_used[item.id] if item.class == RPG::Skill#
  end
  def scount(item) #sfr                                        #
    return @item_suffered[item.id] if item.class == RPG::Item  # Nombre de fois subis
    return @skill_suffered[item.id] if item.class == RPG::Skill#
  end
 
end

#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
#  A battler class with methods for sprites and actions added. This class
# is used as a super class of the Game_Actor class and Game_Enemy class.
#==============================================================================
class Game_Battler
  alias cls_make_damage_value make_damage_value
  def make_damage_value(user, item)
    value = item.damage.cls_eval(user, self, $game_variables,item) #ajout de item
    value = value * item_element_rate(user, item)
    value = value * pdr if item.physical?
    value = value * mdr if item.magical?
    value = value * rec if item.damage.recover?
    value = apply_critical(value) if @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    @result.make_damage(value.to_i, item)
  end
end

#==============================================================================
# ** RPG::UsableItem::Damage
#------------------------------------------------------------------------------
#
#==============================================================================
class RPG::UsableItem::Damage
   
    def add_stat(a,b,item)
    a.item_used[item.id] += 1 if item.class == RPG::Item
    a.skill_used[item.id]+= 1 if item.class == RPG::Skill
    b.item_suffered[item.id] += 1 if item.class == RPG::Item
    b.skill_suffered[item.id] += 1 if item.class == RPG::Skill
    end
   
    def cls_eval(a, b, v,item)
    @formula.switch("use","a.ucount(item)")
    @formula.switch("use","b.scount(item)")
    add_stat(a,b,item)
    [Kernel.eval(@formula), 0].max * sign
    end
 
end

MAJ 21/11/12


Dernière édition par heos le Mer 21 Nov 2012 - 22:41, édité 4 fois (Raison : MAJ 21/11/12)
Revenir en haut Aller en bas
ohar
Poulet carnivore Lv.2
Poulet carnivore Lv.2
ohar


Inscrit le : 29/05/2012
Messages : 17

[ACE]supplément pour les formules de dégat Empty
MessageSujet: Re: [ACE]supplément pour les formules de dégat   [ACE]supplément pour les formules de dégat Icon_minitimeVen 16 Nov 2012 - 15:04

C'est très bien ce script.
Personnellement j'aurais fais quelque chose comme ça:
Code:

class Stat_Array  < Array 
  alias base []
  def [](id)
    return base(id) || 0
  end
end

Revenir en haut Aller en bas
heos
Noble Lv.8
Noble Lv.8
avatar


Masculin Inscrit le : 08/07/2009
Messages : 228

[ACE]supplément pour les formules de dégat Empty
MessageSujet: Re: [ACE]supplément pour les formules de dégat   [ACE]supplément pour les formules de dégat Icon_minitimeVen 16 Nov 2012 - 22:56

Merci pour ce commentaire ohar, ça fait plaisir. S'est le premier script utilisable que j'ai réussi a faire en faite. Y en aura peut être d'autre apprend beaucoup grâce a Grim
Revenir en haut Aller en bas
XHTMLBoy
Citadin Lv.7
Citadin Lv.7
XHTMLBoy


Masculin Inscrit le : 15/03/2011
Messages : 167

[ACE]supplément pour les formules de dégat Empty
MessageSujet: Re: [ACE]supplément pour les formules de dégat   [ACE]supplément pour les formules de dégat Icon_minitimeVen 23 Nov 2012 - 11:42

J'ai pas compris à quoi ça sert... mais c'est surement parce que je ne programme pas Sad
Revenir en haut Aller en bas
http://funkywork.blogspot.com/
Contenu sponsorisé




[ACE]supplément pour les formules de dégat Empty
MessageSujet: Re: [ACE]supplément pour les formules de dégat   [ACE]supplément pour les formules de dégat Icon_minitime

Revenir en haut Aller en bas
 

[ACE]supplément pour les formules de dégat

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

 Sujets similaires

-
» [VX] Formules de calcul personnalisées
» Script pour faire un jeu style new super mario bros pour vx ace [Non-Résolue]
» Tutoriel pour mettre plusieurs Pictures et Pour enlever le fond de Picture
» Script pour communication (chat) & de lueur pour le skin.
» Aide pour lieu de départ pour (Fantasya Online).

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