Paste #63200: ssssssssssssssssssssss

Date: 2019/12/27 11:32:00 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


MyAssignmentScript:
    type: assignment
    actions:
        on assignment:
        - trigger name:proximity state:true
        on enter proximity:
        - flag player day_set_new:<server.flag[day]>
        - if <player.flag[day_set_old]||0> != <player.flag[day_set_new]||0>:
          - flag player priest_rewarded:false
          - flag player daily_priest:!
        - spawn "ARMOR_STAND[custom_name=<&a>Quest available!;custom_name_visibility=true;gravity=false]" <npc.location.above[0.05]> save:new
        - spawn "ARMOR_STAND[custom_name=<&e>Quest ongoing!;custom_name_visibility=true;gravity=false]" <npc.location.above[0.05]> save:ongoing
        - spawn "ARMOR_STAND[custom_name=<&c>Quest finished!;custom_name_visibility=true;gravity=false]" <npc.location.above[0.05]> save:finish
        - flag npc new:<entry[new].spawned_entity>
        - flag npc ongoing:<entry[ongoing].spawned_entity>
        - flag npc finish:<entry[finish].spawned_entity>
        - adjust <player> hide_entity:<npc.flag[new]>
        - adjust <player> hide_entity:<npc.flag[ongoing]>
        - adjust <player> hide_entity:<npc.flag[finish]>
        - invisible <npc.flag[new]> state:true
        - invisible <npc.flag[ongoing]> state:true
        - invisible <npc.flag[finish]> state:true
        - if <player.flag[day_set_old]||0> == <server.flag[day]> && !<player.flag[priest_rewarded]> && <player.flag[day_set_old]||0> == <player.flag[day_set_new]||0>:
          - adjust <player> show_entity:<npc.flag[ongoing]>

        - else if <player.flag[day_set_old]||0> == <server.flag[day]> &&<player.flag[priest_rewarded]> && <player.flag[day_set_old]||0> == <player.flag[day_set_new]||0>:
          - adjust <player> show_entity:<npc.flag[finish]>

        - else if !<player.flag[priest_rewarded]>:
          - adjust <player> show_entity:<npc.flag[new]>
        on exit proximity:
        - remove <npc.location.find.entities[armor_stand].within[2]>
        on click:
          - if <player.flag[day_set_old]||0> == <server.flag[day]>:
            - if <player.inventory.contains[<player.flag[daily_priest].get[2]>].quantity[<player.flag[daily_priest].get[1]>]> && !<player.flag[priest_rewarded]>:
              - take <player.flag[daily_priest].get[2]> quantity:<player.flag[daily_priest].get[1]>
              - define "pt:<&6><&l>[<&6>Priest<&6><&l>]"
              - define "w1:<[pt]> <&f>Thanks for these materials, <&e><player.name><&f>!"
              - define "w2:<[pt]> <&f>I will have new quests for you tomorrow!"
              - narrate "<[w1]>"
              - wait <[w1].length.div[2]>t
              - narrate "<[w2]>"
              # Prepare rewards
              - choose "<player.flag[daily_priest].get[4]>":
                - case "I":
                  - define enchantlvl:1
                - case "II":
                  - define enchantlvl:2
              - choose "<player.flag[daily_priest].get[3]>":
                - case "Efficiency":
                  - define enchant:DIG_SPEED
                - case "Sharpness":
                  - define enchant:DAMAGE_ALL
                - case "Unbreaking":
                  - define enchant:DURABILITY
                - case "Smite":
                  - define enchant:DAMAGE_UNDEAD
                - case "Fortune":
                  - define enchant:LOOT_BONUS_BLOCKS
                - case "Power":
                  - define enchant:ARROW_DAMAGE
                - case "Feather Falling":
                  - define enchant:PROTECTION_FALL
              - narrate "<[pt]> <&f>Here is your <&d>reward<&f>."
              - wait 1s
              - give i@enchanted_book[enchantments=<[enchant]>,<[enchantlvl]>]
              - flag player priest_rewarded:true
              - wait 1s
              - invisible <npc.flag[new]> state:true
              - invisible <npc.flag[ongoing]> state:true
              - invisible <npc.flag[finish]> state:true
              - if <player.flag[day_set_old]||0> == <server.flag[day]> && !<player.flag[priest_rewarded]> && <player.flag[day_set_old]||0> == <player.flag[day_set_new]||0>:
                - adjust <player> hide_entity:<npc.flag[new]>
                - adjust <player> show_entity:<npc.flag[ongoing]>

              - else if <player.flag[day_set_old]||0> == <server.flag[day]> &&<player.flag[priest_rewarded]> && <player.flag[day_set_old]||0> == <player.flag[day_set_new]||0>:
                - adjust <player> hide_entity:<npc.flag[new]>
                - adjust <player> hide_entity:<npc.flag[ongoing]>
                - adjust <player> show_entity:<npc.flag[finish]>

              - else if !<player.flag[priest_rewarded]>:
                - adjust <player> show_entity:<npc.flag[new]>
            - else if <player.inventory.contains[<player.flag[daily_priest].get[2]>].quantity[<player.flag[daily_priest].get[1]>]> || <player.flag[priest_rewarded]>:
              - define "pt:<&6><&l>[<&6>Priest<&6><&l>]"
              - define "w1:<[pt]> <&f>Thanks for these materials, <&e><player.name><&f>!"
              - define "w2:<[pt]> <&f>I hope you come back tomorrow!"
              - narrate "<[w1]>"
              - wait <[w1].length.div[2]>t
              - narrate "<[w2]>"
            - else:
              - narrate "<&6><&l>[<&6>Priest<&6><&l>] <&f>I needed <&a><player.flag[daily_priest].get[1]> <&translate[item.minecraft.<player.flag[daily_priest].get[2]>]>(s)<&f> and was going to give you a book of <&d><player.flag[daily_priest].get[3]> <player.flag[daily_priest].get[4]><&f>, come back to me when you have the <&a><&translate[item.minecraft.<player.flag[daily_priest].get[2]>]>(s)"

          - else:

            - engage

            - flag player day_set_old:<server.flag[day]>

            - define "material_amount:<util.random.int[5].to[20]>"
            - define "material_name:<list[iron_ingot|emerald|bread].random>"
            - define "enchant_name:<list[Efficiency|Sharpness|Unbreaking|Smite|Protection|Fortune|Power|Feather Falling].random>"
            - define "enchant_level:<list[I|II].random>"

            - flag player daily_priest:->:<[material_amount]>
            - flag player daily_priest:->:<[material_name]>
            - flag player daily_priest:->:<[enchant_name]>
            - flag player daily_priest:->:<[enchant_level]>

            - define "pt:<&6><&l>[<&6>Priest<&6><&l>]"
            - define "w1:<[pt]> <list[<&f>Oh, <&e><player.name><&f>!|<&f>Hello <&e><player.name><&f>!|<&f>Nice to see you <&e><player.name><&f>!|<&f>It's <&e><player.name><&f>!|<&f>Greetings to my church <&e><player.name><&f>!].random>"
            - define "w2:<[pt]> <list[<&f>I need to you do a little job for me|<&f>Would you collect some materials for me?|<&f>Do you happen to have some of these materials around?|<&f>Would you like to take this offer?|<&f>Are you up for a job, <&e><player.name><&f>?].random>"
            - define "w3:<[pt]> <&f>I need <&a><player.flag[daily_priest].get[1]> <&translate[item.minecraft.<player.flag[daily_priest].get[2]>]>(s)<&f>, in exchange I can give you this book of <&d><player.flag[daily_priest].get[3]> <player.flag[daily_priest].get[4]><&f>."
            - narrate "<[w1]>"
            - wait <[w1].length.div[2]>t
            - narrate "<[w2]>"
            - wait <[w2].length.div[2]>t
            - narrate "<[w3]>"

            - if <player.flag[day_set_old]||0> == <server.flag[day]> && !<player.flag[priest_rewarded]> && <player.flag[day_set_old]||0> == <player.flag[day_set_new]||0>:
              - adjust <player> hide_entity:<npc.flag[new]>
              - adjust <player> show_entity:<npc.flag[ongoing]>

            - else if <player.flag[day_set_old]||0> == <server.flag[day]> &&<player.flag[priest_rewarded]> && <player.flag[day_set_old]||0> == <player.flag[day_set_new]||0>:
              - adjust <player> hide_entity:<npc.flag[new]>
              - adjust <player> hide_entity:<npc.flag[ongoing]>
              - adjust <player> show_entity:<npc.flag[finish]>

            - else if !<player.flag[priest_rewarded]>:
              - adjust <player> show_entity:<npc.flag[new]>
            - disengage
Timer:
  type: world
  events:
    on system time 04:00:
    - flag server day:++