[Résolu] [PSP0.8] Je n'arrive pas à utiliser le script des movepool alternatifs

0 Réponses • 63 Vues

Hello !

Je suis sous PSP0.8.6 (avec pas mal de corrections déjà ajoutées dans les scripts), et j'ai essayé d'ajouter ce script à mon projet (pour les movepool alternatifs des formes d'Alola).

J'ai bien ajouté "alt_movepool(true)" dans Pokemon_custom comme ceci :
Script
    # -----------------------------------------------------------------
    #  Zarbi et Vivaldaim à l'état sauvage
    # -----------------------------------------------------------------
    alias temp_initialize initialize
    def initialize(id_data = 1, level = 1, shiny = false)
      temp_initialize(id_data, level, shiny)
      if name == "Zarbi"
        @form = rand(28) + 1
      end
      if name == "Vivaldaim"
        @form = rand(4)
      end
      if name == "Haydaim"
        @form = rand(4)
      end
      alt_movepool(true) #tst
    end 

Voici mon script "Formes d'Alola" que j'ai ajouté avant "Main" :
Script
 module POKEMON_S
  class Pokemon
   
    def alt_movepool_list
      list = []
      #--------------------------------------------------
      #---------- Definir les movepools ici -------------
      list.push([26, 1, [ [94, 1], [84, 1], [39, 1], [98,1], [85,1] ],[ 1, 4, 6, 10, 15, 16, 17, 18, 20, 21, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 42, 43, 44, 45, 46, [4], [6] ],[ 3, 9, 117, 175, 179, 203, 217, 252, 268, 273, 321, 381, 518, 563 ]]) #Raichu d'Alola
     
     
     
     
     
      #---------------------------------------------------
      return list
    end
   
     
   
    def alt_movepool_test
      list = alt_movepool_list
      b = []
      for i in list
        return true if (i[0] == @id or i[0] == @name) and i[1] == @form
      end
     
      return false
    end
     
   
    def alt_movepool(erase = false)
     
      list = alt_movepool_list
      reprod = []
      skills = []
      ct = []
      if list != []
        for i in list
          if (i[0] == @id or i[0] == @name) and i[1] == @form
            for skill in i[2]
              if skill[0].type == Fixnum
                skills.push(skill)
              else
                skills.push([Skill_Info.id(skill[0]), skill[1]])
              end
            end
            for skill in i[3]
              ct.push(skill)
            end
            for skill in i[4]
              if skill.type == Fixnum
                reprod.push(skill)
              else
                reprod.push(Skill_Info.id(skill))
              end
            end
          end
        end
      end
     
      if ct != [nil]
        @skills_allow = ct
      end
 
      if skills != [nil] and skills != []
        @skills_table = skills
        return if erase == false
        @skills_set = []
        initialize_skill
      end
    end
   
   
    def skills_allow
      return @skills_allow if alt_movepool_test
      return Pokemon_Info.skills_tech(id)
    end
   
   
    def breed_move
      return @breed_move if alt_movepool_test
      return Pokemon_Info.breed_move(id)
    end
   
    def refresh_skill(backscene = nil)
      alt_movepool
      for skill in @skills_table
        if skill[1] == @level and not(skill_learnt?(skill[0]))
          scene = Pokemon_Skill_Learn.new(self, skill[0], backscene)
          scene.main
        end
      end
    end
   
  end
end

Comme vous le voyez j'ai ajouté cette ligne pour Raichu d'Alola :
list.push([26, 1, [ [94, 1], [84, 1], [39, 1], [98,1], [85,1] ],[ 1, 4, 6, 10, 15, 16, 17, 18, 20, 21, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 42, 43, 44, 45, 46, [4], [6] ],[ 3, 9, 117, 175, 179, 203, 217, 252, 268, 273, 321, 381, 518, 563 ]]) #Raichu d'Alola

Je pense avoir bien relu et n'avoir pas fait de faute de virgule/crochet, mais qui sait, je suis peut-être passé à côté de quelque chose...

Le problème est le suivant :
- Le movepool par niveau est programmé pour apprendre de base les attaques Psyko, Eclair, Vive-attaque, Mimi-queue, Tonnerre, or quand je capture Raichu d'Alola niveau 50, il ne connait que les 4 dernières, tout comme c'est le cas pour la forme normale de Raichu. J'ai essayé d'enlever l'attaque éclair pour essayer mais il l'apprend quand même... (Raichu normal comme d'Alola, je teste les deux à chaque fois pour comparer).
- Raichu d'Alola n'est apte à apprendre aucune CT... Cela n'a pas d'incidence sur la forme normale de Raichu. Cela n'a pas d'incidence sur les apprentissages de CT des autres formes alternatives de Pokémon qui ne sont pas encore programmées.
Exemple de la CT34-Onde de choc
- Reproduction non testée donc je ne peux pas vous dire.

Voilà, si vous avez une idée de ce qui manque, que j'ai pu oublier...
Merci d'avance !

EDIT :
Par la suite j'ai testé en ajoutant cette ligne pour Goupix d'Alola :
list.push([37, 1, [ [181, 1], [39, 4], [46, 7], [420, 10], [109, 12], [196, 15], [371, 18], [54, 20], [562, 21], [185, 23], [485, 26], [62, 28], [326, 31], [219, 34], [58, 36], [286, 39], [59, 42], [288, 44], [445, 47], [329, 50] ],[ 5, 6, 7, 10, 13, 14, 17, 18, 20, 21, 27, 32, 42, 43, 44, 45 ],[ 50, 95, 97, 175, 180, 204, 227, 290, 326, 336, 384, 566 ]]) #Goupix d'Alola
Chose étrange : Il apprend toujours flammèche au départ alors qu'il ne devrait pas ; par contre il apprend bien éclat-glace au niveau 10 comme programmé...
Eclat glace
Pas de soucis avec le Goupix normal qui n'apprend bien pas éclat-glace au niveau 10.

Edit 2 :
Du coup FL0RENT_ a pu m'aider sur Discord (il est trop fort ce FL0RENT_) et maintenant tout fonctionne !

RESOLUTION :
La ligne suivante est à ajouter à deux endroits :
pokemon.alt_movepool(true)

1) Dans le script "Interpreter" au dessus de :
$scene = Pokemon_Battle_Wild.new($pokemon_party, pokemon, hash["IA"])
NB : Ceci est peut-être dû au fait que j'ai ce script pour les combats sauvages personnalisés.

2) Dans le script "Pokemon_battle_trainer" au dessus de :
$battle_var.enemy_party.actors.push(pokemon)

(Pour les numéros des lignes ça doit dépendre des modif de chacun donc vous les trouverez en faisant ctrl+F)

« Modifié: 04 décembre 2018, 19:10:29 par Symbioss »

Script Problème Résolu Aide Obtenue PSP


There was an error while thanking
Thanking...