Advertisement
Diego-Mertens

Combo de Capturas 1.3

Apr 27th, 2019
1,239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.95 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.  
  11. CADENAMAXIMA=31 #el nivel máximo en el que la cadena buscará por shinies Y por los IV's de un Pokémon
  12. INTERRUPTOR=118 #pongan aquí un interruptor que no uses
  13. Events.onStartBattle+=proc {|sender,e| #al iniciar la batalla, ocurre lo siguiente
  14.   species=e[0]
  15.   chances = EncounterTypes::EnctypeChances[EncounterTypes::Land] if !$PokemonGlobal && !$PokemonGlobal.surfing #aquí se definen las probabilidades en el pasto, sólo si no surfeas
  16.   chances = EncounterTypes::EnctypeChances[EncounterTypes::Water] if $PokemonGlobal && $PokemonGlobal.surfing #y aquí, en el agua, sólo si surfeas
  17.   $PokemonTemp.newchances= chances if $PokemonTemp.newchances= $PokemonTemp.newchances==nil# se definen las chances si no se había hecho ya
  18.   $PokemonTemp.catchcombo=0 if !$game_switches[INTERRUPTOR] #interruptor con el cual diremos que todo comenzó
  19.     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
  20.       chances = [15,15,10,10,10,10,5,5,4,4,6,6]
  21.     elsif $PokemonTemp.catchcombo==6 && $PokemonGlobal && $PokemonGlobal.surfing
  22.       chances = [50,30,5,9,6]
  23.     elsif $PokemonTemp.catchcombo==12 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  24.       chances = [10,10,10,10,10,10,5,5,4,4,11,11]
  25.     elsif $PokemonTemp.catchcombo>=12 && $PokemonGlobal && $PokemonGlobal.surfing
  26.       chances = [40,30,10,9,11]
  27.     elsif $PokemonTemp.catchcombo==24 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  28.       chances = [10,10,10,10,5,5,5,5,9,9,11,11]
  29.     elsif $PokemonTemp.catchcombo==24 && $PokemonGlobal && $PokemonGlobal.surfing
  30.       chances = [40,20,15,14,11]
  31.     elsif $PokemonTemp.catchcombo==30 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  32.       chances = [15,15,10,10,10,10,5,5,4,4,6,6]
  33.     elsif $PokemonTemp.catchcombo==30 && $PokemonGlobal && $PokemonGlobal.surfing
  34.       chances = [10,10,10,30,40]
  35.     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
  36.       chances = [20,20,10,10,10,10,5,5,4,4,1,1]
  37.     elsif $PokemonTemp.catchcombo==0 && $PokemonGlobal && $PokemonGlobal.surfing
  38.       chances = [60,30,5,4,1]
  39.     end
  40.     $PokemonTemp.newchances= chances
  41. }
  42.  
  43. Events.onWildBattleEnd+=proc {|sender,e| #al terminar la batalla, pasará lo siguiente
  44.   species=e[0]
  45.   result=e[2]
  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. #      Kernel.pbMessage(_INTL("¡Tu cadena de {1} fue rota por un {2}!",$PokemonTemp.catchcombo,PBSpecies.getName($PokemonTemp.actual))) if result==4
  54. #      Kernel.pbMessage(_INTL("¡Rompiste tu cadena de {1}!",$PokemonTemp.catchcombo,PBSpecies.getName($PokemonTemp.actual))) if result !=4
  55.       $game_switches[INTERRUPTOR]=false #se apaga el interruptor que decía que la cadena estaba activa
  56.       $PokemonTemp.catchcombo=0 #el nivel de cadena se va a 0
  57.     end
  58.   else #si la cadena es menor a 1, pasa lo siguiente
  59.     if result==4 #si se atrapa al Pokémon, sigue
  60.       $PokemonTemp.catchcombo+=1 #se le suma uno a la cadena
  61.       $game_switches[INTERRUPTOR]=true #se indica que la cadena inició
  62.     else
  63.       $game_switches[INTERRUPTOR]=false
  64.       $PokemonTemp.catchcombo=0
  65.     end
  66.   end
  67.   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
  68.    
  69. }
  70.  
  71. Events.onWildPokemonCreate+=proc{|sender,e| #al momento de crear al pokemon salvaje
  72.   pokemon =e[0]
  73.   $PokemonTemp.catchcombo=0 if $PokemonTemp.catchcombo==nil
  74.   if $PokemonTemp.catchcombo>=2
  75.     if rand(128)<$PokemonTemp.catchcombo #si un numero al azar entre 0 y 128 es menor a la cadena, pueden modificar el 128 por el numero que quieran...
  76.       pokemon.makeShiny #se fuerza a que sea shiny, mientras mas chico el numero rand(x), mas chances habra de que sea shiny, pero no puede ser mas chiquito que 32
  77.     else #si no,
  78.       pokemon.makeNotShiny #se fuerza a que NO sea shiny
  79.     end
  80.     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
  81.       pokemon.iv[0]=i #setea los ivs para que sean iguales al numero de cadena
  82.       pokemon.iv[1]=i
  83.       pokemon.iv[2]=i
  84.       pokemon.iv[3]=i
  85.       pokemon.iv[4]=i
  86.       pokemon.iv[5]=i
  87.     end
  88.     if rand(50)<$PokemonTemp.catchcombo
  89.       pokemon.species=$PokemonTemp.buscando # el pokemon que encontramos será de la misma especie que el que buscamos
  90.       pokemon.name=PBSpecies.getName($PokemonTemp.buscando)
  91.     end
  92.   end
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement