Registrarse

[RPG - Gráficos] Enemibase

Estado
Cerrado para nuevas respuestas.

Hiro696

El Chanfle
Hola chicos, tengo un problema, la cosa es que hise un mapa de una cueva helada, y ya tengo todo listo, pero le puse agua al mapa, e intento añadirle un enemi base de agua pero no se hacerlo, ya que siempre que me sale un salvaje me sale el background de salvaje en tierra y no me sale el enemigo base, y esa es mi duda ¿como le hago para que me salga ese enemi base solo cuando surfee en ese mapa?
 

White

--------------------------------------------------
Tienes los backgrounds que vienen por defecto?

Si tienes un nuevo background copia el nombre que le da essentials a su background de agua y pegalo en el nuevo.

Espero que te sirva ^^
 
Última edición:

White

--------------------------------------------------
Pues no entiendo porque, según la wiki cuando estas en el agua se pone automáticamente. Si usas nuevos backgrounds y tienen un nombre diferente puede que sea por eso.

De todas formas si no te funciona puedes poner eventos al rededor del lago con player touch y este script.
$PokemonGlobal.nextBattleBack="Mystic"
Donde Mystic es el nombre del background.

Espero que te sirva.

Saludos! White~
 
Última edición:

Jessie

What goes around, comes around
Lo que sucede es que en Essentials tienen puesto los condicionales para que solo si estas haciendo surf te saldrá un encuentro con con el fondo de Agua/Mar, lo que podrías hacer es colocar un condicional adicional para cuando uses la caña para pescar, porque supongo que es ese el método que estas usando para tener un encuentro salvaje en en agua sin hacer surf.

Primero en la sección PokeBattle_Scene buscas el pbBackdrop y hallarás esto :

Código:
  def pbBackdrop
    environ=@battle.environment
    # Choose backdrop
    backdrop="Field"
   if environ==PBEnvironment::Cave
      backdrop="Cave"
    elsif environ==PBEnvironment::MovingWater || environ==PBEnvironment::StillWater || $Pesca_bandera
      backdrop="Water"
    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
    # 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
    # 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
    # Apply graphics
    battlebg="Graphics/Battlebacks/battlebg"+backdrop+time
    enemybase="Graphics/Battlebacks/enemybase"+backdrop+base+time
    playerbase="Graphics/Battlebacks/playerbase"+backdrop+base+time
    pbAddPlane("battlebg",battlebg,@viewport)
    pbAddSprite("playerbase",
       PokeBattle_SceneConstants::PLAYERBASEX,
       PokeBattle_SceneConstants::PLAYERBASEY,playerbase,@viewport)
    [MENTION=24071]Sprite[/MENTION]s["playerbase"].x- [MENTION=24071]Sprite[/MENTION]s["playerbase"].bitmap.width/2 if [MENTION=24071]Sprite[/MENTION]s["playerbase"].bitmap!=nil
    [MENTION=24071]Sprite[/MENTION]s["playerbase"].y- [MENTION=24071]Sprite[/MENTION]s["playerbase"].bitmap.height if [MENTION=24071]Sprite[/MENTION]s["playerbase"].bitmap!=nil
    pbAddSprite("enemybase",
       PokeBattle_SceneConstants::FOEBASEX,
       PokeBattle_SceneConstants::FOEBASEY,enemybase,@viewport)
    [MENTION=24071]Sprite[/MENTION]s["enemybase"].x- [MENTION=24071]Sprite[/MENTION]s["enemybase"].bitmap.width/2 if [MENTION=24071]Sprite[/MENTION]s["enemybase"].bitmap!=nil
    [MENTION=24071]Sprite[/MENTION]s["enemybase"].y- [MENTION=24071]Sprite[/MENTION]s["enemybase"].bitmap.height/2 if [MENTION=24071]Sprite[/MENTION]s["enemybase"].bitmap!=nil
    [MENTION=24071]Sprite[/MENTION]s["battlebg"].z=0
    [MENTION=24071]Sprite[/MENTION]s["playerbase"].z=1
    [MENTION=24071]Sprite[/MENTION]s["enemybase"].z=1
  end
Aquí es donde los fondos y bases de batallas son definidas, ahora solo cambias las prioridades y condicionales a tu gusto.
Por ejemplo para que te salga el fondo de agua(water) cuando pescas, puedes colocar un condicional extra y cambiar el orden en que aparecen, puede ser algo así :

Código:
  def pbBackdrop
    environ=@battle.environment
    # Choose backdrop
    backdrop="Field"

    #DAMOS PRIORIDAD A LOS ENCUENTROS EN AGUA
    # Y AGREGAMOS UNA VARIABLE "$Pesca_bandera"

   if environ==PBEnvironment::MovingWater || environ==PBEnvironment::StillWater || $Pesca_bandera
      backdrop="Water"

elsif environ==PBEnvironment::Cave
      backdrop="Cave"
    
    elsif environ==PBEnvironment::Underwater
      backdrop="Underwater"
Ahora en la sección PItem_ItemEffects buscas los efectos de las cañas y es agregas la variable que activará el fondo de batalla de agua(water) para cada caña.

Código:
ItemHandlers::UseInField.add(:OLDROD,proc{|item|
   terrain=Kernel.pbFacingTerrainTag
   notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction,$game_player)
   if !PBTerrain.isWater?(terrain) || (!notCliff && !$PokemonGlobal.surfing)
     Kernel.pbMessage(_INTL("Can't use that here."))
     next 0
   end
   encounter=$PokemonEncounters.hasEncounter?(EncounterTypes::OldRod)
   if pbFishing(encounter,1)
     $Pesca_bandera=true
     pbEncounter(EncounterTypes::OldRod)
     $Pesca_bandera=false
   end
   next 1
})

ItemHandlers::UseInField.add(:GOODROD,proc{|item|
   terrain=Kernel.pbFacingTerrainTag
   notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction,$game_player)
   if !PBTerrain.isWater?(terrain) || (!notCliff && !$PokemonGlobal.surfing)
     Kernel.pbMessage(_INTL("Can't use that here."))
     next 0
   end
   encounter=$PokemonEncounters.hasEncounter?(EncounterTypes::GoodRod)
   if pbFishing(encounter,2)
     $Pesca_bandera=true
     pbEncounter(EncounterTypes::GoodRod)
    $Pesca_bandera=false
   end
   next 1
})

ItemHandlers::UseInField.add(:SUPERROD,proc{|item|
   terrain=Kernel.pbFacingTerrainTag
   notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction,$game_player)
   if !PBTerrain.isWater?(terrain) || (!notCliff && !$PokemonGlobal.surfing)
     Kernel.pbMessage(_INTL("Can't use that here."))
     next 0
   end
   encounter=$PokemonEncounters.hasEncounter?(EncounterTypes::SuperRod)
   if pbFishing(encounter,3)
     $Pesca_bandera=true
     pbEncounter(EncounterTypes::SuperRod)
     $Pesca_bandera=false
   end
   next 1
})
Si te das cuenta, la "active" ($Pesca_bandera=true)antes de que inicie el encuentro y "desactive" ($Pesca_bandera=false) después de que este acabe.

Si lo dejas así, cada vez que se de un encuentro de pesca el fondo de batalla y las bases serán como si estuvieras haciendo surf.

Pero en caso de que quieras que el fondo sea de agua(water) y las bases de suelo(Field) debido a que no estas en el agua sino pescando en la orilla, solo tienes que editar los condicionales para las bases, estas se encuentran en el mismos pbBackdrop solo que más abajo.

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

#AQUI TE PONDRA LA BASE "enemybaseWaterCave" y "playerbaseWaterCave" si estas en una cueva o 
#"enemybaseWaterField" y "player baseWaterField" para cuando pesques fuera.

    if $Pesca_bandera
      trialname="Field"
      trialname="Cave" if environ==PBEnvironment::Cave

    elsif environ==PBEnvironment::Grass || environ==PBEnvironment::TallGrass
      trialname="Grass"
    elsif environ==PBEnvironment::Sand
      trialname="Sand"
    elsif $PokemonGlobal.surfing
      trialname="Water"
    end
También puedes agregar otros condicionales para diferentes circunstancias, todo depende de lo que estés buscando hacer.

Saludos.
 
Estado
Cerrado para nuevas respuestas.
Arriba