Posting Freak
Posts: 7,488
Threads: 76
Joined: 2008-07
Gender: Male
Sexual Orientation: Straight
Country Flag: North_Carolina
IGN: I don't play MS
You have some competition, Russt. http://www.sleepywood.net/forum/showthre...?t=1542809 XD
No, not really. Sleepywood's mods do a really good job of playing Big Brother, don't they?
Posting Freak
Posts: 18,970
Threads: 319
Joined: 2008-07
2009-03-24, 09:58 PM
(This post was last modified: 2009-03-24, 10:02 PM by Takebacker.)
Has a meso explosion/pick pocket formula been thought up yet? I remember some experimenting back in the day but nothing really came out of it, but that was before Pservers were readily available. I'd be useful for when the updates come to GMS. See if the ME damage increase from PP is significant and all that cool stuff.
Posting Freak
Posts: 4,302
Threads: 256
Joined: 2008-07
Gender: Male
Level: 251
^ It's been looked into in the past, just not extensively.
Dusk Wrote:You have some competition, Russt. http://www.sleepywood.net/forum/showthre...?t=1542809 XD
No, not really. Sleepywood's mods do a really good job of playing Big Brother, don't they? That they do.
Unspeak of doubleplusbanished one.
Posting Freak
Posts: 18,970
Threads: 319
Joined: 2008-07
Member
Posts: 182
Threads: 4
Joined: 2008-07
Pickpocket is handled on the server. I believe I recall reading a formula that someone had attempted to use to describe Pickpocket's coins, but I don't believe it was terribly accurate. Meso Explosion, on the other hand, is calculated by the client.
The only way you can find out the formula for Pickpocket would be extensive testing with lots of different test cases. I think somebody had a project for collecting data going, but I don't recall where or what happened to it.
Posting Freak
Posts: 9,882
Threads: 342
Joined: 2009-01
2009-03-28, 02:41 PM
(This post was last modified: 2009-03-28, 02:42 PM by IllegallySane.)
Anyone want to figure out the Energy Charge decay formula? Does the energy loss decrease at the same rate at level 1 as it decays at level 40, or does the energy decay at a slower rate at max level?
Dusk Wrote:You have some competition, Russt. http://www.sleepywood.net/forum/showthre...?t=1542809 XD
No, not really. Sleepywood's mods do a really good job of playing Big Brother, don't they?
lolAdura. He really doesn't want people to know about SP, does he?
Posting Freak
Posts: 4,302
Threads: 256
Joined: 2008-07
Gender: Male
Level: 251
Posting Freak
Posts: 9,882
Threads: 342
Joined: 2009-01
Russt Wrote:Decay formula...?
Until Energy Charge gets charged up to 100%, the energy slowly decreases over time until the bar reaches 0 or gets filled 100%. In WoW warriors get a rage bar that fills up whenever they hit or get hit, and maxes out at 100. Whenever they are not in battle their rage bar slowly decreases, or "decays" until it reaches 0 or the warrior gets in combat again. Both are pretty similar in mechanics: As long as the character isn't doing anything, the Energy/Rage bar decays in value, and when actually fighting it builds up.
Posting Freak
Posts: 4,302
Threads: 256
Joined: 2008-07
Gender: Male
Level: 251
Mm.
Well, that's something that'll need some investigation. Time how long it takes to deplete.
Posting Freak
Posts: 9,882
Threads: 342
Joined: 2009-01
Russt Wrote:Mm.
Well, that's something that'll need some investigation. Time how long it takes to deplete.
Good idea. I can test the level 40 charge, but someone needs to test the level 1-39 charge, probably level 1 is best. If there is a significant difference in Energy Charge decay, then the rate of decay is probably linear to some extent, which will be a pain to calculate, but doable. If the rate is the same at level 1 as it is at 40, then the decay rate is constant, which will require less headaches.
Posting Freak
Posts: 18,970
Threads: 319
Joined: 2008-07
I can already tell you it's completely fixed at all levels. Getting to level 21 charge, i've had a lot of time to figure that out. You just have to time how long it takes at 40 and that's how long it takes at all levels.
I'd rather test the energy gathering formula, lol.
Posting Freak
Posts: 4,302
Threads: 256
Joined: 2008-07
Gender: Male
Level: 251
^
Also, does it decay slowly + constantly even while you're fighting, or does hitting something stop it for a time? If it's the former, knowing the decay rate may help with the charge rate, because then we can subtract out any error caused by it.
Member
Posts: 182
Threads: 4
Joined: 2008-07
IllegallySane Wrote:Anyone want to figure out the Energy Charge decay formula? Does the energy loss decrease at the same rate at level 1 as it decays at level 40, or does the energy decay at a slower rate at max level? Takebacker Wrote:I can already tell you it's completely fixed at all levels. Getting to level 21 charge, i've had a lot of time to figure that out. You just have to time how long it takes at 40 and that's how long it takes at all levels.
I'd rather test the energy gathering formula, lol. The charge level increases by the X value for the level of your skill each target you hit (I'm not sure how misses factor at the moment), up to a constant maximum of 10000 units. This is the same for all levels. As long as you're not increasing the bar (hitting targets), it will deplete at a constant rate of 200 units every 12 seconds.
I played around with this a lot for my implementation. Those are the raw numbers it uses.
That is:
Number of targets * x value = increase.
12 seconds after the last hit = 200 unit decrease.
10000 = the bubbleman.
Test Mushroom
Posts: 10,045
Threads: 1,506
Joined: 2008-06
Gender: Male
Sexual Orientation: Straight
Country Flag: usa
IGN: GuavaCowboy
Server: Zenith
Level: 10x
Job: Jett
Guild: L>
I calculated all of the multipliers for regular Combo according to the calculations for each orb in the first post. I'll probably do Advanced combo next. You can see the results in the image below:
Here's the code in Python I used to generate these values:
Code: class ComboAttack:
def __init__(self):
self.ComboAttackLevels = [[100, 0, 3], [104, 0, 3],
[105, 0, 3], [106, 0, 3],
[107, 0, 3], [108, 0, 3],
[109, 0, 3], [110, 0, 3],
[111, 0, 3], [111, 0, 3],
[112, 0, 4], [112, 0, 4],
[113, 0, 4], [113, 0, 4],
[114, 0, 4], [114, 0, 4],
[115, 0, 4], [115, 0, 4],
[116, 0, 4], [116, 0, 4],
[117, 0, 5], [117, 0, 5],
[117, 0, 5], [118, 0, 5],
[118, 0, 5], [118, 0, 5],
[119, 0, 5], [119, 0, 5],
[119, 0, 5], [120, 0, 5]]
def ComboAttack(self, Level):
if Level <= 0:
raise Exception("Level cannot be less than or equal to 0!")
if Level > 30:
raise Exception("Level cannot be greater than 30!")
ComboPercentage, AComboPercentage, TotalOrbs = self.ComboAttackLevels[Level-1]
print("Level: %d" % (Level))
for EachOrb in range(TotalOrbs):
Multiplier = ComboPercentage + AComboPercentage + (EachOrb * (Level / 6))
print(" ORB %d: %d" % (EachOrb + 1, int(Multiplier)))
print("")
MyClass = ComboAttack()
for Level in range(1, 31):
MyClass.ComboAttack(Level)
Posting Freak
Posts: 1,691
Threads: 72
Joined: 2008-07
Fiel Wrote:I'll probably do Advanced combo next.
here
it aint a pretty picture like yours but its screenshottable.... maybe even table-able.
Test Mushroom
Posts: 10,045
Threads: 1,506
Joined: 2008-06
Gender: Male
Sexual Orientation: Straight
Country Flag: usa
IGN: GuavaCowboy
Server: Zenith
Level: 10x
Job: Jett
Guild: L>
I don't think I'd want to go through the mess of trying to [noparse]
| [/noparse] that. | | Furthermore, I had a hell of a time trying to figure out the formula to match your results. I finally cracked it, though. | | This is the code that worked for me; I had a hard time with Russt's formula: | Code: class AComboAttack:
def __init__(self):
self.AComboAttackLevels = [[121, 6], [122, 6],
[123, 6], [124, 6],
[125, 6], [126, 6],
[127, 7], [128, 7],
[129, 7], [130, 7],
[131, 7], [132, 7],
[133, 8], [134, 8],
[135, 8], [136, 8],
[137, 8], [138, 8],
[139, 9], [140, 9],
[141, 9], [142, 9],
[143, 9], [144, 9],
[145, 10], [146, 10],
[147, 10], [148, 10],
[149, 10], [150, 10]]
def AComboAttack(self, Level):
if Level <= 0:
raise Exception("Level cannot be less than or equal to 0!")
if Level > 30:
raise Exception("Level cannot be greater than 30!")
AComboPercentage, TotalOrbs = self.AComboAttackLevels[Level-1]
print("Level: %d" % (Level))
for EachOrb in range(TotalOrbs):
#This gets orbs 0, 1, 2, 3, 4
if(EachOrb < 5):
Multiplier = AComboPercentage + (EachOrb * (Level / 6))
#Orbs 5, 6, 7, 8, 9
else:
Multiplier = AComboPercentage + 20 + (EachOrb - 4) * 4
print(" ORB %d: %d" % (EachOrb + 1, int(Multiplier)))
print("")
MyClass = AComboAttack()
for Level in range(1, 31):
MyClass.AComboAttack(Level)
|
Posting Freak
Posts: 9,882
Threads: 342
Joined: 2009-01
LazyBui Wrote:The charge level increases by the X value for the level of your skill each target you hit (I'm not sure how misses factor at the moment), up to a constant maximum of 10000 units. This is the same for all levels. As long as you're not increasing the bar (hitting targets), it will deplete at a constant rate of 200 units every 12 seconds.
I played around with this a lot for my implementation. Those are the raw numbers it uses.
That is:
Number of targets * x value = increase.
12 seconds after the last hit = 200 unit decrease.
10000 = the bubbleman.
Ooooooooooo. That means Energy Decay only occurs when not attacking, and isn't persistant when attacking. Does that mean every 12 seconds the energy bar decreases a bit, or is that a nice round number you decided to use? I know it decays sooner, around 5 seconds (6?) or so after not attacking anything.
*Decay appears to start happening after 9-10 seconds and decays at that rate, not the 12 seconds that you found. Either I'm counting my seconds wrong, or something is up.
Posting Freak
Posts: 8,031
Threads: 178
Joined: 2008-07
Gender: Male
IGN: Justice
Server: Tespia
Level: 162
Job: Shadower
Guild: Gundam
2009-04-02, 02:34 AM
(This post was last modified: 2009-04-02, 02:39 AM by JoeTang.)
IllegallySane Wrote:Ooooooooooo. That means Energy Decay only occurs when not attacking, and isn't persistant when attacking. Does that mean every 12 seconds the energy bar decreases a bit, or is that a nice round number you decided to use? I know it decays sooner, around 5 seconds (6?) or so after not attacking anything.
*Decay appears to start happening after 9-10 seconds and decays at that rate, not the 12 seconds that you found. Either I'm counting my seconds wrong, or something is up.
Decay constantly happens. After 12 seconds, 200 units have decayed. I think that's what he meant.
Posting Freak
Posts: 3,213
Threads: 466
Joined: 2008-07
Fiel Wrote:I don't think I'd want to go through the mess of trying to [noparse]
| [/noparse] that. | | Furthermore, I had a hell of a time trying to figure out the formula to match your results. I finally cracked it, though. | | This is the code that worked for me; I had a hard time with Russt's formula: | Code: class AComboAttack:
def __init__(self):
self.AComboAttackLevels = [[121, 6], [122, 6],
[123, 6], [124, 6],
[125, 6], [126, 6],
[127, 7], [128, 7],
[129, 7], [130, 7],
[131, 7], [132, 7],
[133, 8], [134, 8],
[135, 8], [136, 8],
[137, 8], [138, 8],
[139, 9], [140, 9],
[141, 9], [142, 9],
[143, 9], [144, 9],
[145, 10], [146, 10],
[147, 10], [148, 10],
[149, 10], [150, 10]]
def AComboAttack(self, Level):
if Level <= 0:
raise Exception("Level cannot be less than or equal to 0!")
if Level > 30:
raise Exception("Level cannot be greater than 30!")
AComboPercentage, TotalOrbs = self.AComboAttackLevels[Level-1]
print("Level: %d" % (Level))
for EachOrb in range(TotalOrbs):
#This gets orbs 0, 1, 2, 3, 4
if(EachOrb < 5):
Multiplier = AComboPercentage + (EachOrb * (Level / 6))
#Orbs 5, 6, 7, 8, 9
else:
Multiplier = AComboPercentage + 20 + (EachOrb - 4) * 4
print(" ORB %d: %d" % (EachOrb + 1, int(Multiplier)))
print("")
MyClass = AComboAttack()
for Level in range(1, 31):
MyClass.AComboAttack(Level)
| | I've not tested it, but this should work?: | Code: def adv_combo(orbs, lvl):
if lvl < 0:
raise Exception("Level cannot be less than 0!")
if lvl > 29:
raise Exception("Level cannot be greater than 29!")
orbs = limit_orbs(orbs, lvl)
if (orbs == 0)
return 100
elif (orbs < 6)
return 116 + lvl + (5 * orbs)
elif
return 141 + lvl + (4 * (orbs - 5))
def limit_orbs(orbs, lvl):
return min(orbs, 5 + lvl // 6)
def print_table():
print("[table]")
for lvl in range(30):
for orbs in range(11):
print(adv_combo(orbs, lvl) + "|")
print("\n")
print("[\table]")
| | lvl is zero-indexed. |
Member
Posts: 182
Threads: 4
Joined: 2008-07
IllegallySane Wrote:*Decay appears to start happening after 9-10 seconds and decays at that rate, not the 12 seconds that you found. Either I'm counting my seconds wrong, or something is up. I didn't count my seconds. They were digitally produced. Seems you are right, though. Last time I tried, the only number I came up with was 12.
This time, my trials were between 10 and 14 - with the vast majority being 10 or 11. It may very well just be latency on the server end. I only ended up with 5-10% inside the upper bound of 12-14.
Attacking during the time resets the timer. I'm 100% positive of this. I attacked 9 seconds in and didn't lose 200 units for another 10. If you sit there and don't attack, the minimum amount of time it will take is 10 seconds. Decay happens 200 units at once after this time period is over, not like 16-17 units per second or anything like that.
|