[Script] Rocket Ball
Pour voler les pokemon des dresseur
Bonjour a tous,
Lors de la construction de mon projet j'avais besoin d'un script pour voler les pokemon avec une ball particulière.
Je me suis donc pencher la dessus et j'ai réussi a éditer le script des dresseurs. Grâce à ce script je vole les pokemon des dresseurs sauf si j'utilise des pokeball normal.
Voici la procédure a faire.
Modifiez le scripte Pokemon_Battle_Trainer de la ligne 470
Script à modifier:
Code: |
# 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 wait(40) return false end
|
Remplacer par:
Code: |
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.type == Array case ball_rate[0] when "rocket" ball_rate = 2 $vole_pokemon = true end end if $vole_pokemon == true 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 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 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 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 $vole_pokemon = false 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 # Attrapé Audio.me_play("Audio/ME/Attraper.ogg") if $game_variables[25] == 1 Audio.bgm_play("Audio/Musique_Victoire/PkmRB-Victory1.mid") end if $game_variables[25] == 2 Audio.bgm_play("Audio/Musique_Victoire/wild-pok-mon-fainted.mid") end if $game_variables[25] == 3 Audio.bgm_play("Audio/Musique_Victoire/PkmRS_Victory1.mid") end if $game_variables[25] == 4 Audio.bgm_play("Audio/Musique_Victoire/pokemon_diamond_pearl-wild_pokemon_fainted.mid") end if $game_variables[25] == 5 Audio.bgm_play("Audio/Musique_Victoire/Victory-Wild_Pokemon.mid") end if $game_variables[25] == 6 Audio.bgm_play("Audio/Musique_Victoire/SEQ_WINPOKE.mid") end @enemy_caught = true draw_text("Et hop! " + @enemy.given_name , "est attrapé!") wait(90) wait_hit until @ball_sprite.opacity <= 0 @ball_sprite.opacity -= 25 Graphics.update end $vole_pokemon = false end if j != 4 return false elsif j == 4 return true end end_battle 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 wait(40) return false end end
|
Allez dans data_ball.txt et ajouter cette ligne:
Code: |
$data_ball[id] = ["ROCKET BALL", ["rocket",1], "fichier de la ball fermer", "fichier de la ball ouvert", Color.new(0,0,0,255)]
|
Remarque: la ball marche aussi sur les pokemon sauvage. La ball est réglée comme une pokeball normal elle n'est pas réglée pour les type et autre.
Voila bonne création
Newtiteuf: Message édité et corrigé pour plus de compréhension.Pichu65 : Entre spoiler c'est encore mieux, avant ca déformé la page :x Bizarrement ca le fait plus.