Talker with path


Author: narnian
Created: 2013-06-08T21:53:58-0400
Edited: 2013-06-08T21:53:58-0400
Denizen Version: 0.8.8
Views: 24
Downloads: 990
Likes: 1


WGET
Description: If you have an NPC with a path defined via /npc path, is very annoying when it doesn't stop walking to talk with the player.

This script fixes that. It is compatible with the npc /path feature but its not compatible with npc /text, you have to define the texts on the script, which is good because on this way you have more control on what the NPC says.

Note: Yes, it have a small delay since the player interrupts the NPC and the NPC halts its path.

# Talker
#
# This scripts is for NPCs with a defined path using the /npc path feature on citizens
# The Talker_i is a dummy example of a NPC who talks witht he user.
# A task Wait_on_place is defined to stop the npc to keep walking on its path durgin conversation
#
# Note: The NPC walks a few steps more before halt the path.
#
# @author narnian
# @version 1.0
# @last-updated 
 

"Talker":
    type: assignment

    actions:
      on assignment:
      - trigger name:chat toggle:true
      - trigger name:click toggle:true
      - trigger name:proximity toggle:true

    interact scripts:
    - 10 Talker_i
 

Talker_i:
    type: interact

    steps:
        First*:
            proximity trigger:
                Entry Radius: 3
                Exit Radius: 3
                Entry:
                    Script:
                    #The player enters on radius, so the NPC asks a question
                    - CHAT 'Hello, how are you today?'
                    #The NPC waits for the answer, we set the flag to stop the movement and call the task to stop/move the NPC
                    - flag npc "AllowedToMove:0"
                    - ZAP 'SCRIPT:Talker_i' step:Second
                    - runtask "script:Wait_on_place"
 

        Second:
            chat trigger:
                1:
                    Trigger: /fine/ thank you
                    script:
                    #If the player answers, the NPC says something and change the falg to keep moving
                    - CHAT "Nice to know"
                    - flag npc "AllowedToMove:1"
                    - ZAP 'SCRIPT:Talker_i' step:First

                2:
                    Trigger: very /good/ and you?
                    script:
                    - CHAT "Ohh Im great"
                    - flag npc "AllowedToMove:1"
                    - ZAP 'SCRIPT:Talker_i' step:First
 
                #unexpected answer
                3:
                    Trigger: /REGEX:\w+/
                    script:
                    - CHAT "Sorry, I did not understand"
                    - flag npc "AllowedToMove:1"
                    - ZAP 'SCRIPT:Talker_i' step:First

Wait_on_place:
  Type: Task
  Script:
  - flag npc "wait_xposwait:<npc.location.x>"
  - flag npc "wait_xposwait:++"
  - flag npc "wait_maxwaiting:0"
  - if <flag.n:AllowedToMove> == 0 runtask "script:Wait_on_place_loop"

Wait_on_place_loop:
  Type: Task
  Script:
  - walkto "location:<flag.n:wait_xposwait>,<npc.location.y>,<npc.location.z>,<npc.location.world>" "speed:0.00001"
  - flag npc "wait_maxwaiting:++"
     #There is a maximum time the NPC will wait for an answer, if you increase the number on the condition the NPC will wait more time
  - if <flag.n:wait_maxwaiting> == 15 flag npc "AllowedToMove:1"
  - if <flag.n:AllowedToMove> == 0 runtask "script:Wait_on_place_loop"
 
 




Comments
No one has posted a comment! Post one below: