MundoBezier

Autosurf

Jul 1st, 2022 (edited)
527
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.56 KB | None | 0 0
  1. #############################################################
  2. #                          Autosurf                         #
  3. #                       Autor : Bezier                      #
  4. #               Compatible con Essentials 16.3              #
  5. #                                                           #
  6. # Este script plug&play permite surfear de forma automática #
  7. # cuando se entra en contacto con un terrain tag surfeable  #
  8. #############################################################
  9.  
  10. # Poner a true si Surf se activa con las medallas
  11. AUTOSURF_USEBADGES = false
  12.  
  13. # Poner a true si Surf se activa con un objeto
  14. AUTOSURF_USEITEM = false
  15. # Objeto que permite hacer autosurf
  16. AUTOSURF_ITEM_KEY = :SURF_ITEM
  17.  
  18. def pbAutoSurf
  19.   x=$game_player.x
  20.   y=$game_player.y
  21.   currentTag=$game_map.terrain_tag(x,y)
  22.   facingTag=Kernel.pbFacingTerrainTag
  23.   if !$PokemonGlobal.surfing && PBTerrain.isSurfable?(facingTag)
  24.  
  25.     # Cancela el Surf si está activo por medallas y no se cumple la condición para surf
  26.     return if AUTOSURF_USEBADGES && !(HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF])
  27.     # Cancela el Surf si está activo por objeto pero no se posee el objeto que permite surfear
  28.     return if AUTOSURF_USEITEM && !(hasConst?(PBItems,AUTOSURF_ITEM_KEY) && $PokemonBag.pbQuantity(AUTOSURF_ITEM_KEY)>0)
  29.  
  30.     # Compatibilidad con PokémonFollow para hacer desaparecer al pokémon
  31.     $PokemonTemp.dependentEvents.check_surf(true) if defined?($PokemonTemp.dependentEvents.check_surf)
  32.  
  33.     pbStartSurfing
  34.     return true
  35.   end
  36.   return false
  37. end
  38.  
  39. # Redefine los movimientos del player para poder usar el autosurf
  40. class Game_Player < Game_Character
  41.   def move_down(turn_enabled = true)
  42.     if turn_enabled
  43.       turn_down
  44.     end
  45.     if passable?(@x, @y, 2)
  46.       return if pbLedge(0,1)
  47.       return if pbEndSurf(0,1)
  48.       turn_down
  49.       @y += 1
  50.       $PokemonTemp.dependentEvents.pbMoveDependentEvents
  51.       increase_steps
  52.     elsif !pbAutoSurf
  53.       if !check_event_trigger_touch(@x, @y+1)
  54.         if !@bump_se || @bump_se<=0
  55.           pbSEPlay("bump"); @bump_se=10
  56.         end
  57.       end
  58.     end
  59.   end
  60.  
  61.   def move_left(turn_enabled = true)
  62.     if turn_enabled
  63.       turn_left
  64.     end
  65.     if passable?(@x, @y, 4)
  66.       return if pbLedge(-1,0)
  67.       return if pbEndSurf(-1,0)
  68.       turn_left
  69.       @x -= 1
  70.       $PokemonTemp.dependentEvents.pbMoveDependentEvents
  71.       increase_steps
  72.     elsif !pbAutoSurf
  73.       if !check_event_trigger_touch(@x-1, @y)
  74.         if !@bump_se || @bump_se<=0
  75.           pbSEPlay("bump"); @bump_se=10
  76.         end
  77.       end
  78.     end
  79.   end
  80.  
  81.   def move_right(turn_enabled = true)
  82.     if turn_enabled
  83.       turn_right
  84.     end
  85.     if passable?(@x, @y, 6)
  86.       return if pbLedge(1,0)
  87.       return if pbEndSurf(1,0)
  88.       turn_right
  89.       @x += 1
  90.       $PokemonTemp.dependentEvents.pbMoveDependentEvents
  91.       increase_steps
  92.     elsif !pbAutoSurf
  93.       if !check_event_trigger_touch(@x+1, @y)
  94.         if !@bump_se || @bump_se<=0
  95.           pbSEPlay("bump"); @bump_se=10
  96.         end
  97.       end
  98.     end
  99.   end
  100.  
  101.   def move_up(turn_enabled = true)
  102.     if turn_enabled
  103.       turn_up
  104.     end
  105.     if passable?(@x, @y, 8)
  106.       return if pbLedge(0,-1)
  107.       return if pbEndSurf(0,-1)
  108.       turn_up
  109.       @y -= 1
  110.       $PokemonTemp.dependentEvents.pbMoveDependentEvents
  111.       increase_steps
  112.     elsif !pbAutoSurf
  113.       if !check_event_trigger_touch(@x, @y-1)
  114.         if !@bump_se || @bump_se<=0
  115.           pbSEPlay("bump"); @bump_se=10
  116.         end
  117.       end
  118.     end
  119.   end
  120. end
Add Comment
Please, Sign In to add comment