Advertisement
Diego-Mertens

Pokémon LGP&E Combo de Capturas

Apr 27th, 2019
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.80 KB | None | 0 0
  1. ##                     Sistema de Combos de Captura
  2. ##                         by Diego Mertens
  3.  
  4. class PokemonTemp #Aquí se definen las variables que usaremos
  5.   attr_accessor :catchcombo
  6.   attr_accessor :buscando
  7.   attr_accessor :actual
  8.   attr_accessor :newchances
  9. end
  10. CADENAMAXIMA=31 #el nivel máximo en el que la cadena buscará por shinies Y por los IV's de un Pokémon
  11. INTERRUPTOR=118 #pongan aquí un interruptor que no uses
  12. chances = EncounterTypes::EnctypeChances[EncounterTypes::Land] if !$PokemonGlobal && !$PokemonGlobal.surfing #aquí se definen las probabilidades en el pasto, sólo si no surfeas
  13. chances = EncounterTypes::EnctypeChances[EncounterTypes::Water] if $PokemonGlobal && $PokemonGlobal.surfing #y aquí, en el agua, sólo si surfeas
  14. Events.onStartBattle+=proc {|sender,e| #al iniciar la batalla, ocurre lo siguiente
  15.   species=e[0]
  16.   $PokemonTemp.newchances= chances if $PokemonTemp.newchances= $PokemonTemp.newchances==nil# se definen las chances si no se había hecho ya
  17.   $PokemonTemp.catchcombo=0 if !$game_switches[INTERRUPTOR] #interruptor con el cual diremos que todo comenzó
  18.     if $PokemonTemp.catchcombo==6 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y)) #si la cadena es igual a 6 y se está en la hierba, se cambian las chances de encuentro
  19.       chances = [15,15,10,10,10,10,5,5,4,4,6,6]
  20.     elsif $PokemonTemp.catchcombo==6 && $PokemonGlobal && $PokemonGlobal.surfing
  21.       chances = [50,30,5,9,6]
  22.     elsif $PokemonTemp.catchcombo==12 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  23.       chances = [10,10,10,10,10,10,5,5,4,4,11,11]
  24.     elsif $PokemonTemp.catchcombo>=12 && $PokemonGlobal && $PokemonGlobal.surfing
  25.       chances = [40,30,10,9,11]
  26.     elsif $PokemonTemp.catchcombo==24 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  27.       chances = [10,10,10,10,5,5,5,5,9,9,11,11]
  28.     elsif $PokemonTemp.catchcombo==24 && $PokemonGlobal && $PokemonGlobal.surfing
  29.       chances = [40,20,15,14,11]
  30.     elsif $PokemonTemp.catchcombo==30 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  31.       chances = [15,15,10,10,10,10,5,5,4,4,6,6]
  32.     elsif $PokemonTemp.catchcombo==30 && $PokemonGlobal && $PokemonGlobal.surfing
  33.       chances = [10,10,10,30,40]
  34.     elsif $PokemonTemp.catchcombo==0 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))# se restaura a sus valores originales cuando la cadena se rompe
  35.       chances = [20,20,10,10,10,10,5,5,4,4,1,1]
  36.     elsif $PokemonTemp.catchcombo==0 && $PokemonGlobal && $PokemonGlobal.surfing
  37.       chances = [60,30,5,4,1]
  38.     end
  39.     $PokemonTemp.newchances= chances
  40. }
  41.  
  42. Events.onWildBattleEnd+=proc {|sender,e| #al terminar la batalla, pasará lo siguiente
  43.   species=e[0]
  44.   result=e[2]
  45.   $PokemonTemp.newchances= chances if $PokemonTemp.newchances==nil
  46.   $PokemonTemp.buscando = species if $PokemonTemp.catchcombo==0 #se define la especie que buscamos si la cadena es igual a 0, por lo que al iniciar, se quedará igual
  47.   $PokemonTemp.actual = species #se define la especie actual, es decir, la ultima especie que vimos salvaje
  48.   if $PokemonTemp.catchcombo>=1 #si la cadena es mayor o igual a uno, pasa eso
  49.     if result==4 && $PokemonTemp.actual==$PokemonTemp.buscando #si se capturó al pokemon, y es igual al que buscabamos, sigue
  50.       $PokemonTemp.catchcombo+=1 if $PokemonTemp.catchcombo<=CADENAMAXIMA # se le suma +1 a la cadena si no alcanzó ya su valor máximo
  51.       $game_switches[INTERRUPTOR]=true #se enciende el interruptor que dice que iniciamos la cadena
  52.     elsif result==4 && $PokemonTemp.buscando != $PokemonTemp.actual || result != 4 && $PokemonTemp.buscando == $PokemonTemp.actual #si no atrapamos al pokemon que buscabamos o si atrapamos al que no era, se rompe la cadena
  53.       $game_switches[INTERRUPTOR]=false #se apaga el interruptor que decía que la cadena estaba activa
  54.       $PokemonTemp.catchcombo=0 #el nivel de cadena se va a 0
  55.     end
  56.   else #si la cadena es menor a 1, pasa lo siguiente
  57.     if result==4 #si se atrapa al Pokémon, sigue
  58.       $PokemonTemp.catchcombo+=1 #se le suma uno a la cadena
  59.       $game_switches[INTERRUPTOR]=true #se indica que la cadena inició
  60.     else
  61.       $game_switches[INTERRUPTOR]=false
  62.       $PokemonTemp.catchcombo=0
  63.       if PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  64.         chances = [20,20,10,10,10,10,5,5,4,4,1,1]
  65.       elsif $PokemonGlobal && $PokemonGlobal.surfing
  66.         chances = [60,30,5,4,1]
  67.       end
  68.       $PokemonTemp.newchances= chances
  69.     end
  70.   end
  71.   Kernel.pbMessage(_INTL("Combo de captura actual: {1}, de {2}.",$PokemonTemp.catchcombo,PBSpecies.getName($PokemonTemp.buscando))) if $PokemonTemp.catchcombo>=2 && result==4 # aqui, luego de la batalla, salta un texto que te dice tu nivel de cadena si es mayor a 2 y si atrapaste al pokémon
  72.    
  73. }
  74.  
  75. Events.onWildPokemonCreate+=proc{|sender,e| #al momento de crear al pokemon salvaje
  76.   pokemon =e[0]
  77.   $PokemonTemp.catchcombo=0 if $PokemonTemp.catchcombo==nil
  78.   if rand(128)<$PokemonTemp.catchcombo #si un numero al azar entre 0 y 128 es menor a la cadena...
  79.     pokemon.makeShiny #se fuerza a que sea shiny
  80.   else #si no,
  81.     pokemon.makeNotShiny #se fuerza a que NO sea shiny
  82.   end
  83.   for i in 0..$PokemonTemp.catchcombo #no se como explicar esto xd, pero digamos que busca valores entre el 0 y el valor de la cadena
  84.     pokemon.iv[0]=i #setea los ivs para que sean iguales al numero de cadena
  85.     pokemon.iv[1]=i
  86.     pokemon.iv[2]=i
  87.     pokemon.iv[3]=i
  88.     pokemon.iv[4]=i
  89.     pokemon.iv[5]=i
  90.   end
  91.   if rand(50)<$PokemonTemp.catchcombo # genera un numero al azar entre 0 y 50, si es menor al nivel de la cadena, se creará el pokémon que buscamos
  92.     pokemon=$PokemonTemp.buscando # el pokemon que encontramos será de la misma especie que el que buscamos
  93.   end
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement