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. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  4. Dismiss Notice
  5. Choose your ride to damnation in the 5th Special Effect Contest Poll.
    Dismiss Notice
  6. The winners of the 13th Techtree Contest have been announced!
    Dismiss Notice
  7. 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.

[Ad] inWarcraft Mapping Wish List

Discussion in 'World Editor Help Zone' started by WaterKnight, Feb 16, 2012.

  1. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
    On inwarcraft.de, in the past month, we have collected some suggestions that would improve wc3 mapmaking. The requirements were that backwards compatibility should be maintained and that it should not stray too far away of the existing engine. The results were posted in blizzards suggestion forum now, although we do not expect much out of it. While I won't add new wishes or remove points, you are invited to discuss the detail or contribute to the next round. Despite being named inWarcraft's Wish List at the moment, we would actually like your cooperation in the matter. We just wanted to present this as a product of a community but not pretend it was of the whole wc3 world since it was not until now.

    The thread is found here.
     
  2. Bribe

    Bribe

    Joined:
    Sep 26, 2009
    Messages:
    8,123
    Resources:
    25
    Maps:
    3
    Spells:
    10
    Tutorials:
    3
    JASS:
    9
    Resources:
    25
    Last edited: Feb 16, 2012
  3. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
    If that works, it's okay. Personally, I have only known of the unit selection morsing that you use SelectUnit function and the event. What was included in your thread and not listed yet, would be the GetHostPlayer function and PreloadObjectId. GetUnitTypeModelFile is a bit specific, reading object editor ingame stuff lacks in general.

    Well, it's not really a problem that GetLocationZ takes a location but I've heard that the function is kind of async, like on animated walkable destructables because the animations are not in sync. Someone also mentioned it may depend on graphic level (probably likewise the models) or I know that temporary terrain deformations or such are not detected when the player has no visibility.

    What would you use the thread natives for you proposed?

    I think that native only worked with 1-2 bone names. I guess it would have a great potential though if extended.

    Missiles were also suggested. Yes, and some "Unit finishes attack" event in the meaning of before damage directly after the cooldown and missiles launched would be good like for Nestharus' attack index stuff.

    Images fix noted. And yeah, maybe some native way to display screen-related images and buttons but I guess that requires some new stuff in engine.

    How is GetSelectingPlayer bugged, Tirlitti mentioned at the end of the first page? I only discovered it recently because JNGP does not show it in the function list. What's the difference to triggering player? Does it work for the specific unit is selected event?

    The local object variables leak has to be fixed ofc.
     
    Last edited: Feb 16, 2012
  4. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
    Round 2 will be posted in a few days.

    Current wish list:
    • draw pathing manually on extra layer
    • downgrade researches
    • GetCodeId function getting unique integer ids for code parameters since Condition(code) is slow and can be destroyed/overwritten
    • SetUnitLookAt: enable all bones
    • new Events: create/destroy for most agents, catch minimap ping
    • set facing of structures in editor
    • detect ordering player on order events
    • set thread operation counter/limits and some message on thread break
    • custom soundsets
    • change interface ingame
    • change trade increases ingame
    • add/remove researches/research usages/unit trainings/upgrades to/from units
    • add/remove requirements to/from units/items/abilities/researches ingame
      -----------
    • GetHostPlayer
    • PreloadObjectId
    • fix images
    • fix local object variables leak
     
  5. Bribe

    Bribe

    Joined:
    Sep 26, 2009
    Messages:
    8,123
    Resources:
    25
    Maps:
    3
    Spells:
    10
    Tutorials:
    3
    JASS:
    9
    Resources:
    25
    Being able to do "code array" would be an easy fix for them. If "code array" compiled then it would make a huge difference.
     
  6. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
    What would you do with it? Likewise I asked above what you had proposed

    Code (vJASS):
    native LockThread takes thread t returns nothing
    native UnlockThread takes thread t returns nothing
    native GetCurrentThread takes nothing returns thread


    for.
     
  7. Infrisios

    Infrisios

    Joined:
    Feb 21, 2005
    Messages:
    106
    Resources:
    7
    Models:
    7
    Resources:
    7
    Applying replaceable textures specifically to units/doodads would be awesome. Like, declaring ReplaceableId31 (LordaeronTree) for a Mountain Giant so you can use his alternate animation set (with the tree club) without actually grabbing a tree.
     
  8. Bribe

    Bribe

    Joined:
    Sep 26, 2009
    Messages:
    8,123
    Resources:
    25
    Maps:
    3
    Spells:
    10
    Tutorials:
    3
    JASS:
    9
    Resources:
    25
    Thread locking would be like this:

    Code (vJASS):

    function ...
        //Declare some locals
        loop
            //Do some periodic stuff
           
            //Pause the thread, set a timer so when it expires this thread is resumed,
            //issuing an "exact wait", so we can use this loop with the same locals without
            //needing complex structs.
        endloop
    endfunction
     


    With code array, it would be a more efficient, handle-friendly way to run dynamic code. Instead of ExecuteFunc which is 8x slower than ForForce, one could simply store code arguments avoiding the need to use triggers + conditions to do it.
     
  9. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
    But you mean you want to resume the thread from other threads, else an ExactWait-function would have been enough.

    How much slower is TriggerEvaluate? Well, a RunCode-function would then be more desirable altogether.
     
  10. Bribe

    Bribe

    Joined:
    Sep 26, 2009
    Messages:
    8,123
    Resources:
    25
    Maps:
    3
    Spells:
    10
    Tutorials:
    3
    JASS:
    9
    Resources:
    25
    TriggerEvaluate and ForForce are the same speed.

    I agree an exact-wait makes more sense.

    In common.ai is a StartThread native which takes a single argument (code) but it doesn't work when you try to import it into your war3map.j.

    If they made "StartThread" and "code array" work... holllly smokes.
     
  11. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    25,814
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    Almost all the features on that wish list are already in StarCraft II.

    I would personally like to see bug fixes more than new features.

    Local handles declared with the local keyword should automatically cause the reference counter to be decremented at the end of a function just like local handles declared as function arguments.

    Creating units should not cause a permanent memory leak.

    Strings should be automatically garbage collected or at least a native should exist that can be periodically called to help free up disused strings.

    Pausing a periodic timer should not cause the timer to lose the periodic status.

    Creating quests during map initialization should not cause a game crash.
     
  12. shadowvzs

    shadowvzs

    Joined:
    Nov 13, 2006
    Messages:
    1,803
    Resources:
    2
    Spells:
    2
    Resources:
    2
    mine:
    - unit roation in vertical angle too (facing angle just rotate unit in horizontal) this could make easier the missile systems and full screen hero selection where u want rotate the dummy to left and right

    - ofc file size limit too

    - something solution for remove then 'Arav', or crown form bug effect if its dont needed anymore. or just make something solution for set flying height without staying the effect on unit (example after jump u climb up to cliff)

    - instant channel ability casting without 0 blending time

    - more keyboard event, like w,a,s,d and not just up/left/right/down

    - could be nice a function for order the data in array (exactly how mysql ORDER work, where u can order ASC/DESC)

    - fix/or make getpointpathable thing, where u can check if have something in position or can create unit there without problem

    - dynamic camera what work when have something on way, without unit/item creating tricks

    - vertical images

    - remove doodas function

    - hero ai system for non melee maps

    - global variables in gui dont get udg_ in jass

    - remove event function

    - buffs levelable like ability

    etc etc :D

    (ofc most of thing work atm too but with tricks, but could be there a function what do it directly)
     
  13. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
    There are a lot of bugs mapmakers abuse for their advantage though. Backwards compatibility should not be broken or at least a good alternative offered. You probably mean only-disadvantageous stuff but at least we have developed circumventions around most of them.

    Already enlisted as "fix local object variables leak", I write a more detailed description then.

    This was only discovered by you in the recent past afaik. So does this really have weight at the moment?

    Was object of the last wish list.

    This also.

    I do not get it. You can set a unit's flying height after you have added and removed 'Amrf' once. The ability is not required to stay on this unit.

    Flags for using cast point animation time and back swing and parallel cast.

    Also object of the last wish list. But you should consider that this overlaps with unit orders, therefore decide what has to be prioritized/whether the other event is fired or in which order events take place.

    What's the problem with existing solutions there?

    I do not get it.

    Shall work how? The computer won't know what to do in your map. I actually consider the standard ai as a nuisance because it gets into conflict with what you want to realize.

    Why? Global variables from GUI are scopeless and should be recognizable. Also, most likely, for a (v)Jass user there is no point cooperating with GUI.

    Already in last wish list.

    There is not even an AddUnitBuff-function. Buffs are extensions of abilities, inherit behaviors of it and you can see the level of a buff in tooltip. It derives from the ability level.

    The wish list shall contain key features that really help mapmakers in a lot of ways. We also proposed SetUnitState/AddUnitState but only because the current solutions for them are very inconvenient and have to be explained to every newbie. Things like sorting an array are easy to write, therefore would only boost performance. So the question is whether this is really a problem at this point to users.
     
  14. shadowvzs

    shadowvzs

    Joined:
    Nov 13, 2006
    Messages:
    1,803
    Resources:
    2
    Spells:
    2
    Resources:
    2
    1. yes just under that u can mean to more thing, mainly my problems was the angle setting
    2. ofc u can set after add/remove crow form, but u also go over the cliffs, what normally way not allowed, i mean add/remove ability to unit with foot mov type, then this unit type after this bug cant be reseted again to normal foot mov type, he will act like flying unit later too just maybe with 0 height but still flying unit.

    lets see example floor systems, there u must do crow form bug but then damn annoying when u go back to ground then still ur movement type not resetted, example that system what is on thehelper they solved with bear form trick (add bear form, order, remove) but u wanna do bear for for each unit type on map only for reset his movement type to default? another solution was make a dummy clone, hide original and add crown bugg to dummy but that also could be easier with simple SetUnitMoveType function, what atm not exist

    (floor system: when have multiple floor, and u can go on&under the floors not like when u cant go over under the bridges )

    3. about channel and backswing, correct me if it is wrong but u must set it on unit in object editor but then its applied if unit want cast different abilities no? what if i want ability what isnt instant and ability what instant same time? that few instant ability is a annoying limit

    4. solution about getpathable? maybe the unit creating way what is the best way not faster than a native getpathable function (what not exist)

    5. if u watched witchery advanced camera system in spell section then u understand what i mean (still Nest unit creation system instead item creation is more accurate and work better, just could be nice a native instead this tricks)

    6."The computer won't know what to do in your map" - then neutral hostile player trolls why can use bloodlust and heal and etc? only thing what missing is seeking enemy but casting, ordering work with there def abilitites,no?

    7. coz easily who not vjasser like me :p

    8. but removeability function exist where u remove the buff like a normal ability, also if u have aura harder to check the ability level, coz problem is "whos aura applied on me" question, if have more aura. Yeah Nest also made a solution to this if u dont use default aura but could be nice with a single native function call :D

    9. a newbie cant do array ordering system if he want order his multiboard by highest kills to lowest kills (example)
     
  15. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
    Pitch, roll, yaw were specifically mentioned.

    Crow form does not change the movement pathing. For foot units it's like they become hovering, just the graphical height settable. But yeah, probably a SetUnitMoveType function would not be too shabby.

    I said to flag the ability whether you want to use the unit's cast point/back swing or not. At the moment, channel abilities all do consider cast point but leave out back swing (which is ugly btw).

    You can recycle dummies/units and it was also done with cheaper items. No doubt could there be faster approaches but looking through the forums, that did not appear to be a real performance problem for most.

    Or perhaps you could just explain it to me?

    Heal and Bloodlust are standard abilities, even automatable. Well, what you speak of is a very simple scenario with minor intelligence and wc3-enginewise. That maybe could be applied (turned on) for player/units. It does not work when you alter the abilities in their meaning. I believe Starcraft2 had a construction kit of adding different general behaviors to carve out an AI as a constellation of basic methods.

    Almost all jass users use vJass. Almost no jass user uses GUI. So operating from the GUI side, you may import scripts but they do not have to fiddle with the jass code, therefore the variable representation there is meaningless to them.

    RemoveBuff exists because buffs were designed to be droppable. It's an interface so for example death or dispel may cancel the spell effect too. There is not such that you can reset the level though and expect the ability to be updated. To check the buff level, a correction of GetUnitAbilityLevel would be more appropriate anyway.

    There is a lot newbies cannot do. That's not only a rare problem but also fast told how to.
     
  16. shadowvzs

    shadowvzs

    Joined:
    Nov 13, 2006
    Messages:
    1,803
    Resources:
    2
    Spells:
    2
    Resources:
    2
    1. atm u must make 360 unit each with different pitch angle if u want something smoothly, its pretty annoying, another way the vexorian dummy unit thing but i cant use it some (i talk about correct pitch for arrow when its flying in parabola)

    2. then why i can go over the cliff sometimes in thix example map? https://www.hiveworkshop.com/posts/2115620/ with peasant/priest?

    3. right about recycling but kinda could be better a simple native function than 1 dummy recycler+something what move the unit/item allways

    4. http://www.hiveworkshop.com/forums/...arch=advanced%20camera%20witchery&d=list&r=20 example here, u dont ahve problem with "omg a tree/structure is between camera and my hero" thing

    5. ok but i mean here atleast a minor base ability useage, i dont talk about custom or less used abilities but could be nice if u make a paladin to player 2 then that paladin use his abilities, learn his spell, dont needed same hard core ai like here http://www.hiveworkshop.com/forums/spells-569/hero-ai-v4-3-3-a-209141/, but atleast a minimal for make more enjoyable a map without make trigger for basic things like ordering a boss for heal him self or use his ability on you

    6. most of gui use custom script what count to jass :p

    7. i started make my custom buff system because kinda annying if u want buff somebody lets say with 17% critical strike then kinda imposible without make alot ability or 1 with lv100, this is why i talk about buffs.
     
  17. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
    As I said, this wish was already stated in the first round.

    call SetUnitPathing(u , false)


    Everything seemed pretty buggy.

    hidden
    [​IMG]


    An exact intelligent camera would not be so easy/performant I guess as the graphics have to be checked nor would it be flexible. Why not take a custom system for it? It's not like Blizzard should make our maps.

    I am not adept with wc3 ai but I know computer-controlled units do use some abilities on certain events. No idea how this differs to creeps. There are also actions to run ai scripts.

    Fatal mistake btw, GUI users importing stuff they do not understand. Anyway, would then say display the real var name in variable editor so you can even change the prefix and it does not break backwards compatibility. You still have to pay attention to not name your variable after other identifiers like generated variables.

    Setting the level of buffs does help you there how?
     
  18. shadowvzs

    shadowvzs

    Joined:
    Nov 13, 2006
    Messages:
    1,803
    Resources:
    2
    Spells:
    2
    Resources:
    2
    2. so coz of collision is off? yea, that could be reason, so i think u have right
    3. hehe, with me not happened when i tryed (ok already was madness from going out from city :D). point there
    4. ai script work only if melee map with building etc,no?
    5. ok alot people import spell from spell section without knowing exactly how its work :p
    6. this is the point, u cant level it else still easier the checking the buff levels in Life steal, Attack speed perc, Damage Increase buff percentage, regeneration etc everywhere where have percentage could easier than useing alot variable.
    ofc i used variables for make everything buffable on my map
     
  19. WaterKnight

    WaterKnight

    Joined:
    Aug 18, 2009
    Messages:
    4,033
    Resources:
    5
    Maps:
    1
    Tutorials:
    4
    Resources:
    5
  20. Pr0nogo

    Pr0nogo

    Joined:
    Mar 31, 2012
    Messages:
    168
    Resources:
    1
    Maps:
    1
    Resources:
    1
    I would really like to see the creation of fresh corpses, in addition to the already-existing fleshy and skeletal corpses. To achieve this now, you need to have a custom doodad with the model of the unit you want dead - only with its stand and death animations swapped. That's a pain.

    I have a question regarding the general purpose of the wish list. Do these ever make it anywhere? Are there third parties working to implement these functions into a third-party editor? I didn't think Blizzard was still running development for WarCraft III.