Paste #35997: Untitled Paste

Date: 2016/09/12 12:35:42 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


# CTF_Red_Team
# CTF_Blue_Team
# CTF_None_Team
# CTF_Playing

# CTF_Current_Lobby
# CTF_Current_Red_Spawns
# CTF_Current_Red_Flag
# CTF_Current_Blue_Spawns
# CTF_Current_Blue_Flag



CTF_Map_Events:
    type: world
    debug: false
    events:
        on server start: 
        - inject CTF_Load_Data

        on reload scripts:
        - inject CTF_Load_Data

        on player right clicks STANDING_BANNER:
        - narrate "Should take"

        on player left clicks STANDING_BANNER:
        - narrate "Should take"

        on player enters Red_Flag:
        - narrate "in radius of red flag"

        on player enters Blue_Flag:
        - narrate "in radius of blue flag"


CTF_Map_Load_Map:
    type: task
    definitions: map
    script:
    - define Lobby <yaml[ctf_data].read[ctf.maps.<def[map]>.lobby]>
    - define Red_Spawns <yaml[ctf_data].read[ctf.maps.<def[map]>.teams.red.spawns]>
    - define Blue_Spawns <yaml[ctf_data].read[ctf.maps.<def[map]>.teams.blue.spawns]>
    - define Red_Flag <yaml[ctf_data].read[ctf.maps.<def[map]>.teams.red.flag]>
    - define Blue_Flag <yaml[ctf_data].read[ctf.maps.<def[map]>.teams.blue.flag]>
    - flag server CTF_Current_Lobby:<def[Lobby]>
    - flag server CTF_Current_Red_Spawns:!
    - flag server CTF_Current_Blue_Spawns:!
    - foreach <def[Red_Spawns]> {
        - flag server CTF_Current_Red_Spawns:->:<def[value]>
    }
    - foreach <def[Blue_Spawns]> {
        - flag server CTF_Current_Blue_Spawns:->:<def[value]>
    }
    - flag server CTF_Current_Red_Flag:<def[Red_Flag]>
    - flag server CTF_Current_Blue_Flag:<def[Blue_Flag]>
    - note cu@<def[Red_Flag].as_location.add[-1,-1,-1]>|<def[Red_Flag].as_location.add[1,2,1]> as:Red_Flag
    - note cu@<def[Blue_Flag].as_location.add[-1,-1,-1]>|<def[Blue_Flag].as_location.add[1,2,1]> as:Blue_Flag

CTF_Map_Load_Data:
    type: task
    script:
    - if <server.has_file[data/CTF/data.yml].not> {
        - yaml create id:ctf_data
        - define path "ctf.maps.test.title"
        - define text "Test Banen"
        - yaml id:ctf_data set <def[path]>:<def[text]>
        - define path "ctf.maps.test.lobby"
        - define text "pos"
        - yaml id:ctf_data set <def[path]>:<def[text]>
        - define path "ctf.maps.test.teams.red.flag"
        - define text "pos"
        - yaml id:ctf_data set <def[path]>:<def[text]>
        - define path "ctf.maps.test.teams.blue.flag"
        - define text "pos"
        - yaml id:ctf_data set <def[path]>:<def[text]>
        - define path "ctf.maps.test.teams.red.spawns"
        - define text "pos"
        - yaml id:ctf_data set <def[path]>:->:<def[text]>
        - define path "ctf.maps.test.teams.blue.spawns"
        - define text "pos"
        - yaml id:ctf_data set <def[path]>:->:<def[text]>
        - yaml id:ctf_data "savefile:data/CTF/data.yml"
    }
    else {
        - yaml "load:data/CTF/data.yml" id:ctf_data
    }

