Sujet n°2088
Posté par Crystal le 3 Nov - 04:40 (2008)
Titre : Préciser les EV et la nature des Pokémon générés
On peut en temps normal spécifier les IV des Pokémon des dresseurs ennemis, mais je voulais quelque chose de plus poussé alors j'ai ajouté les EV et la nature, et c'est en même temps une suggestion à intégrer pour Krosk. =)

Si vous ne savez pas ce que sont les EV ou la nature, essayez de vous informer sur des sites Pokémon avant de le demander ici.

Alors pour commencer...

Version patch (un seul script à insérer pour que tout soit installé):

Créez un script nommé Pokemon_Modifier en-dessous de Carte_Dresseur avec ce contenu:

Spoiler
Code:


#==============================================================================
# ■ Pokemon_Modifier
# Pokemon Script Project - Crystal
# 7/11/08
#-----------------------------------------------------------------------------
# Scène à ne pas modifier
#-----------------------------------------------------------------------------
# MAJ de différents scripts de PSP

module POKEMON_S
  $data_trainer = []
  $data_trainer[0] = ["", "", "", [], [], 0, ["",""], ["",""]]
  
  #$data_trainer[id] = [
  #"battler.png", 
  #"TYPE",
  #"Nom"
  #[
  #  [Pokémon 1, niveau, //objet, //[stats avancées], //[skill 1, 2, 3, 4]], 
  #  [Pokémon 2, niveau, //objet, //[stats avancées], //[skill 1, 2, 3, 4]], 
  #  [Pokémon 3, niveau, //objet, //[stats avancées], //[skill 1, 2, 3, 4]], 
  #  [Pokémon 4, niveau, //objet, //[stats avancées], //[skill 1, 2, 3, 4]], 
  #  [Pokémon 5, niveau, //objet, //[stats avancées], //[skill 1, 2, 3, 4]], 
  #  [Pokémon 6, niveau, //objet, //[stats avancées], //[skill 1, 2, 3, 4]], 
  #],
  #[ "Objets" ]
  #Argent,
  #["String Victoire Ligne 1", "String Victoire Ligne 2"] (Joueur gagnant)
  #["String Défaite Ligne 1", "String Défaite Ligne 2"] (Joueur perdant)
  #]
  
  $data_troops       = load_data("Data/Troops.rxdata")
  for i in 1..$data_troops.length-1
    $data_trainer[i] = []
    name = $data_troops[i].name
    
    # Vérification Tag
    tag = (name.split('/'))[0]
    if tag != "T"
      $data_trainer[i] = $data_trainer[0]
      next
    end
    
    # Nom et Type
    data_name = (name.split('/'))[1]
    data_name = data_name.split('_')
    
    if data_name[1] != nil
      $data_trainer[i][1] = data_name[0].to_s
      $data_trainer[i][2] = data_name[1].to_s
    else
      $data_trainer[i][1] = ""
      $data_trainer[i][2] = data_name[0].to_s
    end
    
    # Pokémons
    list = []
    for member in $data_troops[i].members
      list.push([member.enemy_id, 1, nil, nil, nil])
    end
    
    # Vérification page event
    if $data_troops[i].pages == []
      # Effacage car invalide
      $data_trainer[i] = $data_trainer[0]
      next
    end
    
    # Event Page1
    event_list = $data_troops[i].pages[0].list
    
    # Effacage si aucun event
    if event_list == []
      $data_trainer[i] = $data_trainer[0]
      next
    end
    
    for event in event_list
      case event.code
      when 322 # Changer Apparence => Définition battler
        battler = event.parameters[3]
        $data_trainer[i][0] = battler
      when 332 # Ajout de MP => Définition Level
        target = event.parameters[0]
        operation = event.parameters[1]
        operand_type = event.parameters[2]
        operand = event.parameters[3]
        if operand_type == 0
          value = operand
        else
          if $game_variables == nil or $game_variables[operand] == nil
            value = 5
          else
            value = $game_variables[operand]
          end
        end
        
        value = value.abs
        
        case target
        when -1 # Tous les ennemis => ecart // Rien 
          for element in list
            element[1] = value
          end
        else # Ennemi défini
          if list[target+1] != nil
            list[target+1][1] = value
          end
        end
      when 355 # Script
        index_script = 0
        script = event.parameters[0]
        if script == "Pokemon"
          pokemon_tag = true
        else
          pokemon_tag = false
        end
        if script == "Dresseur"
          trainer_tag = true
        else
          trainer_tag = false
        end
      when 655 # Script suite
        if pokemon_tag
          script = event.parameters[0]
          # type Hash personnalisé
          if eval(script).type == Hash and list[index_script] != nil
            # Niveau
            list[index_script][1] = eval(script)["NV"]
            # Objet
            list[index_script][2] = eval(script)["OBJ"]
            # Stats avancées
            list[index_script][3] = eval(script)["STAT"]
            # Moveset
            list[index_script][4] = eval(script)["MOVE"]
            # Genre
            list[index_script][5] = eval(script)["GR"]
            # Forme
            list[index_script][6] = eval(script)["FORM"]
            # shiny
            list[index_script][7] = eval(script)["SHINY"]
            # EV
            list[index_script][8] = eval(script)["EV"]
            # Nature
            list[index_script][9] = eval(script)["NATURE"]
          end
          # type Fixnum réglage de niveau seulement
          if eval(script).type == Fixnum and list[index_script] != nil
            list[index_script][1] = eval(script)
          end
          index_script += 1
        end
        if trainer_tag
          index_script += 1
          script = event.parameters[0]
          case index_script
          when 1 # Argent
            $data_trainer[i][5] = script.to_i
          when 2 # String Victoire / Défaite
            $data_trainer[i][6] = []
            $data_trainer[i][6][0] = script != nil ? script : ""
          when 3
            $data_trainer[i][6][1] = script != nil ? script : ""
          when 4
            $data_trainer[i][7] = []
            $data_trainer[i][7][0] = script != nil ? script : ""
          when 5
            $data_trainer[i][7][1] = script != nil ? script : ""
          end
        end
      end
    end
        
    # Vérification: expulsion des Pokémons sans niveau
    for pokemon in list
      if pokemon[1] == nil or pokemon[0] == nil
        index = list.index(pokemon)
        list[index] = nil
      end
    end
    
    list.compact!
    
    $data_trainer[i][3] = list
  end
  class Pokemon
    def nature_modifier(nature) 
      case nature 
      when 0, "HARDI" 
        @nature = ["Hardi", 100,100,100,100,100] 
      when 1, "SOLO" 
        @nature = ["Solo", 110,90,100,100,100] 
      when 2, "BRAVE" 
        @nature = ["Brave", 110,100,90,100,100]        
      when 3, "RIGIDE" 
        @nature = ["Rigide", 110,100,100,90,100] 
      when 4, "MAUVAIS" 
        @nature = ["Mauvais", 110,100,100,100,90] 
      when 5, "ASSURE" 
        @nature = ["Assuré", 90,110,100,100,100] 
      when 6, "DOCILE" 
        @nature = ["Docile", 100,100,100,100,100] 
      when 7, "RELAX" 
        @nature = ["Relax", 100,110,90,100,100] 
      when 8, "MALIN" 
        @nature = ["Malin", 100,110,100,90,100] 
      when 9, "LACHE" 
        @nature = ["Lâche", 100,110,100,100,90] 
      when 10, "TIMIDE" 
        @nature = ["Timide", 90,100,110,100,100] 
      when 11, "PRESSE" 
        @nature = ["Pressé", 100,90,110,100,100] 
      when 12, "SERIEUX" 
        @nature = ["Sérieux", 100,100,100,100,100] 
      when 13, "JOVIAL" 
        @nature = ["Jovial", 100,100,110,90,100] 
      when 14, "NAIF" 
        @nature = ["Naif", 100,100,110,100,90] 
      when 15, "MODESTE" 
        @nature = ["Modeste", 90,100,100,110,100] 
      when 16, "DOUX" 
        @nature = ["Doux", 100,90,100,110,100] 
      when 17, "DISCRET" 
        @nature = ["Discret", 100,100,90,110,100] 
      when 18, "BIZARRE" 
        @nature = ["Bizarre", 100,100,100,100,100] 
      when 19, "FOUFOU" 
        @nature = ["Foufou", 100,100,100,110,90] 
      when 20, "CALME" 
        @nature = ["Calme", 90,100,100,100,110] 
      when 21, "GENTIL" 
        @nature = ["Gentil", 100,90,100,100,110] 
      when 22, "MALPOLI" 
        @nature = ["Malpoli", 100,100,90,100,110] 
      when 23, "PRUDENT" 
        @nature = ["Prudent", 100,100,100,90,110] 
      when 24, "PUDIQUE" 
        @nature = ["Pudique", 100,100,100,100,100] 
      end
    end
    def ev_modifier(list) 
      for i in 0...list.size 
        list[i] = 255 if list[i] > 255 
      end 
      if (list[0] + list[1] + list[2] + list[3] + list[4] + list[5]) > 510 
        p "Erreur de EV" 
        return 
      else 
        @hp_plus = list[0] 
        @atk_plus = list[1] 
        @dfe_plus = list[2] 
        @spd_plus = list[3] 
        @ats_plus = list[4] 
        @dfs_plus = list[5] 
        statistic_refresh 
        @hp = max_hp 
      end
    end
  end
  class Pokemon_Battle_Trainer
    def initialize(party, trainer_id, ia = false, run_able = false, lose_able = false, capturable = false)
      @z_level = 0
      @ia = ia
      @trainer_id = trainer_id
      @run = run_able
      @lose = lose_able
      @capture = capturable
      
      $battle_var.reset
      
      # Création données des Pokémons adverses
      #$battle_var.enemy_party = Pokemon_Party.new
      for pokemon_data in Trainer_Info.pokemon_list(@trainer_id)
        id = pokemon_data[0]
        level = pokemon_data[1]
        # Shiny
        if pokemon_data[6] != nil
          shiny = pokemon_data[6]
        else
          shiny = false
        end
        pokemon = Pokemon.new(id, level, shiny)
        pokemon.given_name += " ennemi"
        # Paramètres optionnels
        # Objet
        if pokemon_data[2] != nil
          pokemon.item_hold = Item.id(pokemon_data[2])
        end
        # Moveset
        if pokemon_data[4] != nil
          i = 0
          for skill in pokemon_data[4]
            if skill != nil and skill != "AUCUN"
              pokemon.skills_set[i] = Skill.new(Skill_Info.id(skill))
            end
            if skill == "AUCUN"
              pokemon.skills_set[i] = nil
            end
            i += 1
          end
          pokemon.skills_set.compact!
        end
        # Stats avancées
        if pokemon_data[3] != nil and pokemon_data[3].length == 6
          pokemon.dv_modifier(pokemon_data[3])
        end
        # Genre 
        if pokemon_data[5] != nil 
          pokemon.set_gender(pokemon_data[5]) 
        end 
        # Forme 
        if pokemon_data[6] != nil 
          pokemon.form = pokemon_data[6] 
        end 
        # EV
        if pokemon_data[8] != nil and pokemon_data[8].length == 6
          pokemon.ev_modifier(pokemon_data[8])
        end
        # Nature
        if pokemon_data[9] != nil
          pokemon.nature_modifier(pokemon_data[9])
        end
        $battle_var.enemy_party.actors.push(pokemon)
      end
      @enemy = $battle_var.enemy_party.actors[0]
      $battle_var.enemy_battle_order = [0,1,2,3,4,5]
      
      @party = party
      
      # Mise à jour Pokedex: Pokémon vu
      $data_pokedex[@enemy.id][0] = true
      
      # Génération ordre de combat
      @battle_order = Array.new(@party.size)
      @battle_order.fill {|i| i}
      
      # Désignation 1er Pokémon au combat
      # @actor désigne le (class) Pokémon
      actor_index = 0
      @actor = @party.actors[actor_index]
      if @actor == nil
        print("Attention, vous n'avez pas de Pokémon dans votre équipe! Réglez ce bug.")
      end
      while @actor.dead?
        actor_index += 1
        @actor = @party.actors[actor_index]
      end
      
      # Correction ordre combat (Pokémon vivant en premier)
      @battle_order = switch(@battle_order, 0, actor_index)
      
      # Remise à zéro résultat
      $battle_var.result_flee = false
      $battle_var.result_win = false
      $battle_var.result_defeat = false
      
      # Initialisation des variables de combat
      @phase = 0
      # 0 Non décidé, 1 Attaque, 2 Switch, 3 Item, 4 Fuite
      @actor_action = 0
      @enemy_action = 0
      
      @start_actor_battler = Player.battler #$trainer_battler
      @start_enemy_battler = Trainer_Info.battler(@trainer_id)
      
      $battle_var.have_fought.push(@actor.party_index)
      $battle_var.battle_order = @battle_order
      $battle_var.in_battle = true
      
      @actor.reset_stat_stage
      @enemy.reset_stat_stage
      @actor.skill_effect_reset
      @enemy.skill_effect_reset
      @actor_skill = nil
      @enemy_skill = nil
      @actor.ability_active = false
      @enemy.ability_active = false
      @item_id = 0   # item utilisé
    end
  end
end
class Interpreter
  def call_battle_wild_parameter(hash, ia = false) 
    if hash["ID"] == nil or hash["NV"] == nil 
      return 
    end 
    pokemon = Pokemon.new(hash["ID"], hash["NV"], hash["SHINY"]) 
    if hash["GR"] != nil and [0, 1, 2, "F", "G", "I"].include?(hash["GR"]) 
      pokemon.set_gender(hash["GR"]) 
    end 
    if hash["FORM"] != nil 
      pokemon.form = hash["FORM"] 
    end 
    if hash["MOVE"] != nil and hash["MOVE"].type == Array 
      i = 0 
      for skill in hash["MOVE"] 
        if skill != nil and skill != "AUCUN" 
          pokemon.skills_set[i] = Skill.new(Skill_Info.id(skill)) 
        end 
        if skill == "AUCUN" 
          pokemon.skills_set[i] = nil 
        end 
        i += 1 
       end 
      pokemon.skills_set.compact! 
    end 
    if hash["OBJ"] != nil 
      if hash["OBJ"].type == Fixnum 
        pokemon.item_hold = hash["OBJ"] 
      elsif hash["OBJ"].type == String 
        pokemon.item_hold = Item.id(hash["OBJ"]) 
      end 
    end 
    if hash["STAT"] != nil and hash["STAT"].type == Array and 
        hash["STAT"].length == 6 
      pokemon.dv_modifier(hash["STAT"]) 
    end 
    if hash["EV"] != nil and hash["EV"].type == Array and 
      hash["EV"].length == 6 
      pokemon.ev_modifier(hash["EV"]) 
    end 
    if hash["NATURE"] != nil 
      pokemon.nature_modifier(hash["NATURE"]) 
    end 
    $scene = Pokemon_Battle_Wild.new($pokemon_party, pokemon, ia) 
    @wait_count = 2 
    return true 
  end 
  alias demarrer_combat_param call_battle_wild_parameter
  def add_pokemon_parameter(hash)
    if hash["ID"] == nil or hash["NV"] == nil
      return
    end
    pokemon = Pokemon.new(hash["ID"], hash["NV"], hash["SHINY"])
    if hash["GR"] != nil and [0, 1, 2, "F", "G", "I"].include?(hash["GR"])
      pokemon.set_gender(hash["GR"])
    end
    if hash["FORM"] != nil
      pokemon.form = hash["FORM"]
    end
    if hash["MOVE"] != nil and hash["MOVE"].type == Array
      i = 0
      for skill in hash["MOVE"]
        if skill != nil and skill != "AUCUN"
          pokemon.skills_set[i] = Skill.new(Skill_Info.id(skill))
        end
        if skill == "AUCUN"
          pokemon.skills_set[i] = nil
        end
        i += 1
      end
      pokemon.skills_set.compact!
    end
    if hash["OBJ"] != nil
      if hash["OBJ"].type == Fixnum
        pokemon.item_hold = hash["OBJ"]
      elsif hash["OBJ"].type == String
        pokemon.item_hold = Item.id(hash["OBJ"])
      end
    end
    if hash["STAT"] != nil and hash["STAT"].type == Array and 
        hash["STAT"].length == 6
      pokemon.dv_modifier(hash["STAT"])
    end
    if hash["EV"] != nil and hash["EV"].type == Array and 
        hash["EV"].length == 6
      pokemon.ev_modifier(hash["EV"])
    end
    if hash["NATURE"] != nil
      pokemon.nature_modifier(hash["NATURE"])
    end
    ajouter_pokemon_cree(pokemon)
  end
  alias ajouter_pokemon_param add_pokemon_parameter
