Sujet n°13716
Posté par Dark Palkia le 14 Mar - 20:23 (2014)
Titre : [PSP5g v0.9] bug evolution pokemon
Salut, j'ai un bug d'évolution, mais seulement quand j'utilise un objet pour faire evoluer un pokemon possedant PLUSIEURS evolutions (genre evoli)
les evolution ne se lancent pas et j'ai un bug

voici le log ainsi que le script en question

LOG:
Spoiler

Code:

---------- Erreur de script : Pokemon_Evolve* ----------
----- Type
TypeError

----- Message
cannot convert Range into Integer

----- Position dans Pokemon_Evolve*
Ligne 269

----- Backtrace
Script : Pokemon_Evolve* | Ligne : 269 | Méthode : in `sprintf'
Script : Pokemon_Evolve* | Ligne : 269 | Méthode : in `evolved_sprite_generation'
Script : Pokemon_Evolve* | Ligne : 75 | Méthode : in `initialize'
Script : Pokemon_Item / Data | Ligne : 607 | Méthode : in `new'
Script : Pokemon_Item / Data | Ligne : 607 | Méthode : in `effect_on_pokemon'
Script : Pokemon_Party_Menu* | Ligne : 507 | Méthode : in `update'
Script : Pokemon_Party_Menu* | Ligne : 128 | Méthode : in `main'
Script : Pokemon_Party_Menu* | Ligne : 116 | Méthode : in `loop'
Script : Pokemon_Party_Menu* | Ligne : 133 | Méthode : in `main'
Script : Pokemon_Item_Bag* | Ligne : 428 | Méthode : in `update_command'
Script : Pokemon_Item_Bag* | Ligne : 133 | Méthode : in `main'
Script : Pokemon_Item_Bag* | Ligne : 122 | Méthode : in `loop'
Script : Pokemon_Item_Bag* | Ligne : 141 | Méthode : in `main'
Script : Main | Ligne : 58



CODE
Spoiler

Code:

#==============================================================================
# ■ Pokemon_Evolve
# Pokemon Script Project - Krosk
# 01/08/07
# 27/08/08 - révision pour les oeufs
#-----------------------------------------------------------------------------
# Scène à ne pas modifier de préférence
#-----------------------------------------------------------------------------
# Scène appelée en cas de evolve
#-----------------------------------------------------------------------------

module POKEMON_S
  class Pokemon_Evolve
    def initialize(pokemon, evolve_id, z_level = 400, forcing = false)
      Graphics.freeze
      @z_level = z_level
      @forcing = forcing
      @cancel = false
      @pokemon = pokemon
     
      cry_pokemon(@pokemon.id)     
      $game_temp.map_bgm = $game_system.playing_bgm     
      Audio.me_play("Audio/ME/Evolution")
      Audio.bgm_play("Audio/BGM/Evolution")
     
      @evolve_id = evolve_id
      @background = Sprite.new
      @background.x = 13
      @background.y = 13
      @background.bitmap = RPG::Cache.battleback("HatchBack.png")     
     
      @background.z = @z_level
      @background.color = Color.new(0, 0, 0, 0)     
     
      @text_window = Window_Base.new(0, 132, 250, 400)
      @text_window.opacity = 0
      @text_window.z = @z_level + 2
      @text_window.contents = Bitmap.new(608, 412)
      @text_window.contents.font.name = "Pokemon Emerald"
      @text_window.contents.font.size = $fontsize
     
      @message_background = Sprite.new
      @message_background.x = 15
      @message_background.y = 158
      @message_background.z = @z_level + 1
      @message_background.bitmap = RPG::Cache.picture($MSG)
     
      @pokemon_sprite = Sprite.new
      @pokemon_sprite.bitmap = RPG::Cache.battler(@pokemon.battler_face, 0)
      @pokemon_sprite.ox = @pokemon_sprite.bitmap.width / 2
      @pokemon_sprite.oy = @pokemon_sprite.bitmap.height / 2
      @pokemon_sprite.x = 140
      @pokemon_sprite.y = 95
      @pokemon_sprite.z = @z_level + 5
      @pokemon_sprite.color = Color.new(255,255,255,0)
      #@pokemon_sprite.zoom_x = 0.5
      #@pokemon_sprite.zoom_y = 0.5
     
      if @pokemon.egg
        @egg_sprite = Sprite.new
        @egg_sprite.bitmap = RPG::Cache.battler("BreakEgg0", 0)
        @egg_sprite.ox = @egg_sprite.bitmap.width / 2
        @egg_sprite.oy = @egg_sprite.bitmap.height / 2
        @egg_sprite.x = 140
        @egg_sprite.y = 95
        @egg_sprite.z = @z_level + 10
        @egg_sprite.visible = false
        @egg_sprite.zoom_x = 0.5
        @egg_sprite.zoom_y = 0.5
      end
     
      @evolved_sprite = Sprite.new
      @evolved_sprite.x = 140
      @evolved_sprite.y = 95
      @evolved_sprite.bitmap = RPG::Cache.battler(evolved_sprite_generation, 0)
      @evolved_sprite.ox = @evolved_sprite.bitmap.width / 2
      @evolved_sprite.oy = @evolved_sprite.bitmap.height / 2
      @evolved_sprite.z = @z_level + 6
      @evolved_sprite.zoom_x = 0
      @evolved_sprite.zoom_y = 0
      @evolved_sprite.color = Color.new(255,255,255,255)     
      Graphics.transition(20)
    end
   
   
    def main
      if not @pokemon.egg
        draw_text("Quoi ?", @pokemon.given_name + " évolue !")
        wait(40)
     
        # Blanchissement
        until @pokemon_sprite.color.alpha >= 255
          @pokemon_sprite.color.alpha += 20
          @background.color.alpha += 10
          Graphics.update
        end
       
        # Oscillement
        t = 0
        loop do
          t += 1
          if t > 100
            t +=1
          end
          if t > 250
            t += 1
          end
          if t > 450
            t += 1
          end
          pi = 3.14159265
          @pokemon_sprite.zoom_x = (Math.cos(t*2*pi/50)+1)/2
          @pokemon_sprite.zoom_y = (Math.cos(t*2*pi/50)+1)/2
          @evolved_sprite.zoom_x = (Math.cos(t*2*pi/50+pi)+1)/2
          @evolved_sprite.zoom_y = (Math.cos(t*2*pi/50+pi)+1)/2
          Input.update
          Graphics.update
          if t >= 650
            break
          end
          if Input.trigger?(Input::B) and not @forcing
            @cancel = true
            break
          end
        end
      else       
        wait(40)
        t = 0
        loop do
          t += 1
          if ( t >= 0 and t < 20 ) or ( t >= 60 and t < 80) or
            ( t >= 130 and t < 170 ) or ( t >= 220 and t < 260 )
            @pokemon_sprite.x += 3 * (2*(t%2) - 1)
            @egg_sprite.x += 3 * (2*(t%2) - 1)
          end
          Graphics.update
          if t == 20
            @egg_sprite.visible = true
            @egg_sprite.bitmap = RPG::Cache.battler("BreakEgg0", 0)
            @egg_sprite.update
          end
          if t == 80
            @egg_sprite.bitmap = RPG::Cache.battler("BreakEgg1", 0)
            @egg_sprite.update
          end
          if t == 170
            @egg_sprite.visible = true
            @egg_sprite.bitmap = RPG::Cache.battler("BreakEgg2", 0)
            @egg_sprite.update
          end
          if t > 260
            @evolved_sprite.zoom_x = 0.3
            @evolved_sprite.zoom_y = 0.3
            @egg_sprite.color = Color.new(255,255,255,0)
            break
          end
        end
      end
     
      if @cancel and not @forcing
        until @pokemon_sprite.zoom_x >= 1
          @evolved_sprite.zoom_x -= 0.1
          @evolved_sprite.zoom_y -= 0.1
          @pokemon_sprite.zoom_x += 0.1
          @pokemon_sprite.zoom_y += 0.1
          Graphics.update
        end
        @pokemon_sprite.zoom_y = 1
        @pokemon_sprite.zoom_x = 1
        @evolved_sprite.zoom_x = 0
        @evolved_sprite.zoom_y = 0
        Graphics.update
        until @pokemon_sprite.color.alpha <= 0
          @pokemon_sprite.color.alpha -= 20
          @background.color.alpha -= 10
          Graphics.update
        end
        Graphics.update
        draw_text("Que... ! "+@pokemon.given_name, "n'a pas évolué !")
        wait(40)
        wait_hit
        draw_text("", "")
      else
        # Rétablissement
        until @evolved_sprite.zoom_x >= 1
          @evolved_sprite.zoom_x += 0.1
          @evolved_sprite.zoom_y += 0.1
          @pokemon_sprite.zoom_x -= 0.1
          @pokemon_sprite.zoom_y -= 0.1
          if @pokemon.egg
            @evolved_sprite.zoom_x += 0.1
            @evolved_sprite.zoom_y += 0.1
            @pokemon_sprite.zoom_x += 0.40
            @pokemon_sprite.zoom_y += 0.40
            @pokemon_sprite.color.alpha += 40
            @pokemon_sprite.opacity -= 40
            @egg_sprite.zoom_x += 0.15
            @egg_sprite.zoom_y += 0.15
            @egg_sprite.opacity -= 40
            @egg_sprite.color.alpha += 40
          end
          Graphics.update
        end
       
        @evolved_sprite.zoom_x = 1
        @evolved_sprite.zoom_y = 1
        @pokemon_sprite.zoom_x = 0
        @pokemon_sprite.zoom_y = 0
        Graphics.update
       
        # Colorisation
        until @evolved_sprite.color.alpha == 0
          @evolved_sprite.color.alpha -= 20
          @background.color.alpha -= 10
          Graphics.update
        end
       
        loop do
          if @pokemon_sprite.color.alpha == 255 and @pokemon_sprite.zoom_x > 0
            @pokemon_sprite.zoom_x -= 0.1
            @pokemon_sprite.zoom_y -= 0.1
            @evolved_sprite.zoom_x += 0.1
            @evolved_sprite.zoom_y += 0.1
          end
          if @evolved_sprite.zoom_x >= 1
            @evolved_sprite.color.alpha -= 20
            @background.color.alpha -= 10
          end
          Graphics.update
          if @evolved_sprite.color.alpha == 0
            break
          end
        end       
        cry_pokemon(@evolve_id)
        wait(20)
        Audio.me_play("Audio/ME/Pokémon Evolué")
        if not @pokemon.egg
          draw_text("Félicitations ! "+@pokemon.given_name,
          "a évolué en "+Pokemon_Info.name(@evolve_id)+" !")
        else
          draw_text(Pokemon_Info.name(@evolve_id),"vient de sortir de l'OEUF !")
          end
        wait(40)
        wait_hit
        draw_text("", "")
        if @forcing
          @pokemon.evolve(@evolve_id)
        else
          @pokemon.evolve
        end
        $data_pokedex[@pokemon.id] = [ true, true ]
      end
     
      Graphics.freeze
      $game_system.bgm_play($game_temp.map_bgm)
      Audio.me_stop
      @text_window.dispose
      @message_background.dispose
      @background.dispose
      @pokemon_sprite.dispose
      @evolved_sprite.dispose
      if @pokemon.egg
        @egg_sprite.dispose
      end
      @text_window = nil
    end
   
    def evolved_sprite_generation
      ida = sprintf("%03d", @evolve_id)
      if @pokemon.gender == 1 or @pokemon.gender == 0
        string = "Front_Male/" + ida + ".png"
      elsif @pokemon.gender == 2
      string = "Front_Female/" + ida + ".png"
      #  if not(FileTest.exist?("Graphics/Battlers/" + string))
        if not($picture_data["Graphics/Battlers/" + string])
          string = "Front_Male/" + ida + ".png"
        end
      end
     
      if @pokemon.shiny
        string2 = "Shiny_" + string
        #if FileTest.exist?("Graphics/Battlers/" + string2)
        if $picture_data["Graphics/Battlers/" + string2]
          string = string2
        end
      end
     
      return string
    end
   
    def draw_text(line1 = "", line2 = "")
      Graphics.freeze
      @text_window.contents.clear
      @text_window.draw_text(13, 8, 212, 32, line1)
      @text_window.draw_text(13, 24, 212, 32, line2)     
      Graphics.transition(5)
    end
   
    def cry_pokemon(id_data)
    if id_data.type == String
      id = id_conversion(id_data)
    elsif id_data.type == Fixnum
      id = id_data
    end
    ida = sprintf("%03d", id)
    filename = "Audio/SE/Cries/" + ida + "Cry.wav"
    if FileTest.exist?(filename)
      Audio.se_play(filename)
    end
    return true
  end
 
    def wait_hit
      loop do
        Graphics.update
        Input.update
        if Input.trigger?(Input::C)
          $game_system.se_play($data_system.decision_se)
          break
        end
      end
    end
     
    def wait(frame)
      i = 0
      loop do
        i += 1
        Graphics.update
        if i >= frame
          break
        end
      end
    end
  end
end



merci par avance Imbécile heureux

Posté par Schneitizel le 14 Mar - 20:34 (2014)
Le nom est mal renseigné => Essaye de change le nom de l'évolution dans ta BDD en MAJUSCULE seulement (Par exemple si tu veut faire évoluer Bulbizarre en Herbizarre, remplace ce dernier dans l'onglet "Pokémon" par "HERBIZARRE", et test)