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



Le Deal du moment :
Réassort du coffret Pokémon 151 ...
Voir le deal

Partagez
 

 Rajouter une caractéristique ? [resolu]

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

Rajouter une caractéristique ? [resolu] Empty
MessageSujet: Rajouter une caractéristique ? [resolu]   Rajouter une caractéristique ? [resolu] Icon_minitimeSam 7 Mar 2009 - 14:15

Bonjour,
Dans rmvx, de base, on a le choix qu'entre 4 caractéristiques, attaque, défense, intelligence et agilité. Le problème c'est que la défense magique est gérée elle aussi par l'intelligence. Donc si on veut faire par exemple un monstre qui tape fort au sort mais pas de défense magique on est foutu...
Donc je me demandait si c'est possible de rajouter une caractéristique ou non ?
J'ai essayé de faire un p'tit truc :

Code:
module RPG
  class Actor
    def initialize
      @id = 0
      @name = ""
      @class_id = 1
      @initial_level = 1
      @exp_basis = 25
      @exp_inflation = 35
      @character_name = ""
      @character_index = 0
      @face_name = ""
      @face_index = 0
      @parameters = Table.new(7,100)
      for i in 1..99
        @parameters[0,i] = 400+i*50
        @parameters[1,i] = 80+i*10
        @parameters[2,i] = 15+i*5/4
        @parameters[3,i] = 15+i*5/4
        @parameters[4,i] = 20+i*5/2
        @parameters[5,i] = 20+i*5/2
        @parameters[6,i] = 20+i*5/2
      end
      @weapon_id = 0
      @armor1_id = 0
      @armor2_id = 0
      @armor3_id = 0
      @armor4_id = 0
      @two_swords_style = false
      @fix_equipment = false
      @auto_battle = false
      @super_guard = false
      @pharmacology = false
      @critical_bonus = false
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :class_id
    attr_accessor :initial_level
    attr_accessor :exp_basis
    attr_accessor :exp_inflation
    attr_accessor :character_name
    attr_accessor :character_index
    attr_accessor :face_name
    attr_accessor :face_index
    attr_accessor :parameters
    attr_accessor :weapon_id
    attr_accessor :armor1_id
    attr_accessor :armor2_id
    attr_accessor :armor3_id
    attr_accessor :armor4_id
    attr_accessor :two_swords_style
    attr_accessor :fix_equipment
    attr_accessor :auto_battle
    attr_accessor :super_guard
    attr_accessor :pharmacology
    attr_accessor :critical_bonus
  end
 
  class State
    def initialize
      @id = 0
      @name = ""
      @icon_index = 0
      @restriction = 0
      @priority = 5
      @atk_rate = 100
      @def_rate = 100
      @spi_rate = 100
      @agi_rate = 100
      @mag_rate = 100
      @nonresistance = false
      @offset_by_opposite = false
      @slip_damage = false
      @reduce_hit_ratio = false
      @battle_only = true
      @release_by_damage = false
      @hold_turn = 0
      @auto_release_prob = 0
      @message1 = ""
      @message2 = ""
      @message3 = ""
      @message4 = ""
      @element_set = []
      @state_set = []
      @note = ""
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :icon_index
    attr_accessor :restriction
    attr_accessor :priority
    attr_accessor :atk_rate
    attr_accessor :def_rate
    attr_accessor :spi_rate
    attr_accessor :agi_rate   
    attr_accessor :mag_rate
    attr_accessor :nonresistance
    attr_accessor :offset_by_opposite
    attr_accessor :slip_damage
    attr_accessor :reduce_hit_ratio
    attr_accessor :battle_only
    attr_accessor :release_by_damage
    attr_accessor :hold_turn
    attr_accessor :auto_release_prob
    attr_accessor :message1
    attr_accessor :message2
    attr_accessor :message3
    attr_accessor :message4
    attr_accessor :element_set
    attr_accessor :state_set
    attr_accessor :note
  end
 
class Weapon < BaseItem
    def initialize
      super
      @animation_id = 0
      @price = 0
      @hit = 95
      @atk = 0
      @def = 0
      @spi = 0
      @agi = 0
      @mag = 0
      @two_handed = false
      @fast_attack = false
      @dual_attack = false
      @critical_bonus = false
      @element_set = []
      @state_set = []
    end
    attr_accessor :animation_id
    attr_accessor :price
    attr_accessor :hit
    attr_accessor :atk
    attr_accessor :def
    attr_accessor :spi
    attr_accessor :agi
    attr_accessor :mag
    attr_accessor :two_handed
    attr_accessor :fast_attack
    attr_accessor :dual_attack
    attr_accessor :critical_bonus
    attr_accessor :element_set
    attr_accessor :state_set
  end

 
end

class Game_Battler
  def clear_extra_values
    @maxhp_plus = 0
    @maxmp_plus = 0
    @atk_plus = 0
    @def_plus = 0
    @spi_plus = 0
    @agi_plus = 0
    @mag_plus =0
  end
 
    def mag
    n = [[base_mag + @mag_plus, 1].max, 999].min
    for state in states do n *= state.mag_rate / 100.0 end
    n = [[Integer(n), 1].max, 999].min
    return n
  end
 
    def mag=(new_mag)
    @mag_plus += new_mag - self.mag
    @mag_plus = [[@mag_plus, -999].max, 999].min
  end
 
  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.mag * 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.mag * 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

class Game_Actor < Game_Battler
    def base_mag
    n = actor.parameters[6, @level]
    for item in equips.compact do n += item.mag end
    return n
  end
end

Mais actor.parameters[6, @level] n'est pas défini alors que @parameters[6,i] = 20+i*5/2 est bien la.
Merci d'avance pour votre aide ^^
Revenir en haut Aller en bas
batatao
Poulet carnivore Lv.2
Poulet carnivore Lv.2
avatar


Masculin Age : 29
Inscrit le : 07/03/2009
Messages : 23

Rajouter une caractéristique ? [resolu] Empty
MessageSujet: Re: Rajouter une caractéristique ? [resolu]   Rajouter une caractéristique ? [resolu] Icon_minitimeSam 7 Mar 2009 - 15:25

Je sais pas mais j'ai une question moi aussi: C'est quoi ce Charabia ???
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 33
Inscrit le : 15/10/2008
Messages : 351

Rajouter une caractéristique ? [resolu] Empty
MessageSujet: Re: Rajouter une caractéristique ? [resolu]   Rajouter une caractéristique ? [resolu] Icon_minitimeSam 7 Mar 2009 - 16:11

c'est de l'ouzbek meridionial...

pour les parameters... il faut s'en méfier: ce sont bien souvent des paramètres d'interface, ceux qui tu regles dans l'editeur (regarde le game_interpreter). Je ne connais pas trop le systeme des stats, mais je crois qu'il faut que tu passes par une autre méthode

berka
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
ASHKA
Voyageur Lv.10
Voyageur Lv.10
avatar


Masculin Age : 41
Inscrit le : 04/12/2008
Messages : 383

Rajouter une caractéristique ? [resolu] Empty
MessageSujet: Re: Rajouter une caractéristique ? [resolu]   Rajouter une caractéristique ? [resolu] Icon_minitimeDim 8 Mar 2009 - 9:29

J'ai déjà du créer un systeme avec plus de stats, j'ai utilisé les courbes d'un autres héros.
j'utilisais des paires :
( Héros 1 et 2 de la BDD pour Game_Actor 1, 3 et 4 pour 2, ... )

Code:

def base_mag
    n_act = $data_actors[@id + 1]
    n = n_act.parameters[6, @level]
    for item in equips.compact do n += item.mag end
    return n
  end

Sinon, j'utilise aussi souvent un Hash, mais ça depend evidement du nombre de clé à configurer.
Ici, une valeur par niveau, 99 niveau, evidement, un Hash est difficilement envisageable ...

ASHKA
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


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

Rajouter une caractéristique ? [resolu] Empty
MessageSujet: Re: Rajouter une caractéristique ? [resolu]   Rajouter une caractéristique ? [resolu] Icon_minitimeMer 11 Mar 2009 - 5:51

Ouais je pensait faire ça aussi, utiliser une autre courbe d'un héros.
T'aurai moyen de me filer une copie de ton système ou tu veux le garder pour toi ?
Revenir en haut Aller en bas
ASHKA
Voyageur Lv.10
Voyageur Lv.10
avatar


Masculin Age : 41
Inscrit le : 04/12/2008
Messages : 383

Rajouter une caractéristique ? [resolu] Empty
MessageSujet: Re: Rajouter une caractéristique ? [resolu]   Rajouter une caractéristique ? [resolu] Icon_minitimeMer 11 Mar 2009 - 14:46

J'ai verifié, c'etait pour une commande donc ça a été supprimé apres livraison.
( En fait, ça ne fait pas tres longtemps que je garde un exemplaire de ce que je scripte et encore, parfois j'oublie ... )

Mais tu pourra refaire ça tres facilement.
( Copie/colle la gestion d'ATK par exemple, extrait des données de la note pour les objets, integre la valeur aux calculs de degats )

Désolé ...

ASHKA
Revenir en haut Aller en bas
Contenu sponsorisé




Rajouter une caractéristique ? [resolu] Empty
MessageSujet: Re: Rajouter une caractéristique ? [resolu]   Rajouter une caractéristique ? [resolu] Icon_minitime

Revenir en haut Aller en bas
 

Rajouter une caractéristique ? [resolu]

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

 Sujets similaires

-
» Caractéristique de Monstre [résolu]
» RÉSOLU Comment modifier et rajouter des icons pour objets/sort/fonction
» [résolu] Petite question sur les zones de monstres [résolu]
» [VX] Distribution des points de Caractéristique
» HUD ABS V9 [Resolu]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Problèmes et Solutions :: Résolu-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit