Simple Elevator

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

FistoF

Active Member
Feb 11, 2017
53
0
6
www.planetminecraft.com
Category:
Mechanics

Suggested name:
Simple Elevator

Server version:
1.15

What I want:
A possibility to create an elevator by placing a block (defined in the configs) on each floor in a vertical line. Jump on the block to go a higher level, crouch to go to a lower level.

Configuration:
minElevation: 2 #The minimum distance to place valid elevator blocks
maxElevation: 64 #The maximum distance
elevatorWhoosh: entity_iron_golem_attack #The sound played when a player uses an elevator.
elevatorMaterial: emerald block #The block type used for elevators.
useUpDownMessages: false #Display a message when teleporting up and down?
up: "&aYou have ascended a level."
down: "&cYou have descended a level."
noPermission : "&cYou do not have permission to do this."

Permission:
simpleelevator.use
 
Code:
options:
  minElevation: 2
  maxElevation: 64
  elevatorMaterial: emerald block
  useUpDownMessages: false
  up: &aYou have ascended a level.
  down: &cYou have descended a level.
  noPermission : &cYou do not have permission to do this.

on place:
  if event-block is {@elevatorMaterial}:
    if player has permission "simpleelevator.use":
      set {_w} to location of event-block
      loop all blocks above event-block:
        if loop-block is air:
          if block above loop-block is air:
            set {_e} to location of loop-block
            stop loop
      if distance between {_w} and {_e} is less than {@maxElevation}:
        if distance between {_w} and {_e} is greater than {@minElevation}:
          send "&eElevator made!" to player
        else:
          cancel event
          send "&eToo litte/Too long" to player
      else:
        cancel event
        send "&eToo litte/Too long" to player
    else:
      send "{@noPermission}" to player

on sneak toggle:
  if block under player is {@elevatorMaterial}:
    loop all blocks under player:
      if loop-block is air:
        if block under loop-block is air:
          teleport player to loop-block
          if {@useUpDownMessages} is true:
            send "{@down}" to player
          stop loop

on jump:
  if block under player is {@elevatorMaterial}:
    loop all blocks above player:
      if loop-block is air:
        if block under loop-block is air:
          teleport player to loop-block
          if {@useUpDownMessages} is true:
            send "{@up}" to player
          stop loop

Untested parsed sucessfully using skunity parser
 
  • Like
Reactions: FistoF