Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Sistema de Combos de Captura
- ## by Diego Mertens
- class PokemonTemp #Aquí se definen las variables que usaremos
- attr_accessor :catchcombo
- attr_accessor :buscando
- attr_accessor :actual
- attr_accessor :newchances
- end
- CADENAMAXIMA=31 #el nivel máximo en el que la cadena buscará por shinies Y por los IV's de un Pokémon
- INTERRUPTOR=118 #pongan aquí un interruptor que no uses
- Events.onStartBattle+=proc {|sender,e| #al iniciar la batalla, ocurre lo siguiente
- species=e[0]
- chances = EncounterTypes::EnctypeChances[EncounterTypes::Land] if !$PokemonGlobal && !$PokemonGlobal.surfing #aquí se definen las probabilidades en el pasto, sólo si no surfeas
- chances = EncounterTypes::EnctypeChances[EncounterTypes::Water] if $PokemonGlobal && $PokemonGlobal.surfing #y aquí, en el agua, sólo si surfeas
- $PokemonTemp.newchances= chances if $PokemonTemp.newchances= $PokemonTemp.newchances==nil# se definen las chances si no se había hecho ya
- $PokemonTemp.catchcombo=0 if !$game_switches[INTERRUPTOR] #interruptor con el cual diremos que todo comenzó
- 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
- chances = [15,15,10,10,10,10,5,5,4,4,6,6]
- elsif $PokemonTemp.catchcombo==6 && $PokemonGlobal && $PokemonGlobal.surfing
- chances = [50,30,5,9,6]
- elsif $PokemonTemp.catchcombo==12 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
- chances = [10,10,10,10,10,10,5,5,4,4,11,11]
- elsif $PokemonTemp.catchcombo>=12 && $PokemonGlobal && $PokemonGlobal.surfing
- chances = [40,30,10,9,11]
- elsif $PokemonTemp.catchcombo==24 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
- chances = [10,10,10,10,5,5,5,5,9,9,11,11]
- elsif $PokemonTemp.catchcombo==24 && $PokemonGlobal && $PokemonGlobal.surfing
- chances = [40,20,15,14,11]
- elsif $PokemonTemp.catchcombo==30 && PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
- chances = [15,15,10,10,10,10,5,5,4,4,6,6]
- elsif $PokemonTemp.catchcombo==30 && $PokemonGlobal && $PokemonGlobal.surfing
- chances = [10,10,10,30,40]
- 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
- chances = [20,20,10,10,10,10,5,5,4,4,1,1]
- elsif $PokemonTemp.catchcombo==0 && $PokemonGlobal && $PokemonGlobal.surfing
- chances = [60,30,5,4,1]
- end
- $PokemonTemp.newchances= chances
- }
- Events.onWildBattleEnd+=proc {|sender,e| #al terminar la batalla, pasará lo siguiente
- species=e[0]
- result=e[2]
- $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
- $PokemonTemp.actual = species #se define la especie actual, es decir, la ultima especie que vimos salvaje
- if $PokemonTemp.catchcombo>=1 #si la cadena es mayor o igual a uno, pasa eso
- if result==4 && $PokemonTemp.actual==$PokemonTemp.buscando #si se capturó al pokemon, y es igual al que buscabamos, sigue
- $PokemonTemp.catchcombo+=1 if $PokemonTemp.catchcombo<=CADENAMAXIMA # se le suma +1 a la cadena si no alcanzó ya su valor máximo
- $game_switches[INTERRUPTOR]=true #se enciende el interruptor que dice que iniciamos la cadena
- 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
- # Kernel.pbMessage(_INTL("¡Tu cadena de {1} fue rota por un {2}!",$PokemonTemp.catchcombo,PBSpecies.getName($PokemonTemp.actual))) if result==4
- # Kernel.pbMessage(_INTL("¡Rompiste tu cadena de {1}!",$PokemonTemp.catchcombo,PBSpecies.getName($PokemonTemp.actual))) if result !=4
- $game_switches[INTERRUPTOR]=false #se apaga el interruptor que decía que la cadena estaba activa
- $PokemonTemp.catchcombo=0 #el nivel de cadena se va a 0
- end
- else #si la cadena es menor a 1, pasa lo siguiente
- if result==4 #si se atrapa al Pokémon, sigue
- $PokemonTemp.catchcombo+=1 #se le suma uno a la cadena
- $game_switches[INTERRUPTOR]=true #se indica que la cadena inició
- else
- $game_switches[INTERRUPTOR]=false
- $PokemonTemp.catchcombo=0
- end
- end
- 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
- }
- Events.onWildPokemonCreate+=proc{|sender,e| #al momento de crear al pokemon salvaje
- pokemon =e[0]
- $PokemonTemp.catchcombo=0 if $PokemonTemp.catchcombo==nil
- if $PokemonTemp.catchcombo>=2
- 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...
- 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
- else #si no,
- pokemon.makeNotShiny #se fuerza a que NO sea shiny
- end
- 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
- pokemon.iv[0]=i #setea los ivs para que sean iguales al numero de cadena
- pokemon.iv[1]=i
- pokemon.iv[2]=i
- pokemon.iv[3]=i
- pokemon.iv[4]=i
- pokemon.iv[5]=i
- end
- if rand(50)<$PokemonTemp.catchcombo
- pokemon.species=$PokemonTemp.buscando # el pokemon que encontramos será de la misma especie que el que buscamos
- pokemon.name=PBSpecies.getName($PokemonTemp.buscando)
- end
- end
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement