Tutorial The Quest Tutorial

I

IKilledKEnny

Guest
The Quest Tutorial



I always liked quests and I have made lots of these, so I thought why not make a tutorial? Anyway I’m a little stuck in my game (only temporary…. I hope :( ) Anyway to keep things moving let’s go on!!

Q&A

Q: What’s a quest?
A: Quest can mean servable things in World Editor, in this tutorial quest will be referred as a mission given to the players to complete for a certain reward.

Q: Why would I want to read this?
A: Well if you are interested in creating a new quest, wondering how to do it, or just need something to read, than this is the tutorial for you!!

Q: Ok, let’s say I want to read, what should I know?
A: Basic Triggering, WC III and such, this tutorial isn’t made for ‘masters’ but to basically everyone.

Q: Huh, ok, do you want me to do anything after I read the tutorial?
A: If you have anything to comment please post it here, but please keep whatever you want to say in pleasant way. Hope you enjoy the tutorial, or at least learn something from it!

Q: Anything else I should know before going on?
A: Yes English is second language of mine, I do use "Word" and distinary so should be a readable tutorial.


Preparing the Quest

Ok first we want to decide what kind of quest we want. Let’s choose an optional quest, which means you can do the quest, but it’s not your main goal. Usually we would also suggest a reward so players would want to complete this quest so let’s say the reward is 500 gold. Now we need to decide few things as what will be object of the quest, and how would players get it. Let’s say once a player’s unit enters region the player would get the quest, and quest’s object is to kill 25 rabbits. Now lastly we want to add a little theme to the mission so we would create a short movie.

Now let’s create a special effect over our quest giver’s head so players would know he can give them quests.

Code:
Quest 1 0 SE
    Events
        Time - Elapsed game time is 0.00 seconds
    Conditions
    Actions
        Special Effect - Create a special effect attached to the overhead of <<Unit>> using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl

The Quest Itself

Variables needed:
3 Boleans (QuestBoleen) (QuestCompleteBoleen) (QuestRepeatBoleen) All with array = number of players
Integer (QusetInteger) With array = number of players.

Code:
Quest 1 1 Get
    Events
        Unit - A unit enters <<Region>> <gen>
    Conditions
        QuestBoleen[(Player number of (Owner of (Entering unit)))] Equal to False
        QuestCompleteBoleen[(Player number of (Owner of (Entering unit)))] Equal to False
        QuestRepeatBoleen[(Player number of (Owner of (Entering unit)))] Equal to False 
    Actions
        Special Effect - Destroy (Last created special effect)
        Cinematic - Turn cinematic mode On for (Player group((Owner of (Entering unit))))
        Cinematic - Turn on letterbox mode (hide interface) for (Player group((Owner of (Entering unit)))): fade out over 2.00 seconds
        Cinematic - Disable user control for (Player group((Owner of (Entering unit))))
        Cinematic - Clear the screen of text messages for (Player group((Owner of (Entering unit))))
        Cinematic - Turn subtitle display override On
        Cinematic - Send transmission to (Player group((Owner of (Entering unit)))) from <<Unit> <gen> named <<Name>>: Play <<Sound>> and display <<Text>>.  Modify duration: Add 15.00 seconds and Wait
        Cinematic - Turn subtitle display override Off
        Cinematic - Clear the screen of text messages for (Player group((Owner of (Entering unit))))
        Cinematic - Enable user control for (Player group((Owner of (Entering unit))))
        Cinematic - Turn off letterbox mode (show interface) for (Player group((Owner of (Entering unit)))): fade in over 2.00 seconds
        Cinematic - Turn cinematic mode Off for (Player group((Owner of (Entering unit))))
        Set QuestBoleen[(Player number of (Owner of (Entering unit)))] = True
        Set QuestRepeatBoleen[(Player number of (Owner of (Entering unit)))] = True
        Quest - Create a Optional quest titled <<Title>> with the description <<Description>>, using icon path <<Icon>>

Ok you should understand what I did here, I’ll just put here in a more organized way:
When a unit enters region than we check if all boleans equal to false. QuestBoleen is the bolean that will represent the quest flow, thus if the players is trying to complete the quest. QuestCompleteBoleen is to check if we finished the quest already, we didn’t so it needs to be false. QusetRepeatBoleen checks that we didn’t do the quest already.

If all those boleans are equal to false than we destroy the special effect we created on the unit, play a cinematic movie to the player that owns the entering unit and set QuestBoleen to true (we are trying now to complete the quest) and QuestRepeatBoleen to true (we Triggered the quest already!!)

Lastly we create a quest in the quest frame for player to check.


Code:
Quest 1 2 Flow
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Dying unit)) Equal to Rabbit
        QuestBoleen[(Player number of (Owner of (Killing unit)))] Equal to True
    Actions
        Set QuestInteger[(Player number of (Owner of (Killing unit)))] = (QuestInteger[(Player number of (Owner of (Killing unit)))] + 1)
        Game - Display to (Player group((Owner of (Killing unit)))) the text: ((You killed  + (String(QuestInteger[(Player number of (Owner of (Killing unit)))]))) +  Out of 25 rabbits)

        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                QuestInteger[(Player number of (Owner of (Killing unit)))] Equal to 25
            Then - Actions
                Set QuestBoleen[(Player number of (Owner of (Killing unit)))] = False
                Set QuestCompleteBoleen[(Player number of (Owner of (Picked unit)))] = True
                Special Effect - Create a special effect attached to the overhead of <<Unit>> using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
                Quest - Mark (Last created quest) as Completed

            Else - Actions
                Do nothing

Ok what we did he is this; whenever a rabbit dies and the players that owns the killing unit already met the quest giver guy than add +1 to the QuestInteger and than tell the player how many rabbits he killed. Now if QuestInteger is equal to 25 (the number of rabbits we need to kill) than we set QuestCompleteBoleen to true, mark the quest as completed and set QuestBoleen to false (we stopped attempting to finish the quest).

Complete the Quest

Code:
Quest 1 3 Complete
    Events
        Unit - A unit enters <<Region>> <gen>
    Conditions
        QuestBoleen[(Player number of (Owner of (Entering unit)))] Equal to False
        QuestCompleteBoleen[(Player number of (Owner of (Entering unit)))] Equal to True
    Actions
        Special Effect - Destroy (Last created special effect)
        Cinematic - Turn cinematic mode On for (Player group((Owner of (Entering unit))))
        Cinematic - Turn on letterbox mode (hide interface) for (Player group((Owner of (Entering unit)))): fade out over 2.00 seconds
        Cinematic - Disable user control for (Player group((Owner of (Entering unit))))
        Cinematic - Clear the screen of text messages for (Player group((Owner of (Entering unit))))
        Cinematic - Turn subtitle display override On
        Cinematic - Send transmission to (Player group((Owner of (Entering unit)))) from <<Unit>>  <gen> named <<Name>>: Play <<Sound>>  and display <<Text>>.  Modify duration: Add 15.00 seconds and Wait
        Cinematic - Turn subtitle display override Off
        Cinematic - Clear the screen of text messages for (Player group((Owner of (Entering unit))))
        Cinematic - Enable user control for (Player group((Owner of (Entering unit))))
        Cinematic - Turn off letterbox mode (show interface) for (Player group((Owner of (Entering unit)))): fade in over 2.00 seconds
        Cinematic - Turn cinematic mode Off for (Player group((Owner of (Entering unit))))
        Set QuestCompleteBoleen[(Player number of (Owner of (Entering unit)))] = False
        Player - Add 500 to (Owner of (Entering unit)) Current gold
        Quest - Destroy (Last created quest)

Ok, this is the last Trigger, in this one we give the final cinema, add the player 500 gold and remove the quest from quest panel. The most important thing that we changed is the fact that we changed to condition QuestCompleteBoleen = False to QuestCompleteBoleen = True

Last Words

You can do so many things with quests, I just showed I very basic example on how to make one quest in a clean way, nothing special, if you are interested in making quests (for RPG for example, or for any other game) you should follow generally after this system. Boleans are good! While they might be a little confusing they let you control the quest very cleanly with no leaks nor bugs.

I suggest making your custom quests more interesting, again this quest is very simple and pretty boring. You can create a quest where you have to guard an No Player Character (NPC) from enemy’s attacks, find a magical book and discover if it’s fake or the real one, and if it is to bring it to the wizards in the high tower and stuff like that, use you imagination!!


Here is a quick guide on how to create a good quest:

A. Pick a general theme and goal to the quest.
B. Make it a little more colorful using chat massages cinematic movies, special effects and many more things I didn’t add to the tutorial in order to keep it simple.
C. Makes the quest challenging by adding obstacles and enemies that would do whatever they can to stop you from finishing the quest.
D. Decide how would players get and complete the quest and add it to the Triggers.


I hope you liked my short tutorial (second of mine), I would love to hear feedback, questions, comments and what not?

(P.S. For D&D players; Just a little tip you can think about WC III quests just like a D&D quest, what would you like to see in D&D quest? How would you like it to look like and such, and than just program it to your pleasure!!)
 

LordOglog

New Member
Reaction score
16
Quite nice Tut well written good use of colour, but not the only quest tutorial. Boleen is actually spelt Boolean. Good effort!
Maybee you should extend it to doing things such as item quests survive quests and campaign Quests(basicly transferring stuff between maps)
 

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
nice tut i liked it (+rep :p)
but u got a few things to fix here:
Code:
1) wrong spelling its Bolean not Bloeen.
2) u made the quest completed already at the 2nd part u should have made it update the quest and in the last part complete it.
3) when u made special effect u should have made a variable for it because last created special effect wouldn't be so useful when there is more than 1 special effect.
4) i see u made it suit so it will be a quest for each player but i got a question is it making also the quest created in quests window for each player or if lets say 5 players took this quest it will show the same quest 5 times?.

basically i liked the tut and it is pretty good keep the good work ;)
 
I

IKilledKEnny

Guest
Thanks, I'll go over the Bolean thing in a sec. As for the variable for Special Effect I know of course that I should have made a variable, but I do expect people that read this tutorial to know enough to do so + I wanted to make it as 'bendy' (not sure it's the right word...) as possible.

Doom-Angel I'm not sure I understood your last question, but each player will have different 'set' (as in set of cards) of variables so none of the players is dependant on the other one.

Thanks for +REP I'm glad to hear that you like it. :)
 
I

IndianSummer

Guest
Wow nice one :)
I used Quests for "Credits", "Map info" and such until now, nice to see that there is a lot to do with quests :D

Edit: Why is the first part called "Q&A", in most cases it's called FAQ, but nice alternative ^^
 

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
k np
i didnt understand what is bendy lol :)
anyway what i was saying that when u press F9(quest window) u will see the quest that was created now if u make quest for each player will it show the quest that was created for every1? or only to the triggering player? cuz if its for all than there would be problem cuz the player can see 5 quests of same type if 5 players took quest at same time.
 

Master

Thou shall be helped by...The Black Adder!
Reaction score
72
Rather nice tutorial for beginners, and rather nice for a start of you. Good :)
 
I

IKilledKEnny

Guest
I believe it should only create the quest to the owner of the entering unit, but don't quote me on this 1!! I didn't have problems with it but few of my friends did, you can always drop the quest part and just use the chat massages if you find the quest panel problematic (is that a word I just made up?).
 
S

Sunny_D

Guest
a good tutorial for beginners. but i suggest you should also mention the rest of the "Quest trigger functions" - they are very useful as well. For example how to make a more complex quest. for example quest requirements or defeat conditions. you mentioned it already in your tut... :)

general hint (but that may be only a personal favour) : perhaps you could make a little more use of colors in your tutorial. as this tut aims for beginners, its maybe useful not to give only the trigger and then explain it at once after. a better way is to comment the single trigger functions directly. i have been told that this was pretty helpful when i did it that way.

overall a nice tut. GJ (unfortunately i cant rep you atm) ;)
 
B

Bwinks

Guest
okay so that tutorial was helpful, but im kind of confused still. If i have two things i want done in my quest (such as build 4 farms and a barracks), how do i go about doing that. Your tutorial only encircles certain units.

also; i know where the boolean commands with the triggers but i can't find any "Questbooleans", "questcompletebooleans" and ext. where are these synax's found?
-Also i can't find the if statements...

so yeah, if anyone can help me. i'd be most appriciative. (since i've seen no-one post it on the web, i'm trying to compile the whole wc2 human campaign on wc3. This task is big, but i really am in no rush. and really just want to learn how to make good wc3 maps. so if anyone can help, that would be sweet.)

Thanks
 
S

Savagus

Guest
I can't find anything called "QuestBoolean" or "QuestCompleteBoolean" either, so i think they're variables. However, i've been looking at the World Editor, and even if it was a variable, this is impossible to do:

Code:
    Conditions
        QuestBoleen[(Player number of (Owner of (Entering unit)))] Equal to False
        QuestCompleteBoleen[(Player number of (Owner of (Entering unit)))] Equal to False
        QuestRepeatBoleen[(Player number of (Owner of (Entering unit)))] Equal to False

If the variable is either a Quest or a Quest Requirement, they both can't be added to the conditions. And even though you can find some quest things at the Boolean Comparison, you can't add things there like [(Player number of (Owner of(Entering unit)))].

And by also looking at those spelling errors, i think you didn't copy it straight from your World Editor. Did you click your trigger and used "Copy as Text"? If you did, could you give us an explanation about if "QuestBoleen" and the other ones were variables or not. Because now it's still a bit comfusing.:confused:
 
R

rasilje

Guest
i am absolutely sure your tutorial is good but i dont get it at all. maybe im just stupid but all these codes and stuff i just dont get it. if you could make a beginner tutorial quests video it would be cool cause then i could see it and maybe understand it that way.
 
R

Ricky

Guest
Hi

Hi~Ricky

Hi all. Bwinks the solution to your problem is simple were you make the events for the completion of the quest trigger you make it look like this:

Code:
events - every 0.01 seconds

conditions - The total amount of farms owned by player 1 red is equal to 4
              - The total amount of barracks owned by player 1 red is equal to 1

The conditions is found under integer

Anyway my review on the tutorial:

Well what can i say? I didn't learn anything but I'm your a lot of people did. If i gave you marks it would be the following:

Presentation =5/5
Usage of utilities and tools =3/5
content =3/5

If you had put in things explaining Bwinks's problems and explained in more detail all the things you can do with quest's as i know many more things you can do than you have put here. It is a very good basic tutorial but you could have done better. But hey! There is always room for improvement. No one is perfect;) If anyone want me to make another quest's tutorial pm me i shall probably do it tomorrow unless you pm me almost just after i post this or maybe 10 Minuites later.
 

Kazuga

Let the game begin...
Reaction score
110
I'm just so sick of being stuck, have looked at several quest tutorials but it's still one thing here or one thing there that I don't understand... Could anyone attach a map with a killing sort of quest when you kill a specific unit to complete the quest so that I can look at it inside the triggers and see how it's really done. As for a mechanican it's alot easier to open the constuction and see for yourself instead of looking at pictures in a book...
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • WildTurkey WildTurkey:
    is there a stephen green in the house?
    +1
  • The Helper The Helper:
    What is up WildTurkey?
  • The Helper The Helper:
    Looks like Google fixed whatever mistake that made the recipes on the site go crazy and we are no longer trending towards a recipe site lol - I don't care though because it motivated me to spend alot of time on the site improving it and at least now the content people are looking at is not stupid and embarrassing like it was when I first got back into this like 5 years ago.
  • The Helper The Helper:
    Plus - I have a pretty bad ass recipe collection now! That section of the site is 10 thousand times better than it was before
  • The Helper The Helper:
    We now have a web designer at my job. A legit talented professional! I am going to get him to redesign the site theme. It is time.
  • Varine Varine:
    I got one more day of community service and then I'm free from this nonsense! I polished a cop car today for a funeral or something I guess
  • Varine Varine:
    They also were digging threw old shit at the sheriff's office and I tried to get them to give me the old electronic stuff, but they said no. They can't give it to people because they might use it to impersonate a cop or break into their network or some shit? idk but it was a shame to see them take a whole bunch of radios and shit to get shredded and landfilled
  • The Helper The Helper:
    whatever at least you are free
  • Monovertex Monovertex:
    How are you all? :D
    +1
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top