Tutorial Quest Types and How to Make them

dragonhord

Knowledge is true opinion. - Plato
Basic Quest Tutorial: Quest Types and How to Accomplish them.


I looked in the tutorials and didn't see a completely efficient quest tutorial for COMPLETELY new people to the world editor so I thought why not make one? so here I go lol. If somethings wrong please let me know .
I. Objective
The creation of simple quests in maps such as rpg's and other maps involving quests.
II. Implementation
Quests would be as follows...
1.) Item Recovery
2.) Unit Kill
3.) Finding Someone
4.) Building Quests
1.) Item Recovery
Those are all I can think of and right now I'm going to teach you how to do each of the quest types. First off item recovery
To start it off, you probably want a player to know that someone is offering them a quest... The simplest way to do this is with one of the handy exclamation points that blizzard so kindly offers us. The special effect is created above each quest giver in the game using the
Trigger:
  • Special Effect - Create a special effect attached to the overhead of No unit using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
That is the exclamation point above the quest givers head. You will want to create one of these above each and every quest giver at the beginning of your game. To do this is quite simple, but may be somewhat tedious...
Trigger:
  • Quest Effects
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Special Effect - Create a special effect attached to the overhead of (Triggering Unit) using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
      • Set QuestEffects[1] = (Last Created Special Effect)

The problem with this trigger is, there is no triggering unit. This was just an example of what your trigger should look like. You will have to do a number of things to make this effect function for each quest giver. First off you have to change (Triggering Unit) to your quest giver. To do this simply click the field that says (Triggering Unit) and click "Select a Unit", then find your unit on the map that you want to offer a quest. You have to do this for EACH AND EVERY unit that offers a quest... Then you want to assign these to a variable so that you can delete the special effects when a player acquires the quest. A variable is something in the world editor that stores a value of any kind for later use in your map. In this case we are using it to remember a special effect.
Trigger:
  • Set QuestEffects[1] = (Last Created Special Effect)
[/wc3] To get your code to look like this, you must create a variable. To do so find the yellow X in the menu near your trigger editor and click it. Then create a new variable with the green X. You want to create a "Special Effect" variable, and you want to check the "Array" box which is where the [1] comes from. Then find the "Set Variable" action in the action, find your quest variable, and set it to Last Created Special Effect. It's that simple! Now for the quest itself.
Trigger:
  • Corrupted Moon Well Start
    • Events
      • Unit - A unit comes within 200.00 of No unit
    • Conditions
      • ((Entering unit) is A Hero) Equal to True
    • Actions
      • Special Effect - Destroy QuestEffects[1]
      • Quest - Display to (All players) the Quest Update message: Help me! Ive lost m...
      • Quest - Create a Required quest titled Corrupted Moonwell with the description The moon well here i..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp
      • Set Quests[1] = (Last created quest)
      • Trigger - Turn off (This trigger)
Thats the starting... now to explain it better.. The event is the starting of the quest. Replace no unit with the quest giver *to do this, just click the field that is No Unit, then select your unit wherever he/she may be on the map* so when they come within 200 of the quest giver it activates the quest. The special effect destroying gets rid of the exclamation point. Now the quest - display... is what tells you what you have to do. This one states that the well is corrupted and you must acquire an elixer to purify it.
Trigger:
  • Set Quests[1] = (Last created quest)
This is rather simple to create. In order to create this go to the variable editor *the yellow X in the near the trigger editor button to open the trigger editor* and create a new variable. You want this variable to be of the type quest, and you want to check the box that says "array". An array is simply allowing you to use the same variable over and over again without causing a lot of clutter in your variable editor menu... It comes in handy I must say.
Trigger:
  • Quest - Create a Required quest titled Corrupted Moonwell with the description The moon well here i..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp
This is the information that is displayed in the Quest in the Quest Info (F9). The Corrupted Moonwell is simply a quest title, the description is basically stating what you are asking of the player, and the icon path is simply a selected icon from blizzard defaults that you want to display to the player when he/she is looking at the quests.
Trigger:
  • Trigger - Turn off (This trigger)
This piece is rather important, but very simple. Just look in the actions, and find the Trigger - Turn off Trigger command. This will prevent a player from being able to talk to the quest giver repeatedly acquriing the quest.
Trigger:
  • Special Effect - Destroy QuestEffects[1]
This is what deletes the Exclamation point. Now QuestEffects[1] is a Special Effect Variable. Make sure you set this to an array (the little checkbox when you create your variable in the variable editor) so you can use just one variable for every questgiver. Then you want to create your special effects with the trigger listed above Special Effect - Create a Special Effect at Point. Then set that special effect through a Set Variable Trigger.
Trigger:
  • Set QuestEffect[1] = Last Created Special Effect.
Now for the completion...
Trigger:
  • Corrupted Moonwell
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • (Quests[1] is enabled) Equal to True
      • (Item type of item being manipulated) Equal to Elixer
    • Actions
      • Set Questcomplete(Player number of owner of Hero manipulating item) equal to Questcomplete(Player number of owner of Hero manipulating item) +1
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Questcomplete (Player number of owner of hero manipulating item)) Equal to 6
    • Then - Actions
    • Else - Actions
      • Quest - Mark Quests[1] as Completed
      • Quest - Display to (All players) the Quest Update message: You have restored...
        • Player - Add 500 to (Owner of (Triggering unit)) Current gold
      • Unit Group - Pick every unit in (Units in (Playable map area) matching (((Picked unit) is A Hero) Equal to True)) and do (Actions)
        • Loop - Actions
          • Hero - Add 500 experience to (Picked unit), Show level-up graphics
      • Trigger - Turn off (This trigger)
That was fun. Ok here is the explanation... oh and there is another trigger... The explanation...
Trigger:
  • Set Questcomplete(Player number of owner of Hero manipulating item) equal to Questcomplete(Player number of owner of Hero manipulating item) +1
Now this is a bit more complicated... This is intended to allow each player to have their own quest, which is what the "Player number of Hero manipulationg item" is. This basically is saying that that individual player that has grabbed the item... has grabbed the item, and it stores it in a variable for it to remember. Questcomplete is that variable. Questcomplete is an integer variable that I have changed to an array. To do this follow the instructions previously mentioned. Now this time, instead of just putting 1 as the array value, we are changing it to "Player number of hero manipulating item". How do you do that? Click the array value, and find the "Player - Player Number" option. Then in this option you should see "Player number of (Triggering Player)". All you have to do is change (Triggering Player) to (Hero Manipulating Item) which is in the drop down list. Then you simply change the arithmetic option to + 1 so it adds one to the integer variable. The unit group part is to grant experience and the other part is for money. The display thing is to let you know you have done the quest. So yeah the last part...
Trigger:
  • Item Recovery
    • Events
      • Unit - A unit Loses an item
    • Conditions
      • (Item-type of (Item being manipulated)) Equal to Elixer
    • Actions
      • Set Questcomplete(Player number of owner of hero manipulating item) = (Questcomplete(Player number of owner of hero manipulating item) - 1)
That is to check if they drop it so if they do it knows that they do so they cant complete the quest with just one item... That takes care of that. Just follow the instructions above, but instead of a + change it to a -, which is basically saying you have one less Elixer so you can't just drop the elixer and pick it back up and make the editor think you have grabbed another one.
2.) Unit Killing
AHHH the unit kill... MUCH easier . Well its one less trigger... Id say use the same starting trigger as I had said before... make them walk to the quest giver to recieve it etc. Then to finish it.
Trigger:
  • Green Dragon Killing Quest
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Green Dragon
    • Actions
      • Set GreenDragonKills = (GreenDragonKills + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • GreenDragonKills Equal to 10
        • Then - Actions
          • Quest - Mark Quests[1] as Completed
          • Quest - Display to (All players) the Quest Update message: Thank you for dispo...
          • Then do the exp etc. as shown in the previous trigger with the unit group command.
        • Else - Actions
Create an integer variable (the yellow X is the variable menu, don't forget). Now the integer variable (GreenDragonKills in this case) is set to plus one to let the WE know that a unit has been killed... this then adds the quest number to +1 and when it hits 10 meaning when you kill 10 green dragons in this case then the quest is complete. To set it use Set Variable Trigger.
Now it should look like Set GreenDragonKills = Value. Click on Value and change that to Arithmetic. For the first value in arithmatic change that to GreenDragonKills (simply find the variable in the variable drop down menu) and for the +1 keep that as is.
Trigger:
  • GreenDragonKills Equal to 10
This is an integer Condition. Add a condition then look for an integer condition(Just hit the "I" key). Then click the first value ((Number of Units....))and change that to GreenDragonKills (Our Variable) where it has the Variable drop down menu listed and then make sure it says "Equal to", then for the last part set that to 10. This is stating that a player must kill 10 Green Dragons in this case, in order to complete the quest they have been assigned.
3.) Finding a Specific Unit
Trigger:
  • Child Recovery Quest
    • Events
      • Unit - A unit comes within 200.00 of No Unit
    • Conditions
      • ((Entering unit) is A Hero) Equal to True
    • Actions
      • Special Effect - Destroy QuestEffects[1]
      • Quest - Display to (All players) the Quest Update message: Help me! Ive lost m...
      • Quest - Create a Required quest titled Child Rescue with the description Help me! Ive lost m..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp
      • Set Quests[1] = (Last created quest)
      • Trigger - Turn off (This trigger)

To start the quest you just walk near the woman and it starts the quest... QuestEffects[1] is the same variable from before (if you already used the array value 1 set it to a different number, be sure not to overlap numbers or the editor won't remember them all) used to make exclamation points but you could probably base an ability off sphere and attach it to the overhead of a unit etc. This topic I will cover later, but it might be a tad simpler to accomplish than creating one for every unit. Anyways... Everything in this quest acquisition trigger is the same as the other two so I don't think I need explain it any further.
Trigger:
  • Set Quests[1] = (Last created quest)
This is a quest variable you must create (also in the variable editor *yellow X*) and it is a quest type variable that you must set to an array (array checkbox when creating your variable). This is so that it knows that your given quest has been activated by your player, and that the player can begin looking for the child that the mother has lost.
For completion of the quest...
Trigger:
  • Child Recovery Complete
    • Events
      • Unit - A unit comes within 200.00 of Child
    • Conditions
      • (Quests[1] is enabled) Equal to True
    • Actions
      • Quest - Mark Quests[1] as Completed
      • Quest - Display to (All players) the Quest Update message: You have rescued my...
      • Player - Add 500 to (Owner of (Entering unit)) Current gold
      • Unit Group - Pick every unit in (Units in (Playable map area) matching (((Picked unit) is A Hero) Equal to True)) and do (Actions)
        • Loop - Actions
          • Hero - Add 500 experience to (Picked unit), Show level-up graphics
      • Trigger - Turn off (This trigger)

Alright... here's how this works... this checks if you find the unit that is the target of the quest... This quest is about a mother losing her child and you are supposed to find the child. Child is simply a unit that is already placed on the map that you have to select as shown before... then everything else is exactly as follows and I believe I explained it will enough in the previous quest types.
4.) Building Quests​

These quests are fairly simple as well, and should cover nothing new. Anyhow, this is done as follows.
Trigger:
  • Building Quest
    • Events
      • Unit - A unit Finishes construction
    • Conditions
      • (Unit-type of (Constructed structure)) Equal to Town Hall
    • Actions
      • Quest - Mark Quest[1] as Completed

The event is pretty simple, and the condition is a simple "Unit Type" condition that can be found in the condition area. Nothing to difficult there, now if you want to mark the quest for only specific players than you can make a new variable aside of "Quest" and make the "BuildingQuest" variable, and make it an array as I have described before. In this process make this trigger.
Trigger:
  • Building Quest
    • Events
      • Unit - A unit comes within 200.00 of No unit
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Quest - Create a Required quest titled Town Hall with the description Your village will n..., using icon path ReplaceableTextures\CommandButtons\BTNTownHall.blp
      • Set BuildingQuest[(Player number of (Owner of (Triggering unit)))] = (Last created quest)
Everything in this trigger has been seen before, but to recap the array, BuildingQuest is a newly created "Quest" variable that is an array (variable editor, quest variable, check the array box). Then in this array after entering it find the button in red letters that reads "Value". This can be found after entering BuildingQuest in one of your triggers. Click "Value" and change the given value to "Player - Player Number" and then search for Player number of (Triggering Player). Click (Triggering Player) and change that to "Player - Owner of Unit" and look for (Triggering Unit) though I believe it's already defaulted. Simple enough, right? Then run the trigger at the top with a few changes listed here.
Trigger:
  • Building Quest
    • Events
      • Unit - A unit Finishes construction
    • Conditions
      • (Unit-type of (Constructed structure)) Equal to Town Hall
    • Actions
      • Quest - Mark BuildingQuest[(Player number of (Owner of (Triggering unit)))] as Completed
Then distribute the spoils of victory as desired, to the one whom has completed the quest.
III. Advanced Tips
1.) Cinematics in Quests
Now many people seem to want a cinematic that explains what you have to do for your quest . I personally find them to be interuptive and boring to watch but that's all on you to decide so i'll explain that as well even though I believe I have in fact seen a cinematic quest based thing ill make this all in one.
First off you want to make it to where it reads when the unit tries to recieve the quest.
Use something like
Trigger:
  • Events -
    • Unit - A unit comes within 300 of Quest Giver 001 <gen>

That helps trigger the cinematic. Then turn cinematic mode on with
Trigger:
  • Cinematic - Turn cinematic mode On for (All players)
Next up is letterbox mode. This is the mode that shows players units speaking. Use
Trigger:
  • Cinematic - Turn on letterbox mode (hide interface) for (All players): fade out over 2.00 seconds
No moving for the players units while this happens
Trigger:
  • Cinematic - Disable user control for (All players)
Now to actually seeing what the guy is trying to tell you
Trigger:
  • Cinematic - Send transmission to (All players) from No unit named Units Proper Name: Play No sound and display Please do this.. Modify duration: Set to 5.00 seconds and Wait
Change no unit to whichever unit you want to do the talking. Units proper name is the proper name of the unit speaking. To find out a units proper name it's simply in the object editor under the proper name field. If you have a sound bite of the unit saying what the written text says then put that in place of No Sound, and change the display message to what you want the speaking unit to say. Modifying duration is how long it will display for. Set it to whatever you think it requires to read the text. Now to make units move around and attack do simple orders like
Trigger:
  • Unit - Order Quest Giver 001 <gen> to Attack Alien Egg
Or
Trigger:
  • Unit - Order Quest Giver 001 <gen> to Move-to Position of (Alien Egg)
You can even make them cast spells or create animations above units
Trigger:
  • Special Effect - Create a special effect attached to the overhead of (Triggering unit) using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
or at a point
Trigger:
  • Special Effect - Create a special effect at (Center of (Playable map area)) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
For casting spells just do
Trigger:
  • Unit - Order No unit to Orc Raider - Ensnare No unit
Change the First No Unit to the casting unit, set the second no unit to the unit you want the caster to hit with the spell and change the Orc Raider - Ensnare to whatever spell you want him to cast. For targeting a point do
Trigger:
  • Unit - Order No unit to Orc Tauren Chieftain - Shockwave (Center of (Playable map area))
Change playable map area to whatever point you want the caster (No Unit) to target, there is a Unit - Position of Unit inside of the point you want it to cast at. Change the Orc Tauren Chieftain - Shockwave to whatever spell you want casted. Now a full cinematic trigger. Initiating Trigger
Trigger:
  • Cinematic Tut
    • Events
      • Unit - A unit comes within 300.00 of No unit
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Cinematic - Turn cinematic mode On for (All players)
      • Cinematic - Turn on letterbox mode (hide interface) for (All players): fade out over 2.00 seconds
      • Cinematic - Disable user control for (All players)
      • Cinematic - Send transmission to (All players) from No unit named Kronos: Play No sound and display You've got to help .... Modify duration: Set to 6.00 seconds and Wait
      • Cinematic - Turn cinematic mode Off for (All players)
      • Cinematic - Turn off letterbox mode (show interface) for (All players): fade out over 2.00 seconds
      • Cinematic - Enable user control for (All players)
You may want to put in some of the order unit to attack, or order units to cast spells, whatever you decide to do can be put in. Thats pretty much the basic quest cinematic . If you can think of anything I can add to this let me know. Oh and if this was completely useless let me know that as well.
2.) Individual Player Quests
This was requested later in the thread and here is how you do it.
Firstly you will have to change the quest array variable, you will have to make a quest variable for each quest. If you dont understand what I mean, go to the X in the trigger editor. It is a yellow X. Open that then create a new variable and call it (In this case ill base it off the kills) the GreenDragonKills variable, make it an array. Then when a dragon is killed do this.
Trigger:
  • Set GreenDragonKills[(Player number of (Owner of (Killing unit)))] = (GreenDragonKills[(Player number of (Owner of (Killing unit)))] + 1)
This ensures that each player has their own recorded progress of the Green Dragon Quest. The [(Player number of (Owner of (Killing unit)))] part is a part of an array. Rather than setting it to a number look for Player - Player Number in place of the arithmetic section. Then to let just ONE player know how much progress he has do this.
Trigger:
  • Quest - Display to (Player group((Owner of (Killing unit)))) the Quest Update message: (You have killed + ((String(GreenDragonKills[(Player number of (Owner of (Killing unit)))])) + out of the 10 you need to kill.))
This little trigger here will display only to the player who killed the dragon. It tells him how many he has killed rather than displaying it to all players. To get it find "Convert Integer to String" and change integer to your GreenDragonKills variable and change the array to the Player Number piece. Then just change the
Trigger:
  • Item Recovery
    • Events
      • Unit - A unit Loses an item
    • Conditions
      • (Item-type of (Item being manipulated)) Equal to Shadow Orb +6
    • Actions
      • Set Questcomplete(Player number of owner of hero manipulating item) = (Questcomplete(Player number of owner of hero manipulating item) - 1)
That is to check if they drop it so if they do it knows that they do so they cant complete the quest with just one item... That takes care of that.
3.) Item Rewards
This is pretty simple. All you must do is simply add to the trigger where you add the experience the action,
Trigger:
  • Hero - Create Quest Reward and give it to (Picked unit)
That is under the hero section in the action tab. Find the
Trigger:
  • Hero - Give Item to Hero
tab and change the values as needed. The final trigger should look as follows.
Trigger:
  • Child Recovery Complete
    • Events
      • Unit - A unit comes within 200.00 of Child
    • Conditions
      • (Quests[1] is enabled) Equal to True
    • Actions
      • Quest - Mark Quests[1] as Completed
      • Quest - Display to (All players) the Quest Update message: You have rescued my...
      • Player - Add 500 to (Owner of (Entering unit)) Current gold
      • Unit Group - Pick every unit in (Units in (Playable map area) matching (((Picked unit) is A Hero) Equal to True)) and do (Actions)
        • Loop - Actions
          • Hero - Add 500 experience to (Picked unit), Show level-up graphics
          • Hero - Create Quest Reward and give it to (Picked unit)
      • Trigger - Turn off (This trigger)
I think that about covers that section.
4.) Countdown Timers
Now these are a little more advanced but they really arent that complicated. These can help run a timed quest, so if you want a player to finish their quest before X seconds the countdown timer will tell them the remaining time they have until the quest is failed. In order to create your timer you must use this trigger...
Trigger:
  • Countdown Timer - Start QuestTimer as a One-shot timer that will expire in 180.00 seconds
This creates the timer to show players that they have exactly 3 minutes to finish their quest, or the quest is failed, but at this point it wont actually cause the quest to be failed, so we have to fix that. First add the trigger above to the original trigger in which a player gets the quest. It should look like this.
Trigger:
  • <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_40">
    • <li class="lastopen"><span class="default">Corrupted Moon Well Start</span>
    • <ul>
    • <li class="open"><span class="events">Events</span>
    • <ul>
    • <li class="lasttree"><span class="unit">Unit - A unit comes within 200.00 of No unit</span></li>
    • </ul>
    • </li>
    • <li class="open"><span class="conditions">Conditions</span>
    • <ul>
    • <li class="lasttree"><span class="default">((Entering unit) is A Hero) Equal to True</span></li>
    • </ul>
    • </li>
    • <li class="lastopen"><span class="actions">Actions</span>
    • <ul>
    • <li class="tree"><span class="specialeffect">Special Effect - Destroy QuestEffects[1]</span></li>
    • <li class="tree"><span class="quest">Quest - Display to (All players) the Quest Update message: Help me! Ive lost m...</span></li>
    • <li class="tree"><span class="quest">Quest - Create a Required quest titled Corrupted Moonwell with the description The moon well here i..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp</span></li>
    • <li class="tree"><span class="set">Set Quests[1] = (Last created quest)</span></li>
    • <li class="tree"><span class="default">Trigger - Turn off (This trigger)</span></li>
    • <li class="tree"><span class="countdowntimer">Countdown Timer - Start QuestTimer as a One-shot timer that will expire in 180.00 seconds</span></li>
    • <li class="lasttree"><span class="countdowntimer">Countdown Timer - Create a timer window for QuestTimer with title Time Remaining</span></li>
    • </ul>
    • </li>
    • </ul>
    • </li>
    • </ul>
    • </div></div>
    • That fully creates the timer, allowing players to see the time they have remaining for the quest. Now to see if a player fails or not you must do this. &quot;QuestTimer&quot; is a variable of type &quot;Timer&quot;, and the rest of that is self explainotry, and the second code is to show the player that the timer has been fired. You can change the title of the timer to whatever you like by changing the &quot;Time Remaining&quot; part of the coding.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_41">
    • <li class="lastopen"><span class="default">Building Quest</span>
    • <ul>
    • <li class="open"><span class="events">Events</span>
    • <ul>
    • <li class="lasttree"><span class="default">Time - QuestTimer expires</span></li>
    • </ul>
    • </li>
    • <li class="tree"><span class="conditions">Conditions</span></li>
    • <li class="lastopen"><span class="actions">Actions</span>
    • <ul>
    • <li class="lasttree"><span class="quest">Quest - Mark Quest[1] as Failed</span></li>
    • </ul>
    • </li>
    • </ul>
    • </li>
    • </ul>
    • </div></div>This will fail them if the timer expires, and their time remaining hits 0 seconds. Now, we if they are victorious in their quest we have to make sure the timer goes away... so you must do this.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_42">
    • <li class="lastopen"><span class="default">Building Quest</span>
    • <ul>
    • <li class="tree"><span class="events">Events</span></li>
    • <li class="tree"><span class="conditions">Conditions</span></li>
    • <li class="lastopen"><span class="actions">Actions</span>
    • <ul>
    • <li class="tree"><span class="countdowntimer">Countdown Timer - Pause QuestTimer</span></li>
    • <li class="lasttree"><span class="countdowntimer">Countdown Timer - Destroy (Last created timer window)</span></li>
    • </ul>
    • </li>
    • </ul>
    • </li>
    • </ul>
    • </div></div>Just make the conditions what the player has to do to complete the quest, and then do the other standard quest finishing triggers, and that should complete your timed quest. Now a helpful hint is to set the timer window to a variable as well, probably &quot;QuestWindow&quot;.
    • <div style="text-align: center"><span style="font-size: 10px"><b>IV. Trigger Help</b></span>&#8203;</div>This section was designed because I recieved complaints of this being to hard to understand. So I decided to give a full view over the used triggers. There are a lot of them so here we go.
    • <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_43">
    • <li class="lasttree"><span class="default">((Entering unit) is A Hero) Equal to True</span></li>
    • </ul>
    • </div></div> This is a boolean condition. The first thing you will see is Triggering unit is A Structure. Click structure and change that to A Hero.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_44">
    • <li class="lasttree"><span class="set">Set Quests[1] = (Last created quest)</span></li>
    • </ul>
    • </div></div>Quests[1] is a variable. Go to the variable section. Create your new variable. Make it of the type quests, and then make it an array.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_45">
    • <li class="lasttree"><span class="default">(Quests[1] is enabled) Equal to True</span></li>
    • </ul>
    • </div></div> This is a boolean condition. To find it simply hit the drop down menu until you find quests. Easy method to find the quest tabs is to hit the &quot;Q&quot; key in the drop down menu and it will bring you to the quest. Change the Last Created quest to Quests[1] and make sure its enabled. Thats all this one does.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_46">
    • <li class="lasttree"><span class="default">(Item type of item being manipulated) Equal to Elixer</span></li>
    • </ul>
    • </div></div> Item Type comparison. Look for your item and put it after the equal to.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_47">
    • <li class="lasttree"><span class="set">Set Questcomplete(Player number of owner of Hero manipulating item) equal to Questcomplete(Player number of owner of Hero manipulating item) +1</span></li>
    • </ul>
    • </div></div> This little guy is a little bit harder. Now quest complete is an integer variable. To get the trigger to look like this simply find set variable in the trigger actions. Then find your variable in the drop down list. Now when it say equal to look for Arithmatic in the drop down menu. I believe its the first one there anyways. Then find your variable and put that in value. Then in brackets it should say value. Click on that then hit p. Scroll down until you find player number. Then after that it should already say +1 and your done with that one. <div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_48">
    • <li class="lasttree"><span class="default">Questcomplete (Player number of owner of hero manipulating item)) Equal to 6</span></li>
    • </ul>
    • </div></div>This is an integer condition. Once again Questcomplete is your integer array variable. Taught you about that one. Just change where it says equal to 0 to equal to 6.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_49">
    • <li class="lasttree"><span class="set">Set Questcomplete(Player number of owner of hero manipulating item) = (Questcomplete(Player number of owner of hero manipulating item) - 1)</span></li>
    • </ul>
    • </div></div>This one is simply like the other one. Just change the plus to a minus and your fine.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_50">
    • <li class="lasttree"><span class="set">Set GreenDragonKills = (GreenDragonKills + 1)</span></li>
    • </ul>
    • </div></div>Once again a Set Variable as explained before. Then the next green dragon condition follows the other explanation.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_51">
    • <li class="lasttree"><span class="set">Set GreenDragonKills[(Player number of (Owner of (Killing unit)))] = (GreenDragonKills[(Player number of (Owner of (Killing unit)))] + 1)</span></li>
    • </ul>
    • </div></div>This is just as the green dragon variable before. Just change it to an array. Simple as that. To get the player number follow the instructions given before.<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code"><div class="bbCodeBlock-title">Trigger:</div><div class="wc3trigger"><ul class="wc3" id="wc3_52">
    • <li class="lasttree"><span class="quest">Quest - Display to (Player group((Owner of (Killing unit)))) the Quest Update message: (You have killed + ((String(GreenDragonKills[(Player number of (Owner of (Killing unit)))])) + out of the 10 you need to kill.))</span></li>
    • </ul>
    • </div></div>Here where it says (Player group((Owner of (Killing unit))) That is simply a Conversion - Player to Player Group. Its in the drop down menu. I think that about covers it.
    • <div style="text-align: center"><span style="font-size: 10px"><b>V. Summary</b></span>&#8203;</div>So all in all this teaches you how to start quests and how to complete them in a variety of ways to make a players rpg experience much better. Hope this helps. If you see anything that needs changing please inform me and if you do not understand something do not be afraid to let me know. It will help me fix the tutorial. These are intended to be basic quests. Nothing too complicated is covered in here. If anyone has any requests I would be glad to further update the tutorial at a later time in order to accomodate more quest types, but for now this is a simple tutorial covering a few of them.
    • <b><div style="text-align: center">~'-._Dragonhord_.-'~&#8203;</div></b>
 
W

Wyvernoid

Guest
Well it was good, but if you use better language it would be easier for NEWBIES. Would give you 3/5
 

dragonhord

Knowledge is true opinion. - Plato
Wyvernoid said:
Well it was good, but if you use better language it would be easier for NEWBIES. Would give you 3/5
What do you mean by better language?
Edit -
You guys respond fast i was expecting to get some sleep before you responded lol. I guess i just read slow :( .
 
W

Wyvernoid

Guest
Example
Dragonhord said:
Unit Kill
Finding Someone
Those are all i can think of and right now imma teach you how to do each of the above... For Item Recovery
'Don't think you would put those into an about-to-be-published book ^^
 

dragonhord

Knowledge is true opinion. - Plato
Yet again "I!!!!" fix typos :D Im sure there are many more in there though so your noticing them is helpful because i dont :( .
 

monoVertex

I'm back!
Fix all the "I"

so i thought
:p

tutorials

didn't

the tuts and didnt see a completely
saw

If somethings wrong plz let me know
If there is something wrong please let me know.

quests would be as follows...
You finished the previous sentence so the "q" should be capital.

Ok here is the explanation... oh and there is another trigger... The explanation...
.....uh?

item and im just saying this
I'm

Or Unit - Order Quest Giver 001 <gen> to Move-to Position of (Alien Egg)[/code]
The
Code:
 tag isn't complete.

[QUOTE]know that too [B]haha[/B]  .[/QUOTE] ....lol.... :P
 
W

Wyvernoid

Guest
Just copy your post into any text editor with the replace function, and replace...
... thats with that's
... cant with can't
... im with I'm
... id with I'd
... :D with... I don't know what to replace, but these seriously deserve deleting ^^

And many others, like "AHHHH".... ^^
 

dragonhord

Knowledge is true opinion. - Plato
There you go... i used a replace thing as you advised and realized his capital I suggestion, about 20 non capitalized haha. And i fixed everything he listed and all the other mistakes I could find. So in my perspective its finished but any suggestions :D .
 
W

Wyvernoid

Guest
Better make it clear. What about this:
I. OBJECTIVE
II. IMPLEMENTATION
1. Item Discovery
2. Unit Kill
x. xx
III. ADVANCED TIPS
1. x
2. x
IV. SUMMARY

and 4/5 now (haha)
 

NiKaNoRoU_GR

New Member
4/5 me too.I think that as Smith_s9 said, you should use formal language in such projects, and you will be fine.
EDIT:eek:ohh...0,5 K posts so far (out of subject)
 

dragonhord

Knowledge is true opinion. - Plato
I. OBJECTIVE
II. IMPLEMENTATION
1. Item Discovery
2. Unit Kill
x. xx
III. ADVANCED TIPS
1. x
2. x
IV. SUMMARY
What?
 

exge

New Member
its nice, but is it possible to do it such that 2 different players can accept the same quest...
ie; player 1 accepts quest
player 2 still sees the ! mark on the quest giver's head

and player1 returns quest, get items
so you disable the trigger to prevent the unlimited item exploit, how are other players going to complete the quest ??
thanks in advance
 

dragonhord

Knowledge is true opinion. - Plato
exge said:
its nice, but is it possible to do it such that 2 different players can accept the same quest...
ie; player 1 accepts quest
player 2 still sees the ! mark on the quest giver's head

and player1 returns quest, get items
so you disable the trigger to prevent the unlimited item exploit, how are other players going to complete the quest ??
thanks in advance
Ok. So you want individual quests. I will put that in the tutorial now.
 
T

themasta

Guest
good tutorial dawg, but new ppl wouldnt understand the triggers at all.
i would give + rep is i knew wat the hell it is and how to do it.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Varine Varine:
    Eh, whatever. Thanks for listening guys
  • jonas jonas:
    Sure :) Let us know how it ends
  • Varine Varine:
    All of these things will end happily, they're just stressful. And I still lack many good friends that I can go to, and the ones I can are preoccupied with similar things. Thus general chit chat, cuz for some reason TH and Ghan and Tom all actively keep it up.
  • Varine Varine:
    Just gotta keep Miss Mazie up through the week until her shock wears off and she realizes that she still has family all around her, and bossman will do whatever he's going to do and I'll respond appropriately when it happens. Thank you all for the support, I do very much appreciate everyone being here for me through the years
    +3
  • vypur85 vypur85:
    Best of luck Varine!
  • vypur85 vypur85:
    I just gotten myself an offer to work in China. The pay quadruples my current one. Damn.... Not really ready to start a new life there in China.
  • The Helper The Helper:
    I have heard that they pay pretty good to English teachers in China - you would be an expat
  • jonas jonas:
    Cool, what kind of job?
  • Accname Accname:
    I would be careful with jobs in China. They can be hit and miss depending on where in China you go. Places like hong kong / Shengzen / Beijing can be neat. Other places not so much.
  • Accname Accname:
    I would recommend searching for some first person experiences for the city you got the offer in. Especially now when the political situation in China is deteriorating.
  • jonas jonas:
    Accname, long time no see
  • jonas jonas:
    What have you been up to
  • tom_mai78101 tom_mai78101:
    Hey Accname, welcome back.
  • Accname Accname:
    Not much. Working in the Renewable Energy Sector as an IT Consultant. Its okay, but I think I preferred working at the university. It was more relaxed and you met all kinds of crazy people there.
  • vypur85 vypur85:
    I gotten a teaching position for Biology in a college in Wuhan (yes, there)... I suppose it should be fine there (I hope). Many of my ex colleagues are teaching in China as well currently (none in Wuhan though)
  • vypur85 vypur85:
    And I signed the contract already. I guess there's no turning back....
  • jonas jonas:
    @Accname how many hours do you work? I heard in some sectors IT consultants rack up insane hours
  • jonas jonas:
    @vypur85 sounds nice, have fun : )
  • Accname Accname:
    I am supposed to work 40 hrs a week, but I can work more if I like and I will be paid for those hours (as long as I don't go too far, there are laws and company policies, etc)
  • Accname Accname:
    In practice its basically work as much as you like, as long as the job gets done in time.
  • jonas jonas:
    Haha, my job is like that as well... that usually means I have a few 70-80 hours weeks a year, and lots of 20 hours weeks...
  • jonas jonas:
    a few weeks ago, one of my friends basically said "jonas, I received an invitation to submit something to conference X but I'm too lazy to do it and also the conference isn't advanced enough for my high level of research*, why don't you write something? Oh by the way, the deadline is in two weeks. Enjoy!" so I got two 80 hour weeks out of that kind offer. (*of course he didn't say those parts, but it's a better story this way)
  • jonas jonas:
    now I'll have next week off to make up for overtime :p and I'll play some good old gothic 2
  • The Helper The Helper:
    Hope you are enjoying that gothic 2~
  • jonas jonas:
    Heck yeah :cool: It's unfortunate that the game series wasn't generally well received outside of Europe, but it seems they want to remake Gothic 1 now. I'm very excited but also very scared at the same time. I hope they won't pull a reforged

    Members online

    No members online now.

    Affiliates

    Hive Workshop NUON Dome
    Top