Login | Register


All times are UTC - 5 hours


It is currently Thu Mar 28, 2024 8:02 am




Post new topic Reply to topic  [ 8 posts ] 
Author Message
 Post subject: Skill Calculator Questions and Progress (3-16.3)
PostPosted: Thu Mar 14, 2013 7:22 pm 
User avatar

Joined: Tue Sep 01, 2009 9:01 pm
Posts: 1413
I have started a venture to make a skill calculator. I have made some progress on the simpler skills, but I have a few questions that hopefully someone can answer. I may run across more soon enough, but here are some.

1. Where is the fire damage per second calculated for meteor.
2. Why are the damages listed in game for firewall and blaze multiplied by 3 when compared to the numbers calculated directly from skills.txt?
3. On the cold spells, it looks like the synergies to freeze length are actually to cold length...if they are even there at all. Am I missing something?
4. Do shiver and chilling armor give def or are the cells in params 'dead'? If they are dead, they need to be removed.

notes to self:
Sorceress
1. meteor fire patch
2. ES and teleport
3. cold length blizzard in game doesn't agree
4. cold length frozen orb (change over tiers need to do)
5. mana values

Also, if I do make it all the way through, is there somebody that can make a front end if I use excel?

New version for sorc uploaded. Not everything is done, but the most important stats are basically done.

It can take into account extrafire% from facets and what not separately from masteries. If you don't put any points into masteries and only give an extrafire% from the character screen, this works as well.

http://dl.dropbox.com/u/1281266/D2HUSkillCalc.xls

3-16.2 fixed issue using blvl vs lvl.
3-16.3 charged bolt should be correct. lightning and chain lightning should be correct to within 1 point for max damage

_________________
The reader should not be discouraged if...he does not have the prerequisites to read the prerequisites. P. Halmos


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Skill Calculator Questions and Progress (3-15)
PostPosted: Fri Mar 15, 2013 12:35 am 
User avatar

Joined: Tue Sep 01, 2009 9:01 pm
Posts: 1413
added question 3, and gave a file link.

_________________
The reader should not be discouraged if...he does not have the prerequisites to read the prerequisites. P. Halmos


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Skill Calculator Questions and Progress (3-15)
PostPosted: Fri Mar 15, 2013 6:52 pm 
User avatar

Joined: Tue Sep 01, 2009 9:01 pm
Posts: 1413
question 4, notes to self, and updated file link. Most of main sorc stats are essentially done. Cleaned up the file by breaking up fire/cold/light spells.

_________________
The reader should not be discouraged if...he does not have the prerequisites to read the prerequisites. P. Halmos


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Skill Calculator Questions and Progress (3-16.3)
PostPosted: Sat Mar 16, 2013 11:50 pm 
User avatar

Joined: Mon Aug 31, 2009 11:28 am
Posts: 1136
Location: Vancouver, BC
Salutations,

PureRage has been fairly busy lately, so I'd like to volunteer to answer as many questions in this forum as I can for a few months. The last couple years have left me lots of time with little or no Internet connectivity, so one of the things I did to amuse myself was mess around with D2 modding.
kramuti wrote:
1. Where is the fire damage per second calculated for meteor.
For many skills, pay attention to the columns related to "srvmissile". You'll find these entries link to rows in Missiles.txt. D2 skills often work by creating a missile that might make more missiles, or just be a graphic. For Meteor, you're actually creating "meteorcenter" since srvmissile=meteorcenter. Notice that in Missiles.txt for that row HitSubMissile1=meteorfire, so investigate that row too. Notice for that for meteorfire, "Skill" field is blank, so the damage values will be read from the damage columns of Missiles.txt rather than skills.txt. Whenever you can't find something for a skill, the answer is probably hiding in Missiles.txt.
kramuti wrote:
2. Why are the damages listed in game for firewall and blaze multiplied by 3 when compared to the numbers calculated directly from skills.txt?
Blizzard wanted to give flames more depth (appear thicker and move more randomly), so they just tripled the number of flame-graphics that are produced on each tile. Each of the flames damages separately, so in skilldesc.txt the damage display is configured to triple the damage read from skills.txt.
kramuti wrote:
3. On the cold spells, it looks like the synergies to freeze length are actually to cold length...if they are even there at all. Am I missing something?
In Missiles.txt, notice the first few column entries (e.g. "pCltHitFunc"). Those numbers specify which hard-coded Blizzard process to apply for that missile (similar to the first few columns of skills.txt for skills). For the cold skills you mention, it's very likely that the functions are hardcoded to look at the cold-len fields for that skill and interpret them as freeze durations. As an interesting side note, the functions related to IceArrow tell it to use the player's overall cold-len attribute (from any source) and convert it to freeze length (so if your IceArrow skill says it freezes for 1 second, but you've got gear that chills for 12 seconds, then your IceArrows would freeze for 12 seconds).
kramuti wrote:
4. Do shiver and chilling armor give def or are the cells in params 'dead'? If they are dead, they need to be removed.
I'm all for cleanliness and standardization; however, there is so much odd behavior related to hard-coding or general wierdness related to skills, that I wouldn't blame someone for being afraid to delete anything from the text files unless they absolutely had to. When I was messing with my own stuff, I removed a lot of '0' entries from things because I didn't like the clutter, but I was careful to test that blank entries are treated as '0' (perhaps I just haven't found the case that proves me wrong on this though).
kramuti wrote:
Also, if I do make it all the way through, is there somebody that can make a front end if I use excel?
I'm not familiar with any process where an Excel back-end is convenient. If you still haven't progressed far in your project, I'd recommend switching from Excel to either HTML or PHP as requested by DuFFBeeR in this thread. Note that Shantu linked to a pretty nice Excel Sorc skill calculator in that thread, you should consider reviewing his design for any nice features you'd like to include. If your computer can't handle .rar compression, then consider using 7-zip (seems good to me, and is free). If you decide to continue with Excel, then try to base all of your formulas on references to data copy-pasted from the text files into cells (kind of like how Shantu's calculator's formulas reference cells on a different worksheet). If you do this, then a programmer can essentially copy your formulas without needing to rediscover how skills.txt works.

Although this would create embarrasingly large spreadsheet files, one of the most useful ways you could create your Excel calculator would be:
1) Create a workbook (Excel file) for each class, or perhaps one containing all classes.
2) Create a worksheet (the tabs at the bottom) for each of skills.txt, Missiles.txt, and monstats.txt (you only need monstats for summon skills). These are the "Data" worksheets.
3) Create a worksheet for each skilltab or character class (your choice)
4) For each skill, make each cell that displays something calculate that thing based on the data from the data worksheets (e.g. "VLOOKUP(skillName, skillsDataTable, Param1Col, FALSE)*skillLevel" would get the param1 value for the given skill name and multiply it by the skill level). I can help you create your formulas so that they can be simply copy-pasted with very few changes (i.e. this can be much faster than typing in values by yourself for each skill).

The benefit of that design is that you are helping the programmer by showing how each skill references the text files, which would be a massive benefit. This would be a large project, but you'd surely learn a lot about D2, modding, and programming. It would be worthwhile keeping that workbook as part of your job-search portfolio if you pursue a job that is related to Excel or computer programming.

Your notes-to-self mentioned some innacuracies, if they are small (i.e. 1), then consider ignoring them. In-game values are often slightly different than calculated. This might be because skilldesc.txt has been edited to include a small mistake, or because when D2 is showing numbers, it calculates them in an uncommon way (computers like this way though). Many numbers (e.g. Damage, HP, MP) are stored not as a decimal number, but as a fraction of 256. Also, the calulations in D2 use "Integer Division" which ignores the decimal portion (so 9/2 = 8/2 = 4). Once you consider that Excel's numbers are stored with more precision, and that its division doesn't normally ignore the remainder, it's just a matter of time before your calulator won't agree with D2's in-game display.


Another source for lots of D2 information is:
http://phrozenkeep.hugelaser.com/forum/


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Skill Calculator Questions and Progress (3-16.3)
PostPosted: Sun Mar 17, 2013 1:22 am 
User avatar

Joined: Tue Sep 01, 2009 9:01 pm
Posts: 1413
Long time no see. Good to have you drop in for some assistance.

I originally considered doing this programatically, but the only language I am halfway comfortable with is C or C++ (i can put math in a box, but never really used these the way they 'should be' used...object oriented stuff). So I decided on using something that at least most people could view.

I have never really used lookup functions in Excel...I have just had to deal with very large datasets of numbers...I may need to sit back and decided how much learning I am willing to do on several fronts or if I am just going to bulldoze through it at this point, and then make a more sophisticated version. Who knows if I would have the motivation at that point though. I basically started this when I started to get bored over spring break (no 17-65 year old kiddies for a week!!).

You make good points about file structure.

I thought that I remembered the last skill notebooks were tables, not an actual calculator. I probably should go and look at those again to refresh my memory.

There is a lot more in your post that I will need to consider. I seriously appreciate your input, and the answers you gave me on a platter.

_________________
The reader should not be discouraged if...he does not have the prerequisites to read the prerequisites. P. Halmos


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Skill Calculator Questions and Progress (3-16.3)
PostPosted: Sun Mar 17, 2013 11:25 am 
User avatar

Joined: Mon Aug 31, 2009 11:28 am
Posts: 1136
Location: Vancouver, BC
kramuti wrote:
I am halfway comfortable with is C or C++ (i can put math in a box, but never really used these the way they 'should be' used: object oriented stuff). ...I may need to sit back and decided how much learning I am willing to do on several fronts
In academia, it is said that everything you learn is just another hammer hoping that every problem is an uncooperative nail. In the programming industry, true professionals are determined by their ability to reword every problem as a nail. Morals of this story:
1) No one wants to learn new things, so they try to bend what the know to what they need. Everyone likes being lazy.
2) "New" stuff like programming languages are almost always very similar to old stuff so that the producers don't lose their target audience (the guys that already know C/C++ and want to learn as little as possible).
3) Whenever something new appears to be dumbfounding, always take a step back and take another look with the assumption that it's just a rewording of something you already know. Personally, I really like seeing something genuinely new, and it's a little sad how rarely I see it.

In your case, consider writing your program in C++, compiling it to whatever executable DuFFBeeR needs (i.e. PC/Mac/whatever), and then using PHP's System function to act only as a go-between (hand input to the program, and then deliver the HTML output to the web page). Just make sure you write your program so that it takes arguments (I'm guessing skillName, skillLevel, +%Mastery, +%Synergy will do) from the command line.

With regards to Object Oriented design, there are certainly a few ways to interpret it, but one interpretation that's easy for students to understand is that whenever they need to copy-past a set of functions (like whatever C++ you use to emulate Excel's functions), then they could have also just made a Class (perhaps called ExcelFunctions) and then included it (yes, if you applied this literally to every situation then it might result in some pretty silly looking classes). Copy-paste works fine if you're just working on something private, but it's a pain if you need to update a piece of it and the find-replaceAll functions can't be applied.

Now that I've put a little thought into the details of your project, I'm not sure Classes would be that important. I think the vast majority of your work would be completed by making some functions similar to Excel's VLOOKUP (i.e. given a Name or ID (skill, monster, or Missile), go through the appropriate text file and return that row for further processing. If the "summon" field is not empty, then lookup that monster's stats, if the "srvmissile" fields are not empty, then looup the missile's stats. With all information gathered, present computations via HTML or easily-parsed output string for further PHP processing). With all the lookup-data available, there's still a heck of a lot of if-then conditions to be considered, and you might also find it best to re-work the skills.txt fields to be more consistent (i.e. Some summon functions are hard-coded such that calc1 is an HP% boost, so go through and make this standard for all summons (now your HP calculations are a little easier). Alternatively, standardize the descriptions beside the fields so that whenever you come across "+%HP" or "+%Dmg" beside a summon's calc fields your program knows what this is).

After a little more thought, I suppose you could benefit from a Class or set of functions that just parses the D2 calc strings (i.e. it decodes what ln12, dm34, par5, "skill('Prayer'.edns)", etc, actually means).


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Skill Calculator Questions and Progress (3-16.3)
PostPosted: Sun Mar 17, 2013 2:44 pm 
User avatar

Joined: Tue Sep 01, 2009 9:01 pm
Posts: 1413
From time to time I have to dive into something that I don't know a lot about. It's one of the things that I seriously miss about the academic environment (especially like it was when I was in grad school). The main concern that I have is time to get something functional so that it can be used, rather than just an academic curiosity. Teaching load is taking more of my time that it used to (yeah more money).

I have looked at html in the past out of this type of curiosity. It seemed pretty straightforward from what I could tell. I have also done some coding in unity with java, and done some relatively simple work with classes and the like while I had a short stint in the game industry. I had to pick it up on the fly to fulfill my obligations of writing scripts on a custom made engine.

I will probably look more into this during the coming week and make a decision on what path to take.

Cheers, and thanks for the input. I like your point of view on the matter. It is rare that I get to discuss anything like this at all anymore, much less with anyone that knows wth they are talking about.

_________________
The reader should not be discouraged if...he does not have the prerequisites to read the prerequisites. P. Halmos


Top
 Offline Profile  
Reply with quote  
 Post subject: Re: Skill Calculator Questions and Progress (4.1)
PostPosted: Tue Apr 02, 2013 12:36 am 
User avatar

Joined: Tue Sep 01, 2009 9:01 pm
Posts: 1413
I've done the mana costs for sorc spells.
At this point I am going to finish the last few things left for the sorceress, and then format it so that it is easily readable. Then I will update the file.
Then I will take a look at what is required, and decide which way to do the other classes. At this point I think I want a hard copy of values that I can test against any programatic solution. This would also get something out that is useable. We'll see..

_________________
The reader should not be discouraged if...he does not have the prerequisites to read the prerequisites. P. Halmos


Top
 Offline Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC - 5 hours


Who is online

Users browsing this forum: No registered users and 16 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron