[PSDK] Recevoir de l'xp à la capture de Pokémon

7 Réponses • 612 Vues

Bonjour tout le monde,

En faisant des combats de Pokémon sauvage, j'ai remarquer qu'a la capture du Pokémon, ont ne recevaient pas d’expérience et je me demande si c'est possible de faire comme le système de la 6G et de recevoir l’expérience à la capture des Pokémon  :).


Question Demande d'aide PSDK

Nuri Yuri

HostMaster

Ca pourrait être intéressant, faudra m'y faire penser pour Alpha 25 ^^
ln(yo) = <3
C'est effectivement l'une des suggestions les plus soutenues, moi en première ligne vu qu'une capture nécessitera quasiment toujours d'affaiblir le Pokémon sauvage (donc de le combattre).

Vu que la distribution d'XP a été réécrite pour l'Alpha 24.37 (et corrigée par la même occasion : le bug de la distribution que d'un seul Poké adverse KO maximum par tour en combat duo a disparu  :3 ), je me dis que ça pourrait être le moment idéal pour l'implémenter.

Je suppose qu'il suffit juste d'appeler le script de distribution d'XP lorsqu'un combat contre un Pokémon sauvage se termine par une capture, de la même manière que s'il aurait été mis KO.
Dans le pire des cas, yyyyj ou moi, on peut chercher comment faire.

Nuri Yuri

HostMaster

Il faut ajouter le Pokémon capturé (comme ceux qui tombent KO) dans le tableau des Pokémon qui distribue l'expérience puis appeler la fonction phase4_distribute_exp (un truc dans le genre).

Edit : Par contre si tu capture en un coup avec la Speed Ball, y'a des chances que y'a rien qui soit distribué car le nombre de tour utilisé par le Pokémon risque d'être nul.
ln(yo) = <3
Cottens et moi avons réussi à faire donner de l'XP aux Pokémons sauvages capturés.  :3
La recette tient en 1 ligne de code rajoutée + 3 lignes de code à déplacer.

Modif #1 :

Dans 00400 Scene_Battle_Functions_p4.rb, rajouter la ligne @_EXP_GIVE.push(pokemon) en fin de "if cnt == 4")
C'est la ligne qui permet d'ajouter le Pokémon sauvage au tableau des gains d'expérience.
À noter que l'XP est donnée même si le Pokémon a été capturé dès le tour 1. (Testé avec la Master Ball.)

  #===
  #>phase4_animation_capture
  #Animation de la capture //!!!\\ A terminer !
  #===
  def phase4_animation_capture(cnt,pokemon,id)
    gr_launch_ball_to_enemy(pokemon, id)
    (cnt - 1).times do
      gr_animate_ball_on_enemy(pokemon)
    end

    if cnt == 4
      gr_animate_caught(pokemon)
      #Faire toute la scène de capture
      $game_switches[Yuki::Sw::BT_Catch] = true
      pokemon.captured_with = id
      pokemon.captured_at = Time.new.to_i
      pokemon.trainer_name = $trainer.name
      pokemon.trainer_id = $trainer.id
      pokemon.code_generation(pokemon.shiny, !pokemon.shiny)
      @_EXP_GIVE.push(pokemon) #--------ligne ajoutée
      start_phase5
    else
      gr_animate_pokebreak(pokemon)
      display_message(parse_text(18, 63 + rand(4)))
    end
  end

Bien entendu, cette modif est désormais intégrée de série dans mon mod Overhaul de la capture.
(Pensée à Ravn et à Bugfix qui l'ont installé.)  :)

Modif #2 :

Pour que le texte soit affiché dans le bon ordre, c'est-à-dire après ceux de capture et de surnommage conformément aux jeux officiels, il faut dans la def phase5_pokemon_end de \pokemonsdk\scripts\01500 Alpha 24 Battle Engine (deprecated)\01600 Scene_Battle\01400 Scene_Battle_Phase_5.rb
déplacer ces 3 lignes de code
        @_EXP_GIVE.each do |i|
            phase4_distribute_exp(i)
        end
Du début à la fin de la def. (Après le bloc "if $game_switches[Yuki::Sw::BT_Catch]")

Cela est fait dans ce petit plug-in.
https://www.sacredphoenix.fr/Scripts/03000%20Balls/16141%20XP%20with%20caught.rb
(En attendant que ce soit officiellement modifié pour PSDK.)

À vous les plaisir de la capture instructive pour vos monstres de poche.  :3

« Modifié: 03 octobre 2019, 02:00:02 par Amras Anárion »

Super ! J'ai testé de mon coté et ça fonctionne parfaitement  :)
Est-ce que vous savez si augmenter l'expérience de la sorte en capturant le Pokémon a aussi un impact su les EV ?
Oui, les EV sont bien données. Je viens de vérifier.
(A noter que depuis l'Alpha 24.43 de PSDK, l'XP à la capture est intégré de série au starter kit.)

There was an error while thanking
Thanking...