Creating Easy Multi-User Quests

Level 4
Joined
Aug 15, 2007
Messages
42
Tutorial Objectives: Upon completing this tutorial, users should be able to create dynamic quests for up to 12 players using a small amount of variables and triggers. These quests will be able to store just about any objective from killing X amount of creatures to delivering an item to someone.

(This tutorial was made originally for Clan ORPG, but I thought I would repost it here and see if anyone could benefit from it. Also, it is important to note that the trigger tags will not show correctly because they were made into trigger tags when they were originally quoted, and I did not create the triggers in World Editor. Still, the triggers are not complicated and should be straight-forward to read.)

Tutorial Index:

To jump to a specific part of the tutorial, simply highlight the section name, copy it, and enter it into find (CTRL+F).

I. Introduction
II. Variables Needed
III. Our First Quest
IV. Tips for other quest types
V. Examples from Athelor ORPG
VI. Credits


I. Introduction

Have you ever wanted to create quests in a multiplayer game, whether it be an ORPG or a simple map? Most people use an approach which uses a huge amount of triggers and variables, which can take up un-needed space in your map and can be glitchy. Today you will learn how to create quests using 1-2 triggers, 3 maximum, and only 1-2 variables per quest.

To follow this tutorial without any problems, you will firstly need to be using the Warcraft III The Frozen Throne World Editor program. You also need to have a moderate knowledge of triggering and variable types/arrays.

II. Variables Needed

Firstly, all of our quests made using this system will be using a string array to store the status of the quest. Go ahead and set up the following variable:

Name: OurQuest
Type: String
Array: Yes; set the number of the array to the number of maximum user controlled players your map has.
Default Setting: "notstarted"

Now we have our basic quest variable. You'll see soon why using strings is so nice and simple.

III. Our First Quest

Today, I will walk you through how to create a simple delivery quest, as well as a tad more advanced kill X units quest. Let us start out with the delivery quest.

The quest objective in this delivery quest will be to deliver a letter from Jim to Bob. The letter is an item which will be called simply "Letter."

First, we will start out with acquiring/completing the quest. Create a unit and call him Jim, and then place him on the map wherever you want. Then create a new trigger. Let's call this trigger "QuestGiverTalk".

Now add the following events/conditions/actions to the trigger:

  • [b]Events[/b]
  • - A unit comes within 100 feet of Jim 0001 <gen>
  • [b]Conditions[/b]
  • - ((Entering Unit) is a hero) equal to True
  • [b]Actions[/b]
  • If/Then/Else
  • If (All Conditions are true)
  • - OurQuest [(Player number of (Owner of (Triggering Unit)))] equal to "notstarted"
  • Then (Do Actions)
  • - Display to (Player Group (Owner of (Triggering Unit))) for 10 seconds the text "Quest Received: Deliver this letter to Bob!"
  • - Add Letter to (Triggering Unit)
  • - Set OurQuest [(Player number of (Owner of (Triggering Unit)))] equal to "started"
  • - Skip Remaining Actions
  • Else (Do Actions)
  • - Do Nothing
  • If/Then/Else
  • If (All conditions are true)
  • - OurQuest [(Player number of (Owner of (Triggering Unit)))] equal to "started"
  • Then (Do Actions)
  • - Display to (Player Group (Owner of (Triggering Unit)))] for 10 seconds the text "You already have this quest!"
  • - Skip Remaining Actions
  • Else (Do Actions)
  • - Do Nothing
Alright, now before you start panicking, lets look at this closely.

What this trigger does is, when a unit comes near the quest giver (Jim), and is a hero, the trigger executes.

First, it checks to see if you have the quest started or not. This is why we set the default for the string array to "notstarted", because when you start the game you have not completed any quests, nor started any.

If you have not started the quest, it gives you a little message saying you received the quest, adds the letter item to your inventory, and sets the status for your quest to "started". Why did we use "Player number of owner of triggering unit"? Because each number of the array corresponds to a player.

For example, OurQuest [1] is the quest status for player 1. OurQuest [2] for player 2, etc. So it updates the quest status only for the player who owned the unit that came in range of the quest giver.

Now we are going to make our second trigger, this time for finishing the quest by talking to Bob with the letter. Create a new trigger called "Finishquest".

  • [b]Events[/b]
  • - A unit comes within 100 of Bob 0001 <gen>
  • [b]Conditions[/b]
  • - ((Triggering Unit) is a hero) equal to True
  • [b]Actions[/b]
  • If/Then/Else
  • If (All conditions are true)
  • - OurQuest [(Player number of (Owner of (Triggering Unit)))] equal to "started"
  • - ((Triggering Unit) has item of type Letter) equal to True
  • Then (Do Actions)
  • - Display to (Player group (Owner of (Triggering Unit)))] for 10 seconds the text "Quest Complete! Good job!"
  • - Remove item of type Letter from (Triggering Unit)
  • - Set OurQuest [(Player number of (Owner of (Triggering Unit)))] equal to "complete"
  • Else (Do Actions)
  • - Do Nothing
This trigger worked much the same way as the last. It just checked if the owner of the unit had indeed started the quest, and if they had the letter on them. If they did, it completed the quest for them. In addition, they now will not be able to retake the quest. (Although this can be changed if you wanted them to, just set OurQuest to "notstarted" instead of "complete")

IV. Tips For Other Quest Types

As I mentioned earlier, there really is no limit to what you can do with quests this way. Some quests, such as a kill X units quest will need two variables. One variable such as OurQuest (Array just like in the last example), as well as an integer array (With the array being the max amount of players). Then, just add a condition to the quest completion trigger:

- KillCount [(Player number of (Owner of (Triggering Unit)))] greater than or equal to 10

You would also need to have it update when you killed the correct unit type. Lets say we needed to kill 10 Trolls:

  • [b]Events[/b]
  • - A unit dies
  • [b]Conditions[/b]
  • - Unit type of (Dying Unit) equal to Troll
  • - ((Killing Unit) is a hero) equal to True
  • [b]Actions[/b]
  • - Set KillCount [(Player number of (Owner of (Killing Unit)))] equal to KillCount [(Player number of (Owner of (Killing Unit)))] + 1
  • - Display to (Player group (Owner of (Killing Unit)))] for 10 seconds the text "Quest Update: You've killed a troll!"
This just adds one to the killcount every time you kill a troll. If you wanted to make it a set number like 10, just add the condition:

- KillCount [(Player number of (Owner of (Killing Unit)))] less than 10

So there you have it, an easy way to make killing quests and delivery quests!

V. Examples From Athelor ORPG

This section is coming soon!

VI. Credits

Tutorial created by The Big S

Please give a bit of credit if you are using this Quest System in your map, as it took time to write this tutorial. I hope it helped!
 
Last edited:
Level 4
Joined
Aug 15, 2007
Messages
42
If you'e going to use
  • tags, you should probably make the GUI actually [b]look[/b] like GUI[/QUOTE]
  • If you bothered to read my post, I mentioned that I was copying this guide over from when I posted it on my clan forums. That GUI was handwritten by me without the World Editor, and as such, as I mentioned, would not work correctly with the trigger tags.
  • [quote](This tutorial was made originally for Clan ORPG, but I thought I would repost it here and see if anyone could benefit from it. Also, it is important to note that the trigger tags will not show correctly because they were made into trigger tags when they were originally quoted, and I did not create the triggers in World Editor. Still, the triggers are not complicated and should be straight-forward to read.)[/quote]
 
Level 32
Joined
Oct 23, 2006
Messages
5,299
This section is coming soon!
It looks pretty good so far The_Big_S!

Since you are still developing the document:
  1. Please detach your signature file from the tutorial.

  2. Would it be possible to create a simple map; (obvoiusly not the bulk of Athelor ORPG) just a basic demo map that includes all the triggers so that users can download it from this thread and then cnp the elements into their own projects.
 
Nice tutorial.... However it only works for very simple quests. My map has a very complicated quest and i cannot not make it MUI. This means that i have to create the same quest for all 8 players of my map. Another thing is that i really think you should fix those GUI tags, i know you coppied them but it is easy to fix. Just re-create the quest on a map make the triggers than use copy as text and post it here. I can do that for you if you need me to, it is very simple. Another thing, the method you mention creates a single new quest for all players ???? Or the main quest gets completed when 1 players finishes it ??? I didn't understand quite well.
Now i really need help for my map... perhaps you could give me some ... in exchange i can enter your clan or help you with your map - i am an expert at GUI and i am learning JASS and MUI. Also i am an expert at icons (can do anything thing with them) and i have some basic knowledge about modeling (like creating ghosts per example).

It's up to... your call now...
 
Level 4
Joined
Aug 15, 2007
Messages
42
@ Wolverabid - Hey, thanks for the comments! I will probably have a demo map coming out soon, just as soon as I am able to release my ORPG's first public version tomorrow. Then I will also edit the trigger tags to accurately display things. Also, signature is now removed on the main post. Sorry about that!

@ Flame_Phoenix - This quest system can actually be used for about any type of quests. At most you will need two triggers to pull pretty much anything off. I have kill X unit quests, delivery quests, quests where you have to find things, and others, and this system I developed works great for all of them. Also, yes, this system creates the quest for each player and each player has to complete their own quests. However, for killing quests, I create a trigger that allows every player with-in range that has the quest get credit for the quest kill. If you need any help editing this or anything, just let me know and I'll help you after Friday. Also, keep an eye out for the demo map of this that I mentioned. It will include a few different types of quests, so.. :)

Thanks all, hope it helps! :spell_breaker:
 
Well, so be it... i will trust you my very complicated quest... i bet you never seen such a thing in your entire life ... If you do help me, i will ofc credit you in my map ... If you need ANYTHING in your map just tell me and i will be glad to help you.

Anyway, to scare you away, here is the print screen of my quest, and that is only 1 of the 3 options i have for players ...Don't run away :grin: :

Image1.jpg

As you can see the quest's name is Hunts and dryads. If you decide to help me, i will give you further detail ... but i think it is pretty obvious the objective those triggers have.
 
Level 4
Joined
Aug 15, 2007
Messages
42
Wow, that sure is alot of triggers :p

Is the Hunts and Dryads quest broken up into parts? It looks like it, so it's almost like the World of Warcraft equivalent of a chain quest? You won't scare me away lol, at least, when I have the time I would be glad to help. If you would trust me with the map, or paste all triggers and variables into another map, I can attempt to reverse engineer that into about a third of what it is now. :)
 
mmmmm The_Big_S, i confess myself surprised with your courage. The quest you are seeing is not a simple quest. It is a very advanced quest with multiple tasks. This advanced quest uses simple trigger tags to make my work easy to understand. I took lot's of time to create this.
mmm i confess i am afraid of lending you my map.... It is a project that took me 4-5 years of very hard work .. all by myself .. all alone (you don't imagine how difficult it is to find help nowadays).
I will put all these triggers into a simple new map.
Once you start playing the custom map i am going to post here choose the night elfs race. You will understand the quest once you start playing.
Btw, it is not a World of Warcraft chain quest (at least i don't compare it to one). What you are seeing can only be played by player 1. The challenge here is to make it MUI. It would eventually save more than 200 kb from my map.

Another suggestion for your tutorial - i think that some GoTo tags would be very nice, you already have a bookmark, you should take advantage of it.

Perhaps you may be interested in seeing my icon tutorial at the Submition section... i still have lots of work to do before i finish it, but it would nice to have an opinion (yes it is taking me a lot of time as well, i think you understand me).

http://www.hiveworkshop.com/forums/showthread.php?t=37832
visit this link to access my tutorial. Btw you don't have to read it all =P you would probably get an heart attack =P
 
Level 4
Joined
Aug 15, 2007
Messages
42
I have actually just gotten into JASS, and seem to have a natural aptitude for it. Using JASS + My system, you can create pretty much any quest in one trigger now.

I optimized my old quest system into JASS and created the equivalent of two triggers into one. Again, after release, I will add a section on this with some demo maps.
 
Well in my case i am learning JASS from the Hive tutorials and i seem to be a real noob with it ... i just can't catch the meaning of it and my triggers always seem to have errors ... anyway, did you already seen my map ??? do you really think you can help me ?
Anyway you may not need help with jass .... but if you need some icons or models, just talk to me =)
 
Level 4
Joined
Aug 15, 2007
Messages
42
All I have done so far is downloaded your map. Like I mentioned earlier, I will be unable to devote any time or resources on it until I can get a stable version of my own map out, which is scheduled tomorrow. Then, I will be happy to take a look at your map. ;)
 
mmm i c, well, i understand nearly anything about triggers, as long as your map is not 100% full JASS i will be very happy to help you fix anything you may have.
If you have problems with items or auras, including any kind of spells, i am sure i will be able to help you out. I am trying to be fair, you help me, i help you, we all win. Just send the map to my e-mail if you want.

Anyway i would like to help you in the releasing of your map ... i know that is difficult to trust in a stranger (at least it is for me) but i am sure i can do anything to help you in your map ... you can give a simple task if you want ... it is up to you
 
Level 4
Joined
Aug 15, 2007
Messages
42
It's alright Phoenix, I don't need repayment if I am able to help you. :)

I am actually doing very well on my map, not even any bugs or anything. I am trying to keep this a solo project, at least in the development, because I have noticed that most group projects tend to break up or just be rather complicated because of having to run the map around, and people losing interest, so I am keeping the making of Unnamed RPG to myself.

I should be able to take a look at your map later today if all goes well. :)
 
Well, you are in a clan so i assumed that it was not a solo project. Anyway i respect your decision and i wish you good luck with it.
My intention is not to enter your project, it is only to help you if you need, the project will always be yours, i don't want credit, knowing that i help some1 is already credit enough for me.
But it seems that you are doing very well with it =) gl than =).
Btw ermmm nerver mind ... was thinking something about jass but i know i am becoming annoying. =P
 
Well, i really don't care about the system you use. I just want it to be MUI and i want to understand, because if i understand it, i will learn it and i will be able to create the other quests i want to alone. Thx for asking anyway, btw, you are from channel USA, can i please have a copy of your map ?? i am from Europe, but i can't host .... =S. Also i think, maybe we can change our maps ? To sahre experience, locked versions if you may prefer.
 
Level 40
Joined
Dec 14, 2005
Messages
10,532
Sorry for the late reply, but

If you bothered to read my post, I mentioned that I was copying this guide over from when I posted it on my clan forums. That GUI was handwritten by me without the World Editor, and as such, as I mentioned, would not work correctly with the trigger tags.
Then as I said, if you knew it wouldn't work with the trigger tags, why'd you use them? They don't really help if it's not indented with incorrect naming >_>
 
Level 18
Joined
Jan 24, 2006
Messages
1,938
(This tutorial was made originally for Clan ORPG, but I thought I would repost it here and see if anyone could benefit from it. Also, it is important to note that the trigger tags will not show correctly because they were made into trigger tags when they were originally quoted, and I did not create the triggers in World Editor. Still, the triggers are not complicated and should be straight-forward to read.)

Even if it is CNP'd from the Clan ORPG forums, you should still fix up the trigger tags. Only other thing I'd reccomend would be more eye candy, perhaps screenshots of it in action (unnecessary, but who doesn't like screenshots ;P?).

Oh, and I used to be in Clan ORPG for an age or two.
 
Level 2
Joined
Aug 21, 2007
Messages
18
Good job really helpful....im an rpg fan my self and am planning om making a rpg
Name:Raven's Fury
Terrain: [][][][][]
Triggers: [][][][][]
Quests:[][][][][]
Items:[][][][][]
 
Top