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. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  4. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  5. Units have been turned into heroes in our latest Icon Contest! Vote for the best icon set at the Icon Contest #18 Poll!
    Dismiss Notice
  6. The poll for Hive's 12th Concept Art Contest is up! Go cast your vote for your favourite genie!
    Dismiss Notice
  7. The raddest synthwave tracks were chosen - Check out our Music Contest #12 - Results and congratulate the winners!
    Dismiss Notice
  8. 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. Juveqis

    Juveqis

    Joined:
    May 26, 2017
    Messages:
    82
    Resources:
    0
    Resources:
    0
    I use the Spanish version and in the previous patch the Shaman used the english voice (I do not know if Furion too). In this patch the Shaman has the spanish voice but Furion has the english voice.
     
  2. coolyoshi1

    coolyoshi1

    Joined:
    Dec 6, 2009
    Messages:
    170
    Resources:
    2
    Maps:
    1
    Spells:
    1
    Resources:
    2
    Would be nice if they could provide some more context on the desync fixes. Whenever they mention desyncs its always so ambiguous and not very helpful
     
  3. grimgrents

    grimgrents

    Joined:
    Dec 7, 2018
    Messages:
    8
    Resources:
    0
    Resources:
    0
    Great job! keep it up!

    Consider adding the following please:

    Keyboard shortcut for switching between all/allies/observers chat after pressing F12

    A Third shortcut that allows you to talk to observers (we already have ctrl+enter for allies and shift+enter for all)

    GetUnitPathing native
     
  4. chopinski

    chopinski

    Joined:
    May 16, 2012
    Messages:
    144
    Resources:
    0
    Resources:
    0
    @Kam

    Sorry for the long time to answer, but I've figured out a few things. First is that when using the x64 version of the world editor to create or edit a map i was not able to start it using the x64 version of the game, but if i use the x86 stuff works. Second, the test map is as simple as it can get, just deploying a few hundred footman with a custom model (HD Model ~ 1Mb in size with texture resolution of 512x512) and see how the game performs. Fps on D3D9 with my screen full of them (1920x1080) is about 24 fps and D3D11 is about 12 fps. Also, i need to say that, not trying to be harsh or anything, but a patch like that, mainly focused on giving map makers tools to create stuff, without a simple syntax highlight is frustrating. it's like giving me a Ferrari but taking its wheels off, lol. Any plans on bringing that to the base editor? Even after all that, congratulations on the patch, its awesome.
     
  5. WeirdEditor

    WeirdEditor

    Joined:
    May 10, 2018
    Messages:
    112
    Resources:
    0
    Resources:
    0
    This is definitely a huge bug.
    Hoping blizzard could see this and the parameter ordering bug of BlzGroupAddGroupFast.

    I have never used before. Can you tellme more about it? Where can I download this program?

    Use BlzSetUnitIntegerField and pick a right UNIT_IF_xxx
     
    Last edited by a moderator: Apr 26, 2019
  6. wc3neverdies

    wc3neverdies

    Joined:
    Sep 20, 2015
    Messages:
    274
    Resources:
    1
    Maps:
    1
    Resources:
    1
    This patch is great, I can't wait to test some stuff myself this weekend.


    Oh my.... does this means one can make WASD movement system? This is awsome
     
  7. WeirdEditor

    WeirdEditor

    Joined:
    May 10, 2018
    Messages:
    112
    Resources:
    0
    Resources:
    0
    Yeah....
    However, they forget to provide a way to obtain the id of an ability.
    And after massive field apis provided, still no way to get orderid of an ability. Seriously?
     
  8. Ezekiel12

    Ezekiel12

    Joined:
    Mar 13, 2012
    Messages:
    1,053
    Resources:
    0
    Resources:
    0
    Thanks for the effort people at Blizzard!

    Code (vJASS):
    ConvertOsKeyType($08)

    Never knew the '$' notation exists as an alternative for the normal hex notation '0x'.

    Those are also quite new, right?

    Code (vJASS):

        constant animtype           ANIM_TYPE_BIRTH                 = ConvertAnimType(0)
        constant animtype           ANIM_TYPE_DEATH                 = ConvertAnimType(1)
        constant animtype           ANIM_TYPE_DECAY                 = ConvertAnimType(2)
        constant animtype           ANIM_TYPE_DISSIPATE             = ConvertAnimType(3)
        constant animtype           ANIM_TYPE_STAND                 = ConvertAnimType(4)
        constant animtype           ANIM_TYPE_WALK                  = ConvertAnimType(5)
        constant animtype           ANIM_TYPE_ATTACK                = ConvertAnimType(6)
        constant animtype           ANIM_TYPE_MORPH                 = ConvertAnimType(7)
        constant animtype           ANIM_TYPE_SLEEP                 = ConvertAnimType(8)
        constant animtype           ANIM_TYPE_SPELL                 = ConvertAnimType(9)
        constant animtype           ANIM_TYPE_PORTRAIT              = ConvertAnimType(10)

        constant subanimtype        SUBANIM_TYPE_ROOTED             = ConvertSubAnimType(11)
        constant subanimtype        SUBANIM_TYPE_ALTERNATE_EX       = ConvertSubAnimType(12)
        constant subanimtype        SUBANIM_TYPE_LOOPING            = ConvertSubAnimType(13)
        constant subanimtype        SUBANIM_TYPE_SLAM               = ConvertSubAnimType(14)
        constant subanimtype        SUBANIM_TYPE_THROW              = ConvertSubAnimType(15)
        constant subanimtype        SUBANIM_TYPE_SPIKED             = ConvertSubAnimType(16)
        constant subanimtype        SUBANIM_TYPE_FAST               = ConvertSubAnimType(17)
        constant subanimtype        SUBANIM_TYPE_SPIN               = ConvertSubAnimType(18)
        constant subanimtype        SUBANIM_TYPE_READY              = ConvertSubAnimType(19)
        constant subanimtype        SUBANIM_TYPE_CHANNEL            = ConvertSubAnimType(20)
        constant subanimtype        SUBANIM_TYPE_DEFEND             = ConvertSubAnimType(21)
        constant subanimtype        SUBANIM_TYPE_VICTORY            = ConvertSubAnimType(22)
        constant subanimtype        SUBANIM_TYPE_TURN               = ConvertSubAnimType(23)
        constant subanimtype        SUBANIM_TYPE_LEFT               = ConvertSubAnimType(24)
        constant subanimtype        SUBANIM_TYPE_RIGHT              = ConvertSubAnimType(25)
        constant subanimtype        SUBANIM_TYPE_FIRE               = ConvertSubAnimType(26)
        constant subanimtype        SUBANIM_TYPE_FLESH              = ConvertSubAnimType(27)
        constant subanimtype        SUBANIM_TYPE_HIT                = ConvertSubAnimType(28)
        constant subanimtype        SUBANIM_TYPE_WOUNDED            = ConvertSubAnimType(29)
        constant subanimtype        SUBANIM_TYPE_LIGHT              = ConvertSubAnimType(30)
        constant subanimtype        SUBANIM_TYPE_MODERATE           = ConvertSubAnimType(31)
        constant subanimtype        SUBANIM_TYPE_SEVERE             = ConvertSubAnimType(32)
        constant subanimtype        SUBANIM_TYPE_CRITICAL           = ConvertSubAnimType(33)
        constant subanimtype        SUBANIM_TYPE_COMPLETE           = ConvertSubAnimType(34)
        constant subanimtype        SUBANIM_TYPE_GOLD               = ConvertSubAnimType(35)
        constant subanimtype        SUBANIM_TYPE_LUMBER             = ConvertSubAnimType(36)
        constant subanimtype        SUBANIM_TYPE_WORK               = ConvertSubAnimType(37)
        constant subanimtype        SUBANIM_TYPE_TALK               = ConvertSubAnimType(38)
        constant subanimtype        SUBANIM_TYPE_FIRST              = ConvertSubAnimType(39)
        constant subanimtype        SUBANIM_TYPE_SECOND             = ConvertSubAnimType(40)
        constant subanimtype        SUBANIM_TYPE_THIRD              = ConvertSubAnimType(41)
        constant subanimtype        SUBANIM_TYPE_FOURTH             = ConvertSubAnimType(42)
        constant subanimtype        SUBANIM_TYPE_FIFTH              = ConvertSubAnimType(43)
        constant subanimtype        SUBANIM_TYPE_ONE                = ConvertSubAnimType(44)
        constant subanimtype        SUBANIM_TYPE_TWO                = ConvertSubAnimType(45)
        constant subanimtype        SUBANIM_TYPE_THREE              = ConvertSubAnimType(46)
        constant subanimtype        SUBANIM_TYPE_FOUR               = ConvertSubAnimType(47)
        constant subanimtype        SUBANIM_TYPE_FIVE               = ConvertSubAnimType(48)
        constant subanimtype        SUBANIM_TYPE_SMALL              = ConvertSubAnimType(49)
        constant subanimtype        SUBANIM_TYPE_MEDIUM             = ConvertSubAnimType(50)
        constant subanimtype        SUBANIM_TYPE_LARGE              = ConvertSubAnimType(51)
        constant subanimtype        SUBANIM_TYPE_UPGRADE            = ConvertSubAnimType(52)
        constant subanimtype        SUBANIM_TYPE_DRAIN              = ConvertSubAnimType(53)
        constant subanimtype        SUBANIM_TYPE_FILL               = ConvertSubAnimType(54)
        constant subanimtype        SUBANIM_TYPE_CHAINLIGHTNING     = ConvertSubAnimType(55)
        constant subanimtype        SUBANIM_TYPE_EATTREE            = ConvertSubAnimType(56)
        constant subanimtype        SUBANIM_TYPE_PUKE               = ConvertSubAnimType(57)
        constant subanimtype        SUBANIM_TYPE_FLAIL              = ConvertSubAnimType(58)
        constant subanimtype        SUBANIM_TYPE_OFF                = ConvertSubAnimType(59)
        constant subanimtype        SUBANIM_TYPE_SWIM               = ConvertSubAnimType(60)
        constant subanimtype        SUBANIM_TYPE_ENTANGLE           = ConvertSubAnimType(61)
        constant subanimtype        SUBANIM_TYPE_BERSERK            = ConvertSubAnimType(62)

    native BlzSpecialEffectClearSubAnimations          takes effect whichEffect returns nothing
    native BlzSpecialEffectRemoveSubAnimation          takes effect whichEffect, subanimtype whichSubAnim returns nothing
    native BlzSpecialEffectAddSubAnimation             takes effect whichEffect, subanimtype whichSubAnim returns nothing
     



    Instead of the new bitwise functions
    Code (vJASS):

    native BlzBitOr                                    takes integer x, integer y returns integer
    native BlzBitAnd                                   takes integer x, integer y returns integer
    native BlzBitXor                                   takes integer x, integer y returns integer
     

    could we have operators '&', '|' and '^' added? It's much shorter and only knowledgeable people use them anyways.



    As for the many new functions which start with 'Blz', here an alternative suggestion so that they don't have to start with 'Blz':
    Introduce a new .j file (common2.j, reforged.j, ...) which defines all those new natives but without the starting 'Blz'. This new .j file is only loaded if one of the map header version values is >= value of 1.31.
    Yes that screws maps using one of those functions created with 1.30 but they are very recent and could probably update.



    As for the massive introduction of new types, constants and natives to set unit/item/ability properties in-game:
    Awesome feature I'm interested to see if this can be translated to an easy-to-use way to GUI.
    Maybe it would be possible with an additional ability code parameter which does only exist in GUI so that it can load the object editor UI.
    Implementing the whole thing following XXXMetaData.slk while the object editor follows XXXData.slk probably does not make it easier.

    On another note, nearly all those new natives could be replaced by three uglier but far easier to remember natives :)...
    Code (vJASS):

    ConvertHandleField takes integer returns handleField
    (Blz)GetHandleField takes handle whichHandle, handleField whichField returns string
    (Blz)SetHandleField takes handle whichHandle, handleField whichField, integer level, integer index, string value
     

    (Assuming all item/ability/unit/etc-field ids are globally unique)
     
  9. Almia

    Almia

    Joined:
    Apr 24, 2012
    Messages:
    4,861
    Resources:
    35
    Spells:
    30
    Tutorials:
    4
    JASS:
    1
    Resources:
    35
    I think vJASS and JASS will just stay as to make old maps compatible to newer versions of Warcraft 3.

    It is good to see that alot of JASS natives are going to be obsolete with Lua's features (e.g. hashtables, code type, integer/real types becoming a number type).

    And to think that we can now finally code in a dynamic-typed environment

    We are also going to see some coroutines in action :D
     
  10. WyrmSlayer

    WyrmSlayer

    Joined:
    Apr 18, 2010
    Messages:
    63
    Resources:
    1
    Spells:
    1
    Resources:
    1
    Does the LUA support make WASD movement possible??
     
  11. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,305
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Further investigating into new natives:

    Using:
    BlzSetUnitIntegerField(unit, UNIT_IF_HIT_POINTS_REGENERATION_TYPE


    Regeneration type values are as follows:
    0 - Never
    1 - Always
    2 - Only on blight
    4 - Only at night

    Changing the regeneration type at runtime WILL NOT work, even if the operation is successful (false positive).

    For vision, it appears changing them to a specific value does not immediately change it. Instead, it will change over time to approach and reach said value. However, if one wishes to decrease the vision range, and the initial vision range is greater than 1800, the vision will remain at 1800. Thus, one must change it first to 1800, then to the desired value. Otherwise, vision change works as intended. One cannot increase vision beyond 1800.

    Going into a fountain of life will not increase a unit's hp regeneration rate. Modifying regeneration rate is instant.

    For
    BlzSetUnitWeaponRealField
    , the unitweaponfields UNIT_WEAPON_RF_ATTACK_RANGE and UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED do not appear to change in value, even if the operation is otherwise successful (returns a false positive). Thiss was tested at indices 0 - 3.

    The getter equivalent of the native above does not work as well (It returns 0.)
     
  12. Quantum_Menace

    Quantum_Menace

    Joined:
    May 17, 2008
    Messages:
    69
    Resources:
    0
    Resources:
    0
    As great as all this stuff is, I desperately need to be able to change an ability's hotkey per unit. That's seriously one of the only fields not available?!
     
  13. Ardenaso

    Ardenaso

    Joined:
    Jun 22, 2013
    Messages:
    294
    Resources:
    0
    Resources:
    0
    Do these changes also apply to RoC and TFT campaigns?
     
  14. lord_danzig

    lord_danzig

    Joined:
    Apr 26, 2019
    Messages:
    1
    Resources:
    0
    Resources:
    0
    I am just trying to write a simple lua script. I followed the google doc file's instructions but my editor doesn't recognize any lua. I set script language to Lua and then tried to write a Custom Script with lua. I even tried the
    Code (Text):
    //! beginusercode

    //! endusercode
    and it didn't help. Still seems like it's trying to read it as JASS. I'm new to the editor btw so I may be missing something obvious.
    [​IMG]

    EDIT: **nvm i had to disable JASSHelper
     
    Last edited: Apr 26, 2019
  15. Trill

    Trill

    Joined:
    Feb 24, 2018
    Messages:
    271
    Resources:
    1
    Icons:
    1
    Resources:
    1
    There's a method to detect key events now, with some tinkering you can emulate hotkeys with triggers.
     
  16. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,305
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Yes. it was something like this:

    Code (vJASS):

    native BlzTriggerRegisterPlayerKeyEvent(player, oskey, int metakey, bool press) returns event
     


    I suppose with the help of JNGP (for finding out the rawcode equivalent of the hotkeys) and the ConvertAbilityStringField native (not sure if prefixed with Blz), you can introduce a desired constant for hotkey manipulation.
     
  17. LiSen冯

    LiSen冯

    Joined:
    Feb 24, 2018
    Messages:
    29
    Resources:
    0
    Resources:
    0
    No, 1.31 are getting worse.

    create 500+ footman :

    1.31 gamefps < 1.30 gamefps

    this is 1.31 : 1.31.jpg



    this is 1.30 : 1.30.jpg

    turn off the HPbar:
    1.31: 38~40fps
    1.30: 60fps+++
     
    Last edited: Apr 26, 2019
  18. Trill

    Trill

    Joined:
    Feb 24, 2018
    Messages:
    271
    Resources:
    1
    Icons:
    1
    Resources:
    1
    Code (vJASS):
    native BlzSetUnitStringField       takes unit whichUnit, unitstringfield whichField, string value returns boolean
    - can a unit's MODEL be changed with this? Icon?
     
  19. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    10,619
    Resources:
    1
    Maps:
    1
    Resources:
    1
    I guess the melee ones'll be on the ladder and will come with the actual release of the patch.
     
  20. Trill

    Trill

    Joined:
    Feb 24, 2018
    Messages:
    271
    Resources:
    1
    Icons:
    1
    Resources:
    1
    Can anyone verify if ability field editing applies to that ability map-wide for everyone, or it can be done on per-unit basis?