• Hi, Guest!
    Some images might be missing as we move away from using embedded images, sorry for the mess!
    From now on, you'll be required to use a third party to host images. You can learn how to add images here, and if your thread is missing images you can request them here.
    Do not use Discord to host any images you post, these links expire quickly!
RSE Cable Car Scene (v20/v19/v18/v17/v16)

Resource RSE Cable Car Scene (v20/v19/v18/v17/v16) 1.2

PurpleZaffre submitted a new resource:

RSE Cable Car Scene (compatible for v18, v17 and v16) - Provides the scene that plays in RSE when traveling through Cable Car.

This script adds a scene like the Cable Car RSE scene. This is what it looks like:



To install this, download the resource (download button on the right), then extract the files, put CableCar.mp3 inside Audio/BGM, put the graphics inside Graphics/Pictures/CableCar, and the script somewhere above Main. The rest of the instructions are inside the script. The instructions are fairly simple and the script is somewhat customizable, but if...


Read more about this resource...
 

viniciusan9elin

Rookie
Member
Joined
Mar 2, 2022
Posts
3
hello I took the liberty to adapt your feature to v20 there's only one problem... the player had to be removed from the scene (I don't have programming skills but I managed to adjust this script for v20)
Ruby:
#==============================================================================#
#                             RSE Cable Car Scene                              #
#                                  by Zaffre                                   #
#==============================================================================#
#                                Instructions                                  #
#                                                                              #
# To call the scene, just put                                                  #
# CableCarScene.new(going_up, map_id, map_x, map_y, direction, weather)        #
# in an event.                                                                 #
#                                                                              #
# The arguments are:                                                           #
# going_up - If true, the car will go up. If false, the car will go down.      #
# map_id - The ID of the map where the player will appear after the scene.     #
# map_x - The X coordinate on the map where the player will appear.            #
# map_y - The Y coordinate on the map where the player will appear.            #
# direction - The direction you want the player to be facing when the scene    #
# finishes. If this field is left empty, it will always assume 2 (down). The   #
# input received should be one of the following:                               #
# 2 - down                                                                     #
# 4 - left                                                                     #
# 6 - right                                                                    #
# 8 - up                                                                       #
# weather - If true, volcanic ash will appear, just like in RSE. If false, no  #
# volcanic ash will appear. If this field  is left empty, it will always       #
# assume true.                                                                 #
#                                                                              #
# An example: CableCarScene.new(false, 294, 22, 38, 8, true)                   #
# In this example, the car is going down, and the player will then appear in   #
# the map with ID 294, in the coordinates 22(X) 38(Y) and facing down. Weather #
# is set to true, so volcanic ash will appear during the ride.                 #
#==============================================================================#
#                               Configurations                                 #
#                                                                              #
# In this case, the random hiker/NPC has a 1/64 chance of appearing.           #
# Change it to however much you want the chance to be. (1 = always appears)    #
HIKER_PERCENTAGE = 64
#                                                                              #
# The file names of the NPCs that can appear. You can add as many as you want, #
# but they must be located in the folder Graphics/Pictures/CableCar, and have  #
# the same format as the example graphics.                                     #
HIKER_FILE_NAMES = [                                                         
  "hiker",                                                                   
  "hiker1"
]                                                                           
#                                                                              #
# Change this to what you want the background music to be when playing the     #
# scene. Must be located in the folder Audio/BGM.                              #
CABLE_CAR_BGM = "CableCar"                                                   
#                                                                              #
# If you want to change some of the graphics (background, male and female      #
# player, etc) you can do so in the folder Graphics/Pictures/CableCar but I    #
# advise to not change the size of the graphics, as that would require some    #
# repositioning. If you have any questions, message me on Discord: Zaffre#7901 #
#==============================================================================#
#                    Please give credit when using this.                       #
#==============================================================================#

if defined?(PluginManager)
  PluginManager.register({
    :name => "RSE Cable Car Scene",
    :version => "1.0",
    :credits => "PurpleZaffre",
    :link => "[URL]https://eeveeexpo.com/resources/536/[/URL]"
  })
end

class CableCarScene
  def initialize(going_up, map_id, map_x, map_y, direction=2, weather=true)
    pbBGMFade(10)
    @sprites = {}
    @sprites["Black"] = Sprite.new
    @sprites["Black"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/black")
    @sprites["Black"].z = 99999
    @sprites["Black"].opacity = 0
    for i in 0..14
      @sprites["Black"].opacity += 17
      pbWait(1)
    end
    hiker = false
    if(rand(HIKER_PERCENTAGE)==0)
      hiker = true
      hiker_name = HIKER_FILE_NAMES[rand(HIKER_FILE_NAMES.size)]
    end
    pbBGMPlay(CABLE_CAR_BGM)
    pbWait(10)
    @sprites["BG"] = Sprite.new
    @sprites["BG"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/bg")
    @sprites["BG"].z = 90000
    if going_up
      @sprites["Trees"] = Sprite.new
      @sprites["Trees"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/trees")
      @sprites["Trees"].x = -1024
      @sprites["Trees"].y = 190
      @sprites["Trees"].z = 92000
      if hiker
        hiker2="hiker1"
        @sprites["Hiker"] = Sprite.new
        @sprites["Hiker"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/"+hiker_name)
        @sprites["Hiker"].x = 200
        @sprites["Hiker"].y = 286
        @sprites["Hiker"].z = 93000
      end
      @sprites["Ground"] = Sprite.new
      @sprites["Ground"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/ground")
      @sprites["Ground"].x = -1792
      @sprites["Ground"].y = -160
      @sprites["Ground"].z = 94000
      @sprites["Door"] = Sprite.new
      @sprites["Door"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/door")
      @sprites["Door"].x = 406
      @sprites["Door"].y = 98
      @sprites["Door"].z = 96000
      @sprites["Poles"] = Sprite.new
      @sprites["Poles"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/pole")
      @sprites["Poles"].x = -1024
      @sprites["Poles"].y = -638
      @sprites["Poles"].z = 98000
      if weather
        @sprites["Ash"] = Sprite.new
        @sprites["Ash"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/ash")
        @sprites["Ash"].opacity = 0
        @sprites["Ash"].x = -1650
        @sprites["Ash"].y = -650
        @sprites["Ash"].z = 99000
      end
      for i in 0..50
        if i < 4
          @sprites["Black"].opacity -= 50
        elsif i == 4
          @sprites["Black"].opacity -= 55
        elsif i >= 46 && i < 50
          @sprites["Black"].opacity += 50
        elsif i == 50
          @sprites["Black"].opacity += 55
        end
        if i >= 26 && i <=30
          @sprites["Ash"].opacity += 50 if weather
        end
        @sprites["Ash"].y += 3 if weather
        @sprites["Ash"].x += 8 if weather
        @sprites["Ground"].y += 1
        @sprites["Ground"].x += 4
        @sprites["Hiker"].x += 2 if hiker
        @sprites["Door"].x -= 2
        @sprites["Poles"].x += 6
        @sprites["Poles"].y += 3
        pbWait(2)
        @sprites["Ash"].y += 3 if weather
        @sprites["Ash"].x += 8 if weather
        @sprites["Ground"].y += 1
        @sprites["Ground"].x += 4
        @sprites["Hiker"].y += 1 if hiker
        @sprites["Hiker"].x += 4 if hiker
        @sprites["Trees"].y += 1
        @sprites["Trees"].x += 1
        @sprites["Poles"].x += 6
        @sprites["Poles"].y += 3
        pbWait(2)
        @sprites["Ash"].y += 3 if weather
        @sprites["Ash"].x += 8 if weather
        @sprites["Ground"].y += 1
        @sprites["Ground"].x += 4
        @sprites["Hiker"].y += 1 if hiker
        @sprites["Hiker"].x += 4 if hiker
        @sprites["Poles"].x += 6
        @sprites["Poles"].y += 3
        pbWait(2)
        @sprites["Ash"].y += 3 if weather
        @sprites["Ash"].x += 8 if weather
        @sprites["Ground"].y += 1
        @sprites["Ground"].x += 4
        @sprites["Hiker"].y += 1 if hiker
        @sprites["Hiker"].x += 4 if hiker
        @sprites["Trees"].y += 1
        @sprites["Trees"].x += 1
        @sprites["Door"].y -= 2
        @sprites["Door"].x -= 2
        if i % 2 == 0
          @sprites["Hiker"].y -= 2 if hiker
        else
          @sprites["Hiker"].y += 2 if hiker
        end
        @sprites["Poles"].x += 6
        @sprites["Poles"].y += 3
        pbWait(2)
      end
    else
      @sprites["Trees"] = Sprite.new
      @sprites["Trees"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/trees")
      @sprites["Trees"].x = -922
      @sprites["Trees"].y = 292
      @sprites["Trees"].z = 92000
      if hiker
        @sprites["Hiker"] = Sprite.new
        @sprites["Hiker"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/"+hiker_name)
        @sprites["Hiker"].x = 190
        @sprites["Hiker"].y = 276
        @sprites["Hiker"].z = 93000
      end
      @sprites["Ground"] = Sprite.new
      @sprites["Ground"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/ground")
      @sprites["Ground"].x = -976
      @sprites["Ground"].y = 44
      @sprites["Ground"].z = 94000
      @sprites["Door"] = Sprite.new
      @sprites["Door"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/door")
      @sprites["Door"].x = 202
      @sprites["Door"].y = -4
      @sprites["Door"].z = 96000
      @sprites["Poles"] = Sprite.new
      @sprites["Poles"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/pole")
      @sprites["Poles"].x = 200
      @sprites["Poles"].y = -26
      @sprites["Poles"].z = 98000
      if weather
        @sprites["Ash"] = Sprite.new
        @sprites["Ash"].bitmap = Bitmap.new("Graphics/Pictures/CableCar/ash")
        @sprites["Ash"].opacity = 250
        @sprites["Ash"].x = -18
        @sprites["Ash"].y = -38
        @sprites["Ash"].z = 99000
      end
      for i in 0..50
        if i < 4
          @sprites["Black"].opacity -= 50
        elsif i == 4
          @sprites["Black"].opacity -= 55
        elsif i >= 46 && i < 50
          @sprites["Black"].opacity += 50
        elsif i == 50
          @sprites["Black"].opacity += 55
        end
        if i >= 26 && i <=30
          @sprites["Ash"].opacity -= 50 if weather
        end
        @sprites["Ash"].y -= 3 if weather
        @sprites["Ash"].x -= 8 if weather
        @sprites["Ground"].y -= 1
        @sprites["Ground"].x -= 4
        @sprites["Hiker"].x -= 2 if hiker
        @sprites["Door"].x += 2
        @sprites["Poles"].x -= 6
        @sprites["Poles"].y -= 3
        pbWait(2)
        @sprites["Ash"].y -= 3 if weather
        @sprites["Ash"].x -= 8 if weather
        @sprites["Ground"].y -= 1
        @sprites["Ground"].x -= 4
        @sprites["Hiker"].y -= 1 if hiker
        @sprites["Hiker"].x -= 4 if hiker
        @sprites["Trees"].y -= 1
        @sprites["Trees"].x -= 1
        @sprites["Poles"].x -= 6
        @sprites["Poles"].y -= 3
        pbWait(2)
        @sprites["Ash"].y -= 3 if weather
        @sprites["Ash"].x -= 8 if weather
        @sprites["Ground"].y -= 1
        @sprites["Ground"].x -= 4
        @sprites["Hiker"].y -= 1 if hiker
        @sprites["Hiker"].x -= 4 if hiker
        @sprites["Poles"].x -= 6
        @sprites["Poles"].y -= 3
        pbWait(2)
        @sprites["Ash"].y -= 3 if weather
        @sprites["Ash"].x -= 8 if weather
        @sprites["Ground"].y -= 1
        @sprites["Ground"].x -= 4
        @sprites["Hiker"].y -= 1 if hiker
        @sprites["Hiker"].x -= 4 if hiker
        @sprites["Trees"].y -= 1
        @sprites["Trees"].x -= 1
        @sprites["Door"].y += 2
        @sprites["Door"].x += 2
        if i % 2 == 0
          @sprites["Hiker"].y -= 2 if hiker
        else
          @sprites["Hiker"].y += 2 if hiker
        end
        @sprites["Poles"].x -= 6
        @sprites["Poles"].y -= 3
        pbWait(2)
      end
    end
    @sprites["BG"].dispose
    @sprites["Trees"].dispose
    @sprites["Hiker"].dispose if hiker
    @sprites["Ground"].dispose
    @sprites["Ash"].dispose if weather
    @sprites["Poles"].dispose
    @sprites["Door"].dispose
    pbBGMFade(3)
    pbWait(5)
    $game_temp.player_transferring = false
    $game_temp.player_new_map_id = map_id
    $game_temp.player_new_x = map_x
    $game_temp.player_new_y = map_y
    $game_temp.player_new_direction = direction
    pbBGMStop(0)
    pbWait(5)
    for i in 0..14
      @sprites["Black"].opacity -= 17
      pbWait(1)
    end
    pbDisposeSpriteHash(@sprites)
    $game_map.autoplay
  end
end
 
Last edited by a moderator:

glassbetelgeuse

Hoenn Enjoyer
Member
Joined
Jan 19, 2023
Posts
10
For any v21 users, this still works fine if you change the pbWait values to be in seconds rather than frames (what this means in practice is "divide any number between the parentheses in pbWait(), pbBGMFade(), and pbBGMStop() by 40"). v21 was refactored to be framerate agnostic.
 
Back
Top