[JASS] The Big List of Uncodable Things

Discussion in 'Programming' started by cezar_sl, Sep 29, 2009.

  1. cezar_sl

    cezar_sl Well-Known Member

    I'm trying to make a list of all the things that are unlikely to be coded into DotA, because they are either uncodable, would have serious drawbacks or require too much extra coding.

    [nqb]So, here it is, the B.L.U.T. :


    If possible give a reason.
    [a=link]Dynamically modifying attack range[/a] : one way to increase attack range is with an upgrade, which cannot be taken back and would require something like resetting the model, which would interrupt orders and such. another way would be via an arrow effect which does nothing, but has various cast ranges at different levels, and make it so that whenever you try to attack outside normal range, the arrow effect will be casted instead. But this would override most attack modifiers you have.
    Last edited: Sep 29, 2009
  2. Siraraz

    Siraraz Banned

    The list grows limitless. You could really actually put everything.

    Here are some randoms that COULD be but won't, too much problems:

    - Allowing players to join into a game even after it has started. (POSSIBLE with RtC)
    - Allowing triggers to detect Mouse's location (RtC)

    - Having Buff timers, like in Heroes of Newerth or something. It shows how many seconds. (Too much Object Editor hassle, and triggering hassle)
  3. cezar_sl

    cezar_sl Well-Known Member

    Thanks, but I'd rather have stuff that people are likely to suggest.
  4. Infrisios

    Infrisios Moderator

    Might be that the list is endless, but there are a bunch of things people just keep suggesting, and these should be noted here in my opinion.
    Could even be a list for that suggestions thread.
    In that case, it is important that the information that this is merely a small part of all the uncodable things comes along in the main post.

    Manipulation of cooldowns, checking cooldowns.
    Detecting whether damage comes from spells or from attacks.
    Detecting critical strikes/bashes/evasion.
  5. Gazar-

    Gazar- Well-Known Member

    I think then we should add

    Spell reflection, as people often suggest this, but do not know that it is uncodeable in the sense that it is too much work to be implemented.
  6. CvP

    CvP Forum Manager

    thread pinned. do keep it as clean (on topic) as possible.
  7. cezar_sl

    cezar_sl Well-Known Member

    Thanks for pinning.
    I was going to ask for it once it grew.
    Adding new stuff to the first page.
    For AoE spells yes.
    But for spells that at some point target the unit directly in would I suppose it youlld be just like the Linken's Sphere trigger.
    Last edited: Sep 30, 2009
  8. Jenova-

    Jenova- Moderator

    Wicked list. Great initiative, cezar.

    Indeed, the list can actually grow limitless, but I think it could just be restricted to have all the things that are commonly suggested (or likely to be), along with other changes relevant to the game.

    I hope I could help, but my coding knowledge matches that of a kangaroo (a stupid one, that is).
  9. p811025

    p811025 Well-Known Member

    Detect attempt to sell item? but I'm not sure about this one.
    And change "detecting whether damage comes from spells or from attacks" to detecting attack type. I also think detecting base armor and unreduced damage is not feasible.
  10. kingkingyyk3

    kingkingyyk3 Well-Known Member

    Manipulation of cooldowns, checking cooldowns.
    No, Cooldown system.

    Detecting whether damage comes from spells or from attacks.
    No, Damage system.

    P/S : Don't try to post something that is codable.
  11. NoThlnG

    NoThlnG Well-Known Member

    Spell reflection itself isn't possible but the damage is possible isn't it?
  12. GetTriggerUnit-

    GetTriggerUnit- Well-Known Member

    I did a system to check cooldowns.

    The cooldown of the ability needed to be registred tho. (i.e.)

    When a player cast an ability call RegisterCooldown(unit, abilityId, time)
    and you could GetCooldownRemaining(unit, abilityId); returns real, etc..

    Here's the link. I didn't update it tho. It's old and could be re-done. It's just to show you how I've did it.
    Last edited: Sep 30, 2009
  13. p811025

    p811025 Well-Known Member

    This is why it will not get implemented considering the amount of work it needs just for a few spells/items.
    Care to provide a demo map? It was impossible for a long time.
  14. Siraraz

    Siraraz Banned

    Intuitive Damage Detection System - Wc3C.net
    Although, it involves replacing UnitDamageTarget with the systems own damage function, which can easily be done I think. Can't you just edit the blizzard scripts and add your own?

    AND incase someone says detecting armor types: http://www.wc3c.net/showthread.php?t=85631
    Last edited: Oct 1, 2009
  15. GetTriggerUnit-

    GetTriggerUnit- Well-Known Member

    MHM, that couldn't work?
    function C takes nothing returns boolean
        if GetUnitCurrentOrder == 80000 then// Id of the order "attack" ( I don't know by heart what the "attack" id is )
            call BJDebusMsg("DamageSource() was attacked")
            call BJDebugMsg("Damage comes from another source than attack)
        return false
    function InitTrig_APL takes nothing returns nothing
        local trigger t = CreateTrigger()
        call TriggerRegisterAnyUnitDamaged(t)
        call TriggerAddCondition(t, Condition(function C))
  16. p811025

    p811025 Well-Known Member

    @APL- the notes say that all spells have to be triggered for that system to work, its too much work to implement.
    @GetTriggerUnit-No, enemies can be damaged by spells when you are attacking, all DoT skills can do that.
  17. GetTriggerUnit-

    GetTriggerUnit- Well-Known Member

    Well AFAIK, that's still the easiest way to do it.

    You could have a global trigger that call it for every spell...
  18. Siraraz

    Siraraz Banned

    Offtopic but, WTF? function InitTrig_APL takes nothing returns nothing
    Excuse me lol?

    It is meant to be:
    function InitTrig_APL takes cashAsAPayment returns GetTriggerUnit-'sHead
  19. GetTriggerUnit-

    GetTriggerUnit- Well-Known Member

    function InitTrig_APL takes unit APL, player APL returns APL
        return APL
  20. Ryvian

    Ryvian Well-Known Member

    Tagging heroes? Kinda like tag-team combat in fighting games, where you leave play and bring in your reserve hero. I think that could fall into the category of "require too much extra coding". I remember seeing this suggestion back in the DA forums.