1. Music Contest #10 - Results are finally published! Drop by to check some retro songs and congratulate the winners!
    Dismiss Notice
  2. Join Terraining Contest #19 and witness the aftermath!
    Dismiss Notice
  3. The 3rd Melee Mapping Contest is ON! Join in on a ride of a 4v4 melee experience!
    Dismiss Notice
  4. The 30th edition of the Modeling Contest is finally up! The Portable Buildings need your attention, so come along and have a blast!
    Dismiss Notice

Producer Update: Natives List

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

  1. yxq1122

    yxq1122

    Joined:
    Jun 5, 2018
    Messages:
    62
    Resources:
    0
    Resources:
    0
    @TriggerHappy Yes, there are still many unit types that aren't be 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: Dec 13, 2018 at 4:17 AM
  2. Illidan(Evil)X

    Illidan(Evil)X

    Joined:
    Oct 24, 2004
    Messages:
    643
    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 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

    // 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

    // Enables/disables rendering of an effect.
    native SetSpecialEffectVisibility takes effect e, boolean flag 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").
    constant native B2S takes boolean b returns string

    // 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: Sep 22, 2018
  3. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,084
    Resources:
    2
    Models:
    1
    Icons:
    1
    Resources:
    2
    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,084
    Resources:
    2
    Models:
    1
    Icons:
    1
    Resources:
    2
    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,551
    Resources:
    49
    Models:
    16
    Packs:
    1
    Maps:
    31
    Template:
    1
    Resources:
    49
    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

    Joined:
    Apr 19, 2008
    Messages:
    687
    Resources:
    18
    Models:
    11
    Tools:
    1
    Maps:
    6
    Resources:
    18
    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:
    881
    Resources:
    9
    Tools:
    1
    Maps:
    2
    Spells:
    5
    Tutorials:
    1
    Resources:
    9
    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:
    451
    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:
    74
    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:
    451
    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:
    74
    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:
    62
    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.
    native GetItemIconInStock unit whichstock, integer x, integer y returns string
    // Change the icon of an item in stock and returns the old icon.
    native SetItemIconInStock unit whichstock, integer x, integer y, string blpname returns string
     
     
    Last edited: Dec 7, 2018
  13. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,084
    Resources:
    2
    Models:
    1
    Icons:
    1
    Resources:
    2
    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:
    62
    Resources:
    0
    Resources:
    0
    Good suggestion!
     
  15. Sakata Gintoki

    Sakata Gintoki

    Joined:
    Aug 2, 2015
    Messages:
    7
    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:
    881
    Resources:
    9
    Tools:
    1
    Maps:
    2
    Spells:
    5
    Tutorials:
    1
    Resources:
    9
    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:
    7
    Resources:
    0
    Resources:
    0
    @Tasyen oh, thank you for the information
     
  18. yxq1122

    yxq1122

    Joined:
    Jun 5, 2018
    Messages:
    62
    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

    // Item UI
    native GetItemIcon takes integer itemId returns string
    native SetItemIcon takes integer itemId, string iconpath returns nothing

    native GetItemModel takes integer itemId returns string
    native SetItemModel takes integer itemId, string modelpath returns nothing