1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. The poll for Hive's 12th Concept Art Contest is up! Go cast your vote for your favourite genie!
    Dismiss Notice
  4. Travel to distant realms and encounter scenes unknown to the common folk. The Greatest of Adventures is upon us with the 8th Cinematic Contest. Join in on a fun ride.
    Dismiss Notice
  5. The 18th Icon Contest is ON! Choose any ingame unit and give him/her Hero abilities. Good luck to all.
    Dismiss Notice
  6. Contestants are to create a scene set in the Stone Age. Come and see what you can come up with. We wish you the best of luck!
    Dismiss Notice
  7. Colour outside the lines! Techtree Contest #13 is a go. The contest is optionally paired.
    Dismiss Notice
  8. Greetings cerebrates, our Swarm needs new spawners that will have numerous children. Join the HIVE's 31st Modeling Contest - Spawners and Spawned! The contest is optionally paired.
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

How to make a Find that Person Quest.

Discussion in 'Trigger (GUI) Editor Tutorials' started by Dark Hunter1357, Apr 11, 2008.

  1. Dark Hunter1357

    Dark Hunter1357

    Joined:
    Feb 20, 2007
    Messages:
    777
    Resources:
    29
    Models:
    20
    Icons:
    6
    Maps:
    2
    Tutorials:
    1
    Resources:
    29
    How make a rescue the unit quest?


    In this tutorial i will show you how to make a Quest, where you must find and escort a unit.

    For my tutorial i used these units:
    The Quester is the unit that gives quests
    The Hero_var is the unit that takes quests
    The Mountain Giant is the unit that needs to be found and escorted

    1. Making an Install trigger
    • Install
      • Events
        • Time - Elapsed game time is 0.01 seconds
      • Conditions
      • Actions
        • Special Effect - Create a special effect attached to the overhead of Quester 0000 <gen> using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
        • Set QuestGivver1 = (Last created special effect)
        • Quest - Create a Optional, undiscovered quest titled Undiscoverd Quest with the description Undiscoverd Quest, using icon path ReplaceableTextures\CommandButtons\BTNMountainGiant.blp
        • Set Quest1_Quest_var = (Last created quest)
        • Set Hero_var = Thrall 0002 <gen>
    That trigger creates a special effect over the units that gives quests, an Exclamation Mark. That way people will know that unit can give quests.
    Then he sets a variable for the special effect.
    After that the trigger creates an undiscovered quest and sets a variable for that too.
    And at the end, we set who is the hero that can get the quests.

    2.Making the Quest Giving trigger
    • QuestGivver1
      • Events
        • Unit - A unit comes within 580.00 of Quester 0000 <gen>
      • Conditions
        • ((Triggering unit) Equal to Hero_var) or ((Triggering unit) Equal to Mountain Giant 0001 <gen>)
      • Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Quest1 Equal to 0) and ((Triggering unit) Not equal to Mountain Giant 0001 <gen>)
          • Then - Actions
            • Special Effect - Destroy QuestGivver1
            • Unit - Move Hero_var instantly to (Center of QuestTaker1 <gen>)
            • Unit - Make Hero_var face Quester 0000 <gen> over 0.00 seconds
            • Cinematic - Turn cinematic mode On for (Player group((Owner of (Triggering unit))))
            • Cinematic - Turn on letterbox mode (hide interface) for (Player group((Owner of (Triggering unit)))): fade out over 1.00 seconds
            • Camera - Apply QuestGiver1 <gen> for (Owner of (Triggering unit)) over 1.00 seconds
            • Cinematic - Turn subtitle display override On
            • Cinematic - Clear the screen of text messages for (Player group((Owner of (Triggering unit))))
            • Wait 2.00 seconds
            • Cinematic - Send transmission to (Player group((Owner of (Triggering unit)))) from Quester 0000 <gen> named Quester:: Play No sound and display I have lost my gian.... Modify duration: Add 0.00 seconds and Wait
            • Cinematic - Turn cinematic mode Off for (Player group((Owner of (Triggering unit))))
            • Cinematic - Turn off letterbox mode (show interface) for (Player group((Owner of (Triggering unit)))): fade in over 1.00 seconds
            • Camera - Reset camera for (Owner of (Triggering unit)) to standard game-view over 1.00 seconds
            • Set Quest1 = 1
            • Quest - Flash the quest dialog button
            • Quest - Display to (Player group((Owner of (Triggering unit)))) the Quest Discovered message: Find and bring aliv...
            • Quest - Mark Quest1_Quest_var as Discovered
            • Quest - Change the title of Quest1_Quest_var to Find the Mountain G...
            • Quest - Change the description of Quest1_Quest_var to Find and bring aliv...
            • Special Effect - Create a special effect attached to the overhead of Mountain Giant 0001 <gen> using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
            • Set QuestPersonFind1 = (Last created special effect)
          • Else - Actions
            • Trigger - Turn off QuestMountianFollow <gen>
            • Special Effect - Destroy QuestGivver1
            • Unit - Move Hero_var instantly to (Center of QuestTaker1 <gen>)
            • Unit - Move Mountain Giant 0001 <gen> instantly to (Center of QuestTaker1 <gen>)
            • Unit - Make Hero_var face Quester 0000 <gen> over 0.00 seconds
            • Unit - Make Mountain Giant 0001 <gen> face Quester 0000 <gen> over 0.00 seconds
            • Cinematic - Turn cinematic mode On for (Player group((Owner of Hero_var)))
            • Cinematic - Turn on letterbox mode (hide interface) for (Player group((Owner of Hero_var))): fade out over 1.00 seconds
            • Camera - Apply QuestGiver1 <gen> for (Owner of Hero_var) over 1.00 seconds
            • Cinematic - Turn subtitle display override On
            • Cinematic - Clear the screen of text messages for (Player group((Owner of Hero_var)))
            • Wait 2.00 seconds
            • Cinematic - Send transmission to (Player group((Owner of Hero_var))) from Quester 0000 <gen> named Quester:: Play No sound and display Tank you ! Here is .... Modify duration: Add 0.00 seconds and Wait
            • Unit - Order Mountain Giant 0001 <gen> to Move To (Position of Quester 0000 <gen>)
            • Player - Add 500 to (Owner of Hero_var) Current gold
            • Cinematic - Turn cinematic mode Off for (Player group((Owner of Hero_var)))
            • Cinematic - Turn off letterbox mode (show interface) for (Player group((Owner of Hero_var))): fade in over 1.00 seconds
            • Camera - Reset camera for (Owner of Hero_var) to standard game-view over 1.00 seconds
            • Quest - Flash the quest dialog button
            • Quest - Display to (Player group((Owner of (Triggering unit)))) the Quest Completed message: |c00959697Find and ...
            • Quest - Mark Quest1_Quest_var as Completed
            • Quest - Change the title of Quest1_Quest_var to Completed
            • Quest - Change the description of Quest1_Quest_var to Quest Completed.
            • Trigger - Turn off QuestFalied1 <gen>
            • Trigger - Turn off (This trigger)
    In this trigger we do this:
    When a unit gets within 580 of Quester, the trigger checks, is the unit the hero, that can take quests, or is it the unit that needs to be escorted. In ether of them, the trigger will run.

    After that the trigger checks, does the hero has the quest (Quest1 Equal to 0) and that the unit is not the escorted unit.

    If these conditions are true, then the hero does not have the quest and must get it. In the trigger you can see a cinematic is added. I will not explain that, as that is not the purpose of this tutorial.
    At the beginning of the cinematic we destroy the Exclamation Mark Special Effect, because the quest is taken.
    After the cinematic we set the variable (Quest1=1), again, because the quest is taken.
    Now that the quest is discovered, we add a trigger that tells the game that it is discovered, and we display a quest discovered massage to the player. We change the description and the title of the quest as well.
    At the end we add an Exclamation Mark on the unit that must be found and escorted, and set a variable for the special effect. That way the player will know when he finds the unit, that it is the right one.

    But if the conditions are wrong, that means, that the player already has the quest and the escorted unit is with him.
    We turn off a trigger that i will explain later.
    The trigger again destroys a special effect, that will be created in another trigger.
    There is a cinematic again, and in the cinematic, when the Quest Giver gives a reward, you can see an action, that gives the player 500 gold-that is the reward. Of course it can be changed to what ever you want.
    At the end, we change the quest, so it can state that this quest is completed and we turn off a trigger that i will explain later and this trigger, because the player can't take the quest twice.

    3.Making the Escort unit Finding trigger
    • QuestFinding1
      • Events
        • Unit - A unit comes within 300.00 of Mountain Giant 0001 <gen>
      • Conditions
        • ((Triggering unit) Equal to Hero_var) and (Quest1 Equal to 1)
      • Actions
        • Special Effect - Destroy QuestPersonFind1
        • Game - Display to (Player group((Owner of (Triggering unit)))) the text: Mountian Giant: Tak...
        • Unit - Order Mountain Giant 0001 <gen> to Follow Hero_var
        • Quest - Flash the quest dialog button
        • Quest - Display to (All players) the Quest Update message: Find and bring aliv...
        • Quest - Change the description of Quest1_Quest_var to Find and bring aliv...
        • Special Effect - Create a special effect attached to the overhead of Quester 0000 <gen> using Objects\RandomObject\RandomObject.mdl
        • Set QuestGivver1 = (Last created special effect)
        • Trigger - Turn on QuestFalied1 <gen>
        • Trigger - Turn on QuestMountianFollow <gen>
        • Trigger - Turn off (This trigger)
    When a unit comes within 300 of the unit that must be found this trigger is going to be run, if the unit is the unit that gets quests and if it has the quest(Quest1=1)

    The Exclamation Mark special effect on the found unit is destroyed, because the player has found it.
    A text message is displayed to alert the player about him finding the unit.
    The found unit is ordered to follow the unit that takes quests.
    The quest is updated, because one step of it is done-Finding the unit.
    A Special Effect is created over the quest giver and this time it's a question mark, because this is the final step in this quest and as i mentioned:
    This is the special effect that is being destroyed. Again a variable is set for the special effect.
    After that two triggers are turned on, i will explain them next and this trigger is turned off, as the escorted unit cant be found again.

    4.Debuging the follow order, IF a bug occurs

    • QuestMountianFollow
      • Events
        • Time - Every 2.00 seconds of game time
      • Conditions
      • Actions
        • Unit - Order Mountain Giant 0001 <gen> to Follow Hero_var
    This is that trigger.
    If when you test the map, the escorted unit stops following the unit taking quests, add this trigger. This usually happens if an AI is set to control the owner of the escorted unit.

    5.What if the escorted unit dies?

    • QuestFalied1
      • Events
        • Unit - Mountain Giant 0001 <gen> Dies
      • Conditions
      • Actions
        • Trigger - Turn off QuestGivver1 <gen>
        • Trigger - Turn off QuestMountianFollow <gen>
        • Special Effect - Destroy QuestPersonFind1
        • Special Effect - Destroy QuestGivver1
        • Quest - Flash the quest dialog button
        • Quest - Display to (All players) the Quest Failed message: Find and bring aliv...
        • Quest - Change the description of Quest1_Quest_var to Find and bring aliv...
        • Trigger - Turn off (This trigger)
    This is that trigger.
    If the escorted unit dies, then all triggers related to this quest must be turned off, because the quest is failed. The Special Effects are destroyed and there is a quest failed update. At the end this trigger is turned off because you cant fail the quest again.


    This is all. I attached a map with this quest in it.
     

    Attached Files:

    Last edited: Jun 16, 2008
  2. Fimbus

    Fimbus

    Joined:
    Aug 29, 2007
    Messages:
    312
    Resources:
    0
    Resources:
    0
    Except for some Typo's I find this a very good tutorial :thumbs_up:
     
  3. Ghan_04

    Ghan_04

    Vice Chieftain

    Joined:
    Feb 26, 2008
    Messages:
    1,387
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    Yes, you should probably go through and check your spelling on this.
    Also, using thing like Unit 0001 <gen> is not usually a good way to design triggers. To make this more flexible you could create the units in-game and go from there. However, if you're making an RPG or so, it probably won't make much difference.

    Other than that, this tutorial looks ok. It's not wonderful, to be honest, but it's ok. I've seen worse.
    To improve, I think that your explanations might be able to be a bit clearer than they are now.
     
  4. Dark Hunter1357

    Dark Hunter1357

    Joined:
    Feb 20, 2007
    Messages:
    777
    Resources:
    29
    Models:
    20
    Icons:
    6
    Maps:
    2
    Tutorials:
    1
    Resources:
    29
    All typos fixed
     
  5. Ghan_04

    Ghan_04

    Vice Chieftain

    Joined:
    Feb 26, 2008
    Messages:
    1,387
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    It might be a good idea to broaden this tutorial.

    A "Find that Person" quest is rather specific, considering what the overall subject itself contains. Maybe your tutorial should be about something like, "Developing and Implementing Fun and Interesting Quests." That would leave you open to use this as an example, but also give you a new area to talk about - quest making in general.