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

Dialog Problem

Status
Not open for further replies.
Level 8
Joined
Aug 1, 2008
Messages
420
Ok, i have a dialog problem. I made it that whenever a person presses esc, a dialog pops up, with options on which character they want to be.
BUT.
If one person has the dialog up, and then another player presses esc, the buttons dissapear from the 1st persons dialog box. And then he cant do anything, cant talk, cant go to the menu, and the only thing left for him is to ALT+f4 out of warcraft. How can i stop this from happening?
 
Level 8
Joined
Aug 1, 2008
Messages
420
I thought GetLocalPlayer() causes desyncs >.>
+ I got a syntax error for the "if GetLocalPlayer() == udg_Player1"
 
Level 8
Joined
Aug 1, 2008
Messages
420
Thx. Works now. +rep.
So you mean it DOES cause desyncs, BUT it rarely happens? o.0

edit: cant give rep, must spread some around.... >.> Maybe tomorrow.
 
Level 8
Joined
Aug 1, 2008
Messages
420
Ok well, i used this, and tested it with my friends 3 times, and its desynced them when they used it every time. Is there any other way?
 
Level 9
Joined
Apr 25, 2009
Messages
468
You must set the Dialogs... Here is an example:
  • Your Trigger
    • Dialog - Clear Dialog[(Player number of (Triggering player))]
Once done with that, create the buttons and SET THEM TOO, as Dialog Button Variables.
When you are done, create a:
  • Your Trigger
    • Dialog - Show Dialog[(Player number of (Triggering player))] for (Triggering Player)
That should work.
 
Level 8
Joined
Aug 1, 2008
Messages
420
Ive already done that... whenever they bring up the dialog they desync. Ill post the trigger...

  • Dialog 1
    • Events
      • Player - Player 1 (Red) skips a cinematic sequence
      • Player - Player 2 (Blue) skips a cinematic sequence
      • Player - Player 3 (Teal) skips a cinematic sequence
      • Player - Player 4 (Purple) skips a cinematic sequence
      • Player - Player 5 (Yellow) skips a cinematic sequence
    • Conditions
    • Actions
      • Set Player1 = (Triggering player)
      • Custom script: if GetLocalPlayer() == udg_Player1 then
      • Dialog - Clear DialogWindow
      • Dialog - Change the title of DialogWindow to |CFFFF0000W|CFFF609...
      • Dialog - Create a dialog button for DialogWindow labelled |CFF67FF00Sasuke|r
      • Set DialogButton[1] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow labelled |CFFFF8A00Naruto|r
      • Set DialogButton[2] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow labelled |CFFFFF200Gaara|r
      • Set DialogButton[3] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow labelled |CFF7261FFNeji|r
      • Set DialogButton[4] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow labelled |CFFFF0000Kakashi|r
      • Set DialogButton[5] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow labelled |CFF47FF00Cancel|r
      • Set DialogButton[6] = (Last created dialog Button)
      • Dialog - Show DialogWindow for Player1
      • Custom script: endif
 
Level 9
Joined
Apr 25, 2009
Messages
468
No... The Dialog should be Array that stacks for the player number...
Else it will not show for ALL players, only ONE!
Add "Array" to it, and set it as I showed above... Just try it
 
Level 8
Joined
Aug 1, 2008
Messages
420
I only want it to show for the triggering player... Not everyone... And it works perfect my way, its just its not mui so it fucks up. Maybe your way makes it mui?

But what do i do for the event trigger in my seperate triggers for when the buttons get clicked? Theres no Player Number of Triggering Player
 
Level 9
Joined
Apr 25, 2009
Messages
468
I only want it to show for the triggering player... Not everyone... And it works perfect my way, its just its not mui so it fucks up. Maybe your way makes it mui?

But what do i do for the event trigger in my seperate triggers for when the buttons get clicked? Theres no Player Number of Triggering Player

Lol yes thats what I am trying to tell you... My way wont show it to ALL players, but it will make it ABLE to be shown for ALL players, not just one :thumbs_up:
 
Level 8
Joined
Aug 1, 2008
Messages
420
Oh k... but i cant Find "Player Number of Triggering Player" in the event section for my buttons.

33x7vqb.jpg
 
Level 8
Joined
Aug 1, 2008
Messages
420
I mean for when
  • Sasuke
    • Events
      • Dialog - A dialog button is clicked for Dialog <---- this is broken, because i turned the variable into an array
    • Conditions
      • (Clicked dialog button) Equal to DialogButton[1]
    • Actions
      • Set _SasukeSwitchGroup[1] = (Units owned by (Triggering player) of type Sasuke)
      • Set _SasukeSwitchGroup[2] = (Units owned by (Triggering player) of type Naruto)
      • Set _SasukeSwitchGroup[3] = (Units owned by (Triggering player) of type Gaara)
      • Set _SasukeSwitchGroup[4] = (Units owned by (Triggering player) of type Hyuuga Clan Genius)
      • Set _SasukeSwitchGroup[5] = (Units owned by (Triggering player) of type Copy Ninja)
      • For each (Integer _SasukeIntegerVariable) from 1 to 5, do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in _SasukeSwitchGroup[_SasukeIntegerVariable] and do (Unit - Remove (Picked unit) from the game)
      • Set CreatePoint = (Center of (Playable map area))
      • Unit - Create 1 Sasuke for (Triggering player) at CreatePoint facing Default building facing degrees
      • Hero - Set (Last created unit) Hero-level to 10, Hide level-up graphics
      • Selection - Select (Last created unit) for (Triggering player)
      • Camera - Pan camera for (Triggering player) to CreatePoint over 0.70 seconds
      • For each (Integer A) from 1 to 5, do (Actions)
        • Loop - Actions
          • Custom script: call DestroyGroup (udg__SasukeSwitchGroup[bj_forLoopAIndex])
      • Custom script: call RemoveLocation(udg_CreatePoint)
Now that wont work, because ive changed the DialogWindow variable into an array. But there is no
  • Events
    • Dialog - A dialog button is clicked for DialogWindow[(Player number of (Triggering player))]
There is no [(Player Number of (Triggering player))]. So what do i put there?
 
Level 9
Joined
Apr 25, 2009
Messages
468
No no no no and nooo!
Ahhh, let me show you:

  • Dialog 1
  • Events
  • Player - Player 1 (Red) skips a cinematic sequence
  • Player - Player 2 (Blue) skips a cinematic sequence
  • Player - Player 3 (Teal) skips a cinematic sequence
  • Player - Player 4 (Purple) skips a cinematic sequence
  • Player - Player 5 (Yellow) skips a cinematic sequence
  • Conditions
  • Actions
  • Dialog - Clear Dialog[(Player number of (Triggering player))]
  • Set Player1 = (Triggering player)
  • Custom script: if GetLocalPlayer() == udg_Player1 then
  • Dialog - Change the title of Dialog[(Player number of (Triggering player))] to |CFFFF0000W|CFFF609...
  • Dialog - Create a dialog button for Dialog[(Player number of (Triggering player))] labelled |CFF67FF00Sasuke|r
  • Set DialogButton[1] = (Last created dialog Button)
  • Dialog - Create a dialog button for Dialog[(Player number of (Triggering player))] labelled |CFFFF8A00Naruto|r
  • Set DialogButton[2] = (Last created dialog Button)
  • Dialog - Create a dialog button for Dialog[(Player number of (Triggering player))] labelled |CFFFFF200Gaara|r
  • Set DialogButton[3] = (Last created dialog Button)
  • Dialog - Create a dialog button for DialogWindow labelled |CFF7261FFNeji|r
  • Set DialogButton[4] = (Last created dialog Button)
  • Dialog - Create a dialog button for Dialog[(Player number of (Triggering player))] labelled |CFFFF0000Kakashi|r
  • Set DialogButton[5] = (Last created dialog Button)
  • Dialog - Create a dialog button for Dialog[(Player number of (Triggering player))] labelled |CFF47FF00Cancel|r
  • Set DialogButton[6] = (Last created dialog Button)
  • Dialog - Show Dialog[(Player number of (Triggering player))] for Player1
  • Custom script: endif
Hold on, ill post you an example map

EDIT: Here is your PROBLEM: You MUST use World Editor!
And are you creating for Forzen Throne or Regin of Chaos?

Anyways, check the attached file for the example map...
 

Attachments

  • Example Dialog.w3m
    16 KB · Views: 45
Level 8
Joined
Aug 1, 2008
Messages
420
Yes, i know! and ive done that! But now i cant do the triggers where i actually SELECT the button. Ive already got that above trigger! Read my old post carefuly!

THIS IS FOR WHEN IM TRYING TO DO THE TRIGGERS FOR WHEN I ACTUALLY SELECT A DIALOG BUTTON
It wont let me do what i did before, what do i do for the events?
  • Sasuke
    • Events
      • Dialog - A dialog button is clicked for Dialog <---- this is broken, because i turned the variable into an array
    • Conditions
      • (Clicked dialog button) Equal to DialogButton[1]
    • Actions
      • Set _SasukeSwitchGroup[1] = (Units owned by (Triggering player) of type Sasuke)
      • Set _SasukeSwitchGroup[2] = (Units owned by (Triggering player) of type Naruto)
      • Set _SasukeSwitchGroup[3] = (Units owned by (Triggering player) of type Gaara)
      • Set _SasukeSwitchGroup[4] = (Units owned by (Triggering player) of type Hyuuga Clan Genius)
      • Set _SasukeSwitchGroup[5] = (Units owned by (Triggering player) of type Copy Ninja)
      • For each (Integer _SasukeIntegerVariable) from 1 to 5, do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in _SasukeSwitchGroup[_SasukeIntegerVariable] and do (Unit - Remove (Picked unit) from the game)
      • Set CreatePoint = (Center of (Playable map area))
      • Unit - Create 1 Sasuke for (Triggering player) at CreatePoint facing Default building facing degrees
      • Hero - Set (Last created unit) Hero-level to 10, Hide level-up graphics
      • Selection - Select (Last created unit) for (Triggering player)
      • Camera - Pan camera for (Triggering player) to CreatePoint over 0.70 seconds
      • For each (Integer A) from 1 to 5, do (Actions)
        • Loop - Actions
          • Custom script: call DestroyGroup (udg__SasukeSwitchGroup[bj_forLoopAIndex])
      • Custom script: call RemoveLocation(udg_CreatePoint)
Now that wont work, because ive changed the DialogWindow variable into an array. But there is no
  • Events
    • Dialog - A dialog button is clicked for DialogWindow[(Player number of (Triggering player))]
There is no [(Player Number of (Triggering player))]. So what do i put there?

This is what i can only get for the event:

33x7vqb.jpg


Do i do Array 1? What the hell do i write in the event?
 
Level 9
Joined
Apr 25, 2009
Messages
468
Why?
Ok you could try this:
  • Your Trigger
    • Actions
      • For each (Integer A) from 1 to (Number of players in (All players matching (((Matching player) slot status) Equal to Is playing))), do (Actions)
        • Loop - Actions
          • Set IntegerA = (Integer A)
          • Set Dialog[IntegerA] = DialogIntegerA
As event, use the "DialogIntegerA" dialog

  • Your Trigger
    • Events
      • Dialog - A dialog button is clicked for DialogIntegerA
 
Level 8
Joined
Aug 1, 2008
Messages
420
Nope. Doesnt work. Still bugs as usual. These are my triggers:

  • Dialog 1
    • Events
      • Player - Player 1 (Red) skips a cinematic sequence
      • Player - Player 2 (Blue) skips a cinematic sequence
      • Player - Player 3 (Teal) skips a cinematic sequence
      • Player - Player 4 (Purple) skips a cinematic sequence
      • Player - Player 5 (Yellow) skips a cinematic sequence
    • Conditions
    • Actions
      • For each (Integer A) from 1 to (Number of players in (All players matching (((Matching player) slot status) Equal to Is playing))), do (Actions)
        • Loop - Actions
          • Set IntegerA = (Integer A)
          • Set DialogWindow[IntegerA] = DialogIntegerA
      • Dialog - Clear DialogWindow[(Player number of (Triggering player))]
      • Dialog - Change the title of DialogWindow[(Player number of (Triggering player))] to |CFFFF0000W|CFFF609...
      • Dialog - Create a dialog button for DialogWindow[(Player number of (Triggering player))] labelled |CFF67FF00Sasuke|r
      • Set DialogButton[1] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow[(Player number of (Triggering player))] labelled |CFFFF8A00Naruto|r
      • Set DialogButton[2] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow[(Player number of (Triggering player))] labelled |CFFFFF200Gaara|r
      • Set DialogButton[3] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow[(Player number of (Triggering player))] labelled |CFF7261FFNeji|r
      • Set DialogButton[4] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow[(Player number of (Triggering player))] labelled |CFFFF0000Kakashi|r
      • Set DialogButton[5] = (Last created dialog Button)
      • Dialog - Create a dialog button for DialogWindow[(Player number of (Triggering player))] labelled |CFF47FF00Cancel|r
      • Set DialogButton[6] = (Last created dialog Button)
      • Dialog - Show DialogWindow[(Player number of (Triggering player))] for (Triggering player)
and one of my select triggers:

  • Sasuke
    • Events
      • Dialog - A dialog button is clicked for DialogIntegerA
    • Conditions
      • (Clicked dialog button) Equal to DialogButton[1]
    • Actions
      • Set _SasukeSwitchGroup[1] = (Units owned by (Triggering player) of type Sasuke)
      • Set _SasukeSwitchGroup[2] = (Units owned by (Triggering player) of type Naruto)
      • Set _SasukeSwitchGroup[3] = (Units owned by (Triggering player) of type Gaara)
      • Set _SasukeSwitchGroup[4] = (Units owned by (Triggering player) of type Hyuuga Clan Genius)
      • Set _SasukeSwitchGroup[5] = (Units owned by (Triggering player) of type Copy Ninja)
      • For each (Integer _SasukeIntegerVariable) from 1 to 5, do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in _SasukeSwitchGroup[_SasukeIntegerVariable] and do (Unit - Remove (Picked unit) from the game)
      • Set CreatePoint = (Center of (Playable map area))
      • Unit - Create 1 Sasuke for (Triggering player) at CreatePoint facing Default building facing degrees
      • Hero - Set (Last created unit) Hero-level to 10, Hide level-up graphics
      • Selection - Select (Last created unit) for (Triggering player)
      • Camera - Pan camera for (Triggering player) to CreatePoint over 0.70 seconds
      • For each (Integer A) from 1 to 5, do (Actions)
        • Loop - Actions
          • Custom script: call DestroyGroup (udg__SasukeSwitchGroup[bj_forLoopAIndex])
      • Custom script: call RemoveLocation(udg_CreatePoint)
 
Level 9
Joined
Apr 25, 2009
Messages
468
No... The
  • Actions
  • For each (Integer A) from 1 to (Number of players in (All players matching (((Matching player) slot status) Equal to Is playing))), do (Actions)
  • Loop - Actions
  • Set IntegerA = (Integer A)
  • Set DialogWindow[IntegerA] = DialogIntegerA
  • Dialog - Clear DialogWindow[(Player number of (Triggering player))
Should be at the end of the first trigger
 
Level 8
Joined
Aug 1, 2008
Messages
420
Confused. What do i put at the end? The
  • For each (Integer A) from 1 to (Number of players in (All players matching (((Matching player) slot status) Equal to Is playing))), do (Actions)
    • Loop - Actions
      • Set IntegerA = (Integer A)
      • Set DialogWindow[IntegerA] = DialogIntegerA
? Or the ClearDialogWindow aswell?
 
Level 9
Joined
Apr 25, 2009
Messages
468
Confused. What do i put at the end? The

  • For each (Integer A) from 1 to (Number of players in (All players matching (((Matching player) slot status) Equal to Is playing))), do (Actions)
    • Loop - Actions
      • Set IntegerA = (Integer A)
      • Set DialogWindow[IntegerA] = DialogIntegerA
? Or the ClearDialogWindow aswell?

Change your "DialogWindow" to "DialogIntegerA"
It would be 10x easier if u just send me the map and ill fix it all for you :p
 
Level 8
Joined
Aug 1, 2008
Messages
420
didnt get round to testing it before, but now it only works once. It doesnt come up a second time now :(
+ player 2 had the options 2 times over. it said "option 1, option 2, option 3, option 4, option 5, option 1, option 2, option 3, option 4, option 5."
 
Last edited:
Level 9
Joined
Apr 25, 2009
Messages
468
I know I made it only come up once, I can remove that if u want...
Gaaah! I'll check it again..
 
Status
Not open for further replies.
Top