• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[Solved] Random Stutters

Status
Not open for further replies.
Level 9
Joined
Sep 20, 2015
Messages
385
Hello, i have an issue on the map i am making. There is some stuttering that happens every few seconds. The map isn't that big and has one loop trigger that runs every 0.01 seconds. I tired to disable all triggers and the problem is still there.
I have imported some custom models but i dont think that's the reason.
Pach 1.31.1

Can someone help me find what's wrong?
 
Level 9
Joined
Sep 20, 2015
Messages
385
Yes and yes. Its a defense map where you have to kill waves of units. i'll post the trigger, it's not the definitive one as i am still working on it and it need polish.

  • Mouse StateCheckLoopV2
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (X of Mouse_Cursor_Position_P1) Not equal to 0.00
          • (Y of Mouse_Cursor_Position_P1) Not equal to 0.00
        • Then - Actions
          • -------- _____________________________________________LEFT BUTTON --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RED_Mouse_Left_Down Equal to True
              • RED_Mouse_Right_Down Equal to False
            • Then - Actions
              • -------- BUFFS --------
              • -------- NO BUFFS --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                • Then - Actions
                  • Special Effect - Set Position of EffectArcaneLEFT to x: (X of Mouse_Cursor_Position_P1), y: (Y of Mouse_Cursor_Position_P1), z: (Z_loc_P1 + 1.00)
                  • Custom script: call BlzSetSpecialEffectPosition( udg_EffectArcaneLEFT, udg_MOUSEX, udg_MOUSEY, udg_Z_loc_P1 + 1.00 )
                  • Special Effect - Create a special effect at Mouse_Cursor_Position_P1 using war3mapImported\CullingSlashAnimnModWHITE_Test4.mdx
                  • Special Effect - Set Color of (Last created special effect) to r: 133, g: 0, b: 133
                  • Special Effect - Set Scale of (Last created special effect) to 1.00
                  • Special Effect - Destroy (Last created special effect)
                • Else - Actions
                  • -------- DIVINE SHIELD --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to True
                      • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                      • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                      • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                      • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                    • Then - Actions
                      • Special Effect - Set Position of EffectICELEFT to x: (X of Mouse_Cursor_Position_P1), y: (Y of Mouse_Cursor_Position_P1), z: Z_loc_P1
                      • Special Effect - Create a special effect at Mouse_Cursor_Position_P1 using war3mapImported\Confirmation_ByEpsilonArrows.mdx
                      • Special Effect - Set Color of (Last created special effect) to r: 9, g: 140, b: 190
                      • Special Effect - Set Scale of (Last created special effect) to 1.00
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                      • -------- AVATAR --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to True
                          • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                          • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                          • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                          • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                        • Then - Actions
                          • Special Effect - Set Position - X of TeleportSelectionPreviewEffect to (X of Mouse_Cursor_Position_P1)
                          • Special Effect - Set Position - Y of TeleportSelectionPreviewEffect to (Y of Mouse_Cursor_Position_P1)
                          • Special Effect - Set Position - Z of TeleportSelectionPreviewEffect to (Z_loc_P1 + 0.00)
                        • Else - Actions
                          • -------- IMMOLATION --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to True
                              • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                              • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                              • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                              • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                            • Then - Actions
                              • Special Effect - Create a special effect at Mouse_Cursor_Position_P1 using war3mapImported\CullingSlashAnimnModWHITE_Test4.mdx
                              • Special Effect - Set Scale of (Last created special effect) to 0.45
                              • Special Effect - Set Color of (Last created special effect) to r: 255, g: 90, b: 25
                              • Special Effect - Destroy (Last created special effect)
                            • Else - Actions
                              • -------- MANA SHIELD --------
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to True
                                  • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                                  • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                                  • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                                  • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                                • Then - Actions
                                  • Custom script: set bj_wantDestroyGroup = true
                                  • Unit Group - Pick every unit in (Units within 256.00 of Mouse_Cursor_Position_P1 matching ((((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)
                                    • Loop - Actions
                                      • Set Angle_ofwaterPushUnit = (Angle from (Position of (Picked unit)) to Mouse_Cursor_Position_P1)
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Distance between Mouse_Cursor_Position_P1 and (Position of (Picked unit))) Less than 10.00
                                        • Then - Actions
                                        • Else - Actions
                                          • Set Distance_ofwaterPushUnit = 2.00
                                          • Custom script: set udg_X_ofwaterPushUnit = GetLocationX(GetUnitLoc(GetEnumUnit())) + udg_Distance_ofwaterPushUnit * Cos(udg_Angle_ofwaterPushUnit * bj_DEGTORAD)
                                          • Custom script: set udg_Y_ofwaterPushUnit = GetLocationY(GetUnitLoc(GetEnumUnit())) + udg_Distance_ofwaterPushUnit * Sin(udg_Angle_ofwaterPushUnit * bj_DEGTORAD)
                                          • Set CP_Point = (Point(X_ofwaterPushUnit, Y_ofwaterPushUnit))
                                          • Trigger - Run Check Walkability <gen> (checking conditions)
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • CP_PointIsWalkable Equal to True
                                            • Then - Actions
                                              • Custom script: call SetUnitX(GetEnumUnit(), udg_X_ofwaterPushUnit)
                                              • Custom script: call SetUnitY(GetEnumUnit(), udg_Y_ofwaterPushUnit)
                                            • Else - Actions
                                              • Custom script: call SetUnitX(GetEnumUnit(),GetLocationX(GetUnitLoc(GetEnumUnit())))
                                              • Custom script: call SetUnitY(GetEnumUnit(),GetLocationY(GetUnitLoc(GetEnumUnit())))
                                          • Custom script: call RemoveLocation(udg_CP_Point)
                                  • Special Effect - Set Scale of WaterChargingEffect to (0.50 + (PrgoressBarAnimSpeed / 210.00))
                                  • Special Effect - Set Position - X of WaterChargingEffect to (X of Mouse_Cursor_Position_P1)
                                  • Special Effect - Set Position - Y of WaterChargingEffect to (Y of Mouse_Cursor_Position_P1)
                                  • Special Effect - Set Position - Z of WaterChargingEffect to (Z_loc_P1 + 100.00)
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • ProgressBarValuse Less than 300
                                    • Then - Actions
                                      • Set ProgressBarValuse = (ProgressBarValuse + 1)
                                      • Animation - Change ProgressBarUnit's animation speed to 33.00% of its original speed
                                    • Else - Actions
                                      • Unit - Change color of ProgressBarUnit to Blue
                                  • Unit - Move ProgressBarUnit instantly to Mouse_Cursor_Position_P1
                                • Else - Actions
            • Else - Actions
          • -------- ____________________________________________________RIGHT BUTTON --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RED_Mouse_Right_Down Equal to True
              • RED_Mouse_Left_Down Equal to False
            • Then - Actions
              • -------- BUFFS --------
              • -------- NO BUFFS --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                • Then - Actions
                • Else - Actions
                  • -------- __________________________________________________________DIVINE SHIELD --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to True
                      • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                      • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                      • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                      • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                    • Then - Actions
                      • Unit - Move IceWallUnit instantly to Mouse_Cursor_Position_P1
                      • Animation - Play IceWallUnit's Stand Hit animation
                      • -------- PathingCheck --------
                    • Else - Actions
                      • -------- MANA SHIELD --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to True
                          • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                          • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                          • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                          • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                        • Then - Actions
                          • Unit - Move DummyFacing instantly to Mouse_Cursor_Position_P1
                          • Unit - Make WaterEle face DummyFacing over 0.00 seconds
                        • Else - Actions
                          • -------- IMMOLATION --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to True
                              • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                              • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                              • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                              • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                            • Then - Actions
                              • Special Effect - Create a special effect at Mouse_Cursor_Position_P1 using war3mapImported\Void Rift OrangeNoSOund.mdx
                              • Special Effect - Set Color of (Last created special effect) to r: 244, g: 75, b: 50
                              • Special Effect - Set Scale of (Last created special effect) to 0.45
                              • Special Effect - Destroy (Last created special effect)
                            • Else - Actions
                              • -------- AVATAR --------
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to True
                                  • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                                  • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                                  • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                                  • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                                • Then - Actions
                                  • Set CP_Point = Mouse_Cursor_Position_P1
                                  • Trigger - Run Check Walkability <gen> (checking conditions)
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • CP_PointIsWalkable Equal to True
                                    • Then - Actions
                                      • Set Teleportunitprev_X = (X of Mouse_Cursor_Position_P1)
                                      • Set Teleportunitprev_Y = (Y of Mouse_Cursor_Position_P1)
                                      • Custom script: call SetUnitX(udg_Teleport_Unit_OUT_Preview, udg_Teleportunitprev_X)
                                      • Custom script: call SetUnitY(udg_Teleport_Unit_OUT_Preview, udg_Teleportunitprev_Y)
                                    • Else - Actions
                                • Else - Actions
            • Else - Actions
          • -------- __________________________RIGHT+LEFT BUTTON______________ --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (RED_Mouse_Left_Down Equal to True) and (RED_Mouse_Right_Down Equal to True)
            • Then - Actions
              • -------- BUFFS --------
              • -------- WIND WALK --------
              • -------- NO BUFFS --------
              • Set RED_Mouse_LeftAndRight_down = True
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                  • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                • Then - Actions
                  • Custom script: call SetImagePosition( udg_SelectionImagePreview, udg_MOUSEX - 256, udg_MOUSEY - 256 , udg_Z_loc_P1 )
                  • Special Effect - Create a special effect at Mouse_Cursor_Position_P1 using war3mapImported\CullingSlashAnimnModWHITE_Test4.mdx
                  • Special Effect - Set Scale of (Last created special effect) to 1.50
                  • Special Effect - Set Color of (Last created special effect) to r: 50, g: 0, b: 50
                  • Special Effect - Destroy (Last created special effect)
                • Else - Actions
                  • -------- DIVINE SHIELD --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to True
                      • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                      • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                      • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                      • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                    • Then - Actions
                      • Unit - Hide IceWallUnit
                      • Special Effect - Create a special effect at Mouse_Cursor_Position_P1 using war3mapImported\CullingSlashAnimnModWHITE_Test4.mdx
                      • Special Effect - Set Scale of (Last created special effect) to 1.50
                      • Special Effect - Set Color of (Last created special effect) to r: 0, g: 0, b: 100
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                      • -------- MANA SHIELD --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to True
                          • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                          • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                          • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                          • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                        • Then - Actions
                        • Else - Actions
                          • -------- IMMOLATION --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to True
                              • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                              • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to False
                              • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                              • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                            • Then - Actions
                            • Else - Actions
                              • -------- AVATAR --------
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Archmage Selectable 0001 <gen> has buff Mana Shield) Equal to False
                                  • (Archmage Selectable 0001 <gen> has buff Avatar) Equal to True
                                  • (Archmage Selectable 0001 <gen> has buff Divine Shield) Equal to False
                                  • (Archmage Selectable 0001 <gen> has buff Immolation) Equal to False
                                  • (Archmage Selectable 0001 <gen> has buff Wind Walk) Equal to False
                                • Then - Actions
                                  • Special Effect - Set Position of AvatarSpecialEffect to x: (X of Mouse_Cursor_Position_P1), y: (Y of Mouse_Cursor_Position_P1), z: Z_loc_P1
                                  • Unit - Cause Archmage Selectable 0001 <gen> to damage circular area after 0.00 seconds of radius (0.00 + (0.00 + 133.00)) at Mouse_Cursor_Position_P1, dealing (0.00 + (0.00 + 3.00)) damage of attack type Spells and damage type Normal
                                • Else - Actions
                                  • Special Effect - Destroy AvatarSpecialEffect
            • Else - Actions
              • Set RED_Mouse_LeftAndRight_down = False
        • Else - Actions
          • Special Effect - Destroy (Last created special effect)
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,287
Such trigger will not cause perodic stutter.

Melee AI is known to generate periodic stutter if the map pathing is complex and not all areas can be reached by ground units. Common examples are island maps or maps where there are trigger based "teleport" areas to move between ground pathing islands like in RPGs.

I also suggest deleting the Warcraft III Video settings registry folder and letting the game rebuild it with default values. Some old values might degrade performance. Also make sure to set the video settings appropriately for your system.

Another possible cause can be due to the game running in windowed mode. Try running in fullscreen (not windowed) via command line. Some applications can stall the window management system which is responsible for presenting windowed applications such as windowed fullscreen mode.
 
Level 9
Joined
Sep 20, 2015
Messages
385
Such trigger will not cause perodic stutter.

Melee AI is known to generate periodic stutter if the map pathing is complex and not all areas can be reached by ground units. Common examples are island maps or maps where there are trigger based "teleport" areas to move between ground pathing islands like in RPGs.

I also suggest deleting the Warcraft III Video settings registry folder and letting the game rebuild it with default values. Some old values might degrade performance. Also make sure to set the video settings appropriately for your system.

Another possible cause can be due to the game running in windowed mode. Try running in fullscreen (not windowed) via command line. Some applications can stall the window management system which is responsible for presenting windowed applications such as windowed fullscreen mode.

Thank you for the suggestions i'll try what you say.
 
Status
Not open for further replies.
Top