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

[Trigger] Multiboard Crashing, v1.35 Reforged

Status
Not open for further replies.
Level 23
Joined
Jun 11, 2017
Messages
643
Hi all!
Some time age I've posted an issue about multiboard crashing from game, and seems that I've it again.
Just in case I'm adding campaign file to it, launch "Chapter A1", skip cinematic and complete wave 1 - on wave 2 you'll get crash from reason I don't know.

I think that crash comes from multiboard, because it's just crashes when multiboard loading value for 2 row - 1 row sets normally.
I'm dunno how to fix it, maybe you can help me with that?
And there's GUI for triggers I use for multiboard (commentars are on russian, but they aren't matter):
  • Init 07B MultiboardSystem
    • Events
    • Conditions
      • ((This trigger) is on) Equal to True
    • Actions
      • Trigger - Turn off (This trigger)
      • -------- Количество Волн --------
      • Set VariableSet WM_MultiT_WT_01[1] = [Wave 1/12]
      • Set VariableSet WM_MultiT_WT_01[2] = [Wave 2/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 3/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 4/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 5/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 6/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 7/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 8/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 9/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 10/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 11/12]
      • Set VariableSet WM_MultiT_WT_01[3] = [Wave 12/12]
      • Wait 0.01 seconds
      • Set VariableSet WM_MultiT_WT_02[1] = Alterac Mountains
      • -------- Настройка Типов --------
      • Set VariableSet WM_MT_EnemyT[1] = Troll
      • Set VariableSet WM_MT_EnemyT[2] = Troll Priest
      • Set VariableSet WM_MT_EnemyT[3] = Winter Wulf
      • Set VariableSet WM_MT_EnemyT[4] = Troll Pathfinder
      • Set VariableSet WM_MT_EnemyT[5] = Troll Champion
      • Set VariableSet WM_MT_EnemyT[6] = Yeti
      • Set VariableSet WM_MT_EnemyT[7] = Frostbite
      • -------- Настройка Пути --------
      • Set VariableSet WM_MT_EnemyPP[1] = NP
      • Set VariableSet WM_MT_EnemyPP[2] = SP
      • Set VariableSet WM_MT_EnemyPP[3] = CP
      • Wait 0.01 seconds
      • -------- ------------------------------------------ --------
      • -------- Настройка Количества --------
      • -------- Wave 1: ITT --------
      • Set VariableSet WM_MT_ITTEnemyC[1] = 13
      • Set VariableSet WM_MT_ITPEnemyC[1] = 0
      • Set VariableSet WM_MT_ITCEnemyC[1] = 0
      • Set VariableSet WM_MT_ITFEnemyC[1] = 0
      • Set VariableSet WM_MT_YETEnemyC[1] = 0
      • Set VariableSet WM_MT_WLFEnemyC[1] = 0
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 2: ITT + ITP --------
      • Set VariableSet WM_MT_ITTEnemyC[2] = 13
      • Set VariableSet WM_MT_ITPEnemyC[2] = 4
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 3: ITT + WLF + ITP --------
      • Set VariableSet WM_MT_ITTEnemyC[3] = 11
      • Set VariableSet WM_MT_ITPEnemyC[3] = 5
      • Set VariableSet WM_MT_WLFEnemyC[3] = 8
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 4: ITP + WLF --------
      • Set VariableSet WM_MT_ITPEnemyC[4] = 6
      • Set VariableSet WM_MT_WLFEnemyC[4] = 11
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 5: ITT + ITP + ITF --------
      • Set VariableSet WM_MT_ITTEnemyC[5] = 15
      • Set VariableSet WM_MT_ITPEnemyC[5] = 6
      • Set VariableSet WM_MT_ITFEnemyC[5] = 7
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 6: ITT + ITP + ITF --------
      • Set VariableSet WM_MT_ITTEnemyC[6] = 11
      • Set VariableSet WM_MT_ITPEnemyC[6] = 8
      • Set VariableSet WM_MT_ITFEnemyC[6] = 9
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 7: ITT + WLF + ITF --------
      • Set VariableSet WM_MT_ITTEnemyC[7] = 13
      • Set VariableSet WM_MT_WLFEnemyC[7] = 15
      • Set VariableSet WM_MT_ITFEnemyC[7] = 9
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 8: ITP + WLF + ITF + ITC --------
      • Set VariableSet WM_MT_ITPEnemyC[8] = 10
      • Set VariableSet WM_MT_WLFEnemyC[8] = 13
      • Set VariableSet WM_MT_ITFEnemyC[8] = 12
      • Set VariableSet WM_MT_ITCEnemyC[8] = 3
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 9: ITF + ITC --------
      • Set VariableSet WM_MT_ITFEnemyC[9] = 18
      • Set VariableSet WM_MT_ITCEnemyC[9] = 8
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 10: WLF + ITF + ITC + ITT --------
      • Set VariableSet WM_MT_WLFEnemyC[10] = 15
      • Set VariableSet WM_MT_ITFEnemyC[10] = 15
      • Set VariableSet WM_MT_ITCEnemyC[10] = 7
      • Set VariableSet WM_MT_ITTEnemyC[10] = 10
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 11: ITP + ITC + YET + ITT --------
      • Set VariableSet WM_MT_ITPEnemyC[11] = 9
      • Set VariableSet WM_MT_ITCEnemyC[11] = 8
      • Set VariableSet WM_MT_YETEnemyC[11] = 3
      • Set VariableSet WM_MT_ITTEnemyC[11] = 13
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Wave 12: BIG_YET + ITT + WLF + YET + ITP --------
      • Set VariableSet WM_MT_BIG_YETEnemyC[12] = 1
      • Set VariableSet WM_MT_YETEnemyC[12] = 50
      • Set VariableSet WM_MT_ITTEnemyC[12] = 255
      • Set VariableSet WM_MT_ITPEnemyC[12] = 255
      • Set VariableSet WM_MT_WLFEnemyC[12] = 255
      • Set VariableSet WM_MT_ITFEnemyC[12] = 255
      • Set VariableSet WM_MT_ITCEnemyC[12] = 255
      • -------- ------------------------------------------ --------
      • Set VariableSet WM_MT_PageFalse[1] = False
      • -------- ------------------------------------------ --------
      • Wait 0.01 seconds
      • -------- Настройка Мультиборды --------
      • Multiboard - Create a multiboard with 3 columns and 7 rows, titled <Empty String>.
      • Set VariableSet WM_Multiboard[1] = (Last created multiboard)
      • Wait 0.01 seconds
      • Multiboard - Hide WM_Multiboard[1]
      • Wait 0.01 seconds
      • -------- ------------------------------------------ --------
      • Trigger - Run WaveMultiboard IS <gen> (checking conditions)
      • Trigger - Remove (This trigger) from the trigger queue
  • WaveMultiboard IS
    • Events
    • Conditions
      • ((This trigger) is on) Equal to True
    • Actions
      • Trigger - Turn off (This trigger)
      • Multiboard - Change the title of WM_Multiboard[1] to (WM_MultiT_WT_02[1] + ( + WM_MultiT_WT_01[1]))
      • For each (Integer A) from 1 to 6, do (Actions)
        • Loop - Actions
          • -------- 01 --------
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 1, row (Integer A) to Hide text and Hide icons
          • Multiboard - Set the color for WM_Multiboard[1] item in column 1, row (Integer A) to (100.00%, 80.00%, 20.00%) with 0.00% transparency
          • Multiboard - Set the width for WM_Multiboard[1] item in column 1, row (Integer A) to 7.00% of the total screen width
          • -------- 02 --------
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 2, row (Integer A) to Hide text and Hide icons
          • Multiboard - Set the width for WM_Multiboard[1] item in column 2, row (Integer A) to 5.00% of the total screen width
          • -------- 03 --------
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 3, row (Integer A) to Hide text and Hide icons
          • Multiboard - Set the width for WM_Multiboard[1] item in column 3, row (Integer A) to 3.00% of the total screen width
  • WaveMultiboard W1 // Works normal!
    • Events
    • Conditions
      • ((This trigger) is on) Equal to True
    • Actions
      • Trigger - Turn off (This trigger)
      • Multiboard - Change the number of rows for WM_Multiboard[1] to 1
      • For each (Integer A) from 1 to 6, do (Actions)
        • Loop - Actions
          • Multiboard - Set the color for WM_Multiboard[1] item in column 1, row (Integer A) to (100.00%, 80.00%, 20.00%) with 0.00% transparency
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 1, row (Integer A) to Show text and Show icons
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 2, row (Integer A) to Show text and Hide icons
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 3, row (Integer A) to Show text and Hide icons
          • Multiboard - Set the width for WM_Multiboard[1] item in column 1, row (Integer A) to 7.00% of the total screen width
          • Multiboard - Set the width for WM_Multiboard[1] item in column 2, row (Integer A) to 5.00% of the total screen width
          • Multiboard - Set the width for WM_Multiboard[1] item in column 3, row (Integer A) to 3.00% of the total screen width
      • Wait 0.01 seconds
      • Multiboard - Set the text for WM_Multiboard[1] item in column 1, row 1 to WM_MT_EnemyT[1]
      • Multiboard - Set the icon for WM_Multiboard[1] item in column 1, row 1 to ReplaceableTextures\CommandButtons\BTNIceTroll.blp
      • Multiboard - Set the text for WM_Multiboard[1] item in column 2, row 1 to (String(WM_MT_ITTEnemyC[1]))
      • Multiboard - Set the text for WM_Multiboard[1] item in column 3, row 1 to WM_MT_EnemyPP[1]
      • -------- ------------------------------------- --------
      • -------- Remove From Queue --------
      • Trigger - Remove (This trigger) from the trigger queue
  • WaveMultiboard W2
    • Events
    • Conditions
      • ((This trigger) is on) Equal to True
    • Actions
      • Trigger - Turn off (This trigger)
      • Multiboard - Change the number of rows for WM_Multiboard[1] to 2
      • For each (Integer A) from 1 to 6, do (Actions)
        • Loop - Actions
          • Multiboard - Set the color for WM_Multiboard[1] item in column 1, row (Integer A) to (100.00%, 80.00%, 20.00%) with 0.00% transparency
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 1, row (Integer A) to Show text and Show icons
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 2, row (Integer A) to Show text and Hide icons
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 3, row (Integer A) to Show text and Hide icons
          • Multiboard - Set the width for WM_Multiboard[1] item in column 1, row (Integer A) to 7.00% of the total screen width
          • Multiboard - Set the width for WM_Multiboard[1] item in column 2, row (Integer A) to 5.00% of the total screen width
          • Multiboard - Set the width for WM_Multiboard[1] item in column 3, row (Integer A) to 3.00% of the total screen width
      • Wait 0.25 seconds
      • Multiboard - Set the text for WM_Multiboard[1] item in column 1, row 1 to WM_MT_EnemyT[1]
      • Multiboard - Set the icon for WM_Multiboard[1] item in column 1, row 1 to ReplaceableTextures\CommandButtons\BTNIceTroll.blp
      • Multiboard - Set the text for WM_Multiboard[1] item in column 2, row 1 to (String(WM_MT_ITTEnemyC[2]))
      • Multiboard - Set the text for WM_Multiboard[1] item in column 3, row 1 to WM_MT_EnemyPP[1]
      • Wait 0.25 seconds
      • //Crash is here!
      • Multiboard - Set the text for WM_Multiboard[1] item in column 1, row 2 to Troll Priest
      • Multiboard - Set the icon for WM_Multiboard[1] item in column 1, row 2 to ReplaceableTextures\CommandButtons\BTNIceTroll.blp
      • Multiboard - Set the text for WM_Multiboard[1] item in column 2, row 2 to (String(WM_MT_ITPEnemyC[2]))
      • Multiboard - Set the text for WM_Multiboard[1] item in column 3, row 2 to WM_MT_EnemyPP[1]
      • -------- ------------------------------------- --------
      • -------- Remove From Queue --------
      • Trigger - Remove (This trigger) from the trigger queue
 

