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

Ally System Bug, need Fix

Status
Not open for further replies.
Level 4
Joined
Jul 20, 2011
Messages
77
My friend made me an alliance system a few months ago and has stopped playing warcraft 3. his alliance system he made for my map is bugged and i have no clue how to fix it. if anyone could help me fix it, that would be very appreciated
  • setup
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Set NumberOfPlayers = 6
      • Set Ally_Command = -ally
      • Set Unally_Command = -war
      • Set Color[1] = red
      • Set Color[2] = blue
      • Set Color[3] = teal
      • Set Color[4] = purple
      • Set Color[5] = yellow
      • Set Color[6] = orange
      • For each (Integer A) from 1 to NumberOfPlayers, do (Actions)
        • Loop - Actions
          • Set PlayerName[(Integer A)] = (String((Name of (Player((Integer A))))) as Lower case)
      • For each (Integer A) from 1 to NumberOfPlayers, do (Actions)
        • Loop - Actions
          • Trigger - Add to Ally <gen> the event (Player - (Player((Integer A))) types a chat message containing Ally_Command as A substring)
          • Trigger - Add to War <gen> the event (Player - (Player((Integer A))) types a chat message containing Unally_Command as A substring)
          • Trigger - Add to Ally Accept <gen> the event (Dialog - A dialog button is clicked for DialogAlly[(Integer A)])
  • Ally
    • Events
    • Conditions
    • Actions
      • Set String = (String((Entered chat string)) as Lower case)
      • For each (Integer A) from 1 to NumberOfPlayers, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • String Equal to ((Ally_Command + ) + PlayerName[(Integer A)])
                  • String Equal to ((Ally_Command + ) + Color[(Integer A)])
                  • String Equal to ((Ally_Command + ) + (String((Integer A))))
            • Then - Actions
              • Set AskedPlayer = (Player((Integer A)))
              • Dialog - Clear DialogAlly[(Player number of AskedPlayer)]
              • Dialog - Change the title of DialogAlly[(Player number of AskedPlayer)] to (PlayerName[(Player number of (Triggering player))] + wishes to create an alliance with you)
              • Dialog - Create a dialog button for DialogAlly[(Player number of AskedPlayer)] labelled |cffadff2fYes|r
              • Set Button1[(Player number of AskedPlayer)] = (Last created dialog Button)
              • Dialog - Create a dialog button for DialogAlly[(Player number of AskedPlayer)] labelled |cffff0000No|r
              • Set Button2[(Player number of AskedPlayer)] = (Last created dialog Button)
              • Dialog - Show DialogAlly[(Player number of AskedPlayer)] for AskedPlayer
              • Set Allying_player[(Player number of (Player((Integer A))))] = (Triggering player)
            • Else - Actions
  • War
    • Events
    • Conditions
    • Actions
      • Set String = (String((Entered chat string)) as Lower case)
      • For each (Integer A) from 1 to NumberOfPlayers, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • String Equal to ((Unally_Command + ) + (String((Integer A))))
            • Then - Actions
              • Player - Make (Triggering player) treat (Player((Integer A))) as an Enemy
              • Player - Make (Player((Integer A))) treat (Triggering player) as an Enemy
              • Set PlayerMessaging = (All players matching ((Matching player) Equal to (Triggering player)))
              • Game - Display to PlayerMessaging for 10.00 seconds the text: (You have declared war on + PlayerName[(Player number of (Player((Integer A))))])
              • Custom script: call DestroyForce(udg_PlayerMessaging)
              • Set PlayerMessaging = (All players matching ((Matching player) Equal to (Player((Integer A)))))
              • Game - Display to PlayerMessaging for 10.00 seconds the text: ((Name of (Triggering player)) + has declared war on you)
              • Custom script: call DestroyForce(udg_PlayerMessaging)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • String Equal to ((Unally_Command + ) + PlayerName[(Integer A)])
                • Then - Actions
                  • Player - Make (Triggering player) treat (Player((Integer A))) as an Enemy
                  • Player - Make (Player((Integer A))) treat (Triggering player) as an Enemy
                  • Set PlayerMessaging = (All players matching ((Matching player) Equal to (Triggering player)))
                  • Game - Display to PlayerMessaging for 10.00 seconds the text: (You have declared war on + PlayerName[(Player number of (Player((Integer A))))])
                  • Custom script: call DestroyForce(udg_PlayerMessaging)
                  • Set PlayerMessaging = (All players matching ((Matching player) Equal to (Player((Integer A)))))
                  • Game - Display to PlayerMessaging for 10.00 seconds the text: ((Name of (Triggering player)) + has declared war on you)
                  • Custom script: call DestroyForce(udg_PlayerMessaging)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • String Equal to ((Unally_Command + ) + Color[(Integer A)])
                    • Then - Actions
                      • Player - Make (Triggering player) treat (Player((Integer A))) as an Enemy
                      • Player - Make (Player((Integer A))) treat (Triggering player) as an Enemy
                      • Set PlayerMessaging = (All players matching ((Matching player) Equal to (Triggering player)))
                      • Game - Display to PlayerMessaging for 10.00 seconds the text: (You have declared war on + PlayerName[(Player number of (Player((Integer A))))])
                      • Custom script: call DestroyForce(udg_PlayerMessaging)
                      • Set PlayerMessaging = (All players matching ((Matching player) Equal to (Player((Integer A)))))
                      • Game - Display to PlayerMessaging for 10.00 seconds the text: ((Name of (Triggering player)) + has declared war on you)
                      • Custom script: call DestroyForce(udg_PlayerMessaging)
                    • Else - Actions
  • Ally Accept
    • Events
    • Conditions
    • Actions
      • For each (Integer A) from 1 to NumberOfPlayers, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Clicked dialog button) Equal to Button1[(Integer A)]
            • Then - Actions
              • Player - Make (Triggering player) treat Allying_player[(Player number of (Triggering player))] as an Ally with shared vision
              • Player - Make Allying_player[(Player number of (Triggering player))] treat (Triggering player) as an Ally with shared vision
              • Set PlayerMessaging = (All players matching ((Matching player) Equal to (Triggering player)))
              • Game - Display to PlayerMessaging for 10.00 seconds the text: ((Name of Allying_player[(Player number of (Triggering player))]) + has accpeted alliance)
              • Custom script: call DestroyForce(udg_PlayerMessaging)
              • Set PlayerMessaging = (All players matching ((Matching player) Equal to Allying_player[(Player number of (Triggering player))]))
              • Game - Display to PlayerMessaging for 10.00 seconds the text: ((Name of (Triggering player)) + has became an ally)
              • Custom script: call DestroyForce(udg_PlayerMessaging)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Clicked dialog button) Equal to Button2[(Integer A)]
            • Then - Actions
              • Set PlayerMessaging = (All players matching ((Matching player) Equal to (Triggering player)))
              • Game - Display to PlayerMessaging for 10.00 seconds the text: (You has rejected alliance with + (Name of Allying_player[(Player number of (Triggering player))]))
              • Custom script: call DestroyForce(udg_PlayerMessaging)
              • Set PlayerMessaging = (All players matching ((Matching player) Equal to Allying_player[(Player number of (Triggering player))]))
              • Game - Display to PlayerMessaging for 10.00 seconds the text: ((Name of (Triggering player)) + has rejected alliance)
              • Custom script: call DestroyForce(udg_PlayerMessaging)
            • Else - Actions

Currently it only works when another player types -ally red. it does not work any other way. not sure why it is doing this because i am not very good at the editor, im learning though.

Rep will be given to whomever helps.
 
Status
Not open for further replies.
Top