Advertisement
Diego-Mertens

luisutoverison

Apr 27th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.99 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] #aquí se definen las probabilidades en el pasto, sólo si no surfeas
  13. Events.onStartBattle+=proc {|sender,e| #al iniciar la batalla, ocurre lo siguiente
  14. species=e[0]
  15. $PokemonTemp.newchances= chances if $PokemonTemp.newchances= $PokemonTemp.newchances==nil# se definen las chances si no se había hecho ya
  16. $PokemonTemp.catchcombo=0 if !$game_switches[INTERRUPTOR] #interruptor con el cual diremos que todo comenzó
  17. 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
  18. chances = [15,15,10,10,10,10,5,5,4,4,6,6]
  19. elsif $PokemonTemp.catchcombo==12 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  20. chances = [10,10,10,10,10,10,5,5,4,4,11,11]
  21. elsif $PokemonTemp.catchcombo==24 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  22. chances = [10,10,10,10,5,5,5,5,9,9,11,11]
  23. elsif $PokemonTemp.catchcombo==30 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  24. chances = [15,15,10,10,10,10,5,5,4,4,6,6]
  25. 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
  26. chances = [20,20,10,10,10,10,5,5,4,4,1,1]
  27. end
  28. $PokemonTemp.newchances= chances
  29. }
  30.  
  31. Events.onWildBattleEnd+=proc {|sender,e| #al terminar la batalla, pasará lo siguiente
  32. species=e[0]
  33. result=e[2]
  34. $PokemonTemp.newchances= chances if $PokemonTemp.newchances==nil
  35. $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
  36. $PokemonTemp.actual = species #se define la especie actual, es decir, la ultima especie que vimos salvaje
  37. if $PokemonTemp.catchcombo>=1 #si la cadena es mayor o igual a uno, pasa eso
  38. if result==4 && $PokemonTemp.actual==$PokemonTemp.buscando #si se capturó al pokemon, y es igual al que buscabamos, sigue
  39. $PokemonTemp.catchcombo+=1 if $PokemonTemp.catchcombo<=CADENAMAXIMA # se le suma +1 a la cadena si no alcanzó ya su valor máximo
  40. $game_switches[INTERRUPTOR]=true #se enciende el interruptor que dice que iniciamos la cadena
  41. 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
  42. $game_switches[INTERRUPTOR]=false #se apaga el interruptor que decía que la cadena estaba activa
  43. $PokemonTemp.catchcombo=0 #el nivel de cadena se va a 0
  44. end
  45. else #si la cadena es menor a 1, pasa lo siguiente
  46. if result==4 #si se atrapa al Pokémon, sigue
  47. $PokemonTemp.catchcombo+=1 #se le suma uno a la cadena
  48. $game_switches[INTERRUPTOR]=true #se indica que la cadena inició
  49. else
  50. $game_switches[INTERRUPTOR]=false
  51. $PokemonTemp.catchcombo=0
  52. if PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
  53. chances = [20,20,10,10,10,10,5,5,4,4,1,1]
  54. end
  55. $PokemonTemp.newchances= chances
  56. end
  57. end
  58. Kernel.pbMessage(_INTL("Combo de captura actual: {1}, de {2}.",$PokemonTemp.catchcombo,PBSpecies.getName($PokemonTemp.buscando))) if $PokemonTemp.catchcombo>=1
  59.  
  60. }
  61.  
  62. Events.onWildPokemonCreate+=proc{|sender,e| #al momento de crear al pokemon salvaje
  63. pokemon =e[0]
  64. $PokemonTemp.catchcombo=0 if $PokemonTemp.catchcombo==nil
  65. if rand(10)<$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...
  66. 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
  67. else #si no,
  68. pokemon.makeNotShiny #se fuerza a que NO sea shiny
  69. end
  70. 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
  71. pokemon.iv[0]=i #setea los ivs para que sean iguales al numero de cadena
  72. pokemon.iv[1]=i
  73. pokemon.iv[2]=i
  74. pokemon.iv[3]=i
  75. pokemon.iv[4]=i
  76. pokemon.iv[5]=i
  77. end
  78. if rand(5)<$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
  79. pokemon=$PokemonTemp.buscando # el pokemon que encontramos será de la misma especie que el que buscamos
  80. end
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement