Paste #22989: Edit of P#22988 - Untitled Paste

Date: 2015/11/24 19:07:59 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Smoker:
  Type: assignment
  Interact Scripts:
  - SmokerScript
  actions:
    on assignment:
    - trigger name:proximity state:true

SmokerScript:
  Type: interact
  Steps:
    1:
      Proximity Trigger:
        entry:
          Script: 
          - narrate "Smokin Fred -> You: Hey there! Think you could spare a moment to help me out?"
          - narrate "Say <&c>Yes<&r> or <&c>No<&r>"
      Chat Trigger:
        '1':
          Trigger: /Yes/, I can help. What do you need?
          Script:
          - flag player RightClickForInfo
          - narrate "Right click for more info."
        '2':
          Trigger: /No/, I'm busy right now.
          Script:
          - narrate "Smokin Fred -> You: Alright, come back when you aren't so busy..."
      Click Trigger:
        Script:
        - if <player.has_flag[RightClickForInfo]> {
          - narrate "This quest may contain adult content that is not suitable for all players."
          - wait 1
          - narrate "Would you like to continue the quest anyways?"
          - narrate "Say <&c>Yes<&r> or <&c>No<&r>"
          - zap step:2
          - flag player RightClickForInfo state:false
          }
    2:
      Chat Trigger:
        '1':
          Trigger: /Yes/
          Script:
          - flag player SmokerQuestStarted
          - wait 1
          - narrate "Smokin Fred -> You: Oh, great! Thanks so much!"
          - wait 1
          - narrate "Smokin Fred -> You: All I need you to do is shear some grass, and bring it to me."
          - wait 1
          - narrate "Smokin Fred -> You: About 3 grass should do."
          - wait 1
          - narrate "Smokin Fred -> You: Oh, and if you bring me 3 extra grass, and about 6 pieces of paper,"
          - narrate "I can give you something extra, to make it worth your while."
          - wait 1
          - narrate "Smokin Fred -> You: Now, go! And come back when you have my grass!"
          - wait 1
          - narrate "You have been offered a side quest, would you like to accept it?"
          - narrate "Say <&c>Accept<&r> to accept."
        '2':
          Trigger: /No/
          Script:
          - zap step:1
        '3':
          Trigger: /Accept/
          Script:
          - narrate "You've accepted the side quest!"
          - flag player SmokerSideQuestStarted
      Click Trigger: 
        Script:
        - define Amount 6
        - define ForgotGrass <def[Amount].sub[<def[Grass]>]>
        - define ForgotPaper <def[Amount].sub[<def[Paper]>]>
        - define Grass <player.inventory.quantity[tall_grass].as_int||null>
        - define Paper <player.inventory.quantity[paper].as_int||null>
        - if <player.has_flag[SmokerQuestStarted]> && <player.has_flag[SmokerSideQuestStarted]> {
          - if <def[Grass]> < 6 && <def[Paper]> < 6 {
            - narrate "Smokin Fred -> You: Hey! You forgot <def[ForgotGrass]> grass and <def[ForgotPaper]> paper(s) !"
            - wait 1
            - narrate "Smokin Fred -> You: Come back when you have it!"
          }
          - if <def[Grass]> >= 6 && <def[Paper]> < 6 {
            - narrate "Smokin Fred -> You: Hey! You forgot <def[ForgotPaper]> papers!"
            - wait 1
            - narrate "Smokin Fred -> You: Come back when you have them!"
          }
          - if <def[Grass]> < 6 && <def[Paper]> >= 6 {
            - narrate "Smokin Fred -> You: Hey! You forgot <def[ForgotGrass]> grass!"
            - wait 1
            - narrate "Smokin Fred -> You: Come back when you have them!"
          }
          - if <def[Grass]> >= 6 && <def[Paper]> >= 6 {
            - narrate "Smokin Fred -> You: Awesome! You have the grass and papers!"
            - wait 1
            - narrate "Smokin Fred -> You: Quick, give them here!"
            - zap step:3
          }
        }
        - if <player.has_flag[SmokerQuestStarted]> && !<player.has_flag[SmokerSideQuestStarted]> {
          - if <def[Grass]> < 3 {
            - narrate "Smokin Fred -> You: You forgot <def[ForgotGrass]> grass..."
            - wait 1
            - narrate "Smokin Fred -> You: Please come back when you have them..."
          }
          - if <def[Grass]> >= 3 {
            - narrate "Smokin Fred -> You: Great! You brought the grass!"
            - wait 1
            - narrate "Smokin Fred -> You: Quick, give it here!"
            - zap step:3
          }
        }
    3:
      Click Trigger:
        Script:
        - if <player.has_flag[ReturnToSmokinFred1]> && !<player.has_flag[ReturnToSmokinFred2]> {
          - take tall_grass qty:3
          - wait 1
          - narrate "Smokin Fred -> You: Thanks, this is a relief!"
          - wait 1
          - narrate "Oh, I almost forgot your reward!"
          - give money qty:1000
          - wait 1
          - narrate "<&a>Smokin Fred hands you $1000"
          - wait 1
          - narrate "Thanks again! This means a lot to me!"
          - zap step:4
        }
        - if <player.has_flag[ReturnToSmokinFred2]> {
          - if <player.inventory.contains[tall_grass].quantity[6]> && <player.inventory.contains[paper].quantity[6]> {
            - take tall_grass qty:6
            - take paper qty:6
            - wait 1
            - narrate "Smokin Fred -> You: Oh! You brought the papers too! Awesome! If you can wait a minute, I can make you something!"
            - give i@Joint
          }
          else {
            - narrate "Smokin Fred -> You: You don't have my things!"
          }
        }

Return_Quest_Message:
  type: world
  events:
    on player right clicks:
    - if <player.item_in_hand.script.name.is[==].to[Joint]> {
      - if <player.has_flag[HoldingRightClick]> {
        - flag player HoldingRightClick d:5t
        - queue clear
        } else {
        - flag player HoldingRightClick d:5t
      }
      - while <player.has_flag[HoldingRightClick]> {
        - animate <player.name> EAT_FOOD
        - playeffect <player.location> effect:SMOKE quantity: 10
      }
    }
    on player picks up tall_grass:
    - define Grass <player.inventory.quantity[tall_grass]>
    - define Paper <player.inventory.quantity[paper]>
    - if <player.has_flag[SmokerQuestStarted]> && !<player.has_flag[SmokerQuestFinished]> {
      - if <def[Grass]> >= 3 {
        - narrate "You have finished Smokin Fred's quest."
        - narrate "Return to Smokin Fred for your reward."
        - flag player ReturnToSmokinFred1
      }
    }
    on paper crafted:
    - define Grass <player.inventory.quantity[tall_grass]>
    - define Paper <player.inventory.quantity[paper]>
    - if <player.has_flag[SmokerSideQuestStarted]> && !<player.has_flag[SmokerQuestFinished] {
      - if !<player.has_flag[SmokerSideQuestFinished]> && <def[Grass]> >= 6 {
        - if <def[Paper]> >= 6 {
          - narrate "You have finished Smoking Fred's side quest."
          - narrate "Return to Smokin Fred for your reward."
          - flag player ReturnToSmokinFred2          
        }
      }
    }

Joint:
  type: item
  material: i@stick
  display name: Joint
  lore:
  - Received in Smokin Freds Quest