code question

feistaghelm

New Member
Reaction score
2
Trigger:
  • 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


I've tried 3 different variations of a multiple target kill quest and none of them complete. One of them is posted already in the forums and I updated it with the help I got, but sadly it still doesn't complete. It is under "quest help" by feistaghelm Do I ned to have the killing unit listed in each condition section? Same as the triggering unit belonging to neutral hostle? If I get this code to work i will be 80% done with my map. Sorry for the long post. +Rep to any help.


UPDATE!!!

I switched the code on this page to show the multi-target code that works. Only 1 problem.... it doesn't complete unless you kill 1 more creep of any kind on the map. So close, yet so far away. How do I get it to complete within the creeps required? There should be a way to make the last condition stand for itself instead as an else action like x-maul posted below, yet I am too noob to figure that part out. Again +Rep to anyone that can fix this.
 

X-maul

AKA: Demtrod
Reaction score
201
Trigger:
  • 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
      • Unit Group - Pick every unit in (Units in (Playable map area) matching (((Triggering unit) is A Hero) Equal to True)) and do (Actions)
        • Loop - Actions
          • Hero - Add 150 experience to (Triggering unit), Show level-up graphics
    • Else - Actions
    • Else - Actions

This part needs to stand for itself, not in the else action.
Actually I would suggest you to put all the If/Then/Else for themself.
 

feistaghelm

New Member
Reaction score
2
Trigger:
  • 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
      • Unit Group - Pick every unit in (Units in (Playable map area) matching (((Triggering unit) is A Hero) Equal to True)) and do (Actions)
        • Loop - Actions
          • Hero - Add 150 experience to (Triggering unit), Show level-up graphics
    • Else - Actions
    • Else - Actions

This part needs to stand for itself, not in the else action.
Actually I would suggest you to put all the If/Then/Else for themself.



I tried moving it to the brginning of the code and have the same issue. Also what so you mean by your last line? You kinda lost me there.

I wrote a nice little bit and before I could post it the f*ing site logged me out. So I will just say that I need to know where exactly to move/add/delete a line SPECIFICALLY because I have only been coding for about two weeks. And please explain all your move/add/delete to me like a nooblet because that is what I am.
 

Happy

Well-Known Member
Reaction score
71
if you move it to the beginning it checks whether the kills are equal to the number you want and THEN it sets the kills so it wont work....you have to let it be where it is in the trigger but move it outside the big if/then/else....
 

feistaghelm

New Member
Reaction score
2
FINALLY!!!!!!
I was finally able to figure out the code placement. It took all day but here is the finished code in all it's glory. Thank you to: x-maul, happy, TomTTT, and Bankde for your suggestions. Anyone can use this code and if you have questions, I'll be happpy to answer them. But for now, goodnight.

Trigger:
  • Multiple Kill Quest
    • 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
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top