Paste #42828: Bert

Date: 2017/06/26 20:38:56 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


#######################
# Bert in der Wildniss#
#######################
e_bert_as:
  type: assignment
  actions:
    on assignment:
    - trigger name:click state:true
    - trigger name:chat state:true radius:4
  interact scripts:
  - 10 e_bert_in

e_bert_in:
  default constants:
    1: Lyla schickt mich, sie macht sich große Sorgen!
    2: Ich kam hier nur zufällig vorbei.
    3: Bis bald.
    4: Was ist passiert ?
    5: Die Wölfe haben den kürzeren gezogen
    6: Schnelle Beine könnte man sagen.
    7: Klar folge mir.
    8: Tut mir leid, du wirst alleine zurecht kommen müssen.
    9: Nagut ... ich nehme dich doch mit.
    10: Komm, wir gehen los!
  type: interact
  steps:
    1:
      click trigger:
        script:
        #Invisible Check
        - ^if <player.has_flag[compl_find_bert]> {
          - narrate "ERROR Du solltest disen NPC nicht sehen können!"
          - queue clear
          }
        #
        - ^if <player.has_flag[<npc>_engaged]> { - queue clear }
        - if !<player.has_flag[<proc[e-id]>]||false> {
          - flag player "<npc.flag[e-id]>:|:1|2|3"
          - chat "Wer bist du !? Und wie hast du mich gefunden !?"
          }
          else {
          - chat "Reden wir."
          }
        - inject locally loader
      chat trigger:
        1:
          trigger: /regex:.+/
          script:
          #Invisible Check
          - ^if <player.has_flag[compl_find_bert]> {
            - queue clear
            }
          #
          - ^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]>]>"
    }
  1_effect:
  - chat "Dann geht es ihr also noch gut ?"
  - wait 2
  - chat "Ein Glück. Allerdings ..."
  - wait 2
  - chat "... ich komme hier leider nicht ohne weitere Hilfe weg."
  - ^flag player "<proc[e-id]>:<-:2"
  - ^flag player "<proc[e-id]>:<-:1"
  - flag player "<proc[e-id]>:|:4"
  2_effect:
  - chat "Nunja, ich bin hier in einige ..."
  - wait 1
  - chat ".. nennen wir es mal 'Schwierigkeiten' geraten."
  - ^flag player "<proc[e-id]>:<-:2"
  - ^flag player "<proc[e-id]>:<-:1"
  - flag player "<proc[e-id]>:|:4"
  3_effect:
  - chat "Auf Wiedersehen."
  - define queue clear
  4_effect:
  - chat "Ich habe hier zwischen den Bäumen nach einigen geeigneten Ästen gesucht."
  - wait 3
  - chat "Plötzlich stand ein ganzes Rudel Wölfe hinter mir."
  - wait 2
  - chat "Ich lief so schnell ich konnte und bin auf diesen Felsen geklettert."
  - wait 3
  - chat "Mit einer Verletzung am Fuß und ohne Waffe wäre ich leichte Beute."
  - wait 2
  - chat "Also bin ich fürs erste hier geblieben."
  - wait 2
  - chat "Wie bist du eigentlich hier durch gekommen ?"
  - flag player "<proc[e-id]>:<-:4"
  - flag player "<proc[e-id]>:|:5|6"
  5_effect:
  - chat "Respekt."
  - wait 2
  - chat "... mhmm ... kannst du  ... mir vielleicht helfen zurück zu kommen ?"
  - flag player "<proc[e-id]>:<-:6"
  - flag player "<proc[e-id]>:<-:5"
  - flag player "<proc[e-id]>:|:7|8"
  6_effect:
  - chat "Respekt."
  - wait 2
  - chat "... mhmm ... kannst du  ... mir vielleicht helfen zurück zu kommen ?"
  - flag player "<proc[e-id]>:<-:6"
  - flag player "<proc[e-id]>:<-:5"
  - flag player "<proc[e-id]>:|:7|8"
  7_effect:
  - chat "Vielen dank!"
  - wait 2
  - chat "Wir sollten auf weitere wilde Tiere aufpassen."
  - wait 3
  - chat "Achja und nimm am besten alle Äste mit, die du finden kannst..."
  - wait 3
  - chat ".. deswegen bin ich ja eigentlich hier."
  - wait 2
  - chat "Ich versuche mit dir Schritt zu halten, aber du weißt ja, ... meine Verletzung."
  - ^flag player "<proc[e-id]>:<-:7"
  - ^flag player "<proc[e-id]>:<-:8"
  - ^flag player "<proc[e-id]>:|:10"
  - inject locally start_follow
  8_effect:
  - chat "Meinst du das ernst !?"
  - wait 2
  - chat "Du willst mich doch hier wohl nicht einfach zurücklassen !?"
  - flag player "<proc[e-id]>:|:9"
  - flag player "<proc[e-id]>:<-:7"
  - flag player "<proc[e-id]>:<-:8"
  9_effect:
  - chat "Danke. Ich hoffe mal das eben war nur ein dummer Scherz."
  - wait 2
  - chat "Wir sollten auf weitere wilde Tiere aufpassen."
  - wait 3
  - chat "Achja und nimm am besten alle Äste mit, die du finden kannst..."
  - wait 3
  - chat ".. deswegen bin ich ja eigentlich hier."
  - wait 2
  - chat "Ich versuche mit dir Schritt zu halten, aber du weißt ja, ... meine Verletzung."
  - flag player "<proc[e-id]>:<-:9"
  - flag player "<proc[e-id]>:|:10"
  - inject locally start_follow
  10_effect:
  - chat "Los geht es! Aber du weißt ja, gib auf dich Acht."
  - ^inject locally start_follow
  start_follow:
  - ^create player <npc.name> <npc.location> save:bert
  - ^adjust <player> hide_entity:<proc[n-id].context[bert_outside]>
  - ^adjust <entry[bert].created_npc> skin:<proc[n-id].context[bert_outside].skin||<npc.name>>
  - ^assignment set "script:e_bert_following_as" npc:<entry[bert].created_npc>
  - ^flag <entry[bert].created_npc> following:<player>
  - ^flag player start_find_bert:<entry[bert].created_npc>
  - ^flag player join_channel:->:erpg_bert_removed
  - ^flag player quit_channel:->:erpg_remove_bert
  - ^flag player "<proc[e-id]>:<-:10"
  - run s@message_note "def:Bring Bert zu Lyla"
  - follow followers:<entry[bert].created_npc> target:<player>
  - ^narrate "<&7>[<npc.name> folgt dir nun]"
  - ^define queue clear

