Paste #49780: Untitled Paste

Date: 2018/09/12 17:44:55 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


questlogworld:
  type: world
  events:
    on player clicks in KeyItemsMenu:
    - determine cancelled
    on player drags in KeyItemsMenu:
    - determine cancelled
    on player clicks in QuestJournalMenu:
    - determine cancelled
    on player drags in QuestJournalMenu:
    - determine cancelled
    on player clicks KeyItemsIt in QuestJournalMenu:
    - flag player QJPage1:!
    - flag player QJPage2:!
    - flag player QJPage3:!
    - if <yaml[<player.uuid>].read[KeyItems].size> > 50 {
      - flag player QJPage1
      - inventory open d:in@questjournalmenu
      - queue clear
      }
    - inventory open d:in@questjournalmenu
    on player clicks NextPageIt in KeyItemsInv:
    - if <player.has_flag[KIPage1]> {
      - flag player KIPage1:!
      - flag player KIPage2
      - inventory close
      - inventory open d:in@KeyItemsInv
      - queue clear
      }
    - if <player.has_flag[KIPage2]> && <yaml[<player.uuid>].read[KeyItems].size> > 101 {
      - flag player KIPage2:!
      - flag player KIPage3
      - inventory close
      - inventory open d:in@KeyItemsInv
      - queue clear
      }  
    on player clicks PrevPageIt in KeyItemsInv:
    - if <player.has_flag[KIPage2]> {
      - flag player KIPage2:!
      - flag player KIPage1
      - inventory close
      - inventory open d:in@KeyItemsInv
      - queue clear
      }
    - if <player.has_flag[KIPage3]> {
      - flag player KIPage3:!
      - flag player KIPage2
      - inventory close
      - inventory open d:in@KeyItemsInv
      - queue clear
      } 
    on player closes KeyItemsInv:
    - flag player KIPage1:!
    - flag player KIPage2:!
    - flag player KIPage3:!
    on player clicks NextPageIt in QuestJournalMenu:
    - if <player.has_flag[QJPage1]> {
      - flag player QJPage1:!
      - flag player QJPage2
      - inventory close
      - inventory open d:in@QuestJournalMenu
      - queue clear
      }
    - if <player.has_flag[QJPage2]> && <yaml[<player.data>].read[KeyItems].size> > 101 {
      - flag player QJPage2:!
      - flag player QJPage3
      - inventory close
      - inventory open d:in@QuestJournalMenu
      - queue clear
      }     
    on player clicks PrevPageIt in QuestJournalMenu:
    - if <player.has_flag[QJPage2]> {
      - flag player QJPage2:!
      - flag player QJPage1
      - inventory close
      - inventory open d:in@QuestJournalMenu
      - queue clear
      }
    - if <player.has_flag[QJPage3]> {
      - flag player QJPage3:!
      - flag player QJPage2
      - inventory close
      - inventory open d:in@QuestJournalMenu
      - queue clear
      } 
    on player closes QuestJournalMenu:
    - flag player QJPage1:!
    - flag player QJPage2:!
    - flag player QJPage3:!
    on player clicks questlogi in inventory:
    - flag player KIPage1:!
    - flag player KIPage2:!
    - flag player KIPage3:!
    - if <yaml[<player.uuid>].read[ActiveQuests].size> > 50 {
      - flag player QJPage1
      - inventory open d:in@questjournalmenu
      - queue clear
      }
    - inventory open d:in@questjournalmenu
    on player dies:
    - define excludeItem <context.drops.find_partial[questlogi]>
    - define newDrops <context.drops.remove[%excludeItem%]>
    - determine <def[newDrops]>
    on player drops questlogi:
    - determine cancelled
    on player respawns:
    - if <player.inventory.contains[questlogi].not> {
      - inventory add destination:<player.inventory> origin:i@questlogi slot:36
      }

questlog:
  type: command
  name: questlog
  usage: /questlog
  script:
    - inventory open d:in@questjournalmenu

KeyItemsInv:
  type: inventory
  title: Key Items
  size: 54
  slots:
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [] [] [i@questlogi] []"
  Procedural Items:
  - if <player.has_flag[KIPage2]> {
    - determine <yaml[<player.uuid>].read[KeyItems].get[51].to[101]>
    - queue clear
    }
  - if <player.has_flag[KIPage3]> {
    - determine <yaml[<player.uuid>].read[KeyItems].get[102].to[152]>
    - queue clear
    }
  - determine <yaml[<player.uuid>].read[KeyItems]>

QuestJournalMenu:
  type: inventory
  title: Quest Journal
  size: 54
  slots:
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [] [] [] []"
  - "[] [] [] [] [] [i@PrevPageIt] [i@KeyItemsIt] [i@completedquestsi] [i@NextPageIt]"
  Procedural Items:
  - if <player.has_flag[QJPage2]> {
    - determine <yaml[<player.uuid>].read[ActiveQuests].get[51].to[101]>
    - queue clear
    }
  - if <player.has_flag[QJPage3]> {
    - determine <yaml[<player.uuid>].read[ActiveQuests].get[102].to[152]>
    - queue clear
    }
  - determine <yaml[<player.uuid>].read[ActiveQuests]>

KeyItemsIt:
  type: item
  material:
  display name: Key Items
  lore:
  - "Click here to view"
  - "Quest related items."  

NextPageIt:
  type: item
  material: paper
  display name: Next Page
  lore:
  - "Click here to view"
  - "the next page."  

PrevPageIt:
  type: item
  material: paper
  display name: Previous Page
  lore:
  - "Click here to view"
  - "the previous page."  

completedquestsi:
  type: item
  material: book
  display name: Character Stats
  lore:
  - "Completed Quests: <yaml[<player.uuid>].read[CompleteQuests]>"
  - "Global Reputation: <yaml[<player.uuid>].read[GlobalReputation]>"
  - "Unsung Reputation: <yaml[<player.uuid>].read[UnsungReputation]>"
  - "Click here to see your" 
  - "Character Information and Stats!"

questlogi:
  type: item
  material: book
  display name: Quest Journal
  lore:
  - "Click here to access information."
  - "about your active quests."