• The VOIDRUNNER'S CODEX is coming! Explore new worlds, fight oppressive empires, fend off fearsome aliens, and wield deadly psionics with this comprehensive boxed set expansion for 5E and A5E!

Excel party xp calculator for 3.5e!


log in or register to remove this ad

Nail

First Post
problem

Plane Sailing said:
If you are one of the 324 people who downloaded the original, you might want to grab a copy of the revised version
Cheers

Err...why? The revised version seems to have an error in it. I tried giving my mixed party of 5th and 6th level characters an encounter with 6 CR1's. The sheet is telling me that the 6th level PCs get 0 XP, while the 5th level PCs get 360 XP. This is a problem that the old version (1.1) didn't have.
 



DrSpunj

Explorer
Nail said:
Err...why? The revised version seems to have an error in it. I tried giving my mixed party of 5th and 6th level characters an encounter with 6 CR1's. The sheet is telling me that the 6th level PCs get 0 XP, while the 5th level PCs get 360 XP. This is a problem that the old version (1.1) didn't have.

I tried this with the new version and got the same results. Anyone wanna tell me how to fix it? Or patch the revision so we can all download a corrected version?

The utility is awesome, but until I'm convinced the "update" works better than the original I'm sticking with the original version.

Thanks in advance.

DrSpunj
 

Plane Sailing

Astral Admin - Mwahahaha!
Oops!

The original is actually better than the revised one because it uses the DMG table directly (the chief reason for the update was that someone suggested it would be better to have no chance of breaching any OGL rules).

The puffery about the update is largely marketing :)

I'll have a look at the problem mentioned and update the update.

Cheers
 


morpheous1777

First Post
Here is a function for Visual Basic .NET That calculates experience (thanks to davin for the help)
It works pretty good, there is no +/- 7 level limit, and it can figure out exp for high level's / CR's also. It uses the correct formula.

Code:
Public Function Experience(ByVal LVL As Integer, ByVal CR As Integer)
    LVL = Math.Max(LVL, 3)
    Dim XP As Double = (300 * LVL)
    For above As Integer = (LVL + 1) To CR Step 1
        If IsOdd(above - LVL) = True Then XP = XP * (3 / 2)
        If IsOdd(above - LVL) = False Then XP = XP * (4 / 3)
    Next
    For below As Integer = (LVL - 1) To CR Step -1
        If IsOdd(LVL - below) = True Then XP = XP / (3 / 2)
        If IsOdd(LVL - below) = False Then XP = XP / (4 / 3)
    Next
    If CR = 1 Then XP = Math.Min(XP, 300)
    Experience = Math.Round(XP)
End Function
 
Last edited:

Othmaar

First Post
morpheous1777 said:
Code:
Public Function Experience(ByVal LVL As Integer, ByVal CR As Integer)
    LVL = Math.Max(LVL, 3)
    Dim XP As Double = (300 * LVL)
    For above As Integer = (LVL + 1) To CR Step 1
        If IsOdd(above - LVL) = True Then XP = XP * (3 / 2)
        If IsOdd(above - LVL) = False Then XP = XP * (4 / 3)
    Next
    For below As Integer = (LVL - 1) To CR Step -1
        If IsOdd(LVL - below) = True Then XP = XP / (3 / 2)
        If IsOdd(LVL - below) = False Then XP = XP / (4 / 3)
    Next
    If CR = 1 Then XP = Math.Min(XP, 300)
    Experience = Math.Round(XP)
End Function

I am a little new to this XP thing, I just accepted the tables in the books. However, a friend of mine borrowed my DMG and I need it tomorrow. So I searched the net to find a table and ended up here. I used the VB code above but had do modify it to simplified script form.

It seems to me that L4 gets the same amount of XP as L1-3. I cannot see anything wrong with my code. Is L4 supposed to get the same as L1-3?

I made a simple asp script to create a table. It can be viewed here XP table (EDIT 1: I have no idea what happened to the script. Suddenly all variables are converted to strings I am working on that. EDIT 2: Fixed. Apparently the server looks at the input type in the html form! I changed it to number, which is an invalid type btw, and then it worked!)

My Code:
Code:
Public Function Experience(ByVal LVL, ByVal CR)
   If LVL <= 3 THEN LVL = 3
   Dim XP
   XP = (300 * LVL)
   For above = (LVL + 1) To CR Step 1
   If Int(above - LVL) <> (above - LVL) Then
      XP = XP * (3 / 2)
   Else
      XP = XP * (4 / 3)
   End If
   Next
   For below = (LVL - 1) To CR Step -1
      If Int(LVL - below) <> (LVL - below) Then
         XP = XP / (3 / 2)
      Else
         XP = XP / (4 / 3)
      End if
   Next
      If CR = 1 Then
         IF XP >= 300 Then XP = 300
      End If
      Experience = Int(XP)
End Function
 
Last edited:

Davin

First Post
Your change to check for IsOdd() is not correct. You're checking for "Is Integer" instead.

You can also look earlier in this thread for a post I made with an Excel formula you could use if you prefer.
 

Remove ads

Top