Sujet n°3222
Posté par D3m le 16 Mar - 19:01 (2009)
Titre : Bug au démarrage des combats.
Voilà, j'ai eu un bug que je persiste à résoudre et que je n'arrive pas à résoudre. Quand je vais dans les hautes herbes pour faire un combat, mon personnage ne bouge plus et un message d'erreur apparaît :


Voici mon scenemap actuel :
Spoiler
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
#  マップ画面の処理を行うクラスです。
#==============================================================================

class Scene_Map
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  def main
    # スプライトセットを作成
    @spriteset = Spriteset_Map.new
    # メッセージウィンドウを作成
    @message_window = Window_Message.new
    # トランジション実行
    Graphics.transition
    # メインループ
    loop do
      # ゲーム画面を更新
      Graphics.update
      # 入力情報を更新
      Input.update
      # フレーム更新
      update
      # 画面が切り替わったらループを中断
      if $scene != self
        break
      end
    end
    # トランジション準備
    Graphics.freeze
    # スプライトセットを解放
    @spriteset.dispose
    # メッセージウィンドウを解放
    @message_window.dispose
    # タイトル画面に切り替え中の場合
    if $scene.is_a?(Scene_Title)
      # 画面をフェードアウト
      Graphics.transition
      Graphics.freeze
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # ループ
    loop do
      # マップ、インタプリタ、プレイヤーの順に更新
      # (この更新順序は、イベントを実行する条件が満たされているときに
      #  プレイヤーに一瞬移動する機会を与えないなどの理由で重要)
      $game_map.update
      $game_system.map_interpreter.update
      $game_player.update
      # システム (タイマー)、画面を更新
      $game_system.update
      $game_screen.update
      # プレイヤーの場所移動中でなければループを中断
      unless $game_temp.player_transferring
        break
      end
      # 場所移動を実行
      transfer_player
      # トランジション処理中の場合、ループを中断
      if $game_temp.transition_processing
        break
      end
    end
    # スプライトセットを更新
    @spriteset.update
    # メッセージウィンドウを更新
    @message_window.update
    # ゲームオーバーの場合
    if $game_temp.gameover
      # ゲームオーバー画面に切り替え
      $scene = Scene_Gameover.new
      return
    end
    # タイトル画面に戻す場合
    if $game_temp.to_title
      # タイトル画面に切り替え
      $scene = Scene_Title.new
      return
    end
    # トランジション処理中の場合
    if $game_temp.transition_processing
      # トランジション処理中フラグをクリア
      $game_temp.transition_processing = false
      # トランジション実行
      if $game_temp.transition_name == ""
        Graphics.transition(20)
      else
        Graphics.transition(40, "Graphics/Transitions/" +
          $game_temp.transition_name)
      end
    end
    # メッセージウィンドウ表示中の場合
    if $game_temp.message_window_showing
      return
    end
    # エンカウント カウントが 0 で、エンカウントリストが空ではない場合
    if $game_player.encounter_count == 0 and $game_map.encounter_list != []
      # イベント実行中かエンカウント禁止中でなければ
      unless $game_system.map_interpreter.running? or
             $game_system.encounter_disabled
        # トループを決定
        n = rand($game_map.encounter_list.size)
        troop_id = $game_map.encounter_list[n]
        # トループが有効なら
        if $data_troops[troop_id] != nil
          # バトル呼び出しフラグをセット
          $game_temp.battle_calling = true
          $game_temp.battle_troop_id = troop_id
          $game_temp.battle_can_escape = true
          $game_temp.battle_can_lose = false
          $game_temp.battle_proc = nil
        end
      end
    end
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # イベント実行中かメニュー禁止中でなければ
      unless $game_system.map_interpreter.running? or
             $game_system.menu_disabled
        # メニュー呼び出しフラグと SE 演奏フラグをセット
        $game_temp.menu_calling = true
        $game_temp.menu_beep = true
      end
    end
    # デバッグモードが ON かつ F9 キーが押されている場合
    if $DEBUG and Input.press?(Input::F9)
      # デバッグ呼び出しフラグをセット
      $game_temp.debug_calling = true
    end
    # プレイヤーの移動中ではない場合
    unless $game_player.moving?
      # 各種画面の呼び出しを実行
      if $game_temp.battle_calling
        call_battle
      elsif $game_temp.shop_calling
        call_shop
      elsif $game_temp.name_calling
        call_name
      elsif $game_temp.menu_calling
        call_menu
      elsif $game_temp.save_calling
        call_save
      elsif $game_temp.debug_calling
        call_debug
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● バトルの呼び出し
  #--------------------------------------------------------------------------
  def call_battle
    # バトル呼び出しフラグをクリア
    $game_temp.battle_calling = false
    # メニュー呼び出しフラグをクリア
    $game_temp.menu_calling = false
    $game_temp.menu_beep = false
    # エンカウント カウントを作成
    $game_player.make_encounter_count
    # マップ BGM を記憶し、BGM を停止
    $game_temp.map_bgm = $game_system.playing_bgm
    $game_system.bgm_stop
    # バトル開始 SE を演奏
    $game_system.se_play($data_system.battle_start_se)
    # バトル BGM を演奏
    $game_system.bgm_play($game_system.battle_bgm)
    # プレイヤーの姿勢を矯正
    $game_player.straighten
    # バトル画面に切り替え
    $scene = Scene_Battle.new
  end
  #--------------------------------------------------------------------------
  # ● ショップの呼び出し
  #--------------------------------------------------------------------------
  def call_shop
    # ショップ呼び出しフラグをクリア
    $game_temp.shop_calling = false
    # プレイヤーの姿勢を矯正
    $game_player.straighten
    # ショップ画面に切り替え
    $scene = Scene_Shop.new
  end
  #--------------------------------------------------------------------------
  # ● 名前入力の呼び出し
  #--------------------------------------------------------------------------
  def call_name
    # 名前入力呼び出しフラグをクリア
    $game_temp.name_calling = false
    # プレイヤーの姿勢を矯正
    $game_player.straighten
    # 名前入力画面に切り替え
    $scene = Scene_Name.new
  end
  #--------------------------------------------------------------------------
  # ● メニューの呼び出し
  #--------------------------------------------------------------------------
  def call_menu
    # メニュー呼び出しフラグをクリア
    $game_temp.menu_calling = false
    # メニュー SE 演奏フラグがセットされている場合
    if $game_temp.menu_beep
      # 決定 SE を演奏
      $game_system.se_play($data_system.decision_se)
      # メニュー SE 演奏フラグをクリア
      $game_temp.menu_beep = false
    end
    # プレイヤーの姿勢を矯正
    $game_player.straighten
    # メニュー画面に切り替え
    $scene = Scene_Menu.new
  end
  #--------------------------------------------------------------------------
  # ● セーブの呼び出し
  #--------------------------------------------------------------------------
  def call_save
    # プレイヤーの姿勢を矯正
    $game_player.straighten
    # セーブ画面に切り替え
    $scene = Scene_Save.new
  end
  #--------------------------------------------------------------------------
  # ● デバッグの呼び出し
  #--------------------------------------------------------------------------
  def call_debug
    # デバッグ呼び出しフラグをクリア
    $game_temp.debug_calling = false
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # プレイヤーの姿勢を矯正
    $game_player.straighten
    # デバッグ画面に切り替え
    $scene = Scene_Debug.new
  end
  #--------------------------------------------------------------------------
  # ● プレイヤーの場所移動
  #--------------------------------------------------------------------------
  def transfer_player
    # プレイヤー場所移動フラグをクリア
    $game_temp.player_transferring = false
    # 移動先が現在のマップと異なる場合
    if $game_map.map_id != $game_temp.player_new_map_id
      # 新しいマップをセットアップ
      $game_map.setup($game_temp.player_new_map_id)
    end
    # プレイヤーの位置を設定
    $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
    # プレイヤーの向きを設定
    case $game_temp.player_new_direction
    when 2  # 下
      $game_player.turn_down
    when 4  # 左
      $game_player.turn_left
    when 6  # 右
      $game_player.turn_right
    when 8  # 上
      $game_player.turn_up
    end
    # プレイヤーの姿勢を矯正
    $game_player.straighten
    # マップを更新 (並列イベント実行)
    $game_map.update
    # スプライトセットを再作成
    @spriteset.dispose
    @spriteset = Spriteset_Map.new
    # トランジション処理中の場合
    if $game_temp.transition_processing
      # トランジション処理中フラグをクリア
      $game_temp.transition_processing = false
      # トランジション実行
      Graphics.transition(20)
    end
    # マップに設定されている BGM と BGS の自動切り替えを実行
    $game_map.autoplay
    # フレームリセット
    Graphics.frame_reset
    # 入力情報を更新
    Input.update
  end
end


J'ai déjà essayé de le remplacer par celui ci :
Spoiler
#==============================================================================
# ■ Scene_Map
# Pokemon Script Project - Krosk
# 18/07/07
#-----------------------------------------------------------------------------
# Scène à ne pas modifier de préférence
#-----------------------------------------------------------------------------
# Variables appelées:
# $random_encounter
#   Défini les monstres rencontrés sur la map et la fréquence d'apparition
#   A définir de manière automatique par le logiciel, ou de manière manuelle
#   en processus parallèle sur chaque map comme ci:
#     set_encounter(rate, list1, list2, list3, list4)
#     'rate' correspond à la fréquence d'apparition
#     'listx' correspond à la liste de Pokémons, défini comme:
#         x = tag terrain
#         listx = [écart, [id, level, rareté locale] , [id, level, rl] , ... ]
#
#     $random_encounter[0] = rate
#     $random_encounter[1] = list1
#     $random_encounter[2] = list2
#     $random_encounter[3] = list3
#     $random_encounter[4] = list4
#-----------------------------------------------------------------------------

class Scene_Map
  attr_accessor :spriteset

  def call_menu
    # Redéfinition
    $game_temp.menu_calling = false
    if $game_temp.menu_beep
      $game_system.se_play($data_system.decision_se)
      $game_temp.menu_beep = false
    end
    $game_player.straighten
    $scene = POKEMON_S::Pokemon_Menu.new
  end
 
  def call_save
    $game_player.straighten
    $scene = POKEMON_S::Pokemon_Save.new
  end
 
  def update
    loop do
      $game_map.update
      $game_map.refresh
      $game_system.map_interpreter.update
      $game_player.update
      $game_system.update
      $game_screen.update
      unless $game_temp.player_transferring
        break
      end
      transfer_player
      if $game_temp.transition_processing
        break
      end
    end
   
    $use_rec_item = false
   
    @spriteset.update
    @message_window.update
   
    if $game_temp.gameover
      $scene = Scene_Gameover.new
      return
    end
   
    if $game_temp.to_title
      $scene = Scene_Title.new
      return
    end
   
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      if $game_temp.transition_name == ""
        Graphics.transition(20)
      else
        Graphics.transition(40, "Graphics/Transitions/" +
          $game_temp.transition_name)
      end
    end
   
    if $game_temp.message_window_showing
      return
    end
   
    # Comptage Rencontre aléatoire
    if $random_encounter != [0] and $game_player.encounter_count == 0
      tag = $game_player.terrain_tag
      unless $game_system.map_interpreter.running? or
              $game_system.encounter_disabled or
              tag == 0
       
        enemy_list = $random_encounter[tag]
        if enemy_list != nil and enemy_list.length > 1
          $game_temp.battle_calling = true
        end
      end
    end
   
    if Input.trigger?(Input::B)
      unless $game_system.map_interpreter.running? or
             $game_system.menu_disabled
        $game_temp.menu_calling = true
        $game_temp.menu_beep = true
      end
    end
   
    if Input.trigger?(Input::A)
      unless $game_system.map_interpreter.running? or
             $rec_item_id == nil
        $use_rec_item = true
      end
    end
   
    if $DEBUG and Input.press?(Input::F9)
      $game_temp.debug_calling = true
    end
   
    # Map monde
    if $game_map.map_id == POKEMON_S::_WMAPID
      $game_temp.menu_calling = false
      $game_temp.menu_beep = false
      $game_temp.debug_calling = false
      if Input.trigger?(Input::B)
        $game_temp.back_calling = true
      end
      if Input.dir4 == 2 or Input.dir4 == 4 or Input.dir4 == 6 or
          Input.dir4 == 8
        $game_temp.world_map_event_checking = true
      end
      unless $game_player.moving?
        $game_player.check_world_map
      end
    end
   
    unless $game_player.moving?
      if $game_temp.battle_calling
        call_battle
      elsif $game_temp.shop_calling
        call_shop
      elsif $game_temp.name_calling
        call_name
      elsif $game_temp.menu_calling
        call_menu
      elsif $game_temp.save_calling
        call_save
      elsif $game_temp.debug_calling
        call_debug
      elsif $game_temp.back_calling
        call_back_world_map
      elsif $use_rec_item
        int = Interpreter.new
        int.utiliser($rec_item_id)
      end
      $pokemon_party.maj_quetes
    end
   
  end

  #---------------------------------------------------
  # Reset de la variable $random_encounter
  # au changement de map
  #---------------------------------------------------
  def transfer_player
    # Raz Random Encounter
    $random_encounter = [0]
    # Indicateur Force
    $on_strength = false
   
    $game_temp.player_transferring = false

    if $game_map.map_id != $game_temp.player_new_map_id
      $game_map.setup($game_temp.player_new_map_id)
    end
   
    # Random Encounter
    if $game_map.encounter_list != []
      for i in 1..7
        if $random_encounter[i] == nil
          $random_encounter[i] = []
        end
      end
      update_encounter
    end
   
    $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)

    case $game_temp.player_new_direction
    when 2  # 下
      $game_player.turn_down
    when 4  # 左
      $game_player.turn_left
    when 6  # 右
      $game_player.turn_right
    when 8  # 上
      $game_player.turn_up
    end

    $game_player.straighten
    $game_map.update
    @spriteset.dispose
    @spriteset = Spriteset_Map.new
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      Graphics.transition(20)
    end
   
    $game_map.autoplay
    Graphics.frame_reset
    Input.update
  end
 
  def update_encounter
    # Fréquence
    $random_encounter[0] = (2880 / (16.0 * $game_map.encounter_step)).to_i
    # Liste
    for list_id in $game_map.encounter_list
      tag = $data_encounter[list_id][0]
      switch_id = $data_encounter[list_id][3]
      # Vérification de switch
      if (switch_id == 0 or $game_switches[switch_id]) and tag > 0
        $random_encounter[tag] = $data_encounter[list_id][2]
      end
    end
  end
 
  def call_battle
    tag = $game_player.terrain_tag
   
    $game_temp.battle_calling = false
    $game_temp.menu_calling = false
    $game_temp.menu_beep = false
   
    $game_player.make_encounter_count
   
    x = rand(100)
    undist_rate = 100
    call = false
    pokemon = nil
    number = 0
   
    for i in 1..$random_encounter[tag].length-1
      if $random_encounter[tag][i] == nil
        number += 1
      elsif $random_encounter[tag][i][2] == nil and $random_encounter[tag][i][20] == nil
        number += 1
      else
        undist_rate -= $random_encounter[tag][i][2]
      end
    end
   
    until pokemon != nil
      for i in 1..$random_encounter[tag].length-1
        if call
          next
        end
        if number != 0
          x -= undist_rate/number
        end
        if x < 0
          level = $random_encounter[tag][i][1]
          id = $random_encounter[tag][i][0]
          level -= rand($random_encounter[tag][0])
          if level < 1
            level = 1
          end
          pokemon = POKEMON_S::Pokemon.new(id, level)
          call = true
          # Paramètres optionnels
          # Moveset
          if $random_encounter[tag][i][5] != nil
            j = 0
            for skill in $random_encounter[tag][i][5]
              if skill.type == Fixnum and skill > 0
                pokemon.skills_set[j] = POKEMON_S::Skill.new(skill)
              elsif skill.type == String
                pokemon.skills_set[j] = POKEMON_S::Skill.new(POKEMON_S::Skill_Info.id(skill))
              end
              if skill == "AUCUN"
                pokemon.skills_set[j] = nil
              end
              j += 1
            end
            pokemon.skills_set.compact!
          end
          # Stats avancées
          if $random_encounter[tag][i][4] != nil and $random_encounter[tag][i][4].length == 6
            pokemon.dv_modifier($random_encounter[tag][i][4])
          end
          # Genre
          if $random_encounter[tag][i][6] != nil
            pokemon.set_gender($random_encounter[tag][i][6])
          end
          # Forme
          if $random_encounter[tag][i][7] != nil
            pokemon.form = $random_encounter[tag][i][7]
          end
          # Shiny
          if $random_encounter[tag][i][8] != nil
            pokemon.shiny = $random_encounter[tag][i][8]
          end
          # Table stats
          if $random_encounter[tag][i][9] != nil
            pokemon.table_stats = $random_encounter[tag][i][9]
          end
          # Table types
          if $random_encounter[tag][i][10] != nil
            pokemon.table_type = $random_encounter[tag][i][10]
          end
          # Skill types
          if $random_encounter[tag][i][11] != nil
            pokemon.table_skill_type = $random_encounter[tag][i][11]
          end
          # Nature
          if $random_encounter[tag][i][12].type == String
            for i in 0...POKEMON_S::NATURE.size
              if POKEMON_S::NATURE[i][0] == $random_encounter[tag][i][12]
                pokemon.nature = POKEMON_S::NATURE[i]
                break
              end
            end
          elsif $random_encounter[tag][i][12].type == Array and $random_encounter[tag][i][12].size == 6
            pokemon.nature = $random_encounter[tag][i][12]
          end
        end
      end
    end
   
    if $pokemon_party.repel_count > 0 and level < $pokemon_party.max_level
      $game_player.make_encounter_count
      return
    end
   
   
   
    $game_temp.map_bgm = $game_system.playing_bgm
    $game_system.bgm_stop
    $game_system.se_play($data_system.battle_start_se)
    $game_player.straighten
   
    $scene = POKEMON_S::Pokemon_Battle_Wild.new($pokemon_party, pokemon)
  end
end


J'espère que vous pourrez m'aidez à le résoudre ! Bouche extensiblek:

Posté par Pαlвσlѕку le 16 Mar - 19:11 (2009)
Reprend le script de PSP0.7 et met le à la place. Cela devrait fonctionner normalement Petit saligaud mal élevé

A part ça, j'ai rien à d'autre à ajouter.

---> Palbolsky <---

PS : N'oublies pas le OK dans le titre si c'est résolu.

Posté par D3m le 16 Mar - 19:32 (2009)
Euh.. merci mais sa ne fonctionne toujours pas. Le même code erreur..   :(

Posté par Pαlвσlѕку le 16 Mar - 19:39 (2009)
Réessaye avec celui là. Où cas où tu ne possèderais pas le bon.

Script Scene_Map

Code:
#==============================================================================
# ■ Scene_Map
# Pokemon Script Project - Krosk
# 18/07/07
#-----------------------------------------------------------------------------
# Scène à ne pas modifier de préférence
#-----------------------------------------------------------------------------
# Variables appelées:
# $random_encounter
#   Défini les monstres rencontrés sur la map et la fréquence d'apparition
#   A définir de manière automatique par le logiciel, ou de manière manuelle
#   en processus parallèle sur chaque map comme ci:
#     set_encounter(rate, list1, list2, list3, list4)
#     'rate' correspond à la fréquence d'apparition
#     'listx' correspond à la liste de Pokémons, défini comme:
#         x = tag terrain
#         listx = [écart, [id, level, rareté locale] , [id, level, rl] , ... ]
#
#     $random_encounter[0] = rate
#     $random_encounter[1] = list1
#     $random_encounter[2] = list2
#     $random_encounter[3] = list3
#     $random_encounter[4] = list4
#-----------------------------------------------------------------------------

class Scene_Map
  attr_reader :spriteset

  def call_menu
    # Redéfinition
    $game_temp.menu_calling = false
    if $game_temp.menu_beep
      $game_system.se_play($data_system.decision_se)
      $game_temp.menu_beep = false
    end
    $game_player.straighten
    $scene = POKEMON_S::Pokemon_Menu.new
  end
 
  def call_save
    $game_player.straighten
    $scene = POKEMON_S::Pokemon_Save.new
  end
 
  def update
    loop do
      $game_map.update
      $game_system.map_interpreter.update
      $game_player.update
      $game_system.update
      $game_screen.update
      unless $game_temp.player_transferring
        break
      end
      transfer_player
      if $game_temp.transition_processing
        break
      end
    end
   
    @spriteset.update
    @message_window.update
   
    if $game_temp.gameover
      $scene = Scene_Gameover.new
      return
    end
   
    if $game_temp.to_title
      $scene = Scene_Title.new
      return
    end
   
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      if $game_temp.transition_name == ""
        Graphics.transition(20)
      else
        Graphics.transition(40, "Graphics/Transitions/" +
          $game_temp.transition_name)
      end
    end
   
    if $game_temp.message_window_showing
      return
    end
   
    # Comptage Rencontre aléatoire
    if $random_encounter != [0] and $game_player.encounter_count == 0
      tag = $game_player.terrain_tag
      unless $game_system.map_interpreter.running? or
              $game_system.encounter_disabled or
              tag == 0
       
        enemy_list = $random_encounter[tag]
        if enemy_list != nil and enemy_list.length > 1
          $game_temp.battle_calling = true
        end
      end
    end
   
    if Input.trigger?(Input::B)
      unless $game_system.map_interpreter.running? or
             $game_system.menu_disabled
        $game_temp.menu_calling = true
        $game_temp.menu_beep = true
      end
    end
   
    if $DEBUG and Input.press?(Input::F9)
      $game_temp.debug_calling = true
    end
   
    # Map monde
    if $game_map.map_id == POKEMON_S::_WMAPID
      $game_temp.menu_calling = false
      $game_temp.menu_beep = false
      $game_temp.debug_calling = false
      if Input.trigger?(Input::B)
        $game_temp.back_calling = true
      end
      if Input.dir4 == 2 or Input.dir4 == 4 or Input.dir4 == 6 or
          Input.dir4 == 8
        $game_temp.world_map_event_checking = true
      end
      unless $game_player.moving?
        $game_player.check_world_map
      end
    end
   
    unless $game_player.moving?
      if $game_temp.battle_calling
        call_battle
      elsif $game_temp.shop_calling
        call_shop
      elsif $game_temp.name_calling
        call_name
      elsif $game_temp.menu_calling
        call_menu
      elsif $game_temp.save_calling
        call_save
      elsif $game_temp.debug_calling
        call_debug
      elsif $game_temp.back_calling
        call_back_world_map
      end
    end
  end

  #---------------------------------------------------
  # Reset de la variable $random_encounter
  # au changement de map
  #---------------------------------------------------
  def transfer_player
    # Raz Random Encounter
    $random_encounter = [0]
    # Indicateur Force
    $on_strength = false
   
    $game_temp.player_transferring = false

    if $game_map.map_id != $game_temp.player_new_map_id
      $game_map.setup($game_temp.player_new_map_id)
    end
   
    # Random Encounter
    if $game_map.encounter_list != []
      for i in 1..7
        if $random_encounter[i] == nil
          $random_encounter[i] = []
        end
      end
      update_encounter
    end
   
    $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)

    case $game_temp.player_new_direction
    when 2  # 下
      $game_player.turn_down
    when 4  # 左
      $game_player.turn_left
    when 6  # 右
      $game_player.turn_right
    when 8  # 上
      $game_player.turn_up
    end

    $game_player.straighten
    $game_map.update
    @spriteset.dispose
    @spriteset = Spriteset_Map.new
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      Graphics.transition(20)
    end
   
    $game_map.autoplay
    Graphics.frame_reset
    Input.update
  end
 
  def update_encounter
    # Fréquence
    $random_encounter[0] = (2880 / (16.0 * $game_map.encounter_step)).to_i
    # Liste
    for list_id in $game_map.encounter_list
      tag = $data_encounter[list_id][0]
      switch_id = $data_encounter[list_id][3]
      # Vérification de switch
      if (switch_id == 0 or $game_switches[switch_id]) and tag > 0
        $random_encounter[tag] = $data_encounter[list_id][2]
      end
    end
  end
 
  def call_battle
    tag = $game_player.terrain_tag
   
    $game_temp.battle_calling = false
    $game_temp.menu_calling = false
    $game_temp.menu_beep = false
   
    $game_player.make_encounter_count
   
    x = rand(100)
    undist_rate = 100
    call = false
    pokemon = nil
    number = 0
   
    for i in 1..$random_encounter[tag].length-1
      if $random_encounter[tag][i][2] == nil
        number += 1
      else
        undist_rate -= $random_encounter[tag][i][2]
      end
    end
   
    until pokemon != nil
      for i in 1..$random_encounter[tag].length-1
        if call
          next
        end
        if $random_encounter[tag][i][2] != nil
          x -= $random_encounter[tag][i][2]
        elsif number != 0
          x -= undist_rate/number
        end
        if x < 0
          level = $random_encounter[tag][i][1]
          id = $random_encounter[tag][i][0]
          level -= rand($random_encounter[tag][0])
          if level < 1
            level = 1
          end
          pokemon = POKEMON_S::Pokemon.new(id, level)
          call = true
        end
      end
    end
   
    if $pokemon_party.repel_count > 0 and level < $pokemon_party.max_level
      $game_player.make_encounter_count
      return
    end
   
    $game_temp.map_bgm = $game_system.playing_bgm
    $game_system.bgm_stop
    $game_system.se_play($data_system.battle_start_se)
    $game_player.straighten
   
    $scene = POKEMON_S::Pokemon_Battle_Wild.new($pokemon_party, pokemon)
  end
end


NOTE : Reprend une nouvelle partie, et évite d'utiliser la save auto.

Posté par Sphinx le 16 Mar - 21:27 (2009)
>> PS : le Scene_Map de 4G+ contient plusieurs systèmes (dont les baies, si jdis pas de bêtises) que celui de 0.7 n'avait pas, donc faudrait voir ce qui marche & ce qui ne marche plus avec ce script ^o^'

Posté par D3m le 17 Mar - 12:45 (2009)
Palbolsky, ce ne marche toujours pas, et en prime un nouveau message d'erreur !  :?

Posté par Pαlвσlѕку le 17 Mar - 20:25 (2009)
Sphinx >> Je n'ai aucun problème avec ma méthode.

D3m : Je n'ai plus d'idée.