Paste #59669: Untitled Paste

Date: 2019/11/06 08:43:13 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


MyAssignmentScript:
    type: assignment
    actions:
        on assignment:
        - chat "I has been assigned!"
        - trigger name:proximity state:true
    Interact Scripts:
    - Quests_Priest
Quests_Priest:
  type: Interact
  Steps:
    '1':
            Proximity trigger:
                Entry:
                    Script:
                    - narrate hello
                    - spawn ARMOR_STAND[custom_name="<&a>Quest available!";custom_name_visibility=true;gravity=false] <npc.location.above[1]> save:new
                    - spawn ARMOR_STAND[custom_name="<&e>Quest ongoing!";custom_name_visibility=true;gravity=false] <npc.location.above[1]> save:ongoing
                    - spawn ARMOR_STAND[custom_name="<&c>Quest finished!";custom_name_visibility=true;gravity=false] <npc.location.above[1]> save:finish
                    - adjust <player> hide_entity:<entry[new]>
                    - adjust <player> hide_entity:<entry[ongoing]>
                    - adjust <player> hide_entity:<entry[finish]>
                    - if <player.flag[<player.uuid>_priest_daily_set]>:
                      - adjust <player> show_entity:<entry[ongoing]>
                    - if <player.flag[<player.uuid>_priest_daily_set]> !:
                      - adjust <player> show_entity:<entry[new]>
                    - if <player.flag[<player.uuid>_priest_rewarded]> !:
                      - adjust <player> show_entity:<entry[finish]>
    '2':
      click trigger:
        script:

          - if <player.flag[<player.uuid>_priest_day_reset].sub[<util.date.time.day>]> != 0 || <player.has_flag[<player.uuid>_priest_day_reset]> !:

            - flag player <player.uuid>_priest_daily_set:false
            - flag player <player.uuid>_priest_rewarded:false

          - if <player.flag[<player.uuid>_priest_daily_set]>:
            - if <player.inventory.contains[<player.flag[<player.uuid>_daily_priest].get[2]>].quantity[<player.flag[<player.uuid>_daily_priest].get[1]>]> || <player.flag[<player.uuid>_priest_rewarded]> !:
              - take <player.flag[<player.uuid>_daily_priest].get[2]> quantity:<player.flag[<player.uuid>_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]>"
              - wait 1s
              - flag player <player.uuid>_priest_daily_completed:true
              # Prepare rewards
              - choose "<player.flag[<player.uuid>_daily_priest].get[4]>":
                - case "I":
                  - define enchantlvl:1
                - case "II":
                  - define enchantlvl:2
              - choose "<player.flag[<player.uuid>_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 <player.uuid>_priest_rewarded:true
            - else if <player.inventory.contains[<player.flag[<player.uuid>_daily_priest].get[2]>].quantity[<player.flag[<player.uuid>_daily_priest].get[1]>]> || <player.flag[<player.uuid>_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[<player.uuid>_daily_priest].get[1]> <&translate[item.minecraft.<player.flag[<player.uuid>_daily_priest].get[2]>]>(s)<&f> and was going to give you a book of <&d><player.flag[<player.uuid>_daily_priest].get[3]> <player.flag[<player.uuid>_daily_priest].get[4]><&f>, come back to me when you have the <&a><&translate[item.minecraft.<player.flag[<player.uuid>_daily_priest].get[2]>]>(s)"
          - if <player.flag[<player.uuid>_priest_daily_set]> !:

            - engage

            - flag player <player.uuid>_priest_day_reset:<util.date.time.day>

            - flag player <player.uuid>_daily_priest:!
            - 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 <player.uuid>_daily_priest:->:<[material_amount]>
            - flag player <player.uuid>_daily_priest:->:<[material_name]>
            - flag player <player.uuid>_daily_priest:->:<[enchant_name]>
            - flag player <player.uuid>_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[<player.uuid>_daily_priest].get[1]> <&translate[item.minecraft.<player.flag[<player.uuid>_daily_priest].get[2]>]>(s)<&f>, in exchange I can give you this book of <&d><player.flag[<player.uuid>_daily_priest].get[3]> <player.flag[<player.uuid>_daily_priest].get[4]><&f>."
            - narrate "<[w1]>"
            - wait <[w1].length.div[2]>t
            - narrate "<[w2]>"
            - wait <[w2].length.div[2]>t
            - narrate "<[w3]>"
            - flag player <player.uuid>_priest_daily_set:true
            - disengage