PDA

View Full Version : (Baal) Experience Calculator


thegiantturtle
24-10-2007, 18:53
While discussing (in the community forum) the benefits of a Top 2 or 4 Baal Party when Baaling, I found myself creating a spreadsheet calculator for determining the Experience Baal gives.

My little calculator takes up to 8 character levels and whether or not they are in the party killing Baal, and then calculates how much experience each character will get. The spreadsheet takes into account:

#players in game
#players in party (that are nearby)
clvl/mlvl penalty
high clvl penalty
proper clvl sharing of experienceThe calculator outputs the % share for each player, the % of Baal's base experience each player receives, the total experience each player receives, and a handful of other stats along the way.

It's still in a rough state, and I was hoping some people might want to work on cleaning it up as I'm not a big spreadsheet calculator maker. It seems like it wouldn't be that hard to modify the sheet to apply to any monster in the game other than Baal (Ripping Area Level info and monster info from the txt files and hardcoding it as a couple tables to look up from)

If you have a google account, you can view the sheet here (http://spreadsheets.google.com/ccc?key=pRvyr8me5vnv62vznhcoiKQ&hl=en). I can't find a setting to let anybody edit it, but if you email thegiantturtle@gmail.com, I'll add you to the list (you can also copy the sheet and then edit the copy at your leisure). People without google accounts can see a screenshot of the sheet on imageshack here (http://img89.imageshack.us/my.php?image=baalexpqq5.jpg).

Known current problems with the spreadsheet:

Baal's Base Experience taken from AS and likely wrong
doesn't round at each step like the game does
uses party bonus of 89/256, but I think I remember it might have changed to 88, 87, or 90 over 256 (I can't remember and my searching sucked)
Doesn't bother with Ondal's, Anni, or Exp shrine calculationsUnimplemented features if modified to support more enemies than Baal:

doesn't handle clvl/mlvl penalty if clvl > mlvl
hard codes Baal's level-TGT

Orphan
25-10-2007, 02:10
Known current problems with the spreadsheet:
[LIST]
Baal's Base Experience taken from AS and likely wrong


AS's exp for baal is correct for the 3 difficulty levels. I just did the calcs to confirm.

I don't have a google account so I can't view the spreadsheet :scratch:

In the name of Zod
25-10-2007, 06:58
Great work turtle. Thank you for sharing. I you'd like help with its layout, me. Just about to email you.

RTB
25-10-2007, 13:28
- At monster spawn/creation: monster baseexp gets modified with number of players and is saved with monster data structure: monsterexp = baseexp * (players + 1) / 2
- Monster gets killed

Experience mainfunc
- Killer or master of the killer (for minions) is determined
- Partymembers in same area and with a distance < 2 Screens (80 Tiles ingame) are counted: partyppl
- Partybonus gets calculated: totalexp = monsterexp * partyppl * 89 / 256 + monsterexp (possible overflow here)
- player shares are calculated: pShare = pLevel / (SumpLevels)

Then for each player the "experience penalty function" is called individually
- pShare is capped at 7FFFFF which is 2^23-1 (exp cap of 8.4 millions)
- if pShare is negative (from a overflow in the partybonus func for example) then exp=1 and quit back to mainfunc (throne room wave 2 with 8 ppl, for example)
- cLvl / mLvl penalty gets applied
- pLvl > 69 penalty gets applied
- expbonus from shrine and items get applied (0-65%)

Partybonus Ungenauigkeiten
Der Partybonus war nie genau 35%, das war immer nur eine grobe Rundungsangabe. Und wie gesagt, in 1.10 warens 89/256 bzw. (9*5*2-1)/2^8 und in 1.11 sinds soviel ich weiss 87/256, das heisst (86+1)/2^8. Die Division von 256 ist der Maschinenbefehl SAR EAX, 8 (das ist ein Shift Arithmetic Right) oder anders ausgedrückt eine Division durch eine 2er Potenz (computer=binär), in diesem Fall 2^8, also 256.
Taken from a code digger on a german d2 forum

thegiantturtle
25-10-2007, 21:48
RTB - Thank you much.

Orphan - Google documents are free to sign up for: http://docs.google.com. I think I'd like to keep the main trunk editing in one central location (As Zod's going to work on it too), but I can email you what I got that you can play with on your own. PM your email if you want that.

Orphan
26-10-2007, 00:36
Yea, I ended up signing for an account there yesterday afternoon. I'm going to have another look at it today, and I think it'd be great if we can extend this for all monster types, though we can't use AS for that.

thegiantturtle
26-10-2007, 20:51
Yea, I ended up signing for an account there yesterday afternoon. I'm going to have another look at it today, and I think it'd be great if we can extend this for all monster types, though we can't use AS for that.Any suggestions or corrections would be very welcome

In the name of Zod
27-10-2007, 11:39
Very Nice. You've clearly got your head around the calculations involved from the looks of it. Got to admit to feeling a little :goofy: when I was reading some of it. Well done giantTurtle. Anyhow, I've got to get back to study so I can't spend much more time on the formatting. :thumbsup:

Oh yeah, about the suggestions: Cant quite tell if its a form or just for display (based on the best setup for running baal)? Imo you could go for a form structure so its clearly apparent where people put data in and where they shouldn't (like formulas). Don't know if google doc supports this though as I could find sheet protection anywhere. I don't think it meant to operate like normal excel which is a little unfortunate.

Orphan
27-10-2007, 15:04
Unimplemented features if modified to support more enemies than Baal:

hard codes Baal's level

Having a seperate lookup table would be useful, possibly on the other sheets. One could be used for monlvls, and the other for the monstats values (though for this purpose you would only need the exp values from both those files, and not everything else).

That said, it makes me wonder if it might be less information to list the actual experience of each monster on their relative difficulty levels. Would probably have to be broken up into acts though :scratch: