Paste #28637: Untitled Paste

Date: 2016/01/16 16:58:28 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Sorting:
  type: procedure
  definitions: p1|p2
  script:
  ## If neither has a Kill Score, don't change.
  - if <def[p2].has_flag[kill_score].not> && <def[p1].has_flag[kill_score].not> {
    - determine 0
  }
  ## If P2 has a kill score but P1 doesn't, move P2 up.
  else if <def[p1].has_flag[kill_score].not> && <def[p2].has_flag[kill_score]> {
    - determine -1
  }
  ## If P1 has a kill score but P2 doesn't, move P1 up.
  else if <def[p2].has_flag[kill_score].not> && <def[p1].has_flag[kill_score]> {
    - determine 1
  }
  ## If P2's kill score is better than P1's move P2 up.
  - if <def[p2].flag[kill_score]> > <def[p1].flag[kill_score]> {
    - determine -1
  }
  ## If P1's kill score is better than P2's move P1 up.
  else if <def[p1].flag[kill_score]> > <def[p2].flag[kill_score]> {
    - determine 1
  }
  ## Their kill score is equal, so do nothing!
  else {
    - determine 0
  }


Leaders:
  type: world
  events:

    ## Update the leaderboards!
    on player kills player:
    - flag <player> "kill_score:++"
    - flag server "leaders:!"
    - flag server "leaders:|:<server.list_players.sort[Sorting].get[1].to[5]>"

    ## A command to check the leaderboards!
    on leaderboard command:
    - determine passively fulfilled
    - narrate "----- <&6>Leaderboards<&r> -----"
    - if <server.has_flag[leaders].not> {
      - narrate "Sorry, there are <&6>no<&r> leaders at this time!"
      - queue clear
    }
    - foreach <server.flag[leaders].as_list> {
      - narrate "<def[loop_index]>. <&6><def[Value].name> : <&6><def[value].flag[kill_score].round||0><&r> kills!"
    }