Attachments

  • EOTH TD v1.02.w3n
    14.1 MB · Views: 1

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,558
I suggest deleting this crap and not wasting your time doing stuff like this:
  • Trigger - Remove (This trigger) from the trigger queue
  • ((This trigger) is on) Equal to True
  • Trigger - Turn off (This trigger)
Looks like a whole lot of useless that could cause more problems than good.

I assume the strings are what's crashing the game because of some weird character/localization thingy. Most likely one or both of these cause a crash:
  • Multiboard - Set the text for WM_Multiboard[1] item in column 2, row 2 to (String(WM_MT_ITPEnemyC[2]))
  • Multiboard - Set the text for WM_Multiboard[1] item in column 3, row 2 to WM_MT_EnemyPP[1]
 
Level 23
Joined
Jun 11, 2017
Messages
643
I suggest deleting this crap and not wasting your time doing stuff like this:
  • Trigger - Remove (This trigger) from the trigger queue
  • ((This trigger) is on) Equal to True
  • Trigger - Turn off (This trigger)
Then make sure your Strings aren't crashing the game. It's probably a weird localization issue.
Thank you for your suggestion, but I'm forget to say that I somehow fixed this problem by next way:
I'm initializing all multiboard rows in each wave trigger, however showing data only for those which will be on current time. This way helped me to successfully test whole level and meeting no error with that.