################
#Folgender Bert#
################
e_bert_following_as:
  type: assignment
  actions:
    on assignment:
    - trigger name:click state:true
    - trigger name:chat state:true radius:4
  interact scripts:
  - 10 e_bert_following_in

e_bert_following_in:
  default constants:
    1: Folge mir!
  type: interact
  steps:
    1:
      click trigger:
        script:
        - ^if <npc.flag[following]> != <player> { - chat "Ich bin mit <&6><npc.flag[following].as_player.name><&f> unterwegs!" - queue clear }
        - ^if <player.has_flag[<npc>_engaged]> { - queue clear }
        - if <pl.location.find.entities.within[10].contains[<s@g_var.constant[npc_lyla].as_npc>]||false> {
          - run s@e_bert_returning
          - queue clear
          }
          else if !<player.has_flag[<proc[e-id]>]> {
          - flag player "<proc[e-id]>:|:1"
          - chat "Wo gehen wir hin?"
          }
          else {
          - chat "Sind wir schon da ?"
          }
        - 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]>]>"
    }
  1_effect:
  - chat "Unterwegs, ich folge dir."
  - narrate "<&7>[<npc.name> folgt dir nun]"
  - follow followers:<npc> target:<player>
  - define queue clear
###############
#Bert im Lager# DIALOG IST TODO !
###############
e_bert_returning:
  type: task
  speed: 0t
  script:
  - remove <pl.flag[start_find_bert].as_npc>
  - adjust <player> show_entity:<proc[n-id].context[bert]>
  - run s@qu_complete "def:start_find_bert"
  - flag player join_channel:<-:erpg_bert_removed
  - flag player quit_channel:<-:erpg_remove_bert
  - flag <pl.flag[start_find_bert].as_npc> following:!
  - inject <s@e_questlog> path:reward_find_bert
  #
  #
  #
  - chat "Ohhh Bert ! Ich habe mir solche Sorgen gemacht ! ;( " targets:<player> talkers:<proc[n-id].context[lyla]>
  - wait 2
  - chat "Keine Sorge Lyla, ich bin okay." targets:<player> talkers:<proc[n-id].context[bert]>
  - wait 1
  - teleport <player> 63,141,269,0,90,erpg
  - look <player> <s@g_var.constant[npc_lyla].as_npc.location>
  - wait 1
  - chat "Vielen dank! ... Ich und Bert danken dir so sehr!" targets:<player> talkers:<proc[n-id].context[lyla]>
  - wait 1
  - chat "Falls wir etwas f<&uuml>r dich tuen können ... lass es uns wissen." targets:<player> talkers:<proc[n-id].context[lyla]>
  - wait 1
  - chat "Ich h<&auml>tte da aufjedenfall noch ein paar Dinge zum reden." targets:<player> talkers:<proc[n-id].context[bert]>
  #
  - flag player "<proc[e-id-get].context[lyla]>:!"
  - flag player "<proc[e-id-get].context[lyla]>:|:3|9"
  - foreach "<player.flag[<proc[e-id-get].context[lyla]>].as_list>" {
    - narrate "<def[loop_index]>. <&a><s@e_lyla_in.constant[<def[value]>]>"
    }

