• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a faction for Warcraft 3 and enter Hive's 19th Techtree Contest: Co-Op Commanders! Click here to enter!
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 21st Texturing Contest: Upgrade is now concluded, time to vote for your favourite set of icons! Click here to vote!

Quest Help

Status
Not open for further replies.
Level 13
Joined
Oct 1, 2009
Messages
596
So I'm making a quest in my map where you must kill 20 centaurs to get a reward. But I want it to be like; for every 20 centaurs you kill you get +X amount of gold and experience, and when you kill centaur a message shows up like this: "1/20 centaurs killed". And when you've killed 20 centaurs you return to the quest giver and get your reward and then the same quest again. But you can't have 2 of the same quests at the same time.
I also want to have a quest mark on the quest giver, but when the quest is taken, the quest mark is removed and there's a question mark above him instead.
Thanks in advance, it would be great if anyone could help me with this!
 
Level 5
Joined
Oct 18, 2009
Messages
149
1. To make a centaur give you an certain ammount of gold/food/wood you must edit the unit, scroll down and edit the food/lumber/gold awarded when killed.
2. (If 1 is complicated) You can add an item drop that gives the player lumber/gold or food.
3. The progress bar you are trying to achieve may be a custom UI or trigger, I believe.
 
Level 16
Joined
May 1, 2008
Messages
1,605
Seas =)

Often times questions about quests but listen now =)

1) Create 2 variables
- 1: Name: QEffect / Type: Special Effect
- 2: Name: QCount / Type: Integer

(Hint: The names are only examples)

2) Mark the Quest giver:
  • Mark
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Special Effect - Create a special effect attached to the overhead of Paladin 0000 <gen> using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
      • Set QEffect = (Last created special effect)
(Hint: This creates the effect (the mark). I used as event: Map initialization - you can use something else - the actions are important)

3) For taking the Quest:
  • GetQuest
    • Events
      • Unit - Paladin 0000 <gen> Is selected
    • Conditions
    • Actions
      • Special Effect - Destroy QEffect
      • Trigger - Turn off (This trigger)
      • Quest - Add Quest ...... (and so on)
(Hint: This Destroy the mark if you start the quest and turns off the trigger, so the quest can only be taken once.)

4) Count centaur kills:
  • CountKills
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Centaur Khan
    • Actions
      • Set QCount = (QCount + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • QCount Equal to 20
        • Then - Actions
          • Trigger - Turn off (This trigger)
          • Game - Display to (All players) for 10.00 seconds the text: You killed 20 centaur ...
        • Else - Actions
(Hint: The kills are stored in the variable "QCount". If it equal to 20 trigger turned off)##

Hope this help you - and ofc you can add more things - this is just the basic you need - Have fun!
 
Level 5
Joined
Oct 18, 2009
Messages
149
Seas =)

Often times questions about quests but listen now =)

1) Create 2 variables
- 1: Name: QEffect / Type: Special Effect
- 2: Name: QCount / Type: Integer

2) Mark the Quest giver:
  • Mark
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Special Effect - Create a special effect attached to the overhead of Paladin 0000 <gen> using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
      • Set QEffect = (Last created special effect)
3) For taking the Quest:
  • GetQuest
    • Events
      • Unit - Paladin 0000 <gen> Is selected
    • Conditions
    • Actions
      • Special Effect - Destroy QEffect
      • Trigger - Turn off (This trigger)
      • Quest - Add Quest ...... (and so on)
4) Count centaur kills:
  • CountKills
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Centaur Khan
    • Actions
      • Set QCount = (QCount + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • QCount Equal to 20
        • Then - Actions
          • Trigger - Turn off (This trigger)
          • Game - Display to (All players) for 10.00 seconds the text: You killed 20 centa...
        • Else - Actions

Ah, way ahead of me :gg:
 
Level 13
Joined
Oct 1, 2009
Messages
596
Thank you! Now I got that fixed:grin:. But I can only take the quest 1 time, tho I actually changed my mind about that. Now i want it to be a "1-time-quest" but i got another question, how do i make a following quest that you can only get if you completed the Centaur quest? rep+
 
Level 5
Joined
Oct 18, 2009
Messages
149
Thank you! Now I got that fixed:grin:. But I can only take the quest 1 time, tho I actually changed my mind about that. Now i want it to be a "1-time-quest" but i got another question, how do i make a following quest that you can only get if you completed the Centaur quest? rep+

Make a trigger with the other quest that is activated when the current quest is finished. (Or cinematic, in some cases)
 
Level 16
Joined
May 1, 2008
Messages
1,605
Seas =)

About the following quest.
You just create a second trigger this is " Initially off" ( You can remove the mark at "Initially on" )

After you kill this centaur, you can turn this trigger on (with the new quest).
  • Trigger - Turn on (The Trigger with the second quest)

Or you do the following (if it is the same quest giver):
1) Create a variable named "CentQuest" and type: Quest
2) Add to the trigger (where you take the quest) the line:
  • Set CentQuest = (Last created quest)
(after you created it ofc)

If you killed the 20 centaur - you go back to the quest giver and get your reward. Now you can use:
  • Quest - Change the title of CentQuest to Centaur Quest Part 2
  • Quest - Change the description of CentQuest to Now kill the centaur king
and so on =)
 
Status
Not open for further replies.
Top