joeyw a écrit: |
Tu pourrais nous copier/coller ton script Pokemon_Battle_Trainer ? Dans ce script, tu as déjà apparemment correctement paramétré les musiques de combat. Les musiques de victoire sont plus bas dans ce même script |
Code: |
#============================================================================== # ■ Pokemon_Battle_Trainer # Pokemon Script Project - Krosk # 29/09/07 #----------------------------------------------------------------------------- # Scène à ne pas modifier de préférence #----------------------------------------------------------------------------- # Système de Combat - Pokémon Dresseur #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # 0: Normal, 1: Poison, 2: Paralysé, 3: Brulé, 4:Sommeil, 5:Gelé, 8: Toxic # @confuse (6), @flinch (7) #----------------------------------------------------------------------------- # 1 Normal 2 Feu 3 Eau 4 Electrique 5 Plante 6 Glace 7 Combat 8 Poison 9 Sol # 10 Vol 11 Psy 12 Insecte 13 Roche 14 Spectre 15 Dragon 16 Acier 17 Tenebres #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # $battle_var.action_id # 0 : Phase de Sélection # 1 : Sélection Item # 2 : Switch Pokémon # 4 : Switch Fin de Tour #----------------------------------------------------------------------------- module POKEMON_S #------------------------------------------------------------ # Pokemon_Battle_Trainer # scene #------------------------------------------------------------ class Pokemon_Battle_Trainer < Pokemon_Battle_Core attr_accessor :z_level attr_accessor :actor_status attr_accessor :actor #------------------------------------------------------------ # Fonction d'initialisation # Appel: $scene = Pokemon_Battle_Trainer.new( # party, trainer_id, ia) # party: $pokemon_party (classe Pokemon_Party) # trainer_id: L'ID du dresseur dans $data_trainer (groupe de monstres) # ia: Fausse AI # run_able: possible de fuir #------------------------------------------------------------ def initialize(party, trainer_id, ia = false, run_able = false, lose_able = false, capturable = false, niveau = 2) @z_level = 100 @ia = ia @trainer_id = trainer_id @run = run_able @lose = lose_able @niveau = niveau @capture = niveau > 0 ? true : false $sauvage = false $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[7] != nil shiny = pokemon_data[7] 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 for i in 0...pokemon_data[4].size if pokemon_data[4][i] != nil and pokemon_data[4][i] != "AUCUN" pokemon.skills_set[i] = Skill.new(Skill_Info.id(pokemon_data[4][i])) end if pokemon_data[4][i] == "AUCUN" pokemon.skills_set[i] = nil end 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 if pokemon_data[8] != nil pokemon.table_stats = pokemon_data[8] end # Table types if pokemon_data[9] != nil pokemon.table_type = pokemon_data[9] end # Skill types if pokemon_data[10] != nil pokemon.table_skill_type = pokemon_data[10] end # Nature if pokemon_data[11].type == String for i in 0...POKEMON_S::NATURE.size if POKEMON_S::NATURE[i][0] == pokemon_data[11] pokemon.nature = POKEMON_S::NATURE[i] break end end elsif pokemon_data[11].type == Array and pokemon_data[11].size == 6 pokemon.nature = pokemon_data[11] end # Bonheur if pokemon_data[12] != nil pokemon.loyalty = pokemon_data[12] end # Capturable if pokemon_data[13] != nil pokemon.capturable = pokemon_data[13] end # image ball if pokemon_data[14] != nil pokemon.ball_data = $item.data($item.id(pokemon_data[14]))["ball"] end # Table stats $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_flee_enemy = 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 = $alea ? "trainer" + $no_alea : 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 #------------------------------------------------------------ # Animations pré-combat #------------------------------------------------------------ def pre_battle_transition # Jingle et BGM #Audio.bgm_play("Audio/BGM/PkmRS-Battle3.mid") $game_system.bgm_play($game_system.battle_bgm) # Sélection transition s = (rand(BATTLE_TRANS)+1).to_s @background.bitmap = RPG::Cache.picture("black.png") Graphics.transition(100, "Graphics/Transitions/battle"+ s +".png") Audio.me_stop # Dessin Graphics.freeze @background.bitmap = RPG::Cache.battleback(@battleback_name) @message_background.bitmap = RPG::Cache.battleback(BATTLE_MSG) @enemy_sprite.bitmap = RPG::Cache.battler(@start_enemy_battler, 0) @enemy_sprite.ox = @enemy_sprite.bitmap.width / 2 @enemy_sprite.oy = @enemy_sprite.bitmap.height * 2 / 3 @enemy_sprite.x -= 782 @enemy_ground.bitmap = RPG::Cache.battleback(@ground_name) @enemy_ground.ox = @enemy_ground.bitmap.width / 2 @enemy_ground.oy = @enemy_ground.bitmap.height / 2 @enemy_ground.zoom_x = @enemy_ground.zoom_y = 2.0/3 @enemy_ground.x -= 782 @actor_ground.bitmap = RPG::Cache.battleback(@ground_name) @actor_ground.ox = @actor_ground.bitmap.width / 2 @actor_ground.oy = @actor_ground.bitmap.height @actor_ground.x += 782 @actor_sprite.bitmap = RPG::Cache.battler(@start_actor_battler, 0) @actor_sprite.ox = @actor_sprite.bitmap.width / 2 @actor_sprite.oy = @actor_sprite.bitmap.height @actor_sprite.x += 782 Graphics.transition(50, "Graphics/Transitions/battle0.png") end def pre_battle_animation # Glissement des sprites loop do @enemy_sprite.x += 17 @enemy_ground.x += 17 @actor_sprite.x -= 17 @actor_ground.x -= 17 Graphics.update if @enemy_sprite.x == 464 break end end # Confrontation des joueurs avec affichage des balls draw_text("Un combat est lancé", "par "+ Trainer_Info.string(@trainer_id) + "!") @actor_party_status.reset_position @enemy_party_status.reset_position @actor_party_status.visible = true @enemy_party_status.visible = true @actor_party_status.active = true @enemy_party_status.active = true @actor_party_status.x += 400 @enemy_party_status.x -= 400 Graphics.update loop do @actor_party_status.x -= 20 @enemy_party_status.x += 20 Graphics.update if @actor_party_status.x <= 309 @actor_party_status.reset_position @enemy_party_status.reset_position break end end wait_hit # Dégagement sprite dresseur loop do @enemy_sprite.x += 10 @enemy_party_status.x -= 20 Graphics.update if @enemy_sprite.x >= 723 @enemy_party_status.visible = false @enemy_party_status.reset_position @enemy_sprite.oy = @enemy_sprite.bitmap.height / 2 break end end @enemy_sprite.bitmap = RPG::Cache.battler(@enemy.battler_face, 0) # Envoi sprite launch_enemy_pokemon # Attente appui de touche wait(40) # Dégagement du sprite dresseur @actor_party_status.reset_position loop do @actor_sprite.x -= 10 @actor_party_status.x += 20 Graphics.update if @actor_sprite.x <= -200 @actor_sprite.bitmap = RPG::Cache.battler(@actor.battler_back, 0) @actor_party_status.reset_position @actor_party_status.visible = false break end end # Envoi du pokémon (animation) launch_pokemon @text_window.contents.clear Graphics.update end #------------------------------------------------------------ # Déroulement #------------------------------------------------------------ def enemy_skill_decision @enemy_caught = false action = true # ------- ---------- --------- -------- # Saut de phase de sélection (ennemi) # action = false : saut # action = true : pas de saut # ------- ---------- --------- -------- action = phase_jump(true) @enemy_action = 1 # Décision skill ennemi if not(@actor.dead?) and action list = [] for i in 0..@enemy.skills_set.size - 1 list.push(i) end list.shuffle! # Skill sans PP // Lutte @enemy_skill = Skill.new(165) # ---------- for i in list if @enemy.skills_set[i].usable? @enemy_skill = @enemy.skills_set[i] end end end # Trainer IA if @ia and not(@actor.dead?) and action # Skill sans PP // Lutte # @enemy_skill = Skill.new(165) rate_list = {} i = 0 for skill in @enemy.skills_set if skill.usable? rate_list[i] = ia_rate_calculation(skill, @enemy, @actor) else rate_list[i] = 0 end i += 1 end # Tri dans l'ordre decroissant de valeur sorted_list = rate_list.sort {|a,b| b[1]<=a[1]} #for element in sorted_list # print(@enemy.skills_set[element[0]].name) # print(element[1]) #end # Decision prioritaire: max dégat ou soin # Valeur seuil: 200 # si une attaque/défense dépasse ce seuil, il est choisi if sorted_list[0][1] > 200 @enemy_skill = @enemy.skills_set[sorted_list[0][0]] else # Decision par pallier i = rand(100) # Taux de decision taux = [100, 25, 5, 0] for a in 0..3 if i <= taux[a] and sorted_list[a] != nil and sorted_list[a][1] != 0 @enemy_skill = @enemy.skills_set[sorted_list[a][0]] end end end end if not(action) # Reprise du skill précédent @enemy_skill = $battle_var.enemy_last_used end end #------------------------------------------------------------ # Rounds #------------------------------------------------------------ def end_battle_check @actor_status.refresh @enemy_status.refresh if $battle_var.enemy_party.dead? and not(@party.dead?) end_battle_victory elsif @enemy.dead? and not($battle_var.enemy_party.dead?) exp_battle index = $battle_var.enemy_party.actors.index(@enemy) @enemy_switch_id = index+1 alive = 0 for pokemon in @party.actors if not pokemon.dead? alive += 1 end end if alive > 1 name = $battle_var.enemy_party.actors[index+1].name draw_text(name + " va être envoyé", "par " + Trainer_Info.string(@trainer_id) + ".") $pokemon_capturer = false end if @enemy_party_status.active @enemy_party_status.reset_position @enemy_party_status.visible = true @enemy_party_status.x -= 400 until @enemy_party_status.x == -16 @enemy_party_status.x += 20 Graphics.update end end wait_hit if alive > 1 draw_text("Voulez-vous appeler", "un autre Pokémon?") decision = false if draw_choice $battle_var.window_index = @action_window.index scene = Pokemon_Party_Menu.new(0, @z_level + 100) scene.main return_data = scene.return_data decision = true Graphics.transition end # Switch de Pokémon if ($battle_var.action_id == 4 or $battle_var.action_id == 6) and decision @switch_id = return_data actor_pokemon_switch end end if @enemy_party_status.active until @enemy_party_status.x == -416 @enemy_party_status.x -= 20 Graphics.update end @enemy_party_status.visible = false @enemy_party_status.reset_position end # Switch enemy enemy_pokemon_switch end if @actor.dead? if @party.dead? end_battle_defeat else # Switch forcé $battle_var.window_index = @action_window.index scene = Pokemon_Party_Menu.new(0, @z_level + 150) scene.main return_data = scene.return_data # Switch de Pokémon if $battle_var.action_id == 4 or $battle_var.action_id == 6 @switch_id = return_data actor_pokemon_switch end end end end #------------------------------------------------------------ # Items #------------------------------------------------------------ def actor_item_use # items à utiliser # Item déjà utilisé ie remplacé par 0 if @item_id == 0 return end if Item.data(@item_id)["flee"] != nil end_battle_flee return end if Item.data(@item_id)["ball"] != nil ball_data = Item.data(@item_id)["ball"] catch_pokemon(ball_data) end end #------------------------------------------------------------ # Lancer de pokéball #------------------------------------------------------------ def catch_pokemon(ball_data) # Initialisation des données ball_name = ball_data[0] ball_rate = ball_data[1] ball_sprite = ball_data[2] ball_open_sprite = ball_data[3] ball_color = ball_data[4] chances = rand(@niveau * 2) <= rand($pokemon_party.niveau) if $battle_var.enemy_party.actors.index(@enemy) < ($battle_var.enemy_party.size - 1) and ball_rate.type == Array and ball_rate[0] == "vol" and @capture and @enemy.capturable and chances# < 0 if @enemy.asleep? or @enemy.frozen? status_multiplier = 2 elsif @enemy.burn? or @enemy.paralyzed? or @enemy.poisoned? or @enemy.toxic? status_multiplier = 1.5 else status_multiplier = 1 end if ball_rate[1].type == Array case ball_rate[1][0] when "genre" if ball_rate[1][@actor.gender] != nil ball_rate = eval(ball_rate[1][@actor.gender]) else if ball_rate[1][0] != nil ball_rate = eval(ball_rate[1][0]) else ball_rate = 1 end end when "taille" height = Pokemon_Info.height(@enemy.id).split(' ')[0].to_i ball_rate = eval(sprintf(ball_rate[1], height)) if ball_rate == nil or ball_rate < 1 ball_rate = 1 end when "poids" weight = Pokemon_Info.weight(@enemy.id).split(' ')[0].to_i ball_rate = eval(sprintf(ball_rate[1], weight)) if ball_rate == nil or ball_rate < 1 ball_rate = 1 end when "type" if ball_rate[1][1].include?(@enemy.type1) ball_rate = ball_rate[1][2] elsif @enemy.type2 != 0 and ball_rate[1].include?(@enemy.type2) ball_rate = ball_rate[1][2] elsif ball_rate[1][3] != nil ball_rate = ball_rate[1][3] else ball_rate = 1 end when "id" if ball_rate[1][1].include?(@enemy.id) ball_rate = ball_rate[1][2] elsif ball_rate[1][3] != nil ball_rate = ball_rate[1][3] else ball_rate = 1 end when "level" max = 99 if ball_rate[1][2] != nil max = ball_rate[1][2] end ball_rate = eval( sprintf( ball_rate[1][1], @enemy.level ) ) if ball_rate <= 1 ball_rate = 1 end if ball_rate >= max ball_rate = max end when "time" max = 99 if ball_rate[1][2] != nil max = ball_rate[1][2] end ball_rate = eval( sprintf( ball_rate[1][1], $battle_var.round ) ) if ball_rate <= 1 ball_rate = 1 end if ball_rate >= max ball_rate = max end else ball_rate = 1 end else ball_rate = ball_rate[1] end multiplier = @enemy.rareness * (ball_rate) maxhp = @enemy.maxhp_basis hp = @enemy.hp catch_rate = Integer((((maxhp * 3 - hp * 2)*multiplier).to_f/(maxhp*3).to_f)*status_multiplier) catch_value = Integer(1048560 / (Math.sqrt(Math.sqrt(16711680/catch_rate.to_f)))) list = [rand(65536), rand(65536), rand(65536), rand(65536)] j = 4 # nombre de fois que la balle oscille for i in list j -= i > catch_value ? 1 : 0 end # Procédure / Animation # Lancer draw_text(Player.name + " utilise", ball_name + "!") @ball_sprite = Sprite.new @ball_sprite.bitmap = RPG::Cache.picture(ball_sprite) @ball_sprite.x = -25 @ball_sprite.y = 270 @ball_sprite.z = @z_level + 16 t = 0.0 pi = Math::PI loop do t += 16 @ball_sprite.y = (270.0 - 230.0 * Math.sin(2 * pi / 3.0 * t / 445.0)).to_i @ball_sprite.x = -15 + t Graphics.update if @ball_sprite.x >= 445 @ball_sprite.bitmap = RPG::Cache.picture(ball_open_sprite) break end end count = j # "Aspiration" @enemy_sprite.color = ball_color @enemy_sprite.color.alpha = 0 @ball_sprite.z -= 2 until @enemy_sprite.color.alpha >= 255 @flash_sprite.opacity += 50 @enemy_sprite.color.alpha += 50 Graphics.update end Audio.se_play("Audio/SE/Pokeopen.wav") loop do @enemy_sprite.zoom_x -= 0.1 @enemy_sprite.zoom_y -= 0.1 @enemy_sprite.opacity -= 25 @flash_sprite.opacity -= 25 Graphics.update if @enemy_sprite.zoom_x <= 0.1 @flash_sprite.opacity = 0 @enemy_sprite.opacity = 0 break end end @ball_sprite.bitmap = RPG::Cache.picture(ball_sprite) # Oscillement t = 0 r = 0 loop do t += 1 @ball_sprite.y = 81 + 50*(1-Math.exp(-t/20.0)*(Math.cos(t*2*pi/30.0)).abs) if @ball_sprite.y >= 81+45 and r < 6 r += 1 Audio.se_play("Audio/SE/Pokerebond.wav") end Graphics.update if t >= 60 break end end while count > 0 count -= 1 t = 0 Audio.se_play("Audio/SE/Pokemove.wav") loop do t += 4 @ball_sprite.angle = 40*Math.sin(2*pi*t/100.0) @ball_sprite.x = 449 - 12*Math.sin(2*pi*t/100.0) @ball_sprite.y = 131 + 12*Math.sin(2*pi*t/100.0) Graphics.update if t == 100 @ball_sprite.angle = 0 break end end end if j != 4 # Echappé @ball_sprite.bitmap = RPG::Cache.picture(ball_open_sprite) @ball_sprite.z -= 1 Audio.se_stop Audio.se_play("Audio/SE/Pokeopenbreak.wav") @enemy_sprite.oy = @enemy_sprite.bitmap.height @enemy_sprite.y += @enemy_sprite.bitmap.height / 2 + 34 loop do @enemy_sprite.opacity += 25 @enemy_sprite.zoom_x += 0.1 @enemy_sprite.zoom_y += 0.1 @ball_sprite.opacity -= 25 @flash_sprite.opacity += 25 Graphics.update if @enemy_sprite.zoom_x >= 1 @enemy_sprite.oy = @enemy_sprite.bitmap.height / 2 @enemy_sprite.y -= @enemy_sprite.bitmap.height / 2 + 34 Graphics.update @ball_sprite.dispose break end end until @enemy_sprite.color.alpha <= 0 @enemy_sprite.color.alpha -= 25 @flash_sprite.opacity -= 25 Graphics.update end @enemy_sprite.color.alpha = 0 @enemy_sprite.opacity = 255 @flash_sprite.opacity = 0 Graphics.update string1 = j == 3 ? "Mince!" : j == 2 ? "Aaaah!" : j == 1 ? "Raah!" : "Oh non!" string2 = j == 3 ? "Ca y était presque!" : j == 2 ? "Presque!" : j == 1 ? "Ca y était presque!" : "Le POKéMON s'est libéré!" draw_text(string1, string2) wait(40) else for actor in $pokemon_party.actors if $battle_var.have_fought.include?(actor.party_index) actor.fight[0] += 1 if actor.dead? and not(actor.vaudou) actor.vaudou = actor.medaille == nil ? false : $data_medaille[actor.medaille][4] if actor.vaudou draw_text(actor.name + " subit la","malédiction !") wait(40) wait_hit end else actor.fight[1] += 1 end end end # Attrapé @enemy_caught = true Audio.me_play("Audio/ME/Attraper.ogg") wait_hit until @ball_sprite.opacity <= 0 @ball_sprite.opacity -= 25 Graphics.update end end if j != 4 return false elsif j == 4 draw_text("Mon " + @enemy.name + " ! Voleur !") wait(40) voler_enemy return true end else # Procédure / Animation # Lancer draw_text(Player.name + " utilise", ball_name + "!") @ball_sprite = Sprite.new @ball_sprite.bitmap = RPG::Cache.picture(ball_sprite) @ball_sprite.x = -25 @ball_sprite.y = 270 @ball_sprite.z = @z_level + 16 t = 0.0 pi = Math::PI loop do t += 16 @ball_sprite.y = (270.0 - 230.0 * Math.sin(2 * pi / 3.0 * t / 445.0)).to_i @ball_sprite.x = -15 + t Graphics.update if @ball_sprite.x >= 445 break end end Graphics.update # Rejet draw_text(Trainer_Info.string(@trainer_id) + " dévie", "la " + ball_name + " !") Audio.se_stop Audio.se_play("Audio/SE/Pokeopenbreak.wav") t = 0 loop do t += 1 @ball_sprite.x -= -20 @ball_sprite.y += t Graphics.update if t == 10 @ball_sprite.dispose break end end end wait(40) draw_text("Tu n'auras jamais", "mon " + @enemy.name + " !") wait(40) return false end #------------------------------------------------------------ # Fuite #------------------------------------------------------------ def run_able?(runner, opponent) if @run return super end return false end def flee_able(actor, enemy) if @run return super end @action_window.visible = true return false end def end_battle_flee(expulsion = false) if @run return super end draw_text("On ne s'enfuit pas", "d'un combat de dresseurs!") wait_hit end def end_battle_flee_enemy(expulsion = false) if @run return super end draw_text("On ne s'enfuit pas", "d'un combat de dresseurs!") wait_hit end #------------------------------------------------------------ # Exp en cours de combat #------------------------------------------------------------ def exp_battle @actor_status.z = @z_level + 15 # Réduction de liste $battle_var.have_fought.uniq! for index in $battle_var.have_fought actor = $pokemon_party.actors[index] if actor.dead? $battle_var.have_fought.delete(index) end end number = $battle_var.have_fought.length @enemy.skill_effect_reset @enemy.reset_stat_stage if @evolve_checklist == nil @evolve_checklist = [] end if @money_rate == nil @money_rate = 1 end # Recherche de paramètres type = 1.3 exp_share_number = 0 for pokemon in $pokemon_party.actors if not(pokemon.dead?) and Item.data(pokemon.item_hold)["expshare"] exp_share_number += 1 end end for actor in $pokemon_party.actors if actor.dead? next end amount = nil if $battle_var.have_fought.include?(actor.party_index) amount = actor.exp_calculation(@enemy.battle_list, @enemy.level, number, type, exp_share_number) # Tag objet if Item.data(actor.item_hold)["amuletcoin"] @money_rate = 2 end end if Item.data(actor.item_hold)["expshare"] and not($battle_var.have_fought.include?(actor.party_index)) and not(actor.dead?) amount = actor.exp_calculation(@enemy.battle_list, @enemy.level, number, type, exp_share_number, 0) end if amount != nil and not($pokemon_capturer) actor.skill_effect_reset actor.reset_stat_stage actor.add_bonus(@enemy.battle_list) draw_text(actor.given_name + " a gagné", amount.to_s + " points d'expérience!") Graphics.update wait_hit for i in 1..amount actor.add_exp_battle(1) if actor.level_check actor.level_up(self) if not(@evolve_checklist.include?(actor)) @evolve_checklist.push(actor) end end if actor == @actor if @actor.exp_list[@actor.level+1] != nil and @actor.level < MAX_LEVEL divide = (@actor.exp_list[@actor.level+1]-@actor.exp_list[@actor.level])/192 if divide == 0 divide = 1 end if (@actor.exp - @actor.exp_list[@actor.level])%divide == 0 @actor_status.exp_refresh Graphics.update end end end end else $pokemon_capturer = false end end @actor_status.refresh Graphics.update # Reset have_fought $battle_var.have_fought = [@actor.party_index] end #------------------------------------------------------------ # Fin de combat #------------------------------------------------------------ def end_battle_victory $pokemon_party.incr_nb_matchs for actor in $pokemon_party.actors if $battle_var.have_fought.include?(actor.party_index) actor.fight[0] += 1 if actor.dead? and not(actor.vaudou) actor.vaudou = actor.medaille == nil or $data_medaille[actor.medaille] == nil ? false : $data_medaille[actor.medaille][4] if actor.vaudou draw_text(actor.name + " subit la","malédiction !") wait(40) wait_hit end else actor.fight[1] += 1 end end end #Audio.bgm_fade(800) exp_battle $battle_var.result_win = true Audio.me_play("Audio/ME/fainted_jingle.mid") #Audio.me_play("Audio/ME/trainer_jingle.mid") Audio.me_play("Audio/ME/PkmRS Victory2.mid") draw_text("Vous avez battu", Trainer_Info.string(@trainer_id) + "!") @enemy_sprite.opacity = 255 @enemy_sprite.zoom_x = 1 @enemy_sprite.zoom_y = 1 @enemy_sprite.visible = true @start_enemy_battler = $alea ? "trainer" + $no_alea : Trainer_Info.battler(@trainer_id) @enemy_sprite.ox = @enemy_sprite.bitmap.width / 2 @enemy_sprite.oy = @enemy_sprite.bitmap.height / 2 @enemy_sprite.x = 723 @enemy_sprite.y = (@enemy_sprite.bitmap.height * 2 / 3) - 10 @enemy_sprite.bitmap = RPG::Cache.battler(@start_enemy_battler, 0) loop do @enemy_sprite.x -= 10 Graphics.update if @enemy_sprite.x <= 464 break end end wait_hit list_string = Trainer_Info.string_victory(@trainer_id) draw_text(list_string) wait_hit $battle_var.money = Trainer_Info.money(@trainer_id) draw_text(Player.name + " remporte " + ($battle_var.money).to_s + "$!") interets = 0 bq = 0 for i in $game_variables[5000]["banque"] i.maj if i.du > 0 and interets < $battle_var.money int_temp = interets + ($battle_var.money * BANQUE::TAUX / 100.0).round interets += int_temp > $battle_var.money ? $battle_var.money : int_temp i.du -= interets if i.du < 0 interets += i.du i.du -= i.du end bq += 1 end end if bq == 1 draw_text(interets.to_s + "$ ont été prélevés pour","le remboursement de la banque !") elsif bq > 1 draw_text(interets.to_s + "$ ont été prélevés pour","le remboursement des banques !") end $battle_var.money -= interets $pokemon_party.add_money($battle_var.money) wait(40) wait(30) $game_system.bgm_play($game_temp.map_bgm) for actor in @evolve_checklist info = actor.evolve_check if info != false scene = Pokemon_Evolve.new(actor, info, @z_level + 200) scene.main end end end_battle end end end |
joeyw a écrit: |
Ca donnerait un truc comme : Ensuite, tu peux par la même occasion faire pareil pour les musiques de combat aux lignes 198, 199 et 200 |
Code: |
end |
joeyw a écrit: | ||
Tu as oublié le
|