Registrarse

[RPG - Scripting] Como reemplazar las MO.

Estado
Cerrado para nuevas respuestas.

JesusPoke

Me llaman el XDeador
Buenas de nuevo my name is JesusPoké.

Y hoy vengo con otra duda, no se si el titulo se explica bien pero bueno.

Quiero saber si existe alguna manera de que en mi proyecto pudiera reemplazar las MO.

Como Surf y Vuelo, tambien las otras pero esas si tengo mas o menos idea de como las hare.

Quisiera saber si es posible hacer un tipo de objeto como una Pokémontura, sin el script de la Pokémontura puesto que no es compatible con mi version.

Mi idea es por ejemplo objetos como:

LlamaSurf: Llama de las profundidades del mar un Lapras para surcar los mares (esto es solo un ejemplo)

LlamaVuelo: Llama un Staraptor desde el cielo, para volar a cualquier lugar necesario (esto es solo un ejemplo)

Algo asi, pero no tengo idea de como podria hacerlo, bueno mas o menos pero no se como hacerlo que funcione.

Ayudenme plis.

EDIT: En pokémon essentials 16.2
 
Última edición:

JesusPoke

Me llaman el XDeador
He probado algo que vi en un video dde Thundaga que me sirvio hasta cierto punto:

Tengo un error en surf y otro en vuelo, (el de vuelo puede ser que no he configurado los destinos)

Surf: Todo va bien todo funciona pero cuando uso la Flauta Lapras desde la mochila me sale error, mientras que si no la uso desde la mochila no hay error, el codigo que tengo es el siguiente:

Código:
def Kernel.pbSurf
  if $game_player.pbHasDependentEvents?
    return false
  end
  if $DEBUG ||
    (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF])
    movefinder=Kernel.pbCheckMove(:SURF)
    if $DEBUG || $PokemonBag.pbQuantity(PBItems::LAPRASCALLER)>0
      if Kernel.pbConfirmMessage(_INTL("El agua tiene buena pinta...\n¿Quieres llamar un Lapras?"))
        speciesname=!movefinder ? $Trainer.name : movefinder.name
        Kernel.pbMessage(_INTL("¡{1} ha llamado un Lapras!",$Trainer.name))
        pbHiddenMoveAnimation(nil)
        surfbgm=pbGetMetadata(0,MetadataSurfBGM)
        pbCueBGM(surfbgm,0.5) if surfbgm
        pbStartSurfing()
        return true
      end
    end
  end
  return false
end

def pbStartSurfing()
  Kernel.pbCancelVehicles
  $PokemonEncounters.clearStepCount
  $PokemonGlobal.surfing=true
  Kernel.pbUpdateVehicle
  Kernel.pbJumpToward
  Kernel.pbUpdateVehicle
  $game_player.check_event_trigger_here([1,2])
end

def pbEndSurf(xOffset,yOffset)
  return false if !$PokemonGlobal.surfing
  x=$game_player.x
  y=$game_player.y
  currentTag=$game_map.terrain_tag(x,y)
  facingTag=Kernel.pbFacingTerrainTag
  if PBTerrain.isSurfable?(currentTag) && !PBTerrain.isSurfable?(facingTag)
    if Kernel.pbJumpToward(1,false,true)
       Kernel.pbCancelVehicles
      $game_map.autoplayAsCue
      $game_player.increase_steps
      result=$game_player.check_event_trigger_here([1,2])
      Kernel.pbOnStepTaken(result)
    end
    return true
  end
  return false
end

def Kernel.pbTransferSurfing(mapid,xcoord,ycoord,direction=$game_player.direction)
  pbFadeOutIn(99999){
     $game_temp.player_new_map_id=mapid
     $game_temp.player_new_x=xcoord
     $game_temp.player_new_y=ycoord
     $game_temp.player_new_direction=direction
     Kernel.pbCancelVehicles
     $PokemonGlobal.surfing=true
     Kernel.pbUpdateVehicle
     $scene.transfer_player(false)
     $game_map.autoplay
     $game_map.refresh
  }
end

Events.onAction+=proc{|sender,e|
   terrain=Kernel.pbFacingTerrainTag
   notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction)
   if PBTerrain.isSurfable?(terrain) && !$PokemonGlobal.surfing && 
      !pbGetMetadata($game_map.map_id,MetadataBicycleAlways) && notCliff
     Kernel.pbSurf
     return
   end
}

def canUseSurf?
   if !$DEBUG &&
      !(HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF])
     Kernel.pbMessage(_INTL("Lo siento, necesitas una medalla nueva."))
     return false
   end
   if $PokemonGlobal.surfing
     Kernel.pbMessage(_INTL("Ya estás navegando."))
     return false
   end
   if $game_player.pbHasDependentEvents?
     Kernel.pbMessage(_INTL("Lapras no puede llevar mas de una persona."))
     return false
   end
   if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
     Kernel.pbMessage(_INTL("¡Disfruta de la bici!"))
     return false
   end
   terrain=Kernel.pbFacingTerrainTag
   notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction)
   if !PBTerrain.isSurfable?(terrain) || !notCliff
     Kernel.pbMessage(_INTL("¡No puedes usarlo aqui!"))
     return false
   end
   return true
end

def useSurf
   $game_temp.in_menu=false
   if !pbHiddenMoveAnimation(pokemon)
     Kernel.pbMessage(_INTL("¡{1} ha llamado a Lapras!",$Trainer.name))
   end
   surfbgm=pbGetMetadata(0,MetadataSurfBGM)
   pbCueBGM(surfbgm,0.5) if surfbgm
   pbStartSurfing()
   return true
end
No se que es lo que esta mal, y el codigo de vuelo es este:
Código:
def canUseFly?
   if !$DEBUG &&
      !(HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORFLY : $Trainer.badges[BADGEFORFLY])
     Kernel.pbMessage(_INTL("No tienes el número necesario de medallas."))
     return false
   end
   if $game_player.pbHasDependentEvents?
     Kernel.pbMessage(_INTL("Staraptor solo puede llevar una persona."))
     return false
   end
   if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
     Kernel.pbMessage(_INTL("No se puede usar aquí."))
     return false
   end
   return true
end

def useFly
   if !$PokemonTemp.flydata
     Kernel.pbMessage(_INTL("No se puede usar aquí."))
   end
   if !pbHiddenMoveAnimation(nil)
     Kernel.pbMessage(_INTL("¡{1} ha llamado un Staraptor!",$Trainer.name))
   end
   pbFadeOutIn(99999){
      Kernel.pbCancelVehicles
      $game_temp.player_new_map_id=$PokemonTemp.flydata[0]
      $game_temp.player_new_x=$PokemonTemp.flydata[1]
      $game_temp.player_new_y=$PokemonTemp.flydata[2]
      $PokemonTemp.flydata=nil
      $game_temp.player_new_direction=2
      $scene.transfer_player
      $game_map.autoplay
      $game_map.refresh
   }
   pbEraseEscapePoint
   return true
end
¿Alguien sabe que estoy haciendo mal?

Gracias de antemano.

EDIT: Ya he hecho algo y Vuelo ya funciona perfectamente , pero sigo teniendo el mismo problema con Surf
EDIT2: Bueno ya... funciona todo... eeh... ¿gracias?
 
Última edición:
Estado
Cerrado para nuevas respuestas.
Arriba