# Vamos a definir primero el objeto
class Itemsurf
#Se crea el disparador del objeto y creamos una variable que almacene
# el tipo de terreno y otra que nos comunique si es un terreno "pasable"
ItemHandlers::UseFromBag.add
PADDLE,proc{|item|
terrain=Kernel.pbFacingTerrainTag
notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction)
# Ahora haremos una pregunta condicional de si no estamos frente al agua
# no podemos usar el objeto, y si estamos se activara el metodo de #surfear
if !pbIsWaterTag?(terrain) || (!notCliff)
#Kernel.pbMessage(_INTL("No puedes usar el objeto."))
next
end
Kernel.pbSurf
})
#===============================================================================
# Surf
#===============================================================================
# Este método hace la pregunta de si quieres surfear
def Kernel.pbSurf
if $game_player.pbHasDependentEvents?
return false
end
# Como se han cumplido las condiciones que pusimos nos preguntará si
# queremos surfear. Si decimos que sí empezará el código de surfear
if
Kernel.pbConfirmMessage(_INTL("El rio parece navegable...\n¿Te gustaria surfear?"))
surfbgm=pbGetMetadata(0,MetadataSurfBGM)
Kernel.pbMessage(("Has usado Paddle Surf"))
if surfbgm
pbCueBGM(surfbgm,0.5)
end
pbStartSurfing()
return true
end
#end
#end
return false
end
# Definimos el método para el incio del surf
def pbStartSurfing()
Kernel.pbCancelVehicles
$PokemonEncounters.clearStepCount
$PokemonGlobal.surfing=true
Kernel.pbUpdateVehicle
Kernel.pbJumpToward
Kernel.pbUpdateVehicle
$game_player.check_event_trigger_here([1,2])
end
# Definimos el metodo para el fin del surf
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 pbIsSurfableTag?(currentTag) && !pbIsSurfableTag?(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
end
Para que entiendas mejor el script comparalo con el script de Field_HiddenMoves que se encuentran todos los relacionados con las MO´s. Miralos, repasalor y entiendelos, asi es como iras aprendiendo y por supuesto aprender mucho ingles