However I'm still in wondering - does changing multiboard row amount without initializing all of them each time I use crashes the game?
Because changing strings, removing values from multiboard items still crashed Warcraft. I tried way written above - volia, it worked!
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,558
Thank you for your suggestion, but I'm forget to say that I somehow fixed this problem by next way:
I'm initializing all multiboard rows in each wave trigger, however showing data only for those which will be on current time. This way helped me to successfully test whole level and meeting no error with that.

However I'm still in wondering - does changing multiboard row amount without initializing all of them each time I use crashes the game?
Because changing strings, removing values from multiboard items still crashed Warcraft. I tried way written above - volia, it worked!
I'm not 100% sure I understand, but I honestly couldn't tell you either way.
 
Level 23
Joined
Jun 11, 2017
Messages
643
I'm not 100% sure I understand, but I honestly couldn't tell you either way.
  • WaveMultiboard W2
    • Events
    • Conditions
      • ((This trigger) is on) Equal to True
    • Actions
      • Trigger - Turn off (This trigger)
      • Multiboard - Change the number of rows for WM_Multiboard[1] to 7
      • For each (Integer A) from 1 to 2, do (Actions)
        • Loop - Actions
          • Multiboard - Set the color for WM_Multiboard[1] item in column 1, row (Integer A) to (100.00%, 80.00%, 20.00%) with 0.00% transparency
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 1, row (Integer A) to Show text and Show icons
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 2, row (Integer A) to Show text and Hide icons
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 3, row (Integer A) to Show text and Hide icons
          • Multiboard - Set the width for WM_Multiboard[1] item in column 1, row (Integer A) to 10.00% of the total screen width
          • Multiboard - Set the width for WM_Multiboard[1] item in column 2, row (Integer A) to 5.00% of the total screen width
          • Multiboard - Set the width for WM_Multiboard[1] item in column 3, row (Integer A) to 3.00% of the total screen width
      • Wait 0.25 seconds
      • Multiboard - Set the text for WM_Multiboard[1] item in column 1, row 1 to WM_MT_EnemyT[1]
      • Multiboard - Set the icon for WM_Multiboard[1] item in column 1, row 1 to ReplaceableTextures\CommandButtons\BTNIceTroll.blp
      • Multiboard - Set the text for WM_Multiboard[1] item in column 2, row 1 to (String(WM_MT_ITTEnemyC[2]))
      • Multiboard - Set the text for WM_Multiboard[1] item in column 3, row 1 to WM_MT_EnemyPP[1]
      • Wait 0.25 seconds
      • Multiboard - Set the text for WM_Multiboard[1] item in column 1, row 2 to Troll Priest
      • Multiboard - Set the icon for WM_Multiboard[1] item in column 1, row 2 to ReplaceableTextures\CommandButtons\BTNIceTroll.blp
      • Multiboard - Set the text for WM_Multiboard[1] item in column 2, row 2 to 4
      • Multiboard - Set the text for WM_Multiboard[1] item in column 3, row 2 to WM_MT_EnemyPP[1]
      • -------- ------------------------------------- --------
      • For each (Integer A) from 3 to 7, do (Actions)
        • Loop - Actions
          • Multiboard - Set the color for WM_Multiboard[1] item in column 1, row (Integer A) to (100.00%, 80.00%, 20.00%) with 0.00% transparency
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 1, row (Integer A) to Hide text and Hide icons
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 2, row (Integer A) to Hide text and Hide icons
          • Multiboard - Set the display style for WM_Multiboard[1] item in column 3, row (Integer A) to Hide text and Hide icons
          • Multiboard - Set the color for WM_Multiboard[2] item in column 1, row (Integer A) to (100.00%, 80.00%, 20.00%) with 0.00% transparency
          • Multiboard - Set the width for WM_Multiboard[1] item in column 1, row (Integer A) to 0.00% of the total screen width
          • Multiboard - Set the width for WM_Multiboard[1] item in column 2, row (Integer A) to 0.00% of the total screen width
          • Multiboard - Set the width for WM_Multiboard[1] item in column 3, row (Integer A) to 0.00% of the total screen width
      • -------- ------------------------------------- --------
      • -------- Remove From Queue --------
      • Trigger - Remove (This trigger) from the trigger queue
Like that way, current trigger for Wave 2, which mentioned in topic start post.
Currently this variant works without issues.
 
Status
Not open for further replies.
Top