DotA object database

Discussion in 'Advanced Mechanics' started by d07.RiV, Jun 20, 2014.

  1. EebstertheGreat

    EebstertheGreat Forum Manager

    Yeah nice, the link is what I meant. It slows my browser down a bit, but honestly not much. It does scroll kind of slowly I guess, and it takes around 10 seconds to finish loading (though it is usable while loading).

    Seems like that will be very browser, bandwidth, and CPU dependent.
     
  2. d07.RiV

    d07.RiV Well-Known Member

    Firefox seems to handle it a lot better for some reason. Also, trying to find the function definition by clicking a function name (with the entire code loaded) completely freezes Chrome, while it works fine in Firefox.

    Bandwidth shouldn't be an issue, its less than 1MB compressed in total, its only loading slowly because its making a separate request for every 1000 lines.
     
  3. EebstertheGreat

    EebstertheGreat Forum Manager

    Checking again, it actually takes quite a bit longer than 10 seconds. More like 30 seconds I guess. Still, it does work fine in Firefox. Not sure why there's such a big difference.
     
  4. d07.RiV

    d07.RiV Well-Known Member

    I made a searchbox for the JASS viewer that should kinda work. It only highlights the line with the occurence but I hope that's enough.
    It downloads the whole JASS code as raw text before displaying the search box, but it seems to only take a couple seconds most of the time.
     
  5. EebstertheGreat

    EebstertheGreat Forum Manager

    It highlights the line and more importantly scrolls to it, which is exactly what that needed.

    It looks great.
     
  6. xpforever

    xpforever Well-Known Member

    Is it just me or did the search box break. I type in a name and it just returns me to the homepage.
     
  7. d07.RiV

    d07.RiV Well-Known Member

    Oops I messed it up when compacting the javascript. Will fix it asap. (edit: done)

    I had an idea to allow renaming variable and function names in the script to give them meaningful names, wiki style (everyone can contribute). This would take some time to implement (not a big deal, its a fun project for me), do you think there would be enough interest in it to get it anywhere? I don't think it will be possible to carry the names over to new map versions, though (unless I come up with an offline tool that would match the functions).
     
    Last edited: Jul 23, 2014
  8. EebstertheGreat

    EebstertheGreat Forum Manager

    Search works now.

    I like the idea of renaming functions, but you would have to make sure that the names remained consistent across multiple versions. Some functions (e.g. "distance between coordinates" (Func0146) and "triggered damage" (Func0114)) are unlikely to change, but other functions (e.g. "Dispersion damage" (Func3456 as of 6.80)) probably will.
     
  9. MauranKilom

    MauranKilom Well-Known Member

    Yeah, renaming functions would be really cool. I mean, I've had my own ideas about tools for easier working with the script/data files, but seeing as the entire DotA 1 scene is slowly dying (at least the mechanics part on this forum), I never really got around to it.
     
  10. DracoLich

    DracoLich Well-Known Member

    i tried to make kinda open-doto with all-named script when 78 was there
    but it was too slow for one person, not even talking about most people would never use it at all
     
  11. d07.RiV

    d07.RiV Well-Known Member

    Yeah the fact that its all dying out kinda puts me off. I'll be leaving for a couple weeks tomorrow, will see what I can do when I get back.

    Problem with carrying names over to new versions is that function numbers change, and I'd have to run some automatic comparison to match the functions. I guess it won't be too hard as there are surely plenty of libraries for that, there are just so many ways to mess it up (e.g. switching the order of two functions, which can easily happen if the script is compiled with newgen).
     
  12. EebstertheGreat

    EebstertheGreat Forum Manager

    The script is not compiled with newgen and functions are usually not reordered, but the problem remains when the content of functions is subtly changed as well as new functions being inserted between them.
     
  13. DracoLich

    DracoLich Well-Known Member

    yeah, pretty much every version fuckup var names, cause for some reason (guess there ARE used vJASS) new global variables being declared in random places instead of lowest possible line. same goes for functions.
     
  14. MauranKilom

    MauranKilom Well-Known Member

    What makes you sure that vJass is being used? Just optimizing the map already makes everything gibberish and likely removes and vJass remnants (should there be any in the first place).
     
  15. DracoLich

    DracoLich Well-Known Member

    cause normally noone will going through half list of globals to insert newest one into middle. new vars appears in custom places, and looks like normal scope/library using.
     
  16. EebstertheGreat

    EebstertheGreat Forum Manager

    Well there are probably comments in the original code. So for instance, if you had a segment of (fictional) coding which looked like:
    [jass]globals
    // Ability IDs
    int001==A000
    int002==A001
    ...
    int099==A00P
    // Ability CDs
    int100==12
    int101==20
    ...
    int199==32
    ...[/jass]

    And then you introduced a new ability [A00Q] with a 60 second cooldown, the new list would probably look something like this:
    [jass]globals
    // Ability IDs
    int001==A000
    int002==A001
    ...
    int099==A00P
    int100==A00Q
    // Ability CDs
    int101==12
    int102==20
    ...
    int200==32
    int201==60
    ...[/jass]

    Even if you didn't use any tools. You can also use text or code editing tools and achieve similar results.

    That doesn't mean custom libraries aren't used or more specifically that vJASS isn't used. I am curious myself. However, by the time it is compiled and decompiled, there is no evidence left.
     
  17. d07.RiV

    d07.RiV Well-Known Member

    Hey almost forgot about this.. updated to 6.81d.
    I gave up on the name editing thing since there isn't a lot of interest in this and I have other priorities.
     
  18. Clogon

    Clogon Well-Known Member

    Thanks a bunch!
     
  19. Siraraz.

    Siraraz. Well-Known Member

    Does the original JASS script (not renamed by RMPQEx) spell out "VEXORIAN" as the first 8 global variables, or did IceFrog use a custom obfuscation key?

    Just curious :D
     
  20. d07.RiV

    d07.RiV Well-Known Member

    It starts with IOABCDEFGHZVWXYJK..
    Btw until 6.61 variable names only consisted of Il10O.