TutorialBlacksmith: type: assignment interact scripts: ## This whole part of the script is only there so we can assign the following to the NPC. - 10 TutorialBlacksmithQuest ## You only need to make sure the script has a unique name. TutorialBlacksmithQuest: type: interact steps: 1: ## This is where the script begins, the 1: could be interpreted as stage 1. click trigger: ## For almost all the NPCs we use the click trigger (right click) but the proximity trigger also exists (within range of the NPC). script: - ^zap step:2 ## This sets the NPC to stage 2 (for the player who is interacting with it and not globally). - narrate "<&a><&l>Blacksmith: <&f>Hello there." ## Basic dialogue and as you see all color codes have to be surrounded by <> - wait 2 ## The wait command is always in seconds if you don't specify something else. - narrate "<&a><&l>Blacksmith: <&f>Go get 3 iron ore and I can make you a sword." - wait 2 - zap step:3 ## At the end he will be set to stage 3. 2: click trigger: script: ## This is stage 2, it's always the same and we always zap to this stage before chatting. - narrate "You can't do that right now." ## We do this so if the player right clicks the NPC a second time then he won't trigger everyone again. - wait 5 ## Don't forget that at the end you always have to zap to another stage, either back to the same or to the next. 3: click trigger: script: - zap step:2 - if { ## Simple IF..THEN..ELSE.. - ^take iron_ore qty:3 ## This is the command to take items from the player, note the ^ that means it happens instantly. Without that there will be a 0.5s delay. - narrate "<&a><&l>Blacksmith: <&f>Perfect this will do, just a moment" - wait 2 - narrate "<&o>The Blacksmith starts hammering on his anvil." - wait 2 - narrate "<&a><&l>Blacksmith: <&f>There you go! A nice and sharp sword." - give i@SteelSword ## This is the give command, it's a custom item which we'll look at alter. - flag player TutorialBlacksmith:1 ## We flag the player with a specific flag to remember that he finished this Quest. - wait 3 - zap step:4 ## And we go to the last stage "the final stage", for this NPC. } else { - zap step:2 - narrate "<&a><&l>Blacksmith: <&f>Sorry I need 3 iron ore before I can make a sword." - wait 4 - zap step:3 ## We zap back to step 3 as he has not cleared it yet. } 4: click trigger: script: - zap step:2 - random { ## This random command is very useful to make NPCs a little more interesting. - narrate "<&a><&l>Blacksmith: <&f>Goodluck on your travels!" ## The rest of the script is just a basic textline and making sure to zap to stage 2 and back to stage 4 at the end. - narrate "<&o>The Blacksmith is too busy to notice you." - narrate "<&a><&l>Blacksmith: <&f>May my tools protect you." } - wait 3 - zap step:4