Partagez
Aller en bas
avatar
Yndil
Membre

Nombre de messages : 23
Age : 25
Localisation : Dans le grand nord, entre la pluie et le brouillard
Distinction : aucune
Date d'inscription : 05/07/2010

Script formule de combat (résolu)

le Jeu 30 Juin 2011 - 14:36
Bonjour je suis à la recherche d'un script me permettant de changer le calcul de dommages. C'est à dire Que le calcul serait:
(((Niv du lanceur*2/5+2)*Force de l'attaquant*force de l'arme utilisée/Def de la victime)/50)+2

Calcul assez compliqué non? Sachant que le facteur "force de l'arme utilisée" est remplacée par 1 venant de l'attaque des monstres. Ce n'est pas fini, et oui! Pour les sorts, il faudrait modifier la force et la défense par l'intelligence du monstre ou du perso.

J'avoue que ce sera un travail de longue haleine mais un petit tuto serait le bienvenu (je crois que j'en demande trop)

Merci d'avance!
avatar
dricc
Membre

Nombre de messages : 2752
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: Script formule de combat (résolu)

le Jeu 30 Juin 2011 - 15:28
Tiens , oui , par curiosité ou ça se change ...

... eh bien , c'est dans la classe Game_Battler .
un "Game_Battler" peux etre aussi bien un allié qu'un ennemi donc la modif ne serait à faire qu'a un endroit .

Donc ajoute ce script à la suite :

Code:


class Game_Battler
  #--------------------------------------------------------------------------
  # * Calculation of Damage From Normal Attack
  #    attacker : Attacker
  #    The results are substituted for @hp_damage
  #--------------------------------------------------------------------------
  def make_attack_damage_value(attacker)
    damage = attacker.atk * 4 - self.def * 2        # base calculation
    damage = 0 if damage < 0                        # if negative, make 0
    damage *= elements_max_rate(attacker.element_set)  # elemental adjustment
    damage /= 100
    if damage == 0                                  # if damage is 0,
      damage = rand(2)                              # half of the time, 1 dmg
    elsif damage > 0                                # a positive number?
      @critical = (rand(100) < attacker.cri)        # critical hit?
      @critical = false if prevent_critical        # criticals prevented?
      damage *= 3 if @critical                      # critical adjustment
    end
    damage = apply_variance(damage, 20)            # variance
    damage = apply_guard(damage)                    # guard adjustment
    @hp_damage = damage                            # damage HP
  end
  #--------------------------------------------------------------------------
  # * Calculation of Damage Caused by Skills or Items
  #    user : User of skill or item
  #    obj  : Skill or item (for normal attacks, this is nil)
  #    The results are substituted for @hp_damage or @mp_damage.
  #--------------------------------------------------------------------------
  def make_obj_damage_value(user, obj)
    damage = obj.base_damage                        # get base damage
    if damage > 0                                  # a positive number?
      damage += user.atk * 4 * obj.atk_f / 100      # Attack F of the user
      damage += user.spi * 2 * obj.spi_f / 100      # Spirit F of the user
      unless obj.ignore_defense                    # Except for ignore defense
        damage -= self.def * 2 * obj.atk_f / 100    # Attack F of the target
        damage -= self.spi * 1 * obj.spi_f / 100    # Spirit F of the target
      end
      damage = 0 if damage < 0                      # If negative, make 0
    elsif damage < 0                                # a negative number?
      damage -= user.atk * 4 * obj.atk_f / 100      # Attack F of the user
      damage -= user.spi * 2 * obj.spi_f / 100      # Spirit F of the user
    end
    damage *= elements_max_rate(obj.element_set)    # elemental adjustment
    damage /= 100
    damage = apply_variance(damage, obj.variance)  # variance
    damage = apply_guard(damage)                    # guard adjustment
    if obj.damage_to_mp 
      @mp_damage = damage                          # damage MP
    else
      @hp_damage = damage                          # damage HP
    end
  end
end

Mais modifie à l'intérieur en fonction de tes besoins (là , j'ai en fait juste copié les methodes) .
Par contre , j'ai peur qu'il ne soit pas possible de differencier la force de l'arme de la force du combattant ... les 2 sont déja sommés .
avatar
Yndil
Membre

Nombre de messages : 23
Age : 25
Localisation : Dans le grand nord, entre la pluie et le brouillard
Distinction : aucune
Date d'inscription : 05/07/2010

Re: Script formule de combat (résolu)

le Jeu 30 Juin 2011 - 15:41
Merci beaucoup! je vais revoir ma formule en fonction de mes besoins... J'crois que je vais te créditer dans un prochain jeu...
avatar
dricc
Membre

Nombre de messages : 2752
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: Script formule de combat (résolu)

le Jeu 30 Juin 2011 - 16:04
Oh , c'était pas grand chose sur ce coup là .

A propos , on dirait que le bonus d'ATK de l'arme est stocké dans @atk_plus . C'est ce que je vois dans la methode "atk" de "Game_Battler" .
avatar
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 25
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' Smile]
Date d'inscription : 13/05/2009

Re: Script formule de combat (résolu)

le Sam 3 Sep 2011 - 0:12
résolu déplacé
Contenu sponsorisé

Re: Script formule de combat (résolu)

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum