Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Warcraft 3 patch wish list

Discussion in 'Patch & Reforged Discussion' started by Ezekiel12, Sep 12, 2014.

  1. DracoL1ch

    DracoL1ch

    Joined:
    Dec 12, 2010
    Messages:
    2,037
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    Just the things we managed to implement by ourselves
    Code (vJASS):

    function StartAbilityCooldown takes unit u, integer id returns nothing
    function PrintAllUnitAbilities takes integer pConvertedHandle returns nothing
    function SetEffectSizeEx takes effect e, real full, real x,real y, real z returns nothing
    function SetEffectSize takes effect e, real size returns nothing
    function SetEffectPos takes effect e, real x, real y, real z returns nothing
    function GetEffectZ takes effect e returns real
    function GetEffectY takes effect e returns real
    function GetEffectX takes effect e returns real
    function GetUnitAttackSpeed takes unit u returns real
    function SetUnitAttackSpeed takes unit u, real r returns nothing
    function GetUnitAttackBackswing takes unit u returns real
    function SetUnitAttackBackswing takes unit u, real r returns nothing
    function GetUnitAttackPoint takes unit u returns real
    function SetUnitAttackPoint takes unit u, real r returns nothing
    function GetUnitBAT2 takes unit u returns real
    function SetUnitBAT2 takes unit u, real r returns nothing
    function GetUnitBAT1 takes unit u returns real
    function SetUnitBAT1 takes unit u, real r returns nothing
    function GetUnitAttackRange2 takes unit u returns real
    function SetUnitAttackRange2 takes unit u, real r returns nothing
    function SetUnitAttackType takes unit u, integer i, integer attacknu
    //attack types are hero magic pierce etc
    function SetUnitAttackType1 takes unit u, integer i returns nothing
    function SetUnitAttackType2 takes unit u, integer i returns nothing
    function GetUnitAttackType1 takes unit u returns integer
    function GetUnitAttackType2 takes unit u returns integer
    //unit's weapon type is melee, ranged, splash, artillery, etc
    function SetUnitWeaponType takes unit u, integer i returns nothing
    function GetUnitWeaponType takes unit u returns integer
    function SetUnitGreenBonusDamage takes unit u, integer i returns nothing
    function GetUnitGreenBonusDamage takes unit u returns integer
    function SetUnitDamageDicesSideCount takes unit u, integer i returns nothing
    function GetUnitDamageDicesSideCount takes unit u returns integer
    function SetUnitDamageDicesCount takes unit u, integer i returns nothing
    function GetUnitDamageDicesCount takes unit u returns integer
    function SetUnitAttackRange1 takes unit u, real r returns nothing
    function GetUnitAttackRange1 takes unit u returns real
    function SetUnitModel takes integer uiobjectaddr, string s returns nothing
    function SetUnitColorDirectly takes unit u, integer red, integer green, integer blue, integer alpha returns nothing//affects illusions
    function GetUnitVertexColorR takes unit u returns integer
    function GetUnitVertexColorG takes unit u returns integer
    function GetUnitVertexColorB takes unit u returns integer
    function GetUnitVertexColorA takes unit u returns integer
    function SetSpellBackswing takes ability a, real dur returns nothing
    function GetSpellBackswing takes ability a returns real
    function SetSpellCastpoint takes ability a, real dur returns nothing
    function GetSpellCastpoint takes ability a returns real
    function EnableUnitControl takes unit u returns nothing
    function DisableUnitControl takes unit u returns nothing
    function DisableUnitsMovement takes unit u, boolean disable returns nothing
    function SetAbilityDisabled takes integer pAbility, integer count returns nothing
    function AddAbilityBaseCooldown takes ability a, real seconds returns nothing
    function AddAbilityCooldown takes ability a, real seconds returns nothing
    function GetAbilityMaxLevel takes integer abil returns integer
    function SetAbilCastTime takes ability abil ,real r returns nothing
    function GetAbilCastTime takes ability abil returns real
    function GetAbilityCD takes integer abil, integer level returns real
    function SetAbilityCD takes integer abil, integer level, real cool returns nothing
    function GetAbilityManaCost takes integer abil, integer level returns integer
    function SetAbilityManaCost takes integer abil, integer level, integer cost returns nothing
    function SetHeroPrimaryAttribute takes unit u, integer i returns nothing
    function GetHeroPrimaryAttribute takes unit u returns integer
    function SetUnitPhased takes unit u returns nothing
    function SetUnitTypeId takes unit u, integer i returns nothing
    function SetUnitArmor takes unit u, real r returns nothing
    function GetUnitArmor takes unit u returns real
    function SetUnitFlags takes unit u, integer i returns nothing
    function GetUnitFlags takes unit u returns integer
     

    they have to be part of next patch
     
  2. fenix140

    fenix140

    Joined:
    Sep 6, 2010
    Messages:
    78
    Resources:
    0
    Resources:
    0
    Great summary, DracoL1ch :smile:
    Well, here increase more codec to this list
    Code (vJASS):

    //
    function SetSpecialEffect takes effect e, string modelName returns nothing
    function ShowUnitExpBars takes unit u, boolean flag returns nothing
    function SetEffectAnimation takes effect e, string whichAnimation returns nothing
    function UnitResetCooldownAbility takes integer abil, unit u returns nothing //also spells items
    function SetMinimapArtBlp takes string iconMapPath returns nothing
    function GetMinimapArtBlp takes nothing returns string
    //unit's weapon type is melee, ranged, splash, artillery, etc
    function GiveUnitControlForPlayer takes unit u, player p, boolean flag returns nothing
    function DesactiveUnitRegenerationMana takes unit u, boolean flag returns nothing
    function IsUnitRegenerationManaDesactive takes unit u returns boolean
    function DesactiveUnitRegenerationLife takes unit u, boolean flag returns nothing
    function IsUnitRegenerationLifeDesactive takes unit u returns boolean
    function SetUnitScaleYZ takes unit u, real y, real z returns nothing
    function GetUnitScaleX takes unit u returns real
    function GetUnitScaleY takes unit u returns real
    function GetUnitScaleZ takes unit u returns real
    function GetUnitArmorBase takes unit u returns real
    function SetUnitArmorBase takes unit u, real r returns nothing
    function SetAbilityPositionX takes integer pability, integer x returns nothing
    function SetAbilityPositionY takes integer pability, integer y returns nothing
    function GetAbilityPositionX takes integer pability returns integer
    function GetAbilityPositionY takes integer pability returns integer
     


    Greetings...
     
    Last edited: Apr 21, 2016
  3. dtnmang

    dtnmang

    Joined:
    Apr 20, 2010
    Messages:
    561
    Resources:
    12
    Models:
    5
    Maps:
    2
    Ported Models:
    1
    Tutorials:
    4
    Resources:
    12
    Unlimited FPS instead of a 60 FPS hardcap?
     
  4. Paillan

    Paillan

    Map Reviewer

    Joined:
    Jan 22, 2011
    Messages:
    3,056
    Resources:
    2
    Models:
    2
    Resources:
    2
    this is something that requires:
    a) the player having a better computer
    b) a better graphic design

    Or something else? I kinda don't know.
     
  5. dtnmang

    dtnmang

    Joined:
    Apr 20, 2010
    Messages:
    561
    Resources:
    12
    Models:
    5
    Maps:
    2
    Ported Models:
    1
    Tutorials:
    4
    Resources:
    12
    I'm pretty sure most computers nowadays can run a game that was made in 2002 at over 60 fps.
     
  6. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    26,128
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    Not if the frame rate is tied to the actual game mechanics. For example running sonic 1 at 5,000 frames per second, something really possible now, will be unplayable as the game will operate and nearly 100 times speed.

    You might find Warcraft III updates 60 times a second and each update can cause a display composition to occur.
     
  7. RagnarokBazil

    RagnarokBazil

    Joined:
    Jun 24, 2013
    Messages:
    70
    Resources:
    0
    Resources:
    0
    Heres an Idea... a Save load Code that's easy to do... So players can make save load Games better Or.. you know? *trys to think* Oh.. a way so you can protect the maps and can never unprotect them, to prevent being stolen.. unless you know like a code that the map was given so you have access to the map.. you know? like i protect booty bay with the program.. it gives me a code say, 123456789, and it tells me its important if i need to un protect it.. And cant be acessed in the world editor, unless you know the code or the creator gave you the code to help with the map.. make seance?
     
  8. Paillan

    Paillan

    Map Reviewer

    Joined:
    Jan 22, 2011
    Messages:
    3,056
    Resources:
    2
    Models:
    2
    Resources:
    2
    Well, save load codes are something... I hadn't thought off. I don't know how you could make such systems easier though.

    About the second. As long as it's ridable in some way by the editor, it might be cracked. This is something that bothers all of us. But I guess the rule of science creation and publication applies here... and I quote:
    "When you do a scientific investigation paper and publish it, this paper stop belong to you as individual and belongs to all humanity as a piece of common knowledge. That doesn't mean people don't have to quote you when they use them, but rather that you can't call this creation yours anymore".
    I guess this rule should be learned by people, so that they give credits for reworks.
     
  9. DracoL1ch

    DracoL1ch

    Joined:
    Dec 12, 2010
    Messages:
    2,037
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    whoa, another things:

    Trackables. Fix their API: allow to move, destroy and locally assign them, fix GetTriggerPlayer, etc etc. Currently they are tottally useless except few cases.

    GetTriggerPlayer. Whenever I control a unit, which actually belong to another player, it still returns unit's owner as TriggerPlayer. We need another native to get a REAL source of the order given.

    Blend masks. Current blend masks cannot be multilicated, they are always override each other and isn't designed to work like other objects do. We need them as objects, not plain global mask.

    GetEventDamage. We need the access for all properties of the damage - damage type and weapon type, initial damage amount. Allow us to change final damage amount as well, effectively changing it for GetEventDamage as well.

    Squelch & ignore - add another bing "mute" and allow to use it with player's slot number (1-16) instead of full names.


    Im sure none of that will be ever done, but my 5 cents are still here
     
  10. Troll-Brain

    Troll-Brain

    Joined:
    Apr 27, 2008
    Messages:
    2,413
    Resources:
    1
    JASS:
    1
    Resources:
    1
    An accurate wait which can be used like TriggerSleepAction ?
     
  11. Chaosy

    Chaosy

    Tutorial Reviewer

    Joined:
    Jun 9, 2011
    Messages:
    11,063
    Resources:
    18
    Icons:
    1
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    18
    yes please!
     
  12. andreasaspenberg

    andreasaspenberg

    Joined:
    Mar 2, 2010
    Messages:
    3,015
    Resources:
    0
    Resources:
    0
    i hope that they enable editing of command cards so that for example more construction lists can be accessed without heavy modding. i also hope that they increase maximum map sizes and makes the game upload the map to the server in order to enable faster download.(peer to peer could also be improved so that everybody shares the parts of the map that they have downloaded and not just the host.) they should also fix the bugged abilities like charge(gold and lumber) which is unable to accept requirements.
     
  13. I have only one request: fix memory leaks.

    That is, a garbage collector should be built in that will automatically destroy handles that have no existing pointers to them. This is a feature in basically every single modern language.
     
  14. DracoL1ch

    DracoL1ch

    Joined:
    Dec 12, 2010
    Messages:
    2,037
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    its actually how it works now
     
  15. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    26,128
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    Only in quite high level languages or as an optional features. Reference counters add overhead.

    Only for the handle indexes. The objects themselves do not get garbage collected. Hence why location and group leaks are a big problem.
     
  16. Raised

    Raised

    Joined:
    May 8, 2016
    Messages:
    58
    Resources:
    0
    Resources:
    0
    We need native functions to have a control over Z-coordinate of game camera, native to get Location's Z-coordinate with no involved location (it should take just real X and real Y).

    As you know, camera is moving over a specific plane, which feels like smoothed landscape mesh.

    Camera coordinate Z is counted from a point on a "camera plane" but not from a point on a landscape. This causes several bugs while camera is near a cliff.

    Needed function could be something like this:
    Code (vJASS):
    native GetCameraPlaneZ takes real X, real, Y returns real //This should return Z-coordinate of projection of a point on the "camera plane"


    There is a similar mask for flying units and it causes similar issue.

    Needed function could be something like this:
    Code (vJASS):
    native GetUnitPlaneZ takes real X, real, Y returns real //This should return Z-coordinate of projection of a point on the "unit plane".


    So that we could obtain better control over the camera and on another calculations. Otherwise you might need to write enormous system to do that.
     
    Last edited: May 8, 2016
  17. Troll-Brain

    Troll-Brain

    Joined:
    Apr 27, 2008
    Messages:
    2,413
    Resources:
    1
    JASS:
    1
    Resources:
    1
    Wait, about the reference handle counter, this is unnecessary now ?!

    Code (vJASS):
    local location loc = Location(0,0)
    call RemoveLocation(loc)
    set loc = null // no need ?
    I thought it was true only for functions argument :

    Code (vJASS):
    function Test takes location loc returns nothing
       call RemoveLocation(loc)
       set loc = null // no need last time i checked
    endfunction
     
  18. DracoL1ch

    DracoL1ch

    Joined:
    Dec 12, 2010
    Messages:
    2,037
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    ^ no, he means objects doesn't destroy themselves on the end of function. Tho I can't see how it's ever useful. You don't need to null arguments
     
  19. Troll-Brain

    Troll-Brain

    Joined:
    Apr 27, 2008
    Messages:
    2,413
    Resources:
    1
    JASS:
    1
    Resources:
    1
    Well, that wasn't clear since DSG didn't make the difference between local and arguments.
    And you talked about a garbage collector.
    So nothing new then, you still have to null local variables.
     
  20. EdwardElric

    EdwardElric

    Joined:
    Jun 19, 2010
    Messages:
    49
    Resources:
    0
    Resources:
    0