end


Si vous voulez modifier partie par partie:

Spoiler
Dans Pokemon, insérez à partir de la ligne 464 ceci:

Code:

def nature_modifier(nature)
  case nature
  when 0, "HARDI"
    @nature = ["Hardi", 100,100,100,100,100]
  when 1, "SOLO"
    @nature = ["Solo", 110,90,100,100,100]
  when 2, "BRAVE"
    @nature = ["Brave", 110,100,90,100,100]        
  when 3, "RIGIDE"
    @nature = ["Rigide", 110,100,100,90,100]
  when 4, "MAUVAIS"
    @nature = ["Mauvais", 110,100,100,100,90]
  when 5, "ASSURE"
    @nature = ["Assuré", 90,110,100,100,100]
  when 6, "DOCILE"
    @nature = ["Docile", 100,100,100,100,100]
  when 7, "RELAX"
    @nature = ["Relax", 100,110,90,100,100]
  when 8, "MALIN"
    @nature = ["Malin", 100,110,100,90,100]
  when 9, "LACHE"
    @nature = ["Lâche", 100,110,100,100,90]
  when 10, "TIMIDE"
    @nature = ["Timide", 90,100,110,100,100]
  when 11, "PRESSE"
    @nature = ["Pressé", 100,90,110,100,100]
  when 12, "SERIEUX"
    @nature = ["Sérieux", 100,100,100,100,100]
  when 13, "JOVIAL"
    @nature = ["Jovial", 100,100,110,90,100]
  when 14, "NAIF"
    @nature = ["Naif", 100,100,110,100,90]
  when 15, "MODESTE"
    @nature = ["Modeste", 90,100,100,110,100]
  when 16, "DOUX"
    @nature = ["Doux", 100,90,100,110,100]
  when 17, "DISCRET"
    @nature = ["Discret", 100,100,90,110,100]
  when 18, "BIZARRE"
    @nature = ["Bizarre", 100,100,100,100,100]
  when 19, "FOUFOU"
    @nature = ["Foufou", 100,100,100,110,90]
  when 20, "CALME"
    @nature = ["Calme", 90,100,100,100,110]
  when 21, "GENTIL"
    @nature = ["Gentil", 100,90,100,100,110]
  when 22, "MALPOLI"
    @nature = ["Malpoli", 100,100,90,100,110]
  when 23, "PRUDENT"
    @nature = ["Prudent", 100,100,100,90,110]
  when 24, "PUDIQUE"
    @nature = ["Pudique", 100,100,100,100,100]
  end
