1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. The 15th Mini-Mapping Contest came to an end. The Secrets of Warcraft 3 are soon to be revealed! Come and vote in the public poll for your favorite maps.
    Dismiss Notice
  3. The 12th incarnation of the Music Contest is LIVE! The theme is Synthwave. Knight Rider needs a song to listen to on his journey. You should definitely have some fun with this theme!
    Dismiss Notice
  4. Join other hivers in a friendly concept-art contest. The contestants have to create a genie coming out of its container. We wish you the best of luck!
    Dismiss Notice
  5. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Warcraft III - Patch 1.31 PTR

Discussion in 'Latest Updates and News' started by TriggerHappy, Apr 24, 2019.

  1. Wrda

    Wrda

    Joined:
    Nov 18, 2012
    Messages:
    970
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    Does anyone know when this patch will go public? Pretty much my friend said he lagged quite heavily literally dropping to 25 fps when on ptr. I already lag on the current patch for no reason, like, the ping and fps is normal, but I get spikes very often on some games which before the current patch never lagged.
     
  2. Tommi Gustafsson

    Tommi Gustafsson

    Joined:
    May 26, 2017
    Messages:
    270
    Resources:
    6
    Tools:
    1
    Maps:
    2
    Tutorials:
    3
    Resources:
    6
    All user generated variables are global variables. As opposed to local variables, which you can declare in JASS with the keyword local.
     
  3. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    9,593
    Resources:
    1
    Maps:
    1
    Resources:
    1
    I'm being really stupid here. Does that affect GUI as well or just custom script?
     
  4. Tommi Gustafsson

    Tommi Gustafsson

    Joined:
    May 26, 2017
    Messages:
    270
    Resources:
    6
    Tools:
    1
    Maps:
    2
    Tutorials:
    3
    Resources:
    6
    Fifth bug. On my screen (1600x900), the new Open Document window is initially always too high, so that OK and Cancel buttons are not visible.

    toohighopendocumentswindow.png
     
  5. Tommi Gustafsson

    Tommi Gustafsson

    Joined:
    May 26, 2017
    Messages:
    270
    Resources:
    6
    Tools:
    1
    Maps:
    2
    Tutorials:
    3
    Resources:
    6
    Well, nothing has changed. There has always been global and local variables. The only thing what has changed now is that you can now see them in the Trigger Editor and put them into folders. But they cannot be sorted. In Dwarf Campaign, all the variables show up in a random order...
     
  6. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    9,593
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Also, every time I open up the editor, the terrain palette looks like in your image although I stretched it lower than that each time. The editor should save that state.
     
  7. Ardenaso

    Ardenaso

    Joined:
    Jun 22, 2013
    Messages:
    291
    Resources:
    0
    Resources:
    0
    I didn't see that; but still the PTR still lags
     
  8. Tommi Gustafsson

    Tommi Gustafsson

    Joined:
    May 26, 2017
    Messages:
    270
    Resources:
    6
    Tools:
    1
    Maps:
    2
    Tutorials:
    3
    Resources:
    6
    Actually, clicking ANY TEXT FIELD in the Campaign Editor -> Custom Data, where the new Tooltip Editor should show up, crashes the editor. Obiviously only a problem for campaigns.

    EDIT: No, the problem seems to be only with the following:
    Text - Tooltip - Extended
    on all objects, such as units, items, abilities, etc.
     
  9. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    9,593
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Just tried another 12 player AI match on Icecrown Glacier but ran the .exe from the x86 folder as opposed to the x86_64 one as before.

    EDIT: however, lag appears when heroes spawn or finish reviving.

    EDIT2: redid a test on Emerald Gardens on the x86_64 .exe and stuff is running smooth. I guess the lag comes from heroes respawning under warpten. FPS interval 58-60. If I deactivate Vsync I get about 120 FPS.
     
    Last edited: Apr 26, 2019
  10. _Guhun_

    _Guhun_

    Joined:
    Jun 12, 2010
    Messages:
    326
    Resources:
    7
    Spells:
    6
    Tutorials:
    1
    Resources:
    7
    Sorry if it's too much to ask, but I can't use the PTR atm. Have you tested if Thorns aura also does defensive damage?
     
  11. Ardenaso

    Ardenaso

    Joined:
    Jun 22, 2013
    Messages:
    291
    Resources:
    0
    Resources:
    0
    Screw it, I'll just wait for a hotfixed PTR or the actual release
     
  12. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    9,593
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Warcraft III - Patch 1.31 PTR
    Re-read. Now it's working well for some reason.
     
  13. lolreported

    lolreported

    Joined:
    Aug 16, 2007
    Messages:
    693
    Resources:
    10
    Tools:
    1
    Maps:
    3
    Spells:
    6
    Resources:
    10
    Yeah! I tried it and made a short demo. I'm not the best with JASS-script, but it seems to work without any issues.

    WASD Movement
    Code (vJASS):

    globals
        unit array WASD_PlayerUnit

        boolean array WASD_IsKeyDown_W
        boolean array WASD_IsKeyDown_A
        boolean array WASD_IsKeyDown_S
        boolean array WASD_IsKeyDown_D

        constant oskeytype WASD_KEY_W = ConvertOsKeyType($57)
        constant oskeytype WASD_KEY_A = ConvertOsKeyType($41)
        constant oskeytype WASD_KEY_S = ConvertOsKeyType($53)
        constant oskeytype WASD_KEY_D = ConvertOsKeyType($44)

        constant real WASD_MoveDistance = 96.0

    endglobals

    function PlayerMoveEvent_Actions takes nothing returns nothing
        local integer i = 0
        local location loc1 = null
        local location loc2 = null
        loop
        exitwhen(i > 24)
            if (WASD_IsKeyDown_W[i]) then
                set loc1 = Location(GetUnitX(WASD_PlayerUnit[i]), GetUnitY(WASD_PlayerUnit[i]))
                set loc2 = PolarProjectionBJ(loc1, WASD_MoveDistance, 90.0)
                call IssuePointOrder( WASD_PlayerUnit[i], "move", GetLocationX(loc2), GetLocationY(loc2) )
                call RemoveLocation(loc1)
                call RemoveLocation(loc2)

            elseif (WASD_IsKeyDown_S[i]) then
                set loc1 = Location(GetUnitX(WASD_PlayerUnit[i]), GetUnitY(WASD_PlayerUnit[i]))
                set loc2 = PolarProjectionBJ(loc1, WASD_MoveDistance, 270.0)
                call IssuePointOrder( WASD_PlayerUnit[i], "move", GetLocationX(loc2), GetLocationY(loc2) )
                call RemoveLocation(loc1)
                call RemoveLocation(loc2)

            elseif (WASD_IsKeyDown_A[i]) then
                set loc1 = Location(GetUnitX(WASD_PlayerUnit[i]), GetUnitY(WASD_PlayerUnit[i]))
                set loc2 = PolarProjectionBJ(loc1, WASD_MoveDistance, 180.0)
                call IssuePointOrder( WASD_PlayerUnit[i], "move", GetLocationX(loc2), GetLocationY(loc2) )
                call RemoveLocation(loc1)
                call RemoveLocation(loc2)

            elseif (WASD_IsKeyDown_D[i]) then
                set loc1 = Location(GetUnitX(WASD_PlayerUnit[i]), GetUnitY(WASD_PlayerUnit[i]))
                set loc2 = PolarProjectionBJ(loc1, WASD_MoveDistance, 0.0)
                call IssuePointOrder( WASD_PlayerUnit[i], "move", GetLocationX(loc2), GetLocationY(loc2) )
                call RemoveLocation(loc1)
                call RemoveLocation(loc2)
            endif

        set i = i + 1
        endloop

        set loc1 = null
        set loc2 = null
    endfunction

    function PlayerKeyEvent_Actions takes nothing returns nothing
        local oskeytype osKeyPressed = BlzGetTriggerPlayerKey() // What key was pressed or released?
        local boolean isKeyDown = BlzGetTriggerPlayerIsKeyDown() // Was the event key pressed or released?
     
        //Not used here, but this way we can detect the meta-key.
        //local integer metaKeyPressed = BlzGetTriggerPlayerMetaKey()


        if (osKeyPressed == WASD_KEY_W) then
            set WASD_IsKeyDown_W[GetPlayerId(GetTriggerPlayer())] = isKeyDown

        elseif (osKeyPressed == WASD_KEY_A) then
            set WASD_IsKeyDown_A[GetPlayerId(GetTriggerPlayer())] = isKeyDown

        elseif (osKeyPressed == WASD_KEY_S) then
            set WASD_IsKeyDown_S[GetPlayerId(GetTriggerPlayer())] = isKeyDown

        elseif (osKeyPressed == WASD_KEY_D) then
            set WASD_IsKeyDown_D[GetPlayerId(GetTriggerPlayer())] = isKeyDown

        endif

    endfunction

    //===========================================================================
    function InitTrig_WASD_PlayerKeyEvent takes nothing returns nothing
        local trigger t = CreateTrigger(  )
        local integer i = 0

        //takes trigger whichTrigger, player whichPlayer, oskeytype key, integer metaKey, boolean keyDown returns event

        /* metaKey = In order to fire the event the player must press down another key at the same time,
           0 = No additional key required.
           1 = Shift-key required
           2 = Ctrl-key required
           3 = ????
           4 = Alt-key required
           5+ = ????

        */


        loop
        exitwhen(i > 24)
            call BlzTriggerRegisterPlayerKeyEvent( t, Player(i), WASD_KEY_W, 0, true ) // Presses the "W"-key.
            call BlzTriggerRegisterPlayerKeyEvent( t, Player(i), WASD_KEY_W, 0, false )// Releases the "W"-key.

            call BlzTriggerRegisterPlayerKeyEvent( t, Player(i), WASD_KEY_A, 0, true ) // Presses the "A"-key.
            call BlzTriggerRegisterPlayerKeyEvent( t, Player(i), WASD_KEY_A, 0, false )// Releases the "A"-key.

            call BlzTriggerRegisterPlayerKeyEvent( t, Player(i), WASD_KEY_S, 0, true ) // Presses the "S"-key.
            call BlzTriggerRegisterPlayerKeyEvent( t, Player(i), WASD_KEY_S, 0, false )// Releases the "S"-key.

            call BlzTriggerRegisterPlayerKeyEvent( t, Player(i), WASD_KEY_D, 0, true ) // Presses the "D"-key.
            call BlzTriggerRegisterPlayerKeyEvent( t, Player(i), WASD_KEY_D, 0, false )// Releases the "D"-key.
        set i = i + 1
        endloop

        call TriggerAddAction( t, function PlayerKeyEvent_Actions )

        set t = null

        set t = CreateTrigger(  )
        call TriggerRegisterTimerEvent( t, 0.03, true )
        call TriggerAddAction( t, function PlayerMoveEvent_Actions )

    endfunction
     


    Uploaded the map file (requires Patch 1.31 PTR to open)
     

    Attached Files:

  14. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    25,364
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    It is the new input event which can register any key. The function is available with JASS2 (JASS) as are all functions. Lua uses these as well via JASS2Lua. Hence with exception of Lua native language features, JASS2 supports everything Lua does as far as interfacing with Warcraft III.

    JASS2 is Warcraft III JASS. JASS1 is StarCraft (1) JASS. What we call JASS in Warcraft III is technically JASS2 as far as the developers are concerned.
    It does matter what hardware you are using because older hardware may perform worse with modern builds. This is because modern compilers emit code optimized for modern processors. That same code may perform very poorly on older processors.

    However since you are using an I7 4770k this is less likely to be an issue since that processor is less than 6 years old.

    Have you tried testing the performance of D3D9 mode? Or of OpenGL? Or of the x86 (not x86-64) build?

    The other explanation is that the change from fixed function pipeline to using programable shaders include more difference than are currently visible. Specifically it might already include part of the Reforged graphic pipeline despite currently being unable to take advantage of it. Hence the GPU has to work harder for little visual gains.
    Resource requirements increased due to the new buff stacking system I guess. In maps with a lot of buffs there could possibly be a measurable difference.
    Please post what hardware you are using. Have you tried the x86 (not x86-64) build? Or running the D3D9 backend? Or even OpenGL?
     
  15. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    9,593
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Alright did a test map (attached) and when there are 50 archers per (25) player (including neutral hostile), FPS(+VSync) is 60 if there are 100 archers per player, FPS drops to 15.

    Note that the map is the smallest and has no doodads or tile or terrain height variation. The only trigger in it is the one to spawn archers. Just write test in chat.
     

    Attached Files:

  16. Quantum_Menace

    Quantum_Menace

    Joined:
    May 17, 2008
    Messages:
    69
    Resources:
    0
    Resources:
    0
    I tried to get the hotkey value with the get ability field functions from ConvertAbilityStringField('ahky') and ConvertAbilityIntegerField('ahky') but neither appears to work.

    It's per unit, I tried modifying the range on one Crypt Lord's Impale and it did not affect the other Crypt Lord.


    I just hope the update doesn't make Castle Fight lag terribly, it already suffers from unpredictable bugs that weren't there before the recent patches.
     
  17. LiSen冯

    LiSen冯

    Joined:
    Feb 24, 2018
    Messages:
    29
    Resources:
    0
    Resources:
    0
    is x86-64
    the SC2 Top picture quality's fps is 180+ in my computer

    For ReForged ? What do the old WC3(1.31 the The original player) do?
     
    Last edited: Apr 26, 2019
  18. lolreported

    lolreported

    Joined:
    Aug 16, 2007
    Messages:
    693
    Resources:
    10
    Tools:
    1
    Maps:
    3
    Spells:
    6
    Resources:
    10
    I get the same results, with both x86 and x86_64 builds (60 fps to ~15) (V-sync off).

    I made an identical map in current non-ptr patch and had 70 - 130 fps in the same situation.

    Operating System: Windows 10 Home 64-bit (10.0, Build 17134)
    Processor: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (12 CPUs), ~3.7GHz
    Memory: 16384MB RAM
    NVIDIA GeForce GTX 1080

    I also noticed the fps is capped@60 in Patch 1.31 PTR, why?


    Not sure if known or not, but I get a huge lag-spike for 2-3 seconds when opening the "Options"-window and also when I click the "Video"-button. Might be a bug.
     
  19. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,187
    Resources:
    16
    Tools:
    2
    Maps:
    2
    Spells:
    7
    Tutorials:
    4
    JASS:
    1
    Resources:
    16
    Great new features.
    Damage detection should now be easy peasy.

    thorns aura dealt plant damage, in my test.
     
  20. Trill

    Trill

    Joined:
    Feb 24, 2018
    Messages:
    254
    Resources:
    1
    Icons:
    1
    Resources:
    1
    Thanks a lot. Jass natives look weird to my untrained eye, thought it was map-wide.
    Finally, finally, FINALLY, I can make abilities deal variable damage without super-difficult shenanigans or damage detection.