• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Making a quest unavailable after being done

Status
Not open for further replies.
Level 4
Joined
Aug 23, 2009
Messages
85
Hello Community,
I am practicing on Map-modding and today I tried to create a trigger, who makes a Quest unavailuable if the Quest is done.
And since I can't see if the Quest is unavailuable for all then, I ask you for help ;P
The Quest shall only be unavailuable for the Player who already did the Quest, not for all other players !! (Would be kinda useless if 9 new Player are going to start and only 1 can create a soul.)

The first Trigger is for the 1st Step of the Map and just shall be an example ... I have a few more Quests already but since I make a 480x480 Map on my own, it will take some time, till the Map will be ready for release ;P

The Trigger gives a wisp with the Name "Your Soul" and it will appear at a graveyard.

  • Release your Soul
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • Quest1ReleaseYourSoul Equal to 0
      • (Item-type of (Last created item)) Equal to Soul
      • ((Buying unit) is A Hero) Equal to True
      • (Owner of (Triggering unit)) Equal to (Random player from (All players matching (((Owner of (Triggering unit)) controller) Equal to User)))
    • Actions
      • Unit - Create 1 Your Soul for (Owner of (Triggering unit)) at (Center of Graveyard <gen>) facing (Position of Spirit Caller 0000 <gen>)
      • Set Quest1ReleaseYourSoul = 1
      • Item - Remove (Item carried by (Buying unit) of type Soul)
And since you shall not get wisps like hell, there shall be a trigger which removes the Quest (Item) from the Questgiver (Shop in form of a Unit)

  • Quest Release
    • Events
      • Unit - A unit Loses an item
    • Conditions
      • (Item-type of (Item being manipulated)) Equal to Soul
      • Quest1ReleaseYourSoul Equal to 1
    • Actions
      • Neutral Building - Remove Soul from Spirit Caller 0000 <gen>
Now the problem: If the Variable "Quest1ReleaseYourSoul" is 1 will the Item(Quest) will be removed for all players or just for the one who bought the item ? And if the Quest is removed for all: Is there any way to make the Item(Quest) unavailuable for the one, who already bought it ?

BTW: If you find anything in the Triggers who can be left out, please tell me ;P
 

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,183
  • Release your Soul
    • Events
    • Unit - A unit sells a item
    • Conditions
    • Quest1ReleaseYourSoul Equal to 0
    • (Item-type of (Last sold item)) Equal to Soul
    • ((Buying unit) is A Hero) Equal to True
    • Actions
    • Unit - Create 1 Your Soul for (Owner of (Triggering unit)) at (Center of Graveyard <gen>) facing (Position of Spirit Caller 0000 <gen>)
    • Set Quest1ReleaseYourSoul = 1
    • Item - Remove (Item carried by (Buying unit) of type Soul)
 
Level 4
Joined
Aug 23, 2009
Messages
85
  • Conditions
  • Quest1ReleaseYourSoul Equal to 0
  • (Item-type of (Last sold item)) Equal to Soul
  • ((Buying unit) is A Hero) Equal to True

There is no "Last Sold Item" at the "Item-Type of (*) Equal to Soul"-Command :(

//edit: Found it xD It's now:
  • Conditions
    • (Item-type of (Sold Item)) Equal to Soul
 
Level 4
Joined
Aug 23, 2009
Messages
85
Darkgrom do you maybe know if my 2nd trigger will make the quest unavailuable for all players or just for the one who made it ?
 
Level 4
Joined
Aug 23, 2009
Messages
85
Like that ?

  • Quest Release
    • Events
      • Unit - A unit Loses an item
    • Conditions
      • ((Last created quest) is completed) Equal to True
      • (Item-type of (Item being manipulated)) Equal to Soul
      • Quest1ReleaseYourSoul Equal to 1
    • Actions
      • Neutral Building - Remove Soul from Spirit Caller 0000 <gen>
 

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,183
  • Release your Soul
    • Events
    • Unit - A unit sells a item
    • Conditions
    • ((your quest variable here) is completed) Equal to False
    • Quest1ReleaseYourSoul Equal to 0
    • (Item-type of (Last sold item)) Equal to Soul
    • ((Buying unit) is A Hero) Equal to True
    • Actions
    • Unit - Create 1 Your Soul for (Owner of (Triggering unit)) at (Center of Graveyard <gen>) facing (Position of Spirit Caller 0000 <gen>)
    • Set Quest1ReleaseYourSoul = 1
    • Item - Remove (Item carried by (Buying unit) of type Soul)
 
Level 4
Joined
Aug 23, 2009
Messages
85
Well there is no need to make another variable then, since the "Quest1ReleaseYourSoul" Variable is set to 1 after this Trigger, but the condition says that this variable has to be 0.
I want the Quest to disappear for the Player, when it's done and not that you cant do it, when you press the button you know what i mean ?
It's like a Shop is selling an Item you just can have once and after you buy it, the Item disappears from the Shop, but all the others, who dont have that item shall still be able to buy it.
Example:
Player 1 (Red) is buying a Unique Sword.
If Player 1 (Red) looks at the Shop now, the Unique Sword is gone (Only for him !)
All the other Players can still buy the Sword, only Red can't since he has one !
Hope you will understand it better now ^^
 
Level 4
Joined
Aug 23, 2009
Messages
85
Because i don't like it, when you still can press on the Buttons for Quests that you have already done or can't do at the moment (level to low / pre-quests not done)
 
Last edited:
Status
Not open for further replies.
Top