Paste #44957: Untitled Paste

Date: 2017/10/10 21:10:21 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Postgame:
  type: task
  debug: true
  script:
    - flag server gamestate:Postgame
    - define winners <server.flag[spawns].as_list.sort_by_number[as_player.flag[kills]].sort_by_number[flag[score]].reverse>
    - announce "<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-"
    - announce "<&2>"
    - announce "<&c><&l>GAME OVER!!!"
    - repeat 3:
      - define player <def[winners].get[1]||null>
      - define place <def[value]>
      - if <def[player]> != null {
        - announce "<&a><&l>1st place<&7><&co> <&b><def[player].name||-->"
        - ^inject s@Postgame_Winners instantly
        }
    - announce "<&2>"
    - announce "<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-"   
    - announce "<&2>"
    - foreach <s@Records.list_keys[scorerecords.solo]>:
      - flag server bonuspoints.recordscores:->:<s@Records.yaml_key[scorerecords.solo.<def[value]>.amount]||0>/<s@Records.yaml_key[scorerecords.solo.<def[value]>.player||!>
    - foreach <s@Records.list_keys[killrecords.solo]>:
      - flag server bonuspoints.recordkills:->:<s@Records.yaml_key[killrecords.solo.<def[value]>.amount]||0>/<s@Records.yaml_key[scorerecords.solo.<def[value]>.player||!>
    - foreach <server.flag[spawns].as_list>:
      - flag server bonuspoints.recordscores:->:<def[value].flag[score]>/<def[value]>
      - flag server bonuspoints.recordkills:->:<def[value].flag[kills]>/<def[value]>
    - define killrecord <server.flag[bonuspoints.recordkills].alphanumeric.reverse>
    - define scorerecord <server.flag[bonuspoints.recordscores].alphanumeric.reverse>
    - repeat 10:
      - if <def[value]> == 1 {
        - define scoreplacement li@1
        - define killplacement li@1
        }
        else {
        - if <def[scorerecord].get[<def[value]>].is[==].to[<def[scorerecord].get[<def[value].sub[1]>]>]>]> {
          - define scoreplacement <def[scoreplacement].include[<def[scoreplacement].get[<def[value].sub[1]>]>]>
          }
          else {
          - define scoreplacement <def[scoreplacement].include[<def[value]>]>
          }
        - if <def[killrecord].get[<def[value]>].is[==].to[<def[killrecord].get[<def[value].sub[1]>]>]>]> {
          - define killplacement <def[killplacement].include[<def[killplacement].get[<def[value].sub[1]>]>]>
          }
          else {
          - define killplacement <def[killplacement].include[<def[value]>]>
          }
        }
    - foreach <server.flag[spawns].as_list>:
      - define player <def[value]>
      - flag <def[player]> playpoints:+:<s@Config.yaml_key[playpointvalue]>
      - define classes <s@Config.list_keys[classunlock]>
      - ^inject s@BonusPoints_Postgame instantly
      - if <def[player].has_flag[bonuspoints.latest_killcombo_max]> {
        - flag <def[player]> bonuspoints.killcount.<def[player].flag[bonuspoints.latest_killcombo_max].as_int>:++
        - flag <def[player]> bonuspoints.current_killcombo:!
        - flag <def[player]> bonuspoints.latest_killcombo_max:!
        - foreach <def[player].list_flags[regex:bonuspoints\.killcount\.\d+[2-9]]> {
          - ^inject s@BonusPoints_KillCount instantly
          }
        }
      - if <def[player].has_flag[bonuspoints.current_killstreak]> && <def[player].has_flag[latest_killstreak_max]> {
        - flag <def[player]> bonuspoints.killstreak.<def[player].flag[bonuspoints.latest_killstreak_max].as_int>:++
        - flag <def[player]> bonuspoints.latest_killstreak_max:!
        - flag <def[player]> bonuspoints.current_killstreak:!
        - foreach <def[player].flag[regex:bonuspoints\.killstreak\.\d+[2-9]> {
          - if <def[value].is[OR_LESS].than[2]> {
            - queue clear
            }
            else if <def[value].is[OR_MORE].than[3].and[<def[value].is[OR_LESS].than[4]>]> {
            - flag <def[player]> bonuspoints.triplekillstreak:++
            }
            else if <def[value].is[OR_MORE].than[5].and[<def[value].is[OR_LESS].than[9]>]> {
            - flag <def[player]> bonuspoints.pentakillstreak:++
            }
            else if <def[value].is[OR_MORE].than[10].and[<def[value].is[OR_LESS].than[14]>]> {
            - flag <def[player]> bonuspoints.10killstreak:++
            }
            else if <def[value].is[OR_MORE].than[15].and[<def[value].is[OR_LESS].than[19]>]> {
            - flag <def[player]> bonuspoints.15killstreak:++
            }
            else if <def[value].is[OR_MORE].than[20].and[<def[value].is[OR_LESS].than[29]>]> {
            - flag <def[player]> bonuspoints.20killstreak:++
            }
            else if <def[value].is[OR_MORE].than[30].and[<def[value].is[OR_LESS].than[39]>]> {
            - flag <def[player]> bonuspoints.30killstreak:++
            }
            else if <def[value].is[OR_MORE].than[40].and[<def[value].is[OR_LESS].than[49]>]> {
            - flag <def[player]> bonuspoints.40killstreak:++
            }
            else if <def[value].is[OR_MORE].than[50]> {
            - flag <def[player]> bonuspoints.50killstreak:++
            }
          }
        }
      - if <def[scorerecord].map_find_key[<def[player]>]||null> != null || <def[killrecord].map_find_key[<def[player]>]||null> != null {
        - ^inject s@BonusPoints_Records instantly
        }
      - ^inject s@BonusPoints instantly
      - ^inject s@YamlUpdate instantly
      - flag <def[player]> score:0
      - flag <def[player]> kills:0


BonusPoints_Records:
  type: task
  debug: true
  script:
  - choose <def[scorerecord].find[<def[player>]>:
    - case 1:
      - flag <def[value]> bonuspoints.1stplacescoresrecord:1
    - case 2:
      - flag <def[value]> bonuspoints.2ndplacescoresrecord:1
    - case 3:
      - flag <def[value]> bonuspoints.3rdplacescoresrecord:1
    - case 4:
      - flag <def[value]> bonuspoints.newscoresrecord:1
    - case 5:
      - flag <def[value]> bonuspoints.newscoresrecord:1
    - case 6:
      - flag <def[value]> bonuspoints.newscoresrecord:1
    - case 7:
      - flag <def[value]> bonuspoints.newscoresrecord:1
    - case 8:
      - flag <def[value]> bonuspoints.newscoresrecord:1
    - case 9:
      - flag <def[value]> bonuspoints.newscoresrecord:1
    - case 10:
      - flag <def[value]> bonuspoints.newscoresrecord:1
    - default:
      - choose <def[killrecord].find[<def[player]>]>:
        - case 1:
          - flag <def[value]> bonuspoints.1stplacekillsrecord:1
        - case 2:
          - flag <def[value]> bonuspoints.2ndplacekillsrecord:1
        - case 3:
          - flag <def[value]> bonuspoints.3rdplacekillsrecord:1
        - case 4:
          - flag <def[value]> bonuspoints.newkillsrecord:1
        - case 5:
          - flag <def[value]> bonuspoints.newkillsrecord:1
        - case 6:
          - flag <def[value]> bonuspoints.newkillsrecord:1
        - case 7:
          - flag <def[value]> bonuspoints.newkillsrecord:1
        - case 8:
          - flag <def[value]> bonuspoints.newkillsrecord:1
        - case 9:
          - flag <def[value]> bonuspoints.newkillsrecord:1
        - case 10:
          - flag <def[value]> bonuspoints.newkillsrecord:1
        - default:
          - queue clear