e_bert_camp_as:
  type: assignment
  actions:
    on assignment:
    - trigger name:click state:true
    - trigger name:chat state:true radius:4
  interact scripts:
  - 10 e_bert_camp_in

e_bert_camp_in:
  default constants:
    1: Da gibt es wohl eine kaputte Leiter
    2: Bis bald
    3: Hier sind alle 12 Stöcke
    4: Was hast du nun vor ?
  type: interact
  steps:
    1:
      click trigger:
        script:
        #Invisible Check
        - ^if !<player.has_flag[compl_find_bert]> {
          - narrate "ERROR Du solltest disen NPC nicht sehen können!"
          - queue clear
          }
        #
        - ^if <player.has_flag[<npc>_engaged]> { - queue clear }
        - if !<player.has_flag[<proc[e-id]>]> {
          - flag player "<proc[e-id]>:|:1|2"
          - chat "Nun, endlich können wir in Ruhe reden."
          - wait 2
          - chat "Du hast mir ziemlich aus der Patsche geholfen."
          - wait 2
          - chat "Ich habe zwar nicht sehr viel dabei was ich dir geben könnte"
          - wait 2
          - chat "Aber es ist besser als nichts, du kannst es bestimmt gebrauchen."
          - inject <s@e_questlog> path:reward_bert_bonus
          }
          else {
          - chat "Reden wir."
          }
        - inject locally loader
      chat trigger:
        1:
          trigger: /regex:.+/
          script:
          #Invisible Check
          - ^if !<player.has_flag[compl_find_bert]> {
            - queue clear
            }
          #
          - ^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]>]>"
    }
  1_effect:
  - chat "Das ist richtig. Der Weg führt durch die Höhle,"
  - wait 2
  - chat "da die Leiter kaputt ist kommt man so nicht weiter."
  - wait 2
  - chat "Mit genug Stöcken lassen sich neue Leiterteile herstellen."
  - wait 2
  - chat "Falls du 12 Stöcke hast kannst du sie mir geben, damit ich sie zusammenbaue."
  - flag player "<proc[e-id]>:<-:1"
  - flag player "<proc[e-id]>:|:3"
  2_effect:
  - chat "Auf Wiedersehen."
  - define queue clear
  3_effect:
  - chat "Dann lass mal hersehen."
  - wait 2
  - if "<player.inventory.contains[repair_stick].quantity[12]>" {
    - ^take i@repair_stick quantity:12
    - give i@repair_ladder quantity:3
    - chat "... alle 12 ... sehr gut."
    - wait 1
    - chat "Hier hast du 3 Leiterteile."
    - wait 1
    - chat "Du kannst versuchen sie an den übrig gebliebenen Holzteilen zu befestigen, das sollte klappen."
    - flag player "<proc[e-id]>:<-:3"
    - flag player "<proc[e-id]>:|:4"
    }
    else {
    - chat "So wie es aussieht hast du noch nicht genug Äste dabei, du brauchst 12."
    - wait 2
    - chat "Da wirst du wohl noch ein paar sammeln müssen."
    - wait 2
    - chat "Sag bescheid, wenn du alle 12 hast."
    - define queue clear
    }
  4_effect:
  - chat "Ich muss ich mich vorerst etwas ausruhen, bis ich wieder vernünftig laufen kann."
  - wait 2
  - chat "Solange werden Lyla und ich erst einmal hier bleiben."
  - wait 2
  - chat "Du kannst ruhig ohne uns weiterziehen."
  - wait 2
  - chat "Nochmals vielen dank für deine Hilfe."
  - wait 2
  - chat "Vielleicht läuft man sich ja irgendwo noch mal über den Weg ?"
  - wait 2
  - chat "Bis dahin ... auf wiedersehen."
  - define queue clear
  - flag player "<proc[e-id]>:<-:4"