• 🏆 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!
  • ✅ Time to vote for the top 3 models! The POLL for Hive's 6th HD Modeling Contest: Mechanical is now open! 📅 Poll close on July 16, 2024! 🔗 Cast your vote now!
  • ✅ The POLL for Hive's Texturing Contest #33 is OPEN! Vote for the TOP 3 SKINS! 🔗Click here to cast your vote!

[Trigger] Please Help with my quest system!

Status
Not open for further replies.
Level 5
Joined
Feb 1, 2009
Messages
111
Background: This is a simple quest system that I need help with. It doesn't work at all in multiplayer.

What is supposed to happen: When a player clicks on the npc it gives him/her a quest to kill 10 Satyrs. Any other player that is within 800 range who hasnt done the quest will get the quest automatically. Unfortunately this doesnt happen in-game.

How do I fix it?

Trigger 1:

  • Theodus Satyr Quest 1 Remake
    • Events
      • Player - Player 1 (Red) Selects a unit
      • Player - Player 2 (Blue) Selects a unit
      • Player - Player 3 (Teal) Selects a unit
      • Player - Player 4 (Purple) Selects a unit
      • Player - Player 5 (Yellow) Selects a unit
      • Player - Player 6 (Orange) Selects a unit
      • Player - Player 7 (Green) Selects a unit
      • Player - Player 8 (Pink) Selects a unit
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • (Unit-type of (Triggering unit)) Equal to Theodus
          • HasSatyrQuest[(Player number of (Triggering player))] Equal to False
    • Actions
      • Set PositionofTheodus = (Position of Theodus 0108 <gen>)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 800.00 of (Position of Theodus 0108 <gen>) matching (((Owner of (Matching unit)) Not equal to Neutral Hostile) and (((Unit-type of (Matching unit)) Not equal to Backpack) and ((Owner of (Matching unit)) Not equal to Player 11 (Dark Green))))) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • HasSatyrQuest[(Player number of (Owner of (Picked unit)))] Equal to False
            • Then - Actions
              • Unit Group - Add (Picked unit) to KillSatyrs_PlayerGroup[QuestGroup[1]]
              • Sound - Play QuestNew <gen>
              • Quest - Display to (Player group((Owner of (Picked unit)))) the Quest Update message: New Quest Added: In...
              • Quest - Display to (Player group((Owner of (Picked unit)))) the Quest Update message: Help us please! Th...
              • Set HasSatyrQuest[(Player number of (Owner of (Picked unit)))] = True
              • Quest - Create a Optional quest titled Invasion of Satyrs with the description Satyrs have invaded..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp
              • Set Quest1[(Player number of (Owner of (Picked unit)))] = (Last created quest)
              • Trigger - Turn on Kill10 Satyrs <gen>
            • Else - Actions
      • Set QuestGroup[1] = (QuestGroup[1] + 1)
      • Custom script: call RemoveLocation(udg_PositionofTheodus)
Trigger 2:

  • Kill10 Satyrs
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Satyr
      • (Owner of (Killing unit)) Not equal to Player 11 (Dark Green)
    • Actions
      • Set KillingUnit = (Killing unit)
      • For each (Integer A) from 0 to QuestGroup[1], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (KillingUnit is in KillSatyrs_PlayerGroup[(Integer A)]) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SatyrKills[(Integer A)] Less than 10
                • Then - Actions
                  • Set SatyrKills[(Integer A)] = (SatyrKills[(Integer A)] + 1)
                  • Unit Group - Pick every unit in KillSatyrs_PlayerGroup[(Integer A)] and do (Actions)
                    • Loop - Actions
                      • Game - Display to (Player group((Owner of (Picked unit)))) the text: (Satyrs Killed: + ((String(SatyrKills[(Integer A)])) + / 10))
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • SatyrKills[(Integer A)] Equal to 10
                        • Then - Actions
                          • Quest - Display to (Player group((Owner of (Picked unit)))) the Quest Update message: You have shown your...
                          • Quest - Mark Quest1[(Player number of (Owner of (Picked unit)))] as Completed
                          • Hero - Add 250 experience to (Picked unit), Hide level-up graphics
                          • Quest - Display to (Player group((Owner of (Picked unit)))) the Quest Update message: You have received |...
                          • Sound - Play GoodJob <gen>
                        • Else - Actions
                • Else - Actions
            • Else - Actions
Any help appreciated.
 
Last edited:
Status
Not open for further replies.
Top