Paste #32055: Edit of P#32053 - Edit of P#32051 - Edit of P#32049 - Edit of P#32046 - Edit of P#32044 - NPC_fermie

Date: 2016/03/27 15:15:32 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


npc_fermier:
    type: assignment
    interact scripts:
    - 0 vaches_du_fermier
vaches_du_fermier:
      type: interact
      steps: 
          1:
            click trigger:
                script:
                #le if regarde si le joueur a fait le tutoriel
                - if <player.flag[havedonetutorial]> == true {
                #if qui regarde si le joueur a une quête en cours. 
                    - if <player.flag[questinprogress]> == none {
                        - if <player_has.flag[npc_engaged]> queue clear
                        - flag player npc_engaged
                        - engage
                        - narrate format:chatc "Ah, bonjour fermier! Comment allez-vous?"
                        - narrate format:cchat "Bonjour <player.name>. Je suis un peu découragé par la situation. "
                        - wait 2s
                        - narrate format:chatc "Mais  que se passe-t-il?"
                        - wait 2s
                        - narrate format:cchat "Mes vaches se sont... disons... multipliées par magie cette nuit. Je ne comprends pas trop pourquoi."
                        - wait 2s
                        - narrate format:cchat "Voudriez-vous m'aider à faire le ménage?"
                        - disengage
                        #Réfère à un narrate format:cchat trigger
                        - narrate format:qchat "Vous pouvez accepter ou refuser la quête en répondant par <gold>'Oui' <aqua>ou par <gold>'Non'."
                        - zap 2 
                        #else if qui regarde si le joueur a une quête en cours. Si valeur différente de 'none', il se fait dire qu'il doit terminer sa quête.
                        } else if <player.flag[questinprogress] != none {
                          - narrate format:qchat "Avant de pouvoir accepter une nouvelle quête, vous devez terminer celle en cours!"
                          - narrate format:qchat "Quête en cours : <player.flag[questinprogress]> de <player.flag[npcname]>."
                          - zap 1
                        } 
                    } else if <player.flag[havedonetutorial] || false> != true {
                        - narrate format:qchat "Vous devez terminer le tutoriel avant de pouvoir débuter une quête. Retournez voir Edouard à l'hôtel de ville."
                        - zap 1
                    }
          2:
            chat trigger:
              oui:
                #Le joueur peut accepter la quête en répondant "Oui". Le NPC lui donne alors toute l'information nécessaire.
                  trigger: /Regex:Oui|oui|OUI/!
                  script:
                  - if <player_has.flag[npc_engaged]> queue clear
                  - flag player npc_engaged
                  - engage
                  - narrate format:cchat "Merci <player.name>! Sauf que j'ai oublié de vous dire un détail..."
                  - wait 2s
                  - narrate format:cchat "Disons que mon troupeau de vaches a été envahi par une horde de zombies."
                  - wait 1s
                  - narrate format:cchat "Il vous faudra donc vous en débarasser. "
                  - wait 2s
                  - narrate format:cchat "Par contre, j'ai pensé à tout : allez voir le forgeron, il va vous arranger ça!"
                  - narrate format:qchat " Nouvel objectif : Allez à la forge et parlez au forgeron de la part du fermier."
                  - zap 3
                  - flag player npc_engaged:!
                  - flag player 'questinprogress:Les vaches du fermier'
                  - flag player npcname:<npc.name>
                  - flag player TalkToBlacksmith
                  - disengage
              non:
              #Le joueur peut refuser la quête en répondant "Non". 
                  trigger: /Regex:Non|NON|non/!
                  script:
                  - narrate format:cchat "Comme vous voudrez <player.name>. Revenez me voir si vous changez d'avis."
                  - zap 1

          3:
            click trigger:
              script:
              - if <player_has.flag[HaveTalkedToBlacksmith]> {
                  - if <player_has.flag[npc_engaged]> queue clear
                  - flag player npc_engaged
                  - engage
                  - narrate format:cchat "Ah, je vois que vous avez parlé au forgeron!"
                  - wait 2s
                  - narrate format:cchat "Il était à peu près temps. Vous en avez mis du temps bon sens."
                  - wait 2s
                  - narrate format:cchat "La prochaine fois sachez ne pas traîner en chemin."
                  - wait 2s
                  - narrate format:cchat "Bon, revenons à nos moutons! Ou plutôt, à nos vaches! Ha-ha-ha!"
                  - wait 2s
                  - narrate format:cchat "Venez avec moi, je vais vous guider vers ma ferme."
                  #- ^create player Fermier <npc.location> save:Fermier
                  #- ^adjust <player> hide_entity:<npc>
                  #- ^adjust <server.list_online_players.exclude[<player>]> hide_entity:<entry[Fermier].created_npc>
                  - ^run fermier_talk <npc>
                  #- ^run fermier_path npc:<entry[Fermier].created_npc> def:<^npc>
                  - disengage
                  - flag player npc_engaged:!
                  - flag player HaveTalkedToBlacksmith:!
                } else random {
                  - narrate format:cchat "Qu'attendez-vous pour aller parler au forgeron?"
                  - narrate format:cchat "Mais vous êtes lents. Je vous ai déjà dis quoi faire : parlez au forgeron!"
                  - narrate format:cchat "Bon! Il était temps que vous soyez de retour! Ah, mais vous n'avez pas parlé au forgeron? Vous m'agacez. Allez, plus vite <player.name>!"
                }

          4:
            click trigger:
              script:
              - if <player.has_flag[vaches_du_fermier_zombie_kill]> == 14 {
                          - flag player vaches_du_fermier_zombie_kill:!
                          - narrate format:cchat "Ah! Enfin! Ils sont tous morts!"
                          - wait 2s
                          - narrate format:cchat "Il ne manque plus que les vaches"
                          - wait 1s
                          - narrate format:qchat " Nouvel objectif : Tuez 10 vaches"
                          - wait 10t
                          - spawn cow <l@-53,68,-120,flat_city> target:<player>
                          - spawn cow <l@-56,68,-120,flat_city> target:<player>
                          - spawn cow <l@-59,68,-120,flat_city> target:<player>
                          - spawn cow <l@-62,68,-120,flat_city> target:<player>
                          - spawn cow <l@-58,68,-120,flat_city> target:<player>
                          - spawn cow <l@-58,68,-120,flat_city> target:<player>
                          - spawn cow <l@-56,68,-137,flat_city> target:<player>
                          - spawn cow <l@-53,68,-137,flat_city> target:<player>
                          - spawn cow <l@-59,68,-137,flat_city> target:<player>
                          - spawn cow <l@-62,68,-137,flat_city> target:<player>
                          - zap 5
                        } else {
                              - narrate format:cchat "Mais qu'attendez-vous pour tuer les zombies?!?"
                              - wait 1s
                              - narrate format:cchat "PLUS VITE!!!"
                        }
          5:
            click trigger:
              script:
              - if <player.has_flag[vaches_du_fermier_cow_kill]> == 10 {
                  - engage
                  - narrate format:cchat "Finalement! Merci énormément <player.name> de votre aide!"
                  - narrate format:cchat "Je n'ai pas grand chose à vous offrir..."
                  - narrate format:cchat "J'espère que ceci vous conviendra! Aurevoir et merci!"
                  - narrate format:qchat "Quête terminée : Les vaches du fermier"
                  - narrate format:qchat "Récompense obtenue : 20 émeraudes"
                  - flag player questinprogress:none
                  - flag player vaches_du_fermier_cow_kill:!
                  - flag player npcname:!
                  - give emerald qty:20
                  - disengage
              } else {
                    - narrate format:cchat "Il vous reste les vaches! Finissez-en!"

              }

fermier_path:
    type: task
    definitions: masternpc
    script:
    - -walk <def[masternpc].anchor[fermier1]> auto_range
    - -walk <def[masternpc].anchor[fermier2]> auto_range
    - -walk <def[masternpc].anchor[fermier3]> auto_range
    - -walk <def[masternpc].anchor[fermier4]> auto_range
    - -walk <def[masternpc].anchor[fermier5]> auto_range
    - ^flag player farmer5
    - ^flag step5
    - -walk <def[masternpc].anchor[fermier6]> auto_range
    - wait 1
    - remove <npc>
    - adjust <player> show_entity:<def[masternpc]>
    - zap 4 script:s@vaches_du_fermier

fermier_talk:
      type: task
      script:
      - while <npc.flag[steo].is[OR_LESS].than[1]> {
        - wait 1
      }
      - narrate format:cchat "Nous y voilà! Attention, voilà les zombie!"
      - wait 1
      - narrate format:cchat "Tuez-les jusqu'au dernier!"
      - narrate format:qchat " Nouvel objectif: Débarassez-vous des zombie!"

zombie_event:
    type: world
    events:
    on player enters cu@farmer_cuboid:
      - if <player_has.flag[farmer5]> {
      - spawn zombie <l@-60,68,-141,flat_city> target:<player>
      - spawn zombie <l@-64,68,-143,flat_city> target:<player>
      - spawn zombie <l@-62,68,-146,flat_city> target:<player>
      - spawn zombie <l@-60,68,-149,flat_city> target:<player>
      - spawn zombie <l@-64,68,-149,flat_city> target:<player>
      - spawn zombie <l@-67,68,-153,flat_city> target:<player>
      - spawn zombie <l@-68,68,-155,flat_city> target:<player>
      - spawn zombie <l@-69,68,-153,flat_city> target:<player>
      - spawn zombie <l@-77,68,-154,flat_city> target:<player>
      - spawn zombie <l@-77,68,-150,flat_city> target:<player>
      - spawn zombie <l@-78,68,-147,flat_city> target:<player>
      - spawn zombie <l@-83,68,-145,flat_city> target:<player>
      - spawn zombie <l@-82,68,-150,flat_city> target:<player>
      - spawn zombie <l@-79,68,-142,flat_city> target:<player>
      } else { 
         - queue clear
         }

cuboid_event:
  type: world
  events:
    on server start:
    - note cu@-64,68,-135,flat_city|-71,68,-147,flat_city as:farmer_cuboid
zombie_kill:
      type: world
      events:
        on player kills zombie:
        - if <player.has_flag[farmer5]> {
            - flag player vaches_du_fermier_zombie_kill:++
            - if <player.has_flag[vaches_du_fermier_zombie_kill]> == 14 {
                - narrate format:qchat " Nouvel objectif : Retournez parler au fermier"
              }
             } else queue clear
cow_kill:
  type: world
  events:
    on player kills cow:
    - if <player.has_flag[farmer5]> {
        - flag player vaches_du_fermier_cow_kill:++
        - if <player.has_flag[vaches_du_fermier_cow_kill]> == 10 {
            - narrate format:cchat "Ah! Finalement! Mon problème est réglé!"
            - narrate format:cchat "Je vous en suis extrêmement reconnaissant <player.name>!"
            - narrate format:cchat "Mes moyens sont limités, alors je ne veux vous offrir une grosse récompense..."
            - narrate format:cchat "Je peux tout de même vous donner 15 émeraudes. Vous pouvez également garder l'épée du forgeron, elle vous sera utile dans le futur!"
            - narrate format:cchat "N'hésitez pas à venir me voir quand vous voulez! Aurevoir!"
      }
    } else queue clear