end


Encore dans Pokemon, insérez ceci à partir de la ligne 792 (ou 738 si vous n'avez pas placé le code plus haut):

Code:

def ev_modifier(list)
  for i in 0...list.size
    list[i] = 255 if list[i] > 255
  end
  if (list[0] + list[1] + list[2] + list[3] + list[4] + list[5]) > 510
    p "Erreur de EV"
    return
  else
    @hp_plus = list[0]
    @atk_plus = list[1]
    @dfe_plus = list[2]
    @spd_plus = list[3]
    @ats_plus = list[4]
    @dfs_plus = list[5]
    statistic_refresh
    @hp = max_hp
  end
end



Dans Pokemon_Trainer, insérez ceci à partir de la ligne 139:

Code:

# EV
list[index_script][8] = eval(script)["EV"]
# Nature
list[index_script][9] = eval(script)["NATURE"]


Dans Pokemon_Battle_Trainer, insérez ceci à partir de la ligne 99:

Code:

# EV
if pokemon_data[8] != nil and pokemon_data[8].length == 6
  pokemon.ev_modifier(pokemon_data[8])
end
# Nature
if pokemon_data[9] != nil
  pokemon.nature_modifier(pokemon_data[9])
end


Dans Interpreter, insérez ceci à partir de la ligne 186:

Code:

if hash["EV"] != nil and hash["EV"].type == Array and 
    hash["EV"].length == 6
  pokemon.ev_modifier(hash["EV"])
end
if hash["NATURE"] != nil
  pokemon.nature_modifier(hash["NATURE"])
end


FONCTION BONUS:

Pour programmer les aspects des Pokémon sauvages appelés par script (légendaires par exemple), insérez ceci à partir de la ligne 35 de Interpreter:

Code:

def call_battle_wild_parameter(hash, ia = false)
  if hash["ID"] == nil or hash["NV"] == nil
    return
  end
  pokemon = Pokemon.new(hash["ID"], hash["NV"], hash["SHINY"])
  if hash["GR"] != nil and [0, 1, 2, "F", "G", "I"].include?(hash["GR"])
    pokemon.set_gender(hash["GR"])
  end
  if hash["FORM"] != nil
    pokemon.form = hash["FORM"]
  end
  if hash["MOVE"] != nil and hash["MOVE"].type == Array
    i = 0
    for skill in hash["MOVE"]
      if skill != nil and skill != "AUCUN"
        pokemon.skills_set[i] = Skill.new(Skill_Info.id(skill))
      end
      if skill == "AUCUN"
        pokemon.skills_set[i] = nil
      end
      i += 1
    end
    pokemon.skills_set.compact!
  end
  if hash["OBJ"] != nil
    if hash["OBJ"].type == Fixnum
      pokemon.item_hold = hash["OBJ"]
    elsif hash["OBJ"].type == String
      pokemon.item_hold = Item.id(hash["OBJ"])
    end
  end
  if hash["STAT"] != nil and hash["STAT"].type == Array and 
      hash["STAT"].length == 6
    pokemon.dv_modifier(hash["STAT"])
  end
  if hash["EV"] != nil and hash["EV"].type == Array and 
    hash["EV"].length == 6
    pokemon.ev_modifier(hash["EV"])
  end
  if hash["NATURE"] != nil
    pokemon.nature_modifier(hash["NATURE"])
  end
  $scene = Pokemon_Battle_Wild.new($pokemon_party, pokemon, ia)
  @wait_count = 2
  return true
end
alias demarrer_combat_param call_battle_wild_parameter


Voilà !

Pour utiliser vos nouvelles fonctions, faisons l'exemple avec le code d'un Steelix:

Code:

{ "NV" => 100, "OBJ" => "RESTES", "MOVE" =>["TOXIK","SEISME", "ABRI", "LAME DE ROC"], "STAT" => [25,11,30,9,3,30] }


Ça peut donner un bon Pokémon, mais ça ne se compare pas à s'il aurait des EV et une bonne nature, qui vont le rendre bien meilleur (si vous les choisissez correctement). On ajoute donc au code une partie "EV" et "NATURE":

Code:

{ "NV" => 100, "OBJ" => "RESTES", "MOVE" =>["TOXIK","SEISME", "ABRI", "LAME DE ROC"], "STAT" => [25,11,30,9,3,30], "EV" => [100, 90, 255, 0, 0, 65], "NATURE" => "PRUDENT" }


Pour ceux qui ne savent pas, les EV ne peuvent se rendre qu'à 255 dans chaque stat, mais le total des EV ne peut pas dépasser 510. Vous aurez un message d'erreur si cela dépasse 510. Les valeurs supérieures à 255 seront mises à 255.

Pour la nature, vous n'avez qu'à écrire le nom de la nature en majuscules et sans accent.

Note: vous pouvez également spécifier les EV et la nature désormais quand vous utilisez la fonction "ajouter_pokemon_param". =)

