• 🏆 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!

Multi-target kill quest

Status
Not open for further replies.
Level 3
Joined
Oct 22, 2010
Messages
29
I looked and looked but could not find a code for multi-target kill quests. It took a while but I wrote one. Everything works except the fact it won't complete until you kill any other creep on the map. I want it to complete like it's programmed so I'll post it and ask for anyone's help that can fix this small glitch.

~~~BAD CODE~~~

  • Testing Might 3
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Quests[2] is enabled) Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Owner of (Killing unit)) Equal to Player 1 (Red)
          • (Owner of (Dying unit)) Equal to Neutral Hostile
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Unit-type of (Triggering unit)) Equal to Skeleton Archer
              • (Owner of (Killing unit)) Equal to Player 1 (Red)
            • Then - Actions
              • Set SkeletonArcherKills = (SkeletonArcherKills + 1)
              • Quest - Change the description of Quests[2] to ((Kill 2 Skeleton Archers: + (String(SkeletonArcherKills))) + /2)
              • Quest - Display to (All players) the Quest Update message: ((Skeleton Archer: + (String(SkeletonArcherKills))) + /2)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Unit-type of (Triggering unit)) Equal to Satyr
                  • (Owner of (Killing unit)) Equal to Player 1 (Red)
                • Then - Actions
                  • Set SatyrKills = (SatyrKills + 1)
                  • Quest - Change the description of Quests[2] to ((Kill 2 Sayrs: + (String(SatyrKills))) + /2)
                  • Quest - Display to (All players) the Quest Update message: ((Satyr: + (String(SatyrKills))) + /2)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Unit-type of (Triggering unit)) Equal to Satyr Trickster
                      • (Owner of (Killing unit)) Equal to Player 1 (Red)
                    • Then - Actions
                      • Set SatyrTricksterKills = (SatyrTricksterKills + 1)
                      • Quest - Change the description of Quests[2] to ((Kill 1 Satyr Trickster: + (String(SatyrTricksterKills))) + /1)
                      • Quest - Display to (All players) the Quest Update message: ((Satyr Trickster: + (String(SatyrTricksterKills))) + /1)
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Unit-type of (Triggering unit)) Equal to Lesser Voidwalker
                          • (Owner of (Killing unit)) Equal to Player 1 (Red)
                        • Then - Actions
                          • Set LesserVoidwalkerKills = (LesserVoidwalkerKills + 1)
                          • Quest - Change the description of Quests[2] to ((Kill 2 Lesser Voidwalkers: + (String(LesserVoidwalkerKills))) + /2)
                          • Quest - Display to (All players) the Quest Update message: ((Lesser Voidwalker: + (String(LesserVoidwalkerKills))) + /2)
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Unit-type of (Triggering unit)) Equal to Felguard
                              • (Owner of (Killing unit)) Equal to Player 1 (Red)
                            • Then - Actions
                              • Set FelguardKills = (FelguardKills + 1)
                              • Quest - Change the description of Quests[2] to ((Kill 2 Felguards: + (String(FelguardKills))) + /2)
                              • Quest - Display to (All players) the Quest Update message: ((Felguard: + (String(FelguardKills))) + /2)
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • SkeletonArcherKills Equal to 2
                                  • SatyrKills Equal to 2
                                  • SatyrTricksterKills Equal to 1
                                  • LesserVoidwalkerKills Equal to 2
                                  • FelguardKills Equal to 2
                                • Then - Actions
                                  • Quest - Mark Quests[2] as Completed
                                  • Quest - Display to (All players) the Quest Update message: Looks like you hand...
                                  • Player - Add 250 to Player 1 (Red) Current gold
                                  • Hero - Add 150 experience to (Killing unit), Show level-up graphics
                                  • Trigger - Turn off (This trigger)
                                • Else - Actions
        • Else - Actions
Only post on a different forum that I have recieved said to put the last conditions in a place where they stand alone and not as an else action. I haven't been programming long (two weeks to be honest), so I am stumped on where to place it and really need a pro's help. TY for reading this and when it's fixed, feel free to use it. +Rep for help.

So far I have been able to move:
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • SkeletonArcherKills Equal to 2
      • SatyrKills Equal to 2
      • SatyrTricksterKills Equal to 1
      • LesserVoidwalkerKills Equal to 2
      • FelguardKills Equal to 2
    • Then - Actions
      • Quest - Mark Quests[2] as Completed
      • Quest - Display to (All players) the Quest Update message: Looks like you hand...
      • Player - Add 250 to Player 1 (Red) Current gold
      • Hero - Add 150 experience to (Killing unit), Show level-up graphics
      • Trigger - Turn off (This trigger)
    • Else - Actions
    • Else - Actions
to the beginning of the trigger and to the far left side which is still an else action. Both moves don't work and make the quest not complete at all. So the original code stands as it is till some one can figure it out. lol In the meantime I placed another creep close enough to be seen but not add itself in the action. When it is killed, the quest completes. Any pointers?


Well kiss me and call me Susan I did it! It took all day but here is the working code and thanks to x-maul, Bankde, TomTTT, and Happy for your suggestions.

  • Untitled Trigger 002
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Quests[2] is enabled) Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Owner of (Killing unit)) Equal to Player 1 (Red)
          • (Owner of (Dying unit)) Equal to Neutral Hostile
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Unit-type of (Dying unit)) Equal to Skeleton Archer
              • (Owner of (Killing unit)) Equal to Player 1 (Red)
            • Then - Actions
              • Set SkeletonArcherKills = (SkeletonArcherKills + 1)
              • Quest - Change the description of Quests[2] to ((Kill 2 Skeleton Archers: + (String(SkeletonArcherKills))) + /2)
              • Quest - Display to (All players) the Quest Update message: ((Skeleton Archer: + (String(SkeletonArcherKills))) + /2)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Unit-type of (Dying unit)) Equal to Satyr
                  • (Owner of (Killing unit)) Equal to Player 1 (Red)
                • Then - Actions
                  • Set SatyrKills = (SatyrKills + 1)
                  • Quest - Change the description of Quests[2] to ((Kill 2 Sayrs: + (String(SatyrKills))) + /2)
                  • Quest - Display to (All players) the Quest Update message: ((Satyr: + (String(SatyrKills))) + /2)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Unit-type of (Dying unit)) Equal to Satyr Trickster
                      • (Owner of (Killing unit)) Equal to Player 1 (Red)
                    • Then - Actions
                      • Set SatyrTricksterKills = (SatyrTricksterKills + 1)
                      • Quest - Change the description of Quests[2] to ((Kill 1 Satyr Trickster: + (String(SatyrTricksterKills))) + /1)
                      • Quest - Display to (All players) the Quest Update message: ((Satyr Trickster: + (String(SatyrTricksterKills))) + /1)
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Unit-type of (Dying unit)) Equal to Lesser Voidwalker
                          • (Owner of (Killing unit)) Equal to Player 1 (Red)
                        • Then - Actions
                          • Set LesserVoidwalkerKills = (LesserVoidwalkerKills + 1)
                          • Quest - Change the description of Quests[2] to ((Kill 2 Lesser Voidwalkers: + (String(LesserVoidwalkerKills))) + /2)
                          • Quest - Display to (All players) the Quest Update message: ((Lesser Voidwalker: + (String(LesserVoidwalkerKills))) + /2)
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Unit-type of (Dying unit)) Equal to Felguard
                              • (Owner of (Killing unit)) Equal to Player 1 (Red)
                            • Then - Actions
                              • Set FelguardKills = (FelguardKills + 1)
                              • Quest - Change the description of Quests[2] to ((Kill 2 Felguards: + (String(FelguardKills))) + /2)
                              • Quest - Display to (All players) the Quest Update message: ((Felguard: + (String(FelguardKills))) + /2)
                            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SkeletonArcherKills Equal to 2
          • SatyrKills Equal to 2
          • SatyrTricksterKills Equal to 1
          • LesserVoidwalkerKills Equal to 2
          • FelguardKills Equal to 2
        • Then - Actions
          • Quest - Mark Quests[2] as Completed
          • Quest - Display to (All players) the Quest Update message: Looks like you hand...
          • Player - Add 250 to Player 1 (Red) Current gold
          • Hero - Add 200 experience to (Killing unit), Show level-up graphics
          • Trigger - Turn off (This trigger)
        • Else - Actions
 
Last edited:
Status
Not open for further replies.
Top