Paste #54855: hehe

Date: 2019/06/23 18:14:57 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


forge_quest_start:
    type: task
    script:
    - create player Mersius l@-167,105,129,main save:originalmersius
    - flag <entry[originalmersius].created_npc> original_mersius_flag
    - run forge_quest_start2 npc:<entry[originalmersius].created_npc>

forge_quest_start2:
    type: task
    script:
    - assignment set script:s@forge_quest

forge_quest:
    type: assignment
    actions:
        on assignment:
        - trigger name:proximity state:true radius:15
    interact scripts:
    - 1 forge_quest_engage

################      Checks flags         ##################

forge_quest_engage:
    type: interact
    steps:
        1:
            proximity trigger:
                entry:
                    script:
                    - if <player.has_flag[forge_quest_engaged] {
                      - queue clear
                      }
                    - if !<player.has_flag[forge_town_permitted]> {
                      - chat "<dark_gray>Hey! What are you doing here?!"
                      - wait 3s
                      - chat "<dark_gray>If you haven't been sent, you should leave."
                      - wait 2s
                      - narrate "<dark_purple>Come back when you have the permission."
                      - queue clear
                      }
                    - if <player.has_flag[forge_town_permitted]> {
                      - flag player mersius_engaged
                      - create player Mersius <npc.location> save:mersius_step1
                      - flag <entry[mersius_step1].created_npc> mersius_step1_flag
                      - adjust <player> hide_entity:<npc>
                      - adjust <server.list_online_players.exclude[<player>]> hide_entity:<entry[mersius_step1].created_npc>
                      - run mersius_assign_step1 npc:<entry[mersius_step1].created_npc>
                      }
                exit:
                    script:
                    - if !<player.has_flag[mersius_engaged]> {
                      - adjust <player> show_entity:<server.get_spawned_npcs_flagged[original_mersius_flag]>
                      - run mersius_step1_disappear npc:<server.get_spawned_npcs_flagged[mersius_step1_flag]>
                      }


######################  Engage Forge Quest? if flags match        #################


mersius_assign_step1:
    type: task
    script:
    - if <player.has_flag[mersius_engaged]> {
      - assignment set script:s@forge_quest_yes_or_no_assign 
      - lookclose
      - chat "<dark_gray>Hey <player.name>, Jonah told me you were coming."
      - wait 27t
      - chat "<dark_gray>I can show you what I need from you."
      - wait 19t
      - chat "<dark_gray>would you mind following me?"
      - wait 13t
      - narrate "<dark_purple>Type: <dark_green>Yes <dark_purple>or <dark_red>no"
      }


forge_quest_yes_or_no_assign:
    type: assignment
    actions:
        on assignment:
        - trigger name:chat state:true radius:15
    interact scripts:
    - 100 forge_quest_yes_or_no


forge_quest_yes_or_no:
    type: interact
    steps:
        1:
            chat trigger:
                1:
                    trigger: /no/
                    script:
                    - flag player forge_quest_declining
                    - wait 4t
                    - chat "<dark_gray>Alright, come back when you are ready."
                    - narrate "<dark_purple>Note that you NEED to do this quest if you want to forge with better materials."
                    - remove <npc>
                    - adjust <player> show_entity:<server.get_spawned_npcs_flagged[original_mersius_flag]>
                2:
                    trigger: /yes/
                    script:
                    - create player Mersius <npc.location> save:mersius_step1_path
                    - adjust <server.list_online_players.exclude[<player>]> hide_entity:<entry[mersius_step1_path].created_npc>
                    - run mersius_path npc:<entry[mersius_step1_path].created_npc>
                    - wait 2t
                    - remove <npc>


mersius_step1_disappear:
    type: task
    script:
    - remove <npc>


mersius_path:
    type: task
    script:
    - wait 7t
    - ~walk <n@43.anchor[spot1]> auto_range
    - ~walk <n@43.anchor[spot2]> auto_range
    - wait 13t
    - chat "<dark_gray>We have found a way to open the forge door."
    - wait 46t
    - ~walk <n@43.anchor[spot3]> auto_range
    - ~walk <n@43.anchor[spot4]> auto_range
    - ~walk <n@43.anchor[spot5]> auto_range
    - wait 15s
    - remove <npc>
    - adjust <player> show_entity:<server.get_spawned_npcs_flagged[original_mersius_flag]>
    - queue clear