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

Need Help With a Dialog Bug

Status
Not open for further replies.
Level 6
Joined
Dec 9, 2014
Messages
176
Before you look, I know it's messy, but it works thus far for what I need. This is part of my profession system which can be activated when the first recipe is acquired through either a quest or by finding/buying the recipe book. If you have already obtained the first recipe for say, First-Aid, then any recipe books will be unuseable and will give a message saying that you already have that recipe. I thought I had that all figured out but recently while testing out some spellbooks I came across a recipe book which I already had the recipe for, I decide to click it and test it while I was doing other things and it used the book and added another First Aid button and Wool Bandages button to the dialog menus. Below are the triggers I have used for it all.

This is the quest which can give you the recipe:
  • Bandages Complete
    • Events
      • Player - Player 1 (Red) Selects a unit
    • Conditions
      • TuftsOfWool Equal to 5
      • (Triggering unit) Equal to Brom |cffffcc002|r 0006 <gen>
      • ((Sorceress is in (Units in (Region centered at (Position of Brom |cffffcc002|r 0006 <gen>) with size (350.00, 350.00)))) Equal to True) or ((Wizard is in (Units in (Region centered at (Position of Brom |cffffcc002|r 0006 <gen>) with size (350.00, 350.00)))) Equal to True)
    • Actions
      • Special Effect - Destroy QuestComplete[2]
      • Quest - Mark BandageQuest as Completed
      • Quest - Display to Player Group - Player 1 (Red) the Quest Update message: Bandaids, Quick! |c...
      • Game - Display to Player Group - Player 1 (Red) the text: |cffCC00CCEXP: +100...
      • Hero - Add 100 experience to Sorceress, Show level-up graphics
      • Hero - Add 100 experience to Wizard, Show level-up graphics
      • Wait 4.00 seconds
      • Game - Display to Player Group - Player 1 (Red) the text: |cff33CC33Brom:|r "...
      • Unit - Set life of (Triggering unit) to 100.00%
      • Item - Create 10 Gold at (Position of Brom |cffffcc002|r 0006 <gen>)
      • Set FirstAidActive = 1
      • Set BandageKnown[1] = True
      • Trigger - Turn on Wool Drops <gen>
      • Trigger - Turn on BuckleyIntro Start <gen>
      • Special Effect - Create a special effect attached to the overhead of Brom |cffffcc002|r 0006 <gen> using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
      • Set QuestAvailable[4] = (Last created special effect)
      • Wait 4.00 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ProfessionInfo Equal to 0
        • Then - Actions
          • Game - Display to Player Group - Player 1 (Red) the text: |cffffcc00Congratul...
          • Set ProfessionInfo = 1
          • Quest - Create a Required quest titled |cff33CC33Professio... with the description Throughout the game..., using icon path ReplaceableTextures\CommandButtons\BTNHammer.blp
        • Else - Actions
      • Quest - Create a Required quest titled Recipe: Wool Bandag... with the description Required Materials:..., using icon path ReplaceableTextures\CommandButtons\BTNINV_Misc_Bandage_13.blp
      • Trigger - Turn off (This trigger)
This item can also give the recipe but only if you don't already have it:
  • RecipeBook WoolBand
    • Events
      • Unit - A unit Uses an item
    • Conditions
      • (Owner of (Triggering unit)) Equal to Player 1 (Red)
      • ((Triggering unit) is A Hero) Equal to True
      • (Item-type of (Item being manipulated)) Equal to Recipe: Wool Bandages
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • BandageKnown[1] Equal to True
        • Then - Actions
          • Game - Display to Player Group - Player 1 (Red) the text: |cffffcc00You alrea...
          • Item - Set charges remaining in (Item being manipulated) to ((Charges remaining in (Last created item)) + 1)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • BandageKnown[1] Equal to False
            • Then - Actions
              • Item - Remove (Item being manipulated)
              • Set FirstAidActive = 1
              • Set BandageKnown[1] = True
              • Trigger - Turn on Wool Drops <gen>
              • Wait 1.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ProfessionInfo Equal to 0
                • Then - Actions
                  • Game - Display to Player Group - Player 1 (Red) the text: |cffffcc00Congratul...
                  • Set ProfessionInfo = 1
                  • Quest - Create a Required quest titled |cff33CC33Professio... with the description Throughout the game..., using icon path ReplaceableTextures\CommandButtons\BTNHammer.blp
                • Else - Actions
              • Quest - Create a Required quest titled Recipe: Wool Bandag... with the description Required Materials:..., using icon path ReplaceableTextures\CommandButtons\BTNINV_Misc_Bandage_13.blp
            • Else - Actions
And this is the dialog:
  • Prof Dialog
    • Events
      • Player - Player 1 (Red) Presses the Right Arrow key
    • Conditions
      • ProfessionInfo Equal to 1
    • Actions
      • Wait 0.20 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FirstAidActive Equal to 1
        • Then - Actions
          • Dialog - Create a dialog button for ProfessionMenu labelled First Aid
          • Set FirstAid = (Last created dialog Button)
          • Set FirstAidActive = 0
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CookingActive Equal to 1
        • Then - Actions
          • Dialog - Create a dialog button for ProfessionMenu labelled Cooking
          • Set Cooking = (Last created dialog Button)
          • Set CookingActive = 0
        • Else - Actions
      • Dialog - Change the title of ProfessionMenu to Professions
      • Dialog - Show ProfessionMenu for Player 1 (Red)
  • First Aid Menus
    • Events
      • Dialog - A dialog button is clicked for ProfessionMenu
    • Conditions
      • (Clicked dialog button) Equal to FirstAid
    • Actions
      • Dialog - Change the title of FirstAidRecipes[1] to First-Aid Recipes
      • Dialog - Change the title of FirstAidRecipes[2] to First-Aid Recipes ...
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • BandageKnown[1] Equal to True
        • Then - Actions
          • Dialog - Create a dialog button for FirstAidRecipes[1] labelled Wool Bandages
          • Set FirstAidRecipeButton[1] = (Last created dialog Button)
          • Set BandageKnown[1] = False
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • BandageKnown[2] Equal to True
        • Then - Actions
          • Dialog - Create a dialog button for FirstAidRecipes[1] labelled Spun Wool Bandages
          • Set FirstAidRecipeButton[2] = (Last created dialog Button)
          • Set BandageKnown[2] = False
        • Else - Actions
      • Dialog - Show FirstAidRecipes[1] for Player 1 (Red)
  • First Aid Menus Cont
    • Events
      • Dialog - A dialog button is clicked for FirstAidRecipes[1]
      • Dialog - A dialog button is clicked for FirstAidRecipes[2]
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Clicked dialog button) Equal to FirstAidNextPageButton[1]
        • Then - Actions
          • Dialog - Show FirstAidRecipes[2] for Player 1 (Red)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Clicked dialog button) Equal to FirstAidPrevPageButton[2]
        • Then - Actions
          • Dialog - Show FirstAidRecipes[1] for Player 1 (Red)
        • Else - Actions
Like I said, it's a mess! But it does everything I need it to, or at least it did when I first tested it. I don't know what has changed since then but if anyone can spot the problem I would be very grateful.
 
Status
Not open for further replies.
Top