[JASS] about JASS and helping

Discussion in 'Programming' started by jjohnjjang, Apr 12, 2012.

  1. jjohnjjang

    jjohnjjang Member


    I have no knowledge in JASS, as matter of fact I know Java and very little of C.

    I heard dota AIs are created using JASS?

    I want to learn and also help on it, are there are good websites teaching about JASS?
  2. WaremDarkslayer

    WaremDarkslayer Active Member

    First of all since you know Java , then congratz to you sir :)
    Second, if you are looking to find out about JASS it is the pseudo - programming language that powers all warcraftIII maps and campaigns.
    It only slightly resembles Java.In fact , it is Easier.

    Anyway, if you want to learn the basics (and some more advanced issues) of JASS then this site will help you(go to the tutorials' page):Hiveworkshop
  3. MauranKilom

    MauranKilom Well-Known Member

    Again, i doubt JASS is easier than Java. If for you "easier" means "fewer features" then probably yes, but JASS is pretty horrible to code in (unless you know what you're doing).

    Anyways, the first thing you should do to get into JASS is to get JNGP running. You'll find lots of tutorials on Hiveworkshop (as WaremDarkslayer already mentioned), and you'll surely find more help if you search for specific questions.

    Also, you can always ask for help in this forum.
  4. CrazedSeal

    CrazedSeal Member

    JASS is very similar to Visual Basic.

    There are many different JASS code types.
    eg. vJass, cJass, Zinc.
  5. WaremDarkslayer

    WaremDarkslayer Active Member

    What I meant by easier is that Java has too many problems with user input, and by problems I mean there is more than one possible way of getting user inputs for each type of input.(int , string , float etc.).

    Yes JASS is horrible as a language but it is a necessary evil if you want to create warcraftIII games that are worth a damn(no offence).

    And besides before getting JASS New Gen Pack you should know what JASS is and how it works.Otherwise , you'll never learn how to efficiently code in JASS.
  6. MauranKilom

    MauranKilom Well-Known Member

    I can agree to that. Input-wise, JASS is defenitely easier, but as a language it sucks.
  7. -Kobas-

    -Kobas- Well-Known Member

    Actually is not, because I code both and I can't say that they are similar.
    Visual Basic is far more powerful "tool".

    It sucks because it was specially created language for just 1 purpose only.
    You can't compare it to languages like C or java.
  8. Sonic

    Sonic Well-Known Member

    AFAIK Icefrog uses Jass, not vJass. Mb i am not right, but he creates spells via storing dates in game cache
  9. -Kobas-

    -Kobas- Well-Known Member

    Hardly to imagine that, even hashtables are problem because you can't have more than 256 created in map.

    He use Table and libraries like AIDS or Damage Engine etc etc, and they are vjass coded.
  10. MauranKilom

    MauranKilom Well-Known Member

    The game cache is no longer used for that. It is only used for saving additional replay data (who skilled which skill, who killed which hero etc.).
    The spells that need to store data use hashtables to do so.

    Why would you need 256 hashtables? 1 is enough for all spells.

    Then there would be signs of that in the code. However, there are none.
    Also, it's one of the bigger flaws of DotA that it does not have a damage detection engine.
    What does this tell us?
  11. -Kobas-

    -Kobas- Well-Known Member

    True, but you you will need to care about keys in that case.
    That's why I mentioned table.

    He use, I will now list you few spells that can't be created otherwise: Abandon Shield and ultimate. Dazzle - Shadow Grave...
  12. MauranKilom

    MauranKilom Well-Known Member

    I think taking care of keys and not messing around with them is far easier than creating a new hashtable for each and every spell. A simple list is enough.

    You're probably a good mapmaker, but it's pretty simple: Icefrog doesn't use any kind of damage detection library.

    Please, tell me where you need a damage detection engine for coding abba's shield or shallow grave. You just need the EVENT_UNIT_DAMAGED event.
    I can show you the code he uses if you want to.

    I understand that you are probably baffled by the functionality of the map without any library, but then again keep in mind that most likely nobody wanted to recode the entire map to include a new library.
  13. Sonic

    Sonic Well-Known Member

    Icefrog is very smart, I shocked when I saw how Shallow Grave works. Setting hp to 1, whenever damage is higher than life, will not help. It works another way,because if damage is higher than life, target will die. It's add some abilities to a target, that adds life, something like this.

    I am not sure that Icefrog uses any libaries, I think he doesn't even use vJass. He uses hastables, sorry I right wrong above, writing storing dates in a gamecache. My fault.

    And look at Phoenix's Sunray, Icefrog did a huge job, making this spell, spellmakers will understand me
  14. MauranKilom

    MauranKilom Well-Known Member

    Unfortunately, it doesn't work that way. It's exactly the opposite of what you described:
    If you are shallow graved and take more damage than your max hp, you'll die.

    This is because shallow grave is a simple triggered heal (pre-heal to be more precise).
  15. Sonic

    Sonic Well-Known Member

    Where did u saw that in my post? I said that it doesn't work that way. Read again
  16. MauranKilom

    MauranKilom Well-Known Member

    I'm not sure we get each other right.
    This is how the spell currently works:
    Your post sounded as if you concluded the opposite.

    Or in other words: I didn't mean to rephrase your statement, but to correct you.
    Last edited: Apr 25, 2012
  17. Sonic

    Sonic Well-Known Member

    I didn't include it ^. I said that it doesn't work like that way
  18. MauranKilom

    MauranKilom Well-Known Member

    Then you are wrong.
    I'll reiterate this for the third time now, this is how Shallow Grave works:
  19. -Kobas-

    -Kobas- Well-Known Member

    OMFG I just checked latest dota script.
    You are right he code in vanila jass.

    I'm horrible disappointed. Not because of vanila jass but because of bad codding, I saw 2 many same functions and conditions that could be merged into one.
  20. MauranKilom

    MauranKilom Well-Known Member

    Well, apparently the biggest and most famous wc3 map doesn't need "good" code.