garzahd

26-04-2005, 21:31

Available at: http://www.gwonline.net/files/files.php?&id=15

(As usual, may give an error at peak times for GWO - be patient, just use a bigger hammer.)

The current version is 3.2. I will post in this thread when a new version is released.

If you have questions or troubleshooting issues, please post them in this thread. I will check back periodically, though I cannot guarantee it will be every day.

Known bugs:

1) There is a rare crashing bug that I have not been able to track down. It seems to be worsened when the program is left running for a long time, like overnight, and also seems to happen more to MSN messenger users. This makes it sound like a memory leak, but VB has no advanced memory management. 90% of the crashes that occur have not been happening inside my code, so this makes it very hard to fix. If this happens to you more than once, please email me at mlahut@yahoo.com and I will see what I can do.

2) Rounding errors are still not nailed down yet. Here are my findings on this topic: (warning: math ahead)

Most variables with a listed range of A to B have an actual value of (A+(S*(B-A)/12)) at attribute level S. This has been known for awhile. But it now seems that Life Siphon (specifically) has been modified such that it evaluates to 1 for S<=3, 2 for 4<=S<=11, and 3 otherwise. This really follows no simple formula; and worse yet, in 3.2 I assumed that because the 2-to-3 threshold was at skill 12 for LS, I incorrectly assumed that fractions in the above formula was simply being rounded down when B-A=2.

So, in summary, the program gives an overly pessimistic view of (1..3) skills.

The correct rounding algorithm, as I currently understand it is:

a) start with (A+(S*(B-A)/12)) [A=min, B=max, S=skill]

b) if the skill is life siphon, apply weird formula above.

c) otherwise, if there is a decimal greater than 0.5, round up. If there is a decimal less than 0.5, round down.

d) if the skill is not life siphon AND the decimal part is EXACTLY 0.5, round down if S=3 and B-A=2; otherwise round up.

Whee. Comments welcome.

(As usual, may give an error at peak times for GWO - be patient, just use a bigger hammer.)

The current version is 3.2. I will post in this thread when a new version is released.

If you have questions or troubleshooting issues, please post them in this thread. I will check back periodically, though I cannot guarantee it will be every day.

Known bugs:

1) There is a rare crashing bug that I have not been able to track down. It seems to be worsened when the program is left running for a long time, like overnight, and also seems to happen more to MSN messenger users. This makes it sound like a memory leak, but VB has no advanced memory management. 90% of the crashes that occur have not been happening inside my code, so this makes it very hard to fix. If this happens to you more than once, please email me at mlahut@yahoo.com and I will see what I can do.

2) Rounding errors are still not nailed down yet. Here are my findings on this topic: (warning: math ahead)

Most variables with a listed range of A to B have an actual value of (A+(S*(B-A)/12)) at attribute level S. This has been known for awhile. But it now seems that Life Siphon (specifically) has been modified such that it evaluates to 1 for S<=3, 2 for 4<=S<=11, and 3 otherwise. This really follows no simple formula; and worse yet, in 3.2 I assumed that because the 2-to-3 threshold was at skill 12 for LS, I incorrectly assumed that fractions in the above formula was simply being rounded down when B-A=2.

So, in summary, the program gives an overly pessimistic view of (1..3) skills.

The correct rounding algorithm, as I currently understand it is:

a) start with (A+(S*(B-A)/12)) [A=min, B=max, S=skill]

b) if the skill is life siphon, apply weird formula above.

c) otherwise, if there is a decimal greater than 0.5, round up. If there is a decimal less than 0.5, round down.

d) if the skill is not life siphon AND the decimal part is EXACTLY 0.5, round down if S=3 and B-A=2; otherwise round up.

Whee. Comments welcome.