Registrarse

Cómo quitar el PC

Estado
Cerrado para nuevas respuestas.

kanda

Creador de Pokémon HighSchool
En mi proyecto, lo que quiero hacer es limitar los pokémon que puedes capturar a 6 (es decir, los que puedes llevar contigo).

Lo que quiero hacer es que al tener ya 6 pokémon en tu equipo, cuando captures el 7º, en vez de poner que "se ha transferido a la caja X", ponga que ha sido liberado ya que ya tienes 6 pokémon. Esto es fácil simplemente cambiando los mensajes pero quiero que realmente se libere automáticamente.

También podría estar bien que te pregunte como lo hace en Pokemon Sol/Luna, a ver si quieres el pokémon atrapado en tu equipo o no. Y sustituirlo.

¿Qué me decís? ¿Alguna idea de cómo puedo hacerlo? ¿O quizás ya haya un script?
 
Última edición:

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
Respuesta: [Ayuda] Cómo quitar el PC

Parece un tema complicado pero no lo es tanto.
Lo primero que tienes que hacer es localizar donde está la función para "guardar" los Pokémon. Aunque realmente no existe una sola función porque hay unas cuantas (que en realidad es la misma con ligeros cambios) que se usan según si te regalan un Pokémon, si lo capturas...
Me he tomado unos minutillos para hacerte un ejemplo de cómo debería ser la modificación de la función que guarda al Pokémon cuando te lo da un NPC con pbAddPokemon.

Código:
[PLAIN]
def pbStorePokemon(pokemon)
  pokemon.pbRecordFirstMoves
  # Si tenemos menos de 6 Pokémon no pasa nada
  if $Trainer.party.length<6
    $Trainer.party[$Trainer.party.length]=pokemon
  else
    # Elegimos el Pokémon del cual queremos deshacernos
    Kernel.pbMessage(_INTL("Tu equipo Pokémon está lleno.\1"))
    if Kernel.pbConfirmMessage(_INTL("¿Quieres liberar a un Pokémon de tu equipo"))
      pbFadeOutIn(99999){
         scene=PokemonScreen_Scene.new
         screen=PokemonScreen.new(scene,$Trainer.party)
         screen.pbStartScene(_INTL("¿Que Pokémon liberar?"),false)
         loop do
           chosen=screen.pbChoosePokemon
           if chosen>=0
             chosen_pokemon=$Trainer.party[chosen]
             if chosen_pokemon.isEgg?
               Kernel.pbMessage(_INTL("No puedes liberar un huevo"))
             else
               if Kernel.pbConfirmMessage(_INTL("¿Estás seguro de que quieres liberar a {1}",chosen_pokemon.name))
                 $Trainer.party[chosen] = pokemon
                 break
               end
             end
           else
             break
           end  
         end
        screen.pbEndScene
      }
    end
  end
end
[/PLAIN]
Si creas un nuevo script por encima de main y pegas ese script cuando uses pbAddPokemon verás como en lugar de enviarlo al PC te pregunta por el Pokémon que tienes que liberar.
Ahora simplemente pulsa Control + Shift + F en el editor de scripts y busca def pbStorePokemon para encontrar las demás funciones.
El de PSystem_Utilities no tienes que modificarlo porque es el que modifica ya el script que te he puesto arriba por lo que puedes usarlo para ver qué he modificado y poder hacer las mismas modificaciones en las otras funciones.
 

kanda

Creador de Pokémon HighSchool
Respuesta: [Ayuda] Cómo quitar el PC

OMG @Kle!n!! ¡¡Muchísimas gracias!!

Ya he probado el script y funciona perfectamente. También cambié un par de cosas para que se adapte bien a lo que quiero (dos INTL para ser exactos xD, no soy muy amigo de los scripts y aún no los entiendo demasiado).

Ahora haré una copia de seguridad del fangame y probaré reemplazando los demás códigos a ver si lo hago bien y no hay errores (lo que sería extraño en mi caso xD).

¡¡De verdad, muchas gracias!! ¡No sabes los quebraderos de cabeza que me has quitado :D !!!
 
Estado
Cerrado para nuevas respuestas.
Arriba