Registrarse

[Essentials] Crear un item con la función de Vuelo

Nyaruko

Pinchando ruedas de trenes
¡Hola a tod@s! Hoy vengo a aportar mi primer tutorial, el cual consiste en tener un item que funcione como Vuelo para que no sea necesario tener prostitutas de MO, en la Wiki explican como hacer este proceso con la mayoría de MO, pero Vuelo necesita un proceso algo distinto, que gracias a estar navegando por foros ingleses e ir viendo las múltiples soluciones que iban dando esas personas (creditos a todas ellas) pude conseguirlo, y hoy vengo a compartirlo con vosotros ^^

Lo primero algo que muchos ya sabreis es definir el objeto en items.txt

Código:
534,ITEMVUELO,Item Vuelo,Item Vuelo,8,0,"Objeto para volar",2,0,6,
Ahora tendreis que copiar el siguiente código:

Código:
ItemHandlers::UseFromBag.add(:ITEMVUELO,proc{|item|
   next canUseMoveFly? ? 2 : 0
})

ItemHandlers::UseInField.add(:ITEMVUELO,proc{|item|
   useMoveFly if canUseMoveFly?
})
Una vez copiado vais a Scripts, a la sección PItem_ItemEffects, ahí buscais el título comentado UseOnPokemon handlers (está sobre la linea 288). Pues encima de ese código que os he comentado poneis lo que copiasteis quedando tal que así.



Lo de ITEMVUELO lo cambiais al nombre que tengais vosotros para el item, es el nombre interno de este.

Bien, ahora tenemos que ir a la sección de scripts PField_HiddenMoves, ahí buscais el título comentado de Fly y teneis que añadir esto donde acaba el código original.

Código:
def canUseMoveFly?
  if !$DEBUG &&
    !(HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORFLY : $Trainer.badges[BADGEFORFLY])
    Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
    return false
  end
  if $game_player.pbHasDependentEvents?
    Kernel.pbMessage(_INTL("It can't be used when you have someone with you."))
    return false
  end
  if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
    Kernel.pbMessage(_INTL("Can't use that here."))
    return false
  end
  return true
end  

def useMoveFly
  scene=PokemonRegionMapScene.new(-1,false)
  screen=PokemonRegionMap.new(scene)
  ret=screen.pbStartFlyScreen
  return false if !ret
  $PokemonTemp.flydata=ret
  if !$PokemonTemp.flydata
    Kernel.pbMessage(_INTL("Can't use that here."))
  end
  if !pbHiddenMoveAnimation(nil)
    Kernel.pbMessage(_INTL("{1} used {2}!",$Trainer.name,"Fly"))
  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
Os dejo aquí una captura por si aún quedan dudas (a veces no me explico muy bien)



El comentario que puse no hace falta que lo añadais xD

Y eso ha sido todo, solo os faltaría poner una Pokeball o cualquier evento para obtener el objeto y estaría listo. Esto lo he testeado en la versión de Essentials 16.2, en distintas versiones no se como irá ya que en las más recientes suelen haber incompatibilidades con algunos scripts.

Tras esto despido aquí el tema, un saludo ^^
 

DavZero

Estoy mamadísimo
Miembro de honor
Usuario de Oro
¡Gracias por traernos este tutorial de RPG! compañero huérfano, maldito Miutu ajdahsfkwes

No creo que lo utilice en el futuro proyecto pero sin duda es muy útil, siempre es complicado tener que llevar una putita de MO's y ocupar espacio en el equipo o fastidiar algún movimiento de uno de tus Pokémon por ello, por lo que se agradece y es sin duda algo innovador para implementar.

A ver qué más nos traes. ;)

Un saludo, Zero
 

Frax

Dragón negro hackeador de habitaciones
Pues no está nada mal pasar Vuelo a un objeto, como si de la Flauta Eón se tratase.

El tutorial es sencillito, está bien explicado y aseguras que funciona en la versión 16.2, así que: ¿Qué más se puede pedir?

Agradezco que traigas estas aportaciones a RPG Maker, que siempre son útiles para aquellos que quieran eliminar la necesidad de MO's. Personalmente, es algo que me llama bastante, y puede que en el futuro lo utilice.

Gracias por traerlo. ^^
 

Nyaruko

Pinchando ruedas de trenes
Gracias a ambos ^^ La verdad es que me gusta mucho más que las MO pasen a ser items para dar más libertad a la hora de crear un equipo sin preocuparse de necesitar un Bidoof para enseñarle las MO :D
 

Jeisbel

Desarrollador avanzado de RPG
Te amo !!

Seguramente, lo usaré. :3
Es que, en mi RPG, he quitado las MO's de Corte y Golpe Roca por un respectivo objeto, y estaba buscando la forma de hacerlo con Vuelo y Surf. Ya me he quitado del medio la MO de Vuelo, aunque tengo que probarlo.

Gracias. ^.^
 

Nyaruko

Pinchando ruedas de trenes
Te amo !!

Seguramente, lo usaré. :3
Es que, en mi RPG, he quitado las MO's de Corte y Golpe Roca por un respectivo objeto, y estaba buscando la forma de hacerlo con Vuelo y Surf. Ya me he quitado del medio la MO de Vuelo, aunque tengo que probarlo.

Gracias. ^.^
Me alegro de que te haya servido ^^ Surf es justo la que trae la Wiki como ejemplo así que prácticamente ya tendrías todas xD
 

Jeisbel

Desarrollador avanzado de RPG
Me alegro de que te haya servido ^^ Surf es justo la que trae la Wiki como ejemplo así que prácticamente ya tendrías todas xD
Sí ??
No me había coscado.
Recuerdo que, para hacer los objetos de Corte y Golpe Roca, vi un tutorial en inglés hace bastante tiempo.

No sabía que la Wiki enseñaba este tipo de cosas.
De hecho, no la miro mucho. XD
 

Nyaruko

Pinchando ruedas de trenes
Arriba