Creating quest.

Darkonight

New Member
Reaction score
2
I want to create a quest like this:

The quest giver is like a shop and and quests are like thing u buy. and theres like 3 of them. Like in twilights eve.

So, Units is within range of quest giver. Unit pick quest with lvl req of 1-5 and get it. Quest is to kill 10 bandit, every time a bandit is killed it comes up 1/10, 2/10. 3/10... and so on.

When all bandits are killed you get within a 200 range of unit and the reward is given to you. (Exp and Gold)


Please help me. I know It's a challange but someone gotta know :O
 

dorbian

New Member
Reaction score
1
okay as i don't know how well you are know with Warcraft triggers, but this is going to require some.

As this requires a lot of triggers to be build, i'm going to outline the way how to proceed this rather then the triggers itself.

doing this partially out the top of my head so you may have to troubleshoot a bit.

Create 3 custom items, these items don't have to do anything apart from being bought.
create a trigger per item, Basic trigger lineout:
Trigger:
  • event
    • unit acquires an item
    • conditions
      • (item-type of (Sold Item)) Equal to item1
      • (item-type of (Sold Item)) Equal to item2
      • (item-type of (Sold Item)) Equal to item3
    • Actions
      • if (all conditions are true) then do ( then actions ) else do ( else actions )
        • if - Conditions
          • (item-type of (Sold Item)) Equal to item1
        • then - Actions
          • create a required quest titled title with the description description, using icon path etc.
          • set quests[0] = last created quest (( quest variable ))
          • Remove (Item carried by hero of type ... )
        • else - Actions
          • do nothing
      • if (all conditions are true) then do ( then actions ) else do ( else actions )
        • if - Conditions
          • (item-type of (Sold Item)) Equal to item1
        • then - Actions
          • create a required quest titled title with the description description, using icon path etc.
          • set quests[1] = last created quest (( quest variable ))
          • Remove (Item carried by hero of type ... )
        • else - Actions
          • do nothing
      • if (all conditions are true) then do ( then actions ) else do ( else actions )
        • if - Conditions
          • (item-type of (Sold Item)) Equal to item1
        • then - Actions
          • create a required quest titled title with the description description, using icon path etc.
          • set quests[2] = last created quest (( quest variable ))
          • Remove (Item carried by hero of type ... )
        • else - Actions
          • do nothing


that basicly covers the creation of the quest from an item.

this doesn't cover the level requirement yet, and to be honest i don't have an idea how to cover that yet, what i would do is create a region that checks the level of the unit entering and teleporting it to the store that holds the quests for that units level and when moving away to far from the store back to where the unit came from ( doable by using variables ).

the killing of the units can be tracked per player in a variable and you can put that message onto the screen with a standard text trigger that work when a unit is killed.

retrieving the quest i have no clue how to do that to be honest.

Sorry i didn't spam you with code but i require a map that has been worked on a bit to be able to build you something and properly test it.

Good luck and let me know.

-D
 

Darkonight

New Member
Reaction score
2
Yea... Thanks but I'm gonna need a litle more then that, Rly wanna know how the hole thing is done :/ From taking the quest to turning it in.

Could someone just post a quest system like in "Twilight's Eve" :D

"Taking quest by klicking on (In the style of buying an item)"

"Do quest by killing ____ Unit ____ times."

"Every time you kill one of the required units you (And you only) gets a message saying (1/10 - 10/10 (Bandits))."

"Then Turn in quest by going close to the quest Giver."



If any1 knows how this is done i would be very greatful!
 

Darkonight

New Member
Reaction score
2
You I already checked out the thread and youtbue clip and its not rly what im looking for (I allways look on google and youtube for solution before bothering you all :). )

And I guess If no1 knows this or If no1 wanna help me with this i could sit and learn how It works wuth the Demo map :/


Anyway, Thanks.


Alright... I'm never gonna figure this shit out on my own. Less then one month ago if someone asked me what i trigger was i wouldent know xD So please, if you are sitting on the answer or I's rly good at triggering, Please help me.
 

inevit4ble

Well-Known Member
Reaction score
38
the demo map I put together should be more for what you want. To start a trigger via an item purchase just use Event - Unit acquires an item and check condition will be for which item.
 

Darkonight

New Member
Reaction score
2
Yea... "Taking quest by klicking on (In the style of buying an item)"

"Do quest by killing ____ Unit ____ times."

"Then Turn in quest by going close to the quest Giver."

I think i could learn after giving my brain an extrem workout... but then to make them work together and to make
"Every time you kill one of the required units you (And you only) gets a message saying (1/10 - 10/10 (Bandits))." work sems Impossible :O
 

Cyte

New Member
Reaction score
0
My quest is Frog slaying and here is the trigger:
Trigger:
  • Frog Slayer
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • (Item-type of (Item being manipulated)) Equal to Quest 1
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • (FrogSlayer[1] is completed) Equal to True
              • (FrogSlayer[1] is discovered) Equal to False
        • Then - Actions
          • Quest - Destroy FrogSlayer[1]
          • Game - Display to (All players) for 5.00 seconds the text: |cCF7DBEF1Quest Boa...
          • Quest - Create a Optional quest titled Frog Slayer with the description |cCF0041FFFrog Slay..., using icon path ReplaceableTextures\CommandButtons\BTNHex.blp
          • Set FrogSlayer[1] = (Last created quest)
          • Trigger - Turn on Frog Slayer Next <gen>
        • Else - Actions
          • Game - Display to (All players) for 5.00 seconds the text: |cCF7DBEF1Quest Boa...
          • Player - Add 50 to (Owner of (Triggering unit)) Current gold


Trigger:
  • Frog Slayer Next
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Frog
    • Actions
      • Set FrogSlayerKills = (FrogSlayerKills + 1)
      • Game - Display to (All players) for 3.00 seconds the text: (|cCF7DBEF1Frog Kill(s)|r: + ((String(FrogSlayerKills)) + /20))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FrogSlayerKills Greater than or equal to 20
        • Then - Actions
          • Game - Display to (All players) for 10.00 seconds the text: |cCF7DBEF1Quest Boa...
          • Quest - Change the description of FrogSlayer[1] to |cCF0041FFFrog Slay...
          • Trigger - Turn off (This trigger)
          • Trigger - Turn on Frog Slayer Reward <gen>
        • Else - Actions


Trigger:
  • Frog Slayer Reward
    • Events
      • Unit - A unit comes within 200.00 of |cCF1BE5B8Quest Board - Tier 1|r 0455 <gen>
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • FrogSlayerKills Greater than or equal to 20
          • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Game - Display to (All players) for 10.00 seconds the text: |cCF7DBEF1Quest Boa...
      • Hero - Create 100 Gold and give it to (Triggering unit)
      • Unit Group - Pick every unit in Unit_Group_1 and do (Actions)
        • Loop - Actions
          • Hero - Add 100 experience to (Picked unit), Show level-up graphics
          • Floating Text - Create floating text that reads |cCF1BE5B8Quest Com... at (Position of (Picked unit)) with Z offset 60.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
          • Set FloatingText1 = (Last created floating text)
          • Floating Text - Change FloatingText1: Disable permanence
          • Floating Text - Change the lifespan of FloatingText1 to 2.00 seconds
          • Floating Text - Change the fading age of FloatingText1 to 1.00 seconds
          • Floating Text - Set the velocity of FloatingText1 to 64.00 towards 90.00 degrees
      • Quest - Mark FrogSlayer[1] as Completed
      • Set FrogSlayerKills = 0
      • Trigger - Turn off (This trigger)
 

inevit4ble

Well-Known Member
Reaction score
38
To send a message to only one player, preset a player group variable at the start of the trigger, say MyPlayerGroup, and set it to Triggering player and display message to MyPlayerGroup. and catch the leak at the end.

For the killing part you would have to have array variables to monitor each players progress instead of a general one.
 

Darkonight

New Member
Reaction score
2
I just found the answer by downloading an Unprotected Twilights eve Map... Though i share It if any1 els wanted to know:

Riding the Satyrs A

Trigger:
  • Ridding the Satyrs A
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • (Item-type of (Item being manipulated)) Equal to Ridding the Satyrs
      • ((Triggering unit) is A Hero) Equal to True
      • (Hero level of (Triggering unit)) Less than or equal to 10
      • ((Owner of (Triggering unit)) is in QuestGroup[1]) Equal to False
    • Actions
      • Player Group - Add (Owner of (Triggering unit)) to QuestGroup[1]
      • Game - Display to (Player group((Owner of (Triggering unit)))) the text: |cffffcc00Skypper|r...
      • Quest - Create a Required quest titled (Ridding the Satyrs ( + ((Name of (Owner of (Triggering unit))) + ))) with the description Get rid of 5 Satyrs..., using icon path ReplaceableTextures\CommandButtons\BTNFelHound.blp
      • Set RiddingSatyrsQuest[(Player number of (Owner of (Triggering unit)))] = (Last created quest)




Riding the Satyrs B

Trigger:
  • Ridding the Satyrs B
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Satyr
      • ((Owner of (Killing unit)) is in QuestGroup[1]) Equal to True
    • Actions
      • Set Satyrs[(Player number of (Owner of (Killing unit)))] = (Satyrs[(Player number of (Owner of (Killing unit)))] + 1)
      • If (Satyrs[(Player number of (Owner of (Killing unit)))] Greater than or equal to 5) then do (Quest - Display to (Player group((Owner of (Killing unit)))) the Quest Completed message: |cffffcc00Ridding t...) else do (Quest - Display to (Player group((Owner of (Killing unit)))) the Quest Update message: ((String(Satyrs[(Player number of (Owner of (Killing unit)))])) + Satyr(s) killed.))


Riding the Satyrs C

Trigger:
  • Ridding the Satyrs C
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • Satyrs[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 5
      • (Unit-type of (Target unit of issued order)) Equal to Skypper
      • ((Triggering unit) is in (Units within 300.00 of (Position of (Target unit of issued order)))) Equal to True
    • Actions
      • Player Group - Remove (Owner of (Triggering unit)) from QuestGroup[1]
      • Quest - Destroy RiddingSatyrsQuest[(Player number of (Owner of (Triggering unit)))]
      • Set Satyrs[(Player number of (Owner of (Triggering unit)))] = 0
      • Sound - Play WarlockAppears <gen>
      • Game - Display to (Player group((Owner of (Ordered unit)))) for 5.00 seconds the text: |cffffcc00You have ...
      • Hero - Add 1200 experience to (Triggering unit), Show level-up graphics
      • Player - Add 400 to (Owner of (Triggering unit)) Current gold


Variebles: QuestGroup is a Player Group Varieble. It has an array zise of (Number of players).

RiddingSatyrsQuest is a Quest Varieble. It has an array zise of 1.

Satys is a Integer Varieble. It has an Array zise of 1.

The text for "Then do" (Complete): |cffffcc00Ridding the Satyrs|r Quest Requirement Completed.

The Text for "Els do" (Every kill that isn't a Complete)
 

Darkonight

New Member
Reaction score
2
Trigger:
  • Exploration A
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • (Item-type of (Item being manipulated)) Equal to Exploration
      • ((Triggering unit) is A Hero) Equal to True
      • (Hero level of (Triggering unit)) Greater than or equal to 50
      • ((Owner of (Triggering unit)) is in LinkedQuestGroup[1]) Equal to False
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Owner of (Triggering unit)) is in LinkedQuestCompleted[1]) Equal to False
        • Then - Actions
          • Player Group - Add (Owner of (Triggering unit)) to LinkedQuestGroup[1]
          • Game - Display to (Player group((Owner of (Triggering unit)))) the text: |cffffcc00Skypper|r...
          • Quest - Create a Required quest titled (Exploration ( + ((Name of (Owner of (Triggering unit))) + ))) with the description A new adventure huh..., using icon path ReplaceableTextures\CommandButtons\BTNSpy.blp
          • Set ExplorationQuest[(Player number of (Owner of (Triggering unit)))] = (Last created quest)
        • Else - Actions
          • Do nothing


Trigger:
  • Exploration B
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Unit-type of (Target unit of issued order)) Equal to Arnold
      • ((Triggering unit) is in (Units within 300.00 of (Position of (Target unit of issued order)))) Equal to True
      • ((Owner of (Triggering unit)) is in LinkedQuestGroup[1]) Equal to True
    • Actions
      • Player Group - Remove (Owner of (Triggering unit)) from LinkedQuestGroup[1]
      • Player Group - Add (Owner of (Triggering unit)) to LinkedQuestCompleted[1]
      • Quest - Destroy ExplorationQuest[(Player number of (Owner of (Triggering unit)))]
      • Sound - Play WarlockAppears <gen>
      • Game - Display to (Player group((Owner of (Ordered unit)))) for 5.00 seconds the text: |cffffcc00You have ...
      • Game - Display to (Player group((Owner of (Ordered unit)))) for 20.00 seconds the text: |cffffcc00Arnold|r ...
      • Hero - Add 450 experience to (Triggering unit), Show level-up graphics
      • Player - Add 200 to (Owner of (Triggering unit)) Current gold


Trigger:
  • ProvingWorth A
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • (Item-type of (Item being manipulated)) Equal to Proving a Worth
      • ((Triggering unit) is A Hero) Equal to True
      • (Hero level of (Triggering unit)) Greater than or equal to 55
      • ((Owner of (Triggering unit)) is in LinkedQuestGroup[2]) Equal to False
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Owner of (Triggering unit)) is in LinkedQuestCompleted[1]) Equal to True
          • ((Owner of (Triggering unit)) is in LinkedQuestCompleted[2]) Equal to False
        • Then - Actions
          • Player Group - Add (Owner of (Triggering unit)) to LinkedQuestGroup[2]
          • Game - Display to (Player group((Owner of (Triggering unit)))) the text: |cffffcc00Arnold|r ...
          • Quest - Create a Required quest titled (Proving a Worth ( + ((Name of (Owner of (Triggering unit))) + ))) with the description I have to prove my ..., using icon path ReplaceableTextures\CommandButtons\BTNReincarnation.blp
          • Set ProvingWorthQuest[(Player number of (Owner of (Triggering unit)))] = (Last created quest)
        • Else - Actions
          • Do nothing


Trigger:
  • ProvingWorth B
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Owner of (Killing unit)) is in LinkedQuestGroup[2]) Equal to True
      • Or - Any (Conditions) are true
        • Conditions
          • (Unit-type of (Triggering unit)) Equal to Lizardman
          • (Unit-type of (Triggering unit)) Equal to Lizardman Sorcerer
          • (Unit-type of (Triggering unit)) Equal to Snap Dragon
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Unit-type of (Dying unit)) Equal to Lizardman Sorcerer) or ((Unit-type of (Dying unit)) Equal to Lizardman)
        • Then - Actions
          • Set ProvingWorth_lizardmen[(Player number of (Owner of (Killing unit)))] = (ProvingWorth_lizardmen[(Player number of (Owner of (Killing unit)))] + 1)
          • If (ProvingWorth_lizardmen[(Player number of (Owner of (Killing unit)))] Greater than or equal to 40) then do (Quest - Display to (Player group((Owner of (Killing unit)))) the Quest Update message: |cffffcc00Quest Req...) else do (Quest - Display to (Player group((Owner of (Killing unit)))) the Quest Update message: ((String(ProvingWorth_lizardmen[(Player number of (Owner of (Killing unit)))])) + Lizardman/Lizardmen killed.))
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Dying unit)) Equal to Snap Dragon
        • Then - Actions
          • Set ProvingWorth_snapdragons[(Player number of (Owner of (Killing unit)))] = (ProvingWorth_snapdragons[(Player number of (Owner of (Killing unit)))] + 1)
          • If (ProvingWorth_snapdragons[(Player number of (Owner of (Killing unit)))] Greater than or equal to 40) then do (Quest - Display to (Player group((Owner of (Killing unit)))) the Quest Update message: |cffffcc00Quest Req...) else do (Quest - Display to (Player group((Owner of (Killing unit)))) the Quest Update message: ((String(ProvingWorth_snapdragons[(Player number of (Owner of (Killing unit)))])) + Snap Dragons slain.))
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (ProvingWorth_lizardmen[(Player number of (Owner of (Killing unit)))] Greater than or equal to 40) and (ProvingWorth_snapdragons[(Player number of (Owner of (Killing unit)))] Greater than or equal to 40)
        • Then - Actions
          • Quest - Display to (Player group((Owner of (Killing unit)))) the Quest Completed message: |cffffcc00Proving a...
        • Else - Actions
          • Do nothing


Trigger:
  • ProvingWorth C
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Unit-type of (Target unit of issued order)) Equal to Arnold
      • ((Triggering unit) is in (Units within 300.00 of (Position of (Target unit of issued order)))) Equal to True
      • ((Owner of (Triggering unit)) is in LinkedQuestGroup[2]) Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (ProvingWorth_lizardmen[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 40) and (ProvingWorth_snapdragons[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 40)
        • Then - Actions
          • Player Group - Remove (Owner of (Triggering unit)) from LinkedQuestGroup[2]
          • Player Group - Add (Owner of (Triggering unit)) to LinkedQuestCompleted[2]
          • Quest - Destroy ProvingWorthQuest[(Player number of (Owner of (Triggering unit)))]
          • Sound - Play WarlockAppears <gen>
          • Game - Display to (Player group((Owner of (Ordered unit)))) for 5.00 seconds the text: |cffffcc00You have ...
          • Game - Display to (Player group((Owner of (Ordered unit)))) for 25.00 seconds the text: |cffffcc00Arnold|r ...
          • Hero - Add 19000 experience to (Triggering unit), Show level-up graphics
          • Player - Add 5100 to (Owner of (Triggering unit)) Current gold
        • Else - Actions
          • Game - Display to (Player group((Owner of (Triggering unit)))) for 5.00 seconds the text: |cffffcc00Arnold|r ...
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • 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 The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    New recipe is another summer dessert Berry and Peach Cheesecake - https://www.thehelper.net/threads/recipe-berry-and-peach-cheesecake.194169/

      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