Denizen/0.7/Example Scripts/Beginner Scripts: Difference between revisions

From Citizens Wiki

< Denizen‎ | 0.7

No edit summary
No edit summary
Line 20: Line 20:
A great way to provide some nice immersion into your world is as simple as a basic interaction with a Denizen NPC outputting a random response. There are a couple different ways this can be done, as provided in the examples below. Since this concept is simple, it can be done with a Quick Script as well as an Interact Script.
A great way to provide some nice immersion into your world is as simple as a basic interaction with a Denizen NPC outputting a random response. There are a couple different ways this can be done, as provided in the examples below. Since this concept is simple, it can be done with a Quick Script as well as an Interact Script.


{{codebox|height=400px|Quick Script conversation with the RANDOM command.|<syntaxhighlight line='true' lang="yaml">
{{codebox|height=250px|Quick Script conversation with the RANDOM command.|<syntaxhighlight line='true' lang="yaml">
# A quick script conversation with RANDOM
# A quick script conversation with RANDOM
#  
#  
# ---- Assignments.yml
# ---- Assignments.yml
Denizens:
 
  'Notch':
Denizens:
    Quick Scripts:
  'Notch':
      Click Trigger:
    Quick Scripts:
        Script:
      Click Trigger:
        - CHAT "The next message will be random."
        Script:
        - ^RANDOM 4
        - CHAT "The next message will be random."
        - CHAT "Random message 1."
        - ^RANDOM 4
        - CHAT "Random message 2."
        - CHAT "Random message 1."
        - CHAT "Random message 3."
        - CHAT "Random message 2."
        - CHAT "Random message 4."
        - CHAT "Random message 3."
        - CHAT "Random message 4."
</syntaxhighlight>
</syntaxhighlight>
}}
}}




{{codebox|height=400px|Quick Script conversation with the RANDOM command.|<syntaxhighlight line='true' lang="yaml">
{{codebox|height=250px|Interact Script conversation with the ZAP command.|<syntaxhighlight line='true' lang="yaml">
# An interact script for conversation with ZAP
# An interact script for conversation with ZAP
#  
#  
# ---- Assignments.yml
# ---- Assignments.yml
Denizens:
 
  Interact Scripts:
Denizens:
  - 10 Random conversations
  Interact Scripts:
  - 10 Random conversations
 


# ---- Random conversations.yml
# ---- Random conversations.yml
'Random conversations':
  Type: Interact
  Requirements:
    Mode: None
  Steps:
    1:
      Click Trigger:
        Script:
        - CHAT 'This is step 1.'
        - ZAP RANDOM:2-3
    2:
      Click Trigger:
        Script:
        - CHAT 'This is step 2. Now, back to step 1!'
        - ZAP 1
    3:
      Click Trigger:
        Script:
        - CHAT 'This is step 3. Now, back to step 1!'
        - ZAP 1
</syntaxhighlight>
</syntaxhighlight>
}}
}}

Revision as of 15:44, 19 September 2012

Sometimes the best way to learn is by looking at some examples. The following beginner scripts use basic denizen commands and requirements to provide some nice basic functionality for your Denizens.

Example scripts are provided with both the assignments and the scripts in the same box. Be sure and put the text in the correct file in your plugins folder.
  • Assignments should always be appended to plugins\Denizen\assignments.yml
  • Scripts can be placed in any .yml file in the plugins\Denizen\scripts\ directory. Remember: You can have multiple scripts per file!



and now... the scripts!


A small random conversation

A great way to provide some nice immersion into your world is as simple as a basic interaction with a Denizen NPC outputting a random response. There are a couple different ways this can be done, as provided in the examples below. Since this concept is simple, it can be done with a Quick Script as well as an Interact Script.


Code: Quick Script conversation with the RANDOM command.
{{{2}}}


Code: Interact Script conversation with the ZAP command.
{{{2}}}


Joe the Builder

This is the script from the start-up kit. It's 2 interact scripts assigned to 1 Denizen named Steve. He will respond different to a right-click by a player depending on whether or not the player has the modifyworld.* permission.

Basic Repeatable Fetch Quest

Here is the fastest way to do a repeatable 'fetch' quest. Useful for custom crafting-type NPCs. Once the player agrees to help, he can turn in the items as often as he wants to receive the reward.

Basic Unrepeatable Fetch Quest

By adding 3 lines to the script above, it becomes un-repeatable.

The Race

Coach wants you to RUN, BOY! This script uses a TASK script and a Location trigger to make a timed race for the player. Good example of ZAP and RUNTASK/CANCELTASK command usage. Be sure and define a Location Bookmark called 'theTree' using the /denizen bookmark location command.