Paste #45102: Edit of P#45101 - Untitled Paste

Date: 2017/10/20 16:14:48 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


173_emeraldOreHandler:
  type: world
  events:
    on player drops 173_emeraldOre5:
    - determine cancelled
    on player drops 173_emeraldOre10:
    - determine cancelled
    on player right clicks with 173_emeraldOre5:
    - determine cancelled
    on player right clicks with 173_emeraldOre5:
    - determine cancelled

    on player left clicks with 173_emeraldOre5:
    - if <player.has_flag[meta.emeraldCD]> || <player.flag[s.173.emeraldOre.d].contains[0]||false> queue clear
    - flag player meta.emeraldCD duration:d@4s
    - define players <player.location.find.players.within[3].exclude[<player>]>
    - if <def[players].size> >= 0 {

      - narrate f:note "Alle 5 Flecken funkeln, ... eine Inschrift taucht auf."
      - flag player s.173.emeraldOre.d:->:0
      #173_5|Cirdan
      - flag player 173_5:->:6
      - define newlore <i@173_emeraldOre5.lore.include[<def[players].parse[name.substring[0,2]]>]>
      - adjust <player.item_in_hand> "lore:<def[newlore]>" save:output
      - take iteminhand quantity:<player.item_in_hand.quantity>
      - give <entry[output].result> slot:<player.item_in_hand.slot>
      } 
      else {
      - narrate f:note "<def[players].size>/<def[qty]> Flecken funkeln"
      }

    on player left clicks with 173_emeraldOre10:
    - if <player.has_flag[meta.emeraldCD]> || <player.flag[s.173.emeraldOre.d].contains[10]||false> queue clear
    - flag player meta.emeraldCD duration:d@4s
    - define players <player.location.find.players.within[3].exclude[<player>]>
    - if <def[players].size> >= 10 {

      - narrate f:note "Alle 10 Flecken funkeln, ... eine Inschrift taucht auf."
      - flag player s.173.emeraldOre.d:->:10
      #173_5|Cirdan
      - flag player 173_5:->:7
      - define newlore <i@173_emeraldOre5.lore.include[<def[players].parse[name.substring[0,2]]>]>
      - adjust <player.item_in_hand> "lore:<def[newlore]>" save:output
      - take iteminhand quantity:<player.item_in_hand.quantity>
      - give <entry[output].result> slot:<player.item_in_hand.slot>
      } 
      else {
      - narrate f:note "<def[players].size>/<def[qty]> Flecken funkeln"
      }


173_emeraldOre5:
  type: item
  material: i@emerald_ore
  display name: grüner Steinbrocken
  lore:
  - <&7>(benutzbar)
  - <&7>Gemisch aus Stein
  - <&7>5 funkelnde Flecken zu erkennen.
173_emeraldOre10:
  type: item
  material: i@emerald_ore
  display name: grüner Steinbrocken
  lore:
  - <&7>(benutzbar)
  - <&7>Gemisch aus Stein
  - <&7>10 funkelnde Flecken zu erkennen.

173_Cirdan_as:
  type: assignment
  actions:
    on assignment:
    - trigger name:click state:true
    - trigger name:chat state:true radius:5
  interact scripts:
  - 10 173_Cirdan_in

173_Cirdan_in:
  default constants:
    1: Guten Tag!
    2: Woran arbeitest du?
    3: Bis bald.
    4: Wofür soll das nützlich sein ?
    5: Gut, ich bin dabei.
    6: Hier hast du den kleine Stein.
    7: Hier hast du den große Stein.
  type: interact
  steps:
    1:
      click trigger:
        script:
        - ^if <player.has_flag[<npc>_engaged]> { - queue clear }
        - if !<player.has_flag[<proc[e-id]>]> {
          - flag player "<proc[e-id]>:|:1|3"
          }
          else {
          - chat "Wie geht es vorran?"
          }
        - inject locally loader
      chat trigger:
        1:
          trigger: /regex:.+/
          script:
          - ^if <player.has_flag[<npc>_engaged]> { - queue clear }
          - ^if <context.message> !matches number { - narrate "<&6>Du musst eine Zahl nennen." - queue clear }
          - ^if <context.message> < 1 || <context.message> > <player.flag[<proc[e-id]>].size||0> { - narrate "<&6>Die Zahl ist ungültig!" - queue clear }
          - ^flag player <npc>_engaged
          - inject locally <player.flag[<proc[e-id]>].get[<context.message>]>_effect
          - ^if <def[queue]||x> != clear { - ^inject locally loader }
          - flag player <npc>_engaged:!

  loader:
  - foreach <player.flag[<proc[e-id]>].as_list> {
    - narrate "<def[loop_index]>. <&a><script.constant[<def[value]>]>"
    }
  3_effect:
  - chat "Auf Wiedersehen."
  - define queue clear
  1_effect:
  - chat "Sei gegrüßt mein Junge."
  - wait 2
  - chat "Wenn Arbeit suchst,"
  - wait 3
  - chat "habe ich vielleicht etwas passendes für dich."
  - flag player "<proc[e-id]>:<-:1"
  - flag player "<proc[e-id]>:|:2"
  2_effect:
  - chat "Ich habe hier einige Example von Kristallen und Gesteinen. Zuerzeit erforsche ich deren magische Wirkung."
  - wait 3
  - flag player "<proc[e-id]>:<-:2"
  - flag player "<proc[e-id]>:|:4"
  4_effect:
  - chat "Dieses grüne Gestein speichert Informationen über seine Umgebung."
  - wait 3
  - chat "Möchtest du mir helfen ein Experiment durchzuführen ?"
  - flag player "<proc[e-id]>:<-:4"
  - flag player "<proc[e-id]>:|:5"
  5_effect:
  - if <player.inventory.empty_slots> < 2 {
    - chat "Du hast keinen Platz."
    } else {
    - flag player "<proc[e-id]>:<-:5"
    - give 173_emeraldOre5
    - give 173_emeraldOre10
    - run narrate f:note " "Steine erhalten"
    - chat "Hier sind 2 Steine, benutze sie wenn einige andere Personen in der Nähe sind."
    - wait 3
    - chat "Achte auf ihr Verhalten und bring sie mir dann wieder."
    - run qu_start_2 def:173.emeraldOre|1
    }
  6_effect:
  - if <player.inventory.contains.scriptname[173_emeraldOre5]> {
    - take 173_emeraldOre5
    - inject locally path:quest_check
    - flag player "<proc[e-id]>:<-:6"
    } else {
    - chat "Ich kann den Stein nicht sehen."
    }
  7_effect:
  - if <player.inventory.contains.scriptname[173_emeraldOre10]> {
    - take 173_emeraldOre10
    - inject locally path:quest_check
    - flag player "<proc[e-id]>:<-:7"
    } else {
    - chat "Ich kann den Stein nicht sehen."
    }
  quest_check:
  - flag player s.173.EmeraldOre.d2:++
  - if <player.flag[s.173.EmeraldOre.d2]||0> >= 2 {
    - run qu_complete def:173.EmeraldOre
    - chat "Mhmm, das sind die beiden Steine ?"
    - wait 2
    - chat "Hier ist sind Inschriften zu erkennen."
    - wait 2
    - chat "... ich werde die Steine weiter untersuchen. Vielen dank für deine Hilfe."
    - wait 2
    - chat "Hier, das ist für dich."
    - wait 1
    - inject 173_reward path:EmeraldOre
    } else {
    - chat "Diesen Stein kann ich bereits nehmen."
    - wait 2
    - chat "Den anderen werde ich ebenfalls benötigen."
    - wait 2
    - narrate f:note "Steinbrocken abgegeben 1/2"
    }
  - define queue clear