Encumbered AGI Penalty
I've been working on correcting the AGI calculation (Client::CalcAGI()) for when a client is encumbered:
Code:
sint16 str = GetSTR()*10; Code:
val -= ((weight - str) * 100 / 1250) + 1; //since we're using ints, we're depending on this being rounded down (floor'd) automatically I've been meaning to find out how the (linear) slope has changed (from -0.8), but it's a pretty time consuming process to add 40 pp (which equals 1 weight) & record the results dozens of times. I guess I wanted to see if someone (with more free time than I do) would be willing to help me calculate this out. EDIT: After a quick calculation, 10 STR from AA changed the slope to -0.71428571428571. On average, 1 STR contributes -0.010666666666667 to the slope, but 1 STR from AA appears to only contribute -0.008571428571429. |
speaking of WEIGHT
do stacked items still do not add up their weight to total? (stack of 20 pelts with 3.5 per pelt, weight 3.5 regardless if you have 1, 5, 15 or 20) |
Quote:
|
Quote:
I mean on LIVE since day one the weight from stacked items was added up, didn't it? |
As far as I know, no. But a lot of stuff, like Pelts, didn't used to be stackable. This was always a pain for me because I would hold on to them because I had several GM Tailors in my guild that needed pelts. They were changed to be stackable on the 7/24/2001 patch, which helped a TON with weight:
Code:
..................................................................... |
Quote:
And yes, AndMetal, I remember that patch as well. It was awesome when they finally did that. Not to get too far off-topic, but something I mentioned to AndMetal really points out just how much the client controls weight; Coin Purses. This is probably one of the oddest finds I have seen so far when dealing with items. Coin purses reduce weight of coin on a player by the amount that is shown on the weight reduction of the bag. But, the tricky thing about coin purses is how they work. At first I tried to copy some in the items table, but those didn't work at all. Then, I thought maybe they needed "Coin Purse" in the name, but that wasn't it either. Then, I tried moving the coin purses I had made into the same range with all other coin purses in the database, between 17201 and 17230 item ID, and that worked... Partially. It turns out that coin weight reducing items are hard coded on a per Item ID basis in the client! So, each item ID from 17201 and 17230 has a pre-defined coin weight reduction amount set on it in the client code. I mentioned this in the wiki here under the BagWR field note when I figured it out: http://www.eqemulator.net/wiki/wikka...uDBSchemaitems The reason I bring up coin purses is because if you are coding to handle weight as close as possible to match the client, we will need to hard set each of these item IDs to reduce coin weight by the correct amount. Many of these IDs already have coin purses set for them and you can find them all by doing a "#fi coin purse". Once you have the list, you just need to check the WR setting on each bag there, and we can have at least those particular ones handled properly. For the rest of them, we would need to create items using the rest of the IDs and then test to see how much coin weight each one reduces by. Coin purses aren't used often, but they are pretty cool. This isn't a high priority or anything, but I figured it was worth mentioning somewhere so people would know! |
Just an update, I've been working on this some more, and I think I've got it figured out. Basically, every time we double our weight, our AGI is cut in half. That also means that when we triple our weight, that puts us at 0. Here's the rough equation:
Code:
//linear equation: y = m * x + b |
Just finished testing this out. Here's a diff of the changes:
Code:
Index: Y:/svn/trunk/EQEmuServer/zone/client_mods.cpp |
I was wondering about your testing... your initial post mentioned you used a monk. Since monks have an innate weight penalty at anything more than 20 at level 65(PoP timeframe) i'm wondering if you took that into consideration or not. Maybe it would be better tested with a warrior?
|
Quote:
Just to make sure, I created an Ogre Warrior (level 1) with 150 base STR & 75 base AGI and the server is matching up with the client. |
All times are GMT -4. The time now is 12:03 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.