Registrarse

[RPG - Gráficos] Background 2

Estado
Cerrado para nuevas respuestas.

Hiro696

El Chanfle
Hola chicos, tengo un problema, verán, he hecho un mapa de una cueva de hielo y el background lo he llamado "SnowIn" y la base se supone que se deberia de llamar enemybaseSnowIn o playerbaseSnowIn y la base de agua deberia de llamarse igual que los anteriores pero agregando Water al final, pero la base de agua no funciona, solo me aparece la base del suelo y no la del agua aunque haga surf ¿Cómo lo soluciono?
 

Jessie

What goes around, comes around
¿Cómo has llamado a las bases del agua, "playerbaseSnowInWater" o "playerbaseWater"?

Si las llamaste "playerbaseSnowInWater", no te saldrán amenos que la definas en el PokeBattle_Scene.

Si la llamaste "playerbaseWater", y no te salen las bases pero el fondo de Water si aparece, entonces es cuestion de ajustar las prioridades en las que se leen los posibles fondos de batalla.

Si haciendo surf no te aparece el fondo de Water entonces no te saldrán las bases con ese nombre, si quieres tener un fondo de Water diferente solo para esa cueva con sus respectivas bases entonces solo las necesitas definir en PokeBattle_Scene para que cambie bajo las condiciones que desees.
 

Hiro696

El Chanfle
Pero no sé cómo definir para definir en el PokeBattle_Scene la base playerbaseSnowInWater, solo dime cómo en qué parte es y ahí leyendo voy a entender
 

Jessie

What goes around, comes around
Creo que ya habías hecho un tema similar a este y recuerdo haberlo respondido.

Mira checalo https://whackahack.com/foro/t-54363/enemibase

Es la misma idea, solo que este anterior te coloque el ejemplo de usar pesca, pero es basicamente igual, si no te queda claro me dices y creo un tema en tutoriales paso a paso.
 

Hiro696

El Chanfle
si, pero el problema es que no me aparece la base de agua y he revisado al derecho y al revez el script y no se donde se define la base de agua para el battlebgSnowIn
 

Jessie

What goes around, comes around
El def pbBackdrop lo puedes dividir en tres partes, esta parte es donde defines los fondos

Código:
def pbBackdrop
    environ=@battle.environment
    # Choose backdrop
    backdrop="Field"
    if environ==PBEnvironment::MovingWater || environ==PBEnvironment::StillWater
      backdrop="Water"
    elsif environ==PBEnvironment::Cave
      backdrop="Cave"
    elsif environ==PBEnvironment::Underwater
      backdrop="Underwater"
    elsif environ==PBEnvironment::Rock
      backdrop="Mountain"
    else
      if !$game_map || !pbGetMetadata($game_map.map_id,MetadataOutdoor)
        backdrop="IndoorA"
      end
    end
    if $game_map
      back=pbGetMetadata($game_map.map_id,MetadataBattleBack)
      if back && back!=""
        backdrop=back
      end
    end
    if $PokemonGlobal && $PokemonGlobal.nextBattleBack
      backdrop=$PokemonGlobal.nextBattleBack
    end
En esta (mas abajo) las bases

Código:
 # Choose bases
    base=""
    trialname=""
    if environ==PBEnvironment::Grass || environ==PBEnvironment::TallGrass
      trialname="Grass"
    elsif environ==PBEnvironment::Sand
      trialname="Sand"
    elsif $PokemonGlobal.surfing
      trialname="Water"
    end
    if pbResolveBitmap(sprintf("Graphics/Battlebacks/playerbase"+backdrop+trialname))
      base=trialname
    end
Y aquí las horas del día Day/Night/Eve

Código:
# Choose time of day
    time=""
    if ENABLESHADING
      trialname=""
      timenow=pbGetTimeNow
      if PBDayNight.isNight?(timenow)
        trialname="Night"
      elsif PBDayNight.isEvening?(timenow)
        trialname="Eve"
      end
      if pbResolveBitmap(sprintf("Graphics/Battlebacks/battlebg"+backdrop+trialname))
        time=trialname
      end
    end
Por ejemplo si quieres agregar el fondo "battlebgSnowIn" y "battlebgSnowInWater", primero vamos a la primera parte del script y los agregas así :

Código:
#AQUÍ COMIENZAN LOS CONDICIONALES
#COMO LOS NUEVOS FONDOS SOLO FUNCIONAN PARA ESA CUEVA, LE DAREMOS PRIORIDAD AL COLOCARLO DE PRIMERO
#USAREMOS COMO CONDICIONAL "$game_map.map_id" QUE REVISARÁ EL ID DEL MAPA DONDE SE HARÁ EL CAMBIO DE FONDO
#DE EJEMPLO USARÉ EL MAPA CON ID "069"

if $game_map.map_id==69
   if  environ==PBEnvironment::MovingWater || environ==PBEnvironment::StillWater  #OSEA SI ESTAS EN UN TERRENO DE AGUA
     backdrop="SnowInWater"
   else   #SI NO ESTAS EN AGUA ENTONCES ES EL SUELO DE LA CUEVA
     backdrop="SnowIn"
   end

 elsif environ==PBEnvironment::MovingWater || environ==PBEnvironment::StillWater       #AQUI CAMBIAS EL "if" POR "elsif"
      backdrop="Water"
Ahora para las bases editas la segunda parte y será algo así

Código:
 # Choose bases
    base=""
    trialname=""

#AQUÍ AGREGAREMOS EL CONDICIONAL, AL IGUAL QUE CON LOS FONDOS
#LE DAREMOS PRIORIDAD
#NUEVAMENTE USAMOS EL CONDICIONAL DEL ID DE MAPA


   if $game_map.map_id==69
     if $PokemonGlobal.surfing      #SI HACES SURF EN ESE MAPA
          trialname="SnowInWater"
     else   #SI NO HACES SURF OSEA CAMINAS POR LA CUEVA
        trialname="SnowIn"
    end

    elsif environ==PBEnvironment::Grass || environ==PBEnvironment::TallGrass    #CAMBIAS EL "if" POR "elsif"
      trialname="Grass"
Con esos cambios debería funcionar, ahora en el caso de que tu cueva ocupe más de un mapa entonces solo agregas otro condicional junto al ya existente así

Código:
if $game_map.map_id==69 || $game_map.map_id==70
el simbolo "||" lo usas para separar los diferente mapas en los que sucederá este cambio.
Pero si usarás muchos mapas puedes hacer una lista y quedaría de este manera

Código:
mapas=[69,70,72,75,86,99,101] #LISTA DE MAPAS
  if mapas.include?($game_map.map_id)
Pero todo depende de lo que necesites, espero que ahora si quedará un poco más claro.
Saludos.
 

Hiro696

El Chanfle
Ohhh mi cuate, me has salvado el cuello, ya estaba requete complicado, en serio gracias, lo voy a probar.
 
Estado
Cerrado para nuevas respuestas.
Arriba