CTF_Map_Command:
    type: command
    name: ctf
    description: Commands for ctf.
    usage: /ctf
    debug: false
    aliases:
    - capturetheflag
    permission: qmod.admin
    permission message: Sorry, <player.name>, you don't have the permission '<permission>'!
    script:
    - if <context.args.size> >= 1 {
        # Help
        - if <context.args.get[1]> == "create" {
            - if <context.args.size> < 3 {
                - narrate "No map display name specified"
                - queue clear
            }
            - define map <context.args.get[2]>
            - define title <context.args.get[3]>
            - define path "ctf.maps.<def[map]>.title"
            - define text "<def[title]>"
            - yaml id:ctf_data set <def[path]>:<def[text]>
            - define path "ctf.maps.<def[map]>.lobby"
            - define text "pos"
            - yaml id:ctf_data set <def[path]>:<def[text]>
            - define path "ctf.maps.<def[map]>.teams.red.flag"
            - define text "pos"
            - yaml id:ctf_data set <def[path]>:<def[text]>
            - define path "ctf.maps.<def[map]>.teams.blue.flag"
            - define text "pos"
            - yaml id:ctf_data set <def[path]>:<def[text]>
            - define path "ctf.maps.<def[map]>.teams.red.spawns"
            - define text "pos"
            - yaml id:ctf_data set <def[path]>:->:<def[text]>
            - yaml id:ctf_data set <def[path]>:<-:<def[text]>
            - define path "ctf.maps.<def[map]>.teams.blue.spawns"
            - define text "pos"
            - yaml id:ctf_data set <def[path]>:->:<def[text]>
            - yaml id:ctf_data set <def[path]>:<-:<def[text]>
            - yaml id:ctf_data "savefile:data/CTF/data.yml"
            - narrate "<&a>Successfully created map <&e><def[title]>"
        }
        else if <context.args.get[1]> == "set" {
            - if <context.args.size> < 3 {
                - narrate "No map name specified"
                - queue clear
            }
            - define map <context.args.get[3]>
            - if <yaml[ctf_data].list_keys[ctf.maps].contains[<def[map]>].not> {
                - narrate "<&c>Ingen map fundet"
                - queue clear
            }
            - if <context.args.get[2]> == "lobby" {
                - define path "ctf.maps.<def[map]>.lobby"
                - define text "<player.location.simple>"
                - yaml id:ctf_data set <def[path]>:<def[text]>
                - narrate "<&a>Successfully set lobby position at <&b><player.location.simple> in <def[map]>"
            }
            else if <context.args.get[2]> == "flag" {
                - if <context.args.size> < 4 {
                    - queue clear
                }
                - define loc <player.location.simple>
                - define map <context.args.get[3]>
                - define team <context.args.get[4]>
                - if <yaml[ctf_data].list_keys[ctf.maps.<def[map]>.teams].contains[<def[team]>].not> {
                    - narrate "<&c>Ingen team fundet"
                }
                - define path "ctf.maps.<def[map]>.teams.<def[team]>.flag"
                - define text "<def[loc]>"
                - yaml id:ctf_data set <def[path]>:<def[text]>
                - narrate "<&a>Successfully set flag position at <&b><def[loc]> <&a>for <&b><def[team]> <&a>team in <def[map]>"
            }
            else if <context.args.get[2]> == "spawn" {
                - if <context.args.size> < 4 {
                    - queue clear
                }
                - define loc <player.location.simple>
                - define map <context.args.get[3]>
                - define team <context.args.get[4]>
                - if <yaml[ctf_data].list_keys[ctf.maps.<def[map]>.teams].contains[<def[team]>].not> {
                    - narrate "<&c>Ingen team fundet"
                }
                - define path "ctf.maps.<def[map]>.teams.<def[team]>.spawns"
                - define text "<def[loc]>"
                - yaml id:ctf_data set <def[path]>:->:<def[text]>
                - narrate "<&a>Successfully set spawn position at <&b><def[loc]> <&a>for <&b><def[team]> <&a>team in <def[map]>"
            }
            else {
                - narrate "<&c>No type found..."
                - queue clear
            }
            - yaml id:ctf_data "savefile:data/CTF/data.yml"
        }
        else if <context.args.get[1]> == "remove" {
            - if <context.args.size> < 3 {
                - queue clear
            }
            - define map <context.args.get[3]>
            - if <yaml[ctf_data].list_keys[ctf.maps].contains[<def[map]>].not> {
                - narrate "<&c>Ingen map fundet"
                - queue clear
            }
            - if <context.args.get[2]> == "spawn" {
                - if <context.args.size> < 5 {
                    - queue clear
                }
                - define team <context.args.get[4]>
                - if <yaml[ctf_data].list_keys[ctf.maps.<def[map]>.teams].contains[<def[team]>].not> {
                    - narrate "<&c>Ingen team fundet"
                }
                - define number <context.args.get[5]>
                - define loc <yaml[ctf_data].read[ctf.maps.<def[map]>.teams.<def[team]>.spawns].get[<def[number]>]>
                - define path "ctf.maps.<def[map]>.teams.<def[team]>.spawns"
                - define text "<def[loc]>"
                - yaml id:ctf_data set <def[path]>:<-:<def[text]>
                - narrate "<&a>Successfully removed spawn position at <&b><def[loc]> <&a>for <&b><def[team]> <&a>team in <def[map]>"
            }
            else {
                - narrate "<&c>No type found..."
                - queue clear
            }
            - yaml id:ctf_data "savefile:data/CTF/data.yml"
        }
        else if <context.args.get[1]> == "check" {
            - if <context.args.size> < 2 {
                - narrate "<&c>Not enough arguments"
                - queue clear
            }
            - define map <context.args.get[2]>
            - if <yaml[ctf_data].list_keys[ctf.maps].contains[<def[map]>].not> {
                - narrate "<&c>Map not found"
                - queue clear
            }
            - define Lobby <yaml[ctf_data].read[ctf.maps.<def[map]>.lobby].as_location.add[0.5,-0.5,0.5]>
            - define Red_Spawns <yaml[ctf_data].read[ctf.maps.<def[map]>.teams.red.spawns].parse[as_location.add[0.5,-0.5,0.5]]>
            - define Blue_Spawns <yaml[ctf_data].read[ctf.maps.<def[map]>.teams.blue.spawns].parse[as_location.add[0.5,-0.5,0.5]]>
            - define Red_Flag <yaml[ctf_data].read[ctf.maps.<def[map]>.teams.red.flag].as_location.add[0.5,-0.5,0.5]>
            - define Blue_Flag <yaml[ctf_data].read[ctf.maps.<def[map]>.teams.blue.flag].as_location.add[0.5,-0.5,0.5]>
            - narrate "<&b>There are <&e><def[Red_Spawns].size> <&b>spawns for Red"
            - narrate "<&b>There are <&e><def[Blue_Spawns].size> <&b>spawns for Blue"
            - repeat 20 {
                - foreach <def[Blue_Spawns]> {
                    - playeffect <def[value]> effect:RED_DUST qty:5 data:0 offset:0.1
                }
                - foreach <def[Red_Spawns]> {
                    - playeffect <def[value]> effect:RED_DUST qty:5 data:0 offset:0.1 
                }
                - playeffect <def[Lobby]> effect:MOB_SPELL qty:3 data:0 offset:0.1 
                - playeffect <def[Red_Flag]> effect:HAPPY_VILLAGER qty:3 data:0 offset:0.1
                - playeffect <def[Blue_Flag]> effect:HAPPY_VILLAGER qty:3 data:0 offset:0.1
                - wait 5t
            }
        }
    }
    else {
        - inject CTF_Command_Help
    }

CTF_Map_Command_Help:
    type: task
    script: 
    - narrate "<&b>/ctf create (map)"
    - narrate "<&b>/ctf set (lobby/flag/spawn) (map) (team)"
    - narrate "<&b>/ctf remove spawn (map) (team) (number)"
    - narrate "<&b>/ctf check (map)"