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. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  4. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  5. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  8. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  9. 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.

Producer Update: Natives List

Discussion in 'Patch & Reforged Discussion' started by Kam, Dec 7, 2017.

  1. yxq1122

    yxq1122

    Joined:
    Jun 5, 2018
    Messages:
    112
    Resources:
    0
    Resources:
    0
    @TriggerHappy Yes, there are still many unit types that aren't defined, e.g. UNIT_TYPE_WARD. So the unit identification for the missing types becomes a bit difficult and complex.

    I think the missing and independent constants are:
    Code (vJASS):
    // Unit types
    UNIT_TYPE_WARD
    UNIT_TYPE_NEUTRAL
    // Sound types
    SOUND_TYPE_3D
    SOUND_TYPE_UI
    Missing natives:
    Code (vJASS):
    native IsDestructableDebris takes destructable d returns boolean
     
    Last edited: May 7, 2019
  2. Illidan(Evil)X

    Illidan(Evil)X

    Joined:
    Oct 24, 2004
    Messages:
    646
    Resources:
    150
    Models:
    109
    Icons:
    27
    Skins:
    2
    Maps:
    12
    Resources:
    150
    These may or may not have already been suggested. Just a few natives I'd find useful.
    Code (vJASS):
    // Returns the absolute value of the input number.
    native AbsI takes integer i returns integer
    native AbsR takes real r returns real

    // Returns the unit/player at the given index. Returns null when index is out of bounds.
    native GroupGetUnit   takes group g, integer index returns unit
    native ForceGetPlayer takes force f, integer index returns player

    // Returns the current number of units/players in a group/force.
    native GroupGetUnitCount   takes group g returns integer
    native ForceGetPlayerCount takes force f returns integer

    // Changes the model file of an effect.
    native SetSpecialEffectModel takes effect e, string file returns nothing

    // Sets the 3D rotation of the effect using forward and up vectors.
    native SetSpecialEffectRotation takes effect e, real fwX, real fwY, real fwZ, real upX, real upY, real upZ returns nothing

    // Sets the 3D rotation of the effect using quaternion rotation.
    native SetSpecialEffectRotationQuat takes effect e, real x, real y, real z, real w returns nothing

    // Enables/disables rendering of an effect.
    native SetSpecialEffectVisibility takes effect e, boolean flag returns nothing

    // Replaces a replaceable texture for an effect model.
    native SetSpecialEffectReplaceableTexture takes effect e, integer replaceableId, string file returns nothing

    // Changes the texture of an image.
    native SetImageTexture takes image img, string file returns nothing

    // Sets the texture UV coordinates for an image.
    native SetImageUV takes image img, real x1, real y1, real x2, real y2, real x3, real y3, real x4, real y4 returns nothing

    // Returns the Z height of the terrain at the given point. Should return the same value on all clients to prevent desyncs.
    native GetWorldHeight takes real x, real y returns real

    // Returns the pathing cost between two points for the given movement type (foot, float, flying, amphibious, etc.)
    // The cost scales with the length of the path.
    // Results in -1 if the path is blocked.
    native GetPathingCost takes integer pathingType, real x1, real y1, real x2, real y2 returns integer

    // Returns the end point of a path as determined by the internal pathfinder.
    native GetPathingEndPoint takes integer pathingType, real x1, real y1, real x2, real y2 returns location

    // Returns a string representation of the given boolean ("True" or "False").
    native B2S takes boolean b returns string

    // Converts a boolean to an integer (0 if false and 1 if true).
    native B2I takes boolean b returns integer

    // Changes the type of a unit.
    // The unit should retain its properties such as handle id, variable pointers, unit groups, control groups and selection state.
    native SetUnitTypeId takes unit whichUnit, integer unitid returns nothing
     
    Last edited: Dec 15, 2018
  3. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,320
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Just repeating this natives:

    Code (vJASS):

    native SetUnitAbilityCooldownRemaining takes unit whichUnit, integer abilId, real newDur returns nothing
        // If greater than the current duration of the cooldown, the skin of the cooldown will not be applied.
     
     
    Last edited: Aug 22, 2018
  4. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,320
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Odd, I thought there was a new post here.

    If the ability to return arrays as objects will be introduced, there would be some things that need to be tweaked (in the JASS VM) in order to (probably) not free them by the end of a function statement or on a return call.

    Local arrays are of particular interest and is an example of the above, since they are generated on a function call and cleaned up thereafter, leading to the above.

    In the compiler, there would be a compiler-only type that accepts all sorts of arrays and can return type-safe values, based on how arrays themselves are implemented. Moreover, the compiler-only type can, at runtime, discern the primary meta-type of the associated array.

    Objects of the compiler-only type are created on the setting of a compiler-only type variable to an array (read instruction before write to variable, which can be filtered and generated.) To destroy them, the assignment to the variable must be to a null object (when set to null, the reference count of the array variable being pointed to is decremented).
     
  5. Remixer

    Remixer

    Joined:
    Feb 19, 2011
    Messages:
    1,594
    Resources:
    52
    Models:
    19
    Packs:
    1
    Maps:
    31
    Template:
    1
    Resources:
    52
    I'd like to request a option for 'Select as Patron' as at least I couldn't find it myself.

    For example (basing on 'Issue Order Targeting A Unit':
    'Order unit [Shop] to [Select As Patron] [Target Unit]'
     
  6. Retera

    Retera

    Tool Reviewer

    Joined:
    Apr 19, 2008
    Messages:
    828
    Resources:
    25
    Models:
    17
    Tools:
    2
    Maps:
    6
    Resources:
    25
    One time I wrote a working JASS interpreter late at night in 3 hours to prove to a friend that if I had a JASS interpreter, I could add the `code array` type with ease. Adding dynamically allocated and freed arrays would also be easy, but Blizzard probably does not want to do it. I think their focus is on other topics.
     
  7. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,334
    Resources:
    17
    Tools:
    2
    Maps:
    2
    Spells:
    8
    Tutorials:
    4
    JASS:
    1
    Resources:
    17
    Already exists, but sadly not ported to GUI as many cool features.
    Code (vJASS):
    native IssueNeutralTargetOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, widget target returns boolean

    unitToBuild = the stuff you want to happen. the string was "neutralinteract", mabye also "smart" works cause you can do that with rightclick.
     
    Last edited: Nov 1, 2018
  8. Abovegame

    Abovegame

    Joined:
    Jan 2, 2016
    Messages:
    464
    Resources:
    1
    Maps:
    1
    Resources:
    1
    I assume these some of these things exist in the wishlist but here are some ideas of mine. :p
    Code (vJASS):

    // Pretty strightforward creates a trackable at the given coordinates with the given message.
    native CreateTrackable takes real x, real y, string message returns trackable
    // Destroy the trackable object.
    native DestroyTrackable takes trackable t returns nothing
    // Changes the X coordinate of the given trackable.
    native SetTrackableX takes trackable t, real x returns nothing
    // Changes the Y coordinate of the given trackable.
    native SetTrackableY takes trackable t, real y returns nothing
    // Gets the X coordinate of the given trackable.
    native GetTrackableX takes trackable t, real x returns nothing
    // Gets the Y coordinate of the given trackable.
    native GetTrackableY takes trackable t, real y returns nothing
    // Changes the message of the given trackable.
    native SetTrackableMsg takes trackable t, string message returns nothing
    // Tries to attach a given trackable to a widget as its parent.
    native AttachTrackableToWidget takes trackable t, widget w returns boolean
    // Show or hide the trackable.
    native DisplayTrackable takes trackable t, boolean show returns nothing
    // Something that emits when the mouse it over a given widget with a trackable.
    constant playerevent EVENT_PLAYER_TRACKABLE_FOCUS
    // or perhaps instead of trackable we have a widget focused event
    constant widgetevent EVENT_WIDGET_FOCUSED
    // and on top of that something like which in turn
    // can return null if the widget doesn't have a trackable attached
    // to itself.
    native AcquireTrackable takes widget w returns trackable
     


    Tell me what you think!
     
  9. Trokkin

    Trokkin

    Joined:
    Jan 23, 2015
    Messages:
    98
    Resources:
    1
    Tutorials:
    1
    Resources:
    1
    I didn't understand the thing about messages. Aren't trackables just plain effects that has a special event for hovering over?
    Probably one would want to attach more than one trackable to a widget, so acquiring it as a native would be a problem. While it's done with some jass overhead pretty much easily. And with those events you want
    GetFocusedWidget()
    and
    GetFocusedTrackable()
    , even if they're the same as gettriggeringX thing.

    I guess if trackables are effects with additional functionality, they should extend effects and thus use all the API provided for them, I mean what was added in last patches. Or, which is easier to do, c&p that API to use with trackables.
     
    Last edited: Nov 13, 2018
  10. Abovegame

    Abovegame

    Joined:
    Jan 2, 2016
    Messages:
    464
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Perhaps i'm not thinking about trackables ?

    Basically some API so one can do this:
    [​IMG]
     
  11. Trokkin

    Trokkin

    Joined:
    Jan 23, 2015
    Messages:
    98
    Resources:
    1
    Tutorials:
    1
    Resources:
    1
    Sure, that's definitely not trackables. Your screenshot itself suggests that it is a tooltip. In that case - sure, it would be very nice to have interface API in general, not only this feature.
     
  12. yxq1122

    yxq1122

    Joined:
    Jun 5, 2018
    Messages:
    112
    Resources:
    0
    Resources:
    0
    Suggestion:
    Add missing natives for stock UI:
    Code (vJASS):
    // Get the id of an item in stock by coordinates.
    native GetItemInStock takes unit whichstock, integer x, integer y returns integer
    // Get the x coordinate of an item in stock by id.
    native GetItemXInStock takes unit whichstock, integer itemid returns integer
    // Get the y coordinate of an item in stock by id.
    native GetItemYInStock takes unit whichstock, integer itemid returns integer
    // Change the item at the specific coordinate of stock.
    native SetItemInStock takes unit whichstock, integer itemid, integer x, integer y returns nothing
    // Swap the postions of items in stock.
    native SwapItemInStock unit whichstock, integer x1, integer y1, integer x2, integer y2 returns nothing
    // Get the icon path of an item in stock using native GetWidgetIcon.
    function GetItemIconInStockBJ unit whichstock, integer x, integer y returns string
    // Change the icon of an item in stock and returns the old icon using native SetWidgetIcon.
    function SetItemIconInStockBJ unit whichstock, integer x, integer y, string blpname returns string
     
     
    Last edited: Mar 6, 2019
  13. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,320
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    I suppose those natives would take an additional argument ((x, y) instead of just pos) , as the position of an item in stock would be best described as coordinates of sorts.
     
  14. yxq1122

    yxq1122

    Joined:
    Jun 5, 2018
    Messages:
    112
    Resources:
    0
    Resources:
    0
    Good suggestion!
     
  15. Sakata Gintoki

    Sakata Gintoki

    Joined:
    Aug 2, 2015
    Messages:
    50
    Resources:
    0
    Resources:
    0
    sorry, i may ask stupid question but where to find this native?
    Code (Text):
    // > DAMAGE EVENT EXTENSION

        constant playerunitevent EVENT_PLAYER_UNIT_DAMAGED           //Same as EVENT_UNIT_DAMAGED except as a player unit event.

        function GetEventDamageAttackType takes nothing returns attacktype                  
            //In response to a damage event returns the attacktype (Spell, Hero, Chaos, etc) of the damage.
        function GetEventDamageDamageType takes nothing returns damagetype
            //In response to a damage event returns the damagetype (unkown, magic, normal, enhanced, etc) of the damage.
        function GetEventDamageAbilityId takes nothing returns integer                      
           //In response to a damage event returns the ability ID that caused the damage. This ability can be a damage spell (Flame Strike, Storm Bolt, etc) or an attack modifier ability (Cold Arrow, orb of fire, etc). Normal attack damage returns some safe default value such as 0.
        function GetEventDamageUnmodified takes nothing returns real                        
           //In response to a damage event returns the damage dealt to the unit before any modifications (armor, attacktype reduction, etc) were applied.
        function GetEventDamageMana takes nothing returns real                              
            //In response to a damage event returns the mana lost due to an active mana shield.
    and i found this natives in Producer Update: Natives List - WC3 Modding Information Center
    Code (Text):
    function GetUnitAttackTime takes unit u, integer index returns real                          //Returns the cooldown time of a particular attack index (0 or 1) of a unit, with attack speed modifiers (eg: Glove of Haste, Cripple) factored in.
    function SetUnitAttackTime takes unit u, integer index, real amount returns nothing          //Set the base cooldown time of a particular attack index of a unit, reapplying all attack speed modifiers as appropiate.
    function ModifyUnitAttackTime takes unit u, integer index, real fraction returns nothing     //Applies fraction attack speed modifier to a particular attack index of a unit, being treated the same as other attack speed modifiers including limits.
    function GetUnitAttackDamageMin takes unit u, integer index returns integer                  //Returns the minimum attack damage of a particular attack index of a unit, with damage modifiers (eg: Command Aura, Claws of Attack +16) factored in.
    function GetUnitAttackDamageMax takes unit u, integer index returns integer                  //Returns the maximum attack damage of a particular attack index of a unit, with damage modifiers factored in.
    function SetUnitAttackDamageMin takes unit u, integer index, integer min returns nothing     //Changes the base minimum attack damage of a particular attack index of a unit to an exact value, reapplying all damage modifiers as appropiate. Will override bonuses from upgrades.
    function SetUnitAttackDamageMax takes unit u, integer index, integer max returns nothing     //Changes the base maximum attack damage of a particular attack index of a unit to an exact value, reapplying all damage modifiers as appropiate. Will override bonuses from upgrades.
    function ModifyUnitAttackDamage takes unit u, integer index, integer amount returns nothing  //Applies damage modifier to a particular attack index of a unit, being treated the same as other damage modifiers.
    how to use all that natives ? and sorry for my bad english
     
  16. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,334
    Resources:
    17
    Tools:
    2
    Maps:
    2
    Spells:
    8
    Tutorials:
    4
    JASS:
    1
    Resources:
    17
    you can't.

    This list contains suggestions, wishes and possible new natives in the future, as the sentence above says "JASS improvements for the upcoming versions of Warcraft III" from your link.

    Added to warcraft 3
    Code (vJASS):


    // Automation Test
    native AutomationSetTestType                    takes string testType returns nothing
    native AutomationTestStart                      takes string testName returns nothing
    native AutomationTestEnd                        takes nothing returns nothing
    native AutomationTestingFinished                takes nothing returns nothing

    // JAPI Functions
    native BlzGetTriggerPlayerMouseX                   takes nothing returns real
    native BlzGetTriggerPlayerMouseY                   takes nothing returns real
    native BlzGetTriggerPlayerMousePosition            takes nothing returns location
    native BlzGetTriggerPlayerMouseButton              takes nothing returns mousebuttontype
    native BlzSetAbilityTooltip                        takes integer abilCode, string tooltip, integer level returns nothing
    native BlzSetAbilityActivatedTooltip               takes integer abilCode, string tooltip, integer level returns nothing
    native BlzSetAbilityExtendedTooltip                takes integer abilCode, string extendedTooltip, integer level returns nothing
    native BlzSetAbilityActivatedExtendedTooltip       takes integer abilCode, string extendedTooltip, integer level returns nothing
    native BlzSetAbilityResearchTooltip                takes integer abilCode, string researchTooltip, integer level returns nothing
    native BlzSetAbilityResearchExtendedTooltip        takes integer abilCode, string researchExtendedTooltip, integer level returns nothing
    native BlzGetAbilityTooltip                        takes integer abilCode, integer level returns string
    native BlzGetAbilityActivatedTooltip               takes integer abilCode, integer level returns string
    native BlzGetAbilityExtendedTooltip                takes integer abilCode, integer level returns string
    native BlzGetAbilityActivatedExtendedTooltip       takes integer abilCode, integer level returns string
    native BlzGetAbilityResearchTooltip                takes integer abilCode, integer level returns string
    native BlzGetAbilityResearchExtendedTooltip        takes integer abilCode, integer level returns string
    native BlzSetAbilityIcon                           takes integer abilCode, string iconPath returns nothing
    native BlzGetAbilityIcon                           takes integer abilCode returns string
    native BlzSetAbilityActivatedIcon                  takes integer abilCode, string iconPath returns nothing
    native BlzGetAbilityActivatedIcon                  takes integer abilCode returns string
    native BlzGetAbilityPosX                           takes integer abilCode returns integer
    native BlzGetAbilityPosY                           takes integer abilCode returns integer
    native BlzSetAbilityPosX                           takes integer abilCode, integer x returns nothing
    native BlzSetAbilityPosY                           takes integer abilCode, integer y returns nothing
    native BlzGetAbilityActivatedPosX                  takes integer abilCode returns integer
    native BlzGetAbilityActivatedPosY                  takes integer abilCode returns integer
    native BlzSetAbilityActivatedPosX                  takes integer abilCode, integer x returns nothing
    native BlzSetAbilityActivatedPosY                  takes integer abilCode, integer y returns nothing
    native BlzGetUnitMaxHP                             takes unit whichUnit returns integer
    native BlzSetUnitMaxHP                             takes unit whichUnit, integer hp returns nothing
    native BlzGetUnitMaxMana                           takes unit whichUnit returns integer
    native BlzSetUnitMaxMana                           takes unit whichUnit, integer mana returns nothing
    native BlzSetItemName                              takes item whichItem, string name returns nothing
    native BlzSetItemDescription                       takes item whichItem, string description returns nothing
    native BlzGetItemDescription                       takes item whichItem returns string
    native BlzSetItemTooltip                           takes item whichItem, string tooltip returns nothing
    native BlzGetItemTooltip                           takes item whichItem returns string
    native BlzSetItemExtendedTooltip                   takes item whichItem, string extendedTooltip returns nothing
    native BlzGetItemExtendedTooltip                   takes item whichItem returns string
    native BlzSetItemIconPath                          takes item whichItem, string iconPath returns nothing
    native BlzGetItemIconPath                          takes item whichItem returns string
    native BlzSetUnitName                              takes unit whichUnit, string name returns nothing
    native BlzSetHeroProperName                        takes unit whichUnit, string heroProperName returns nothing
    native BlzGetUnitBaseDamage                        takes unit whichUnit, integer weaponIndex returns integer
    native BlzSetUnitBaseDamage                        takes unit whichUnit, integer baseDamage, integer weaponIndex returns nothing
    native BlzGetUnitDiceNumber                        takes unit whichUnit, integer weaponIndex returns integer
    native BlzSetUnitDiceNumber                        takes unit whichUnit, integer diceNumber, integer weaponIndex returns nothing
    native BlzGetUnitDiceSides                         takes unit whichUnit, integer weaponIndex returns integer
    native BlzSetUnitDiceSides                         takes unit whichUnit, integer diceSides, integer weaponIndex returns nothing
    native BlzGetUnitAttackCooldown                    takes unit whichUnit, integer weaponIndex returns real
    native BlzSetUnitAttackCooldown                    takes unit whichUnit, real cooldown, integer weaponIndex returns nothing
    native BlzSetSpecialEffectColorByPlayer            takes effect whichEffect, player whichPlayer returns nothing
    native BlzSetSpecialEffectColor                    takes effect whichEffect, integer r, integer g, integer b returns nothing
    native BlzSetSpecialEffectAlpha                    takes effect whichEffect, integer alpha returns nothing
    native BlzSetSpecialEffectScale                    takes effect whichEffect, real scale returns nothing
    native BlzSetSpecialEffectPosition                 takes effect whichEffect, real x, real y, real z returns nothing
    native BlzSetSpecialEffectHeight                   takes effect whichEffect, real height returns nothing
    native BlzSetSpecialEffectTimeScale                takes effect whichEffect, real timeScale returns nothing
    native BlzSetSpecialEffectTime                     takes effect whichEffect, real time returns nothing
    native BlzSetSpecialEffectOrientation              takes effect whichEffect, real yaw, real pitch, real roll returns nothing
    native BlzSetSpecialEffectYaw                      takes effect whichEffect, real yaw returns nothing
    native BlzSetSpecialEffectPitch                    takes effect whichEffect, real pitch returns nothing
    native BlzSetSpecialEffectRoll                     takes effect whichEffect, real roll returns nothing
    native BlzSetSpecialEffectX                        takes effect whichEffect, real x returns nothing
    native BlzSetSpecialEffectY                        takes effect whichEffect, real y returns nothing
    native BlzSetSpecialEffectZ                        takes effect whichEffect, real z returns nothing
    native BlzSetSpecialEffectPositionLoc              takes effect whichEffect, location loc returns nothing
    native BlzGetLocalSpecialEffectX                   takes effect whichEffect returns real
    native BlzGetLocalSpecialEffectY                   takes effect whichEffect returns real
    native BlzGetLocalSpecialEffectZ                   takes effect whichEffect returns real
    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
    native BlzPlaySpecialEffect                        takes effect whichEffect, animtype whichAnim returns nothing
    native BlzPlaySpecialEffectWithTimeScale           takes effect whichEffect, animtype whichAnim, real timeScale returns nothing
    native BlzGetAnimName                              takes animtype whichAnim returns string
    native BlzGetUnitArmor                             takes unit whichUnit returns real
    native BlzSetUnitArmor                             takes unit whichUnit, real armorAmount returns nothing
    native BlzUnitHideAbility                          takes unit whichUnit, integer abilId, boolean flag returns nothing
    native BlzUnitDisableAbility                       takes unit whichUnit, integer abilId, boolean flag, boolean hideUI returns nothing
    native BlzUnitCancelTimedLife                      takes unit whichUnit returns nothing
    native BlzIsUnitSelectable                         takes unit whichUnit returns boolean
    native BlzIsUnitInvulnerable                       takes unit whichUnit returns boolean
    native BlzUnitInterruptAttack                      takes unit whichUnit returns nothing
    native BlzGetUnitCollisionSize                     takes unit whichUnit returns real
    native BlzGetAbilityManaCost                       takes integer abilId, integer level returns integer
    native BlzGetAbilityCooldown                       takes integer abilId, integer level returns real
    native BlzSetUnitAbilityCooldown                   takes unit whichUnit, integer abilId, integer level, real cooldown returns nothing
    native BlzGetUnitAbilityCooldown                   takes unit whichUnit, integer abilId, integer level returns real
    native BlzGetUnitAbilityCooldownRemaining          takes unit whichUnit, integer abilId returns real
    native BlzEndUnitAbilityCooldown                   takes unit whichUnit, integer abilCode returns nothing
    native BlzGetUnitAbilityManaCost                   takes unit whichUnit, integer abilId, integer level returns integer
    native BlzSetUnitAbilityManaCost                   takes unit whichUnit, integer abilId, integer level, integer manaCost returns nothing
    native BlzGetLocalUnitZ                            takes unit whichUnit returns real
    native BlzDecPlayerTechResearched                  takes player whichPlayer, integer techid, integer levels returns nothing
    native BlzSetEventDamage                           takes real damage returns nothing
    native RequestExtraIntegerData                     takes integer dataType, player whichPlayer, string param1, string param2, boolean param3, integer param4, integer param5, integer param6 returns integer
    native RequestExtraBooleanData                     takes integer dataType, player whichPlayer, string param1, string param2, boolean param3, integer param4, integer param5, integer param6 returns boolean
    native RequestExtraStringData                      takes integer dataType, player whichPlayer, string param1, string param2, boolean param3, integer param4, integer param5, integer param6 returns string
    native RequestExtraRealData                        takes integer dataType, player whichPlayer, string param1, string param2, boolean param3, integer param4, integer param5, integer param6 returns real
    // Add this function to follow the style of GetUnitX and GetUnitY, it has the same result as BlzGetLocalUnitZ
    native BlzGetUnitZ                                 takes unit whichUnit returns real
     

    one can get this list by opening "documents/warcraft III/jasshelper/common.j" and look at the end of the files content.
     
  17. Sakata Gintoki

    Sakata Gintoki

    Joined:
    Aug 2, 2015
    Messages:
    50
    Resources:
    0
    Resources:
    0
    @Tasyen oh, thank you for the information
     
  18. yxq1122

    yxq1122

    Joined:
    Jun 5, 2018
    Messages:
    112
    Resources:
    0
    Resources:
    0
    Another missing natives list:
    Code (vJASS):
    // To accomplish the getcost natives
    native GetItemGoldCost takes integer itemId returns integer
    native GetItemWoodCost takes integer itemId returns integer
    // As supplements for the getcost natives
    native SetItemGoldCost takes integer itemId, integer value returns nothing
    native SetItemWoodCost takes integer itemId, integer value returns nothing
    native SetUnitGoldCost takes integer unitId, integer value returns nothing
    native SetUnitWoodCost takes integer unitId, integer value returns nothing
    native SetUpgradeGoldCost takes integer id, integer value returns nothing
    native SetUpgradeWoodCost takes integer id, integer value returns nothing

    // Widget UI including unit, item, and destructable.
    native GetWidgetIcon takes integer widgetId returns string
    native SetWidgetIcon takes integer widgetId, string iconpath returns nothing

    native GetWidgetModel takes integer widgetId returns string
    native SetWidgetModel takes integer widgetId, string modelpath returns nothing

    // Extended Item Abilities; Thanks @Avahor for the list
    function ItemAddAbility takes item whichItem, integer abilCode returns nothing
    function ItemRemoveAbility takes item whichItem, integer abilCode returns nothing
    function ItemCountAbilities takes item whichItem returns integer
    function ItemGetAbility takes item whichItem, integer index returns integer
      // Get the Id of the ability from an item by the index as a supplement of function ItemGetAbilityIndex.
    function ItemSetAbility takes item whichItem, integer index, integer abilCode returns boolean
      // Modify the Id of the ability of an item by index, and return true if successful.
    function ItemGetAbilityIndex takes item whichItem, integer abilCode returns integer
    function ItemSetAbilityIndex takes item whichItem, integer abilCode, integer index returns nothing
      // Modify the index of an ability of the specified item.
    function ItemGetAbilityLevel takes item whichItem, integer abilCode returns integer
    function ItemSetAbilityLevel takes item whichItem, integer abilCode, integer Level returns nothing
     
     
    Last edited: Mar 6, 2019
  19. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,320
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Code (vJASS):

    native SetUnitAbilityCastRange takes unit whichUnit, integer abilId, integer level, real range returns nothing
    native GetUnitAbilityCastRange takes unit whichUnit, integer abilId, integer level returns real

    // Has a value on channel, effect, finish, and endcast
    native GetSpellAbilityAreaEffect takes nothing returns real
     
     
  20. pusha1999

    pusha1999

    Joined:
    Jan 7, 2014
    Messages:
    68
    Resources:
    0
    Resources:
    0
    fix the problem with resume periodic timers. As we know, after resuming, timer works only one time. function is:
    Code (Text):
    native ResumeTimer takes timer whichTimer returns nothing
    need to make an array support for
    Code (Text):
    type code
    or function for convert "code" in integer or string and back, something like:
    Code (Text):
    native C2I takes code codefunc returns integer
    native C2S takes code codefunc returns string
    native S2C takes string codefunc returns code
    native I2C takes  integer codeid returns code
     
    Last edited: Mar 5, 2019