Et finalement les bugs à corriger. Le premier, dans l'IA, est que des attaques de type sol sont effectuées aux types vol par les dresseurs, alors que ça ne fait aucun sens:

Dans Trainer_IA, remplacez les lignes 58 à 60:

Code:

when 0x08, 0x03
  rate *= 1.1
end


Par:

Code:

when 0x08, 0x03
  rate *= 1.1
when 0x9B0
  if target.type_flying?
    rate = 0
  end
end


Le deuxième est simplement une erreur de nom. Dans le script Pokemon, à la ligne 430, vous avez ceci:

Code:

return ["Relax", 100,110,100,100,90]


Remplacez la ligne par:

Code:

return ["Lâche", 100,110,100,100,90]


J'espère que ça servira à plusieurs personnes. Vous pourrez donner un peu plus de challenge à vos combats. =)

P.S.: Vous pouvez consulter des sites fournissant de la stratégie sur Pokémon (serebii.net par exemple) pour bien choisir la nature et placer vos EV.

Pour paramétrer un Pokémon que vous appelez en combat, utilisez "demarrer_combat_param", pour les paramètres c'est exactement comme la fonction "ajouter_pokemon_param", sauf qu'en plus vous pouvez activer l'IA si vous mettez par exemple:

demarrer_combat_param({"ID" => 1, "NV" => 15, "NATURE" => "HARDI"}, true)

Voilou !

Posté par Doum le 3 Nov - 09:16 (2008)
Bravo Crystal !

Tu nous fait toujours de super Tutos/Scripts !

Merci, en tout cas, moi cela va m'aider !

Je rappelle a tous que les EV sont en faite les stats de HP, PP, Atk, Def, Atk Spé, Def Spé et Vit.

Posté par Crystal le 3 Nov - 20:34 (2008)
Merci. Imbécile heureux

J'ai mis les codes à jour, maintenant on peut spécifier la nature des Pokémon. Clin d'œil foireux

Posté par Doum le 4 Nov - 10:56 (2008)
Waoh !

Vraiment génial, il va falloir que je me mette au Ruby :mrgreen:

J'ai quand même une question, peut-on utiliser ton script pour les pokémons sauvage ?

J'entend par la que j'aimerais pouvoir modifier les EV et la nature d'un Pokémon sauvage définis. Par exemple, je fait débuter un combat contre un Lugia trouvé dans un volcan, donc j'aimerais qu'il soit de nature Hardi et qu'il est un max d'Atk et de Def spé...

J'aimerais savoir si il est possible de faire cela avec ton script ou alors si il faut modifier des trucs dans le script.

Posté par Crystal le 4 Nov - 16:21 (2008)
Suivant ta requête, j'ai programmé cette fonction, elle est disponible à la fin de mon premier post. =)

Posté par Krosk le 7 Nov - 18:37 (2008)
Juste une suggestion...

Au lieu de faire un paquet de modif, tu pense pouvoir faire un script en bloc, qui réécrit une partie des méthodes, l'ensemble intégré dans un module POKEMON_S?

du style :
Code:
module POKEMON_S
  class Pokemon
     alias ...
     def ...
        ...
     end
   end
   
   class Trainer_IA
     alias ...
     def ...
       ....
     end
   end
end


Il suffira ainsi de coller le morceau dans un script à part, et c'est plus simple à mettre en oeuvre (à la manière d'un patch), et à enlever aussi.


Je corrige par contre les erreurs que tu a relevé Clin d'œil foireux

Posté par Crystal le 8 Nov - 05:21 (2008)
Voilà, il est maintenant possible d'installer en un script toutes les fonctions. =)

Posté par Dark' le 8 Nov - 12:39 (2008)
Merci Crystal !

Je prends ^^ !

Posté par Crystal le 15 Oct - 04:17 (2009)
Je uppe après... beaucoup de mois. ^^'

J'aimerais simplement savoir pour les utilisateurs de la version 4ème génération, est-ce que le script fonctionne ? J'aurais envie de me remettre à PSP et me suis dit de commencer par revoir ce que j'ai déjà fait.