Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Wondering about the data.
#1
What's the point of putting monster HP, EXP, etc in the data?

I mean, theoretically, if someone had an erroneous WZ file, according to which Gatekeepers had 1 HP... dealing 1 damage wouldn't actually kill the Gatekeeper, right? Since applying the damage is handled by the server, and the server must keep a current HP value of each monster in order for split kills to be possible, it must also store the max HP that the monster's 'supposed' to have.

So why bother having the value in the data if it doesn't do anything? Or are they purely for stuff like monster HP bars, to make sure the data matches with the server?
Reply
#2
The way you interpreted how the server calculated damage is that the client sends the damage dealt (for example, 5,000 damage) and subtracted it from the server (for example, 100,000 HP), and the the server will send back to the client that the monster has 95,000 HP left.

My guess is that the server handles the HP in fractions. The client will take your damage (for example, 5,000 damage) and divide it over the monster's HP (for example, 100,000 HP), which is also in your client. It will then sent to the server that you damaged the monster by 5% of it's HP, showing that the monster has 95,000 HP left in your client.
Reply
#3
I don't know if maple actually does, but it could just broadcast "average stats monster spawned" as a simple packet containing location+monsterid, and just assume client+server agree about those stats. Then if HP is wrong, it can send an update HP packet.

I guess they just wanted to keep the concept "monster stats" in a single place in the data, the monster attacks are all done client side and then sent to the server (to reduce lag in monsters "noticing" the player I guess) and of course monster graphics are client sided.
Reply
#4
Harrisonized Wrote:My guess is that the server handles the HP in fractions. The client will take your damage (for example, 5,000 damage) and divide it over the monster's HP (for example, 100,000 HP), which is also in your client. It will then sent to the server that you damaged the monster by 5% of it's HP, showing that the monster has 95,000 HP left in your client.
How would you store a fraction, though? As a real decimal approximation?
Reply
#5
Harrisonized Wrote:The way you interpreted how the server calculated damage is that the client sends the damage dealt (for example, 5,000 damage) and subtracted it from the server (for example, 100,000 HP), and the the server will send back to the client that the monster has 95,000 HP left.

My guess is that the server handles the HP in fractions. The client will take your damage (for example, 5,000 damage) and divide it over the monster's HP (for example, 100,000 HP), which is also in your client. It will then sent to the server that you damaged the monster by 5% of it's HP, showing that the monster has 95,000 HP left in your client.

The way you're putting it, only yourself would see the damage done to the enemy you're attacking. Others see the enemy damages as well, so it has to be server sided.
Reply
#6
The server reads those stats. It's moreso for them than for us.
Reply
#7
Stereo Wrote:I guess they just wanted to keep the concept "monster stats" in a single place in the data, the monster attacks are all done client side and then sent to the server (to reduce lag in monsters "noticing" the player I guess) and of course monster graphics are client sided.

I would assume that as well. Lately, I've heard some people saying there's a "new" heal hack out abusing this:

 NB, contains image of a criminal

monster graphics are stored client sided. There's no way an MS server would need those graphics.
Reply
#8
^ I don't even get the point of that, seeing as they already have wraiths and V/H and crap.
Reply
#9
Russt Wrote:^ I don't even get the point of that, seeing as they already have wraiths and V/H and crap.

So they have more to train on? Lol.

FoG, water goblins, STDs, etc.
Reply
#10
Wow, what a useless hack. They already have wraiths, V/H, grims, himes and skeles. What more could you want?
Reply
#11
Devil's Sunrise Wrote:I would assume that as well. Lately, I've heard some people saying there's a "new" heal hack out abusing this:

 NB, contains image of a criminal

monster graphics are stored client sided. There's no way an MS server would need those graphics.
That's not a new hack. That thing has been around for a while, and personally, I think it's one of the most useless hacks in the game, next to fame hacking. The best places you could get exp using heal are on the monsters that are already heal weak. Other places, even if you change the monster's data to heal weak, are either too strong (such as Wolf Spiders, a popular place this is used at), or not mobbed up enough. For example, using it on a wolf spider would require 30+ hits to kill a mob of six, which is utterly pointless.
Russt Wrote:How would you store a fraction, though? As a real decimal approximation?
Yes. The reason I say this is because sometimes the damage doesn't correspond to the damage the monster is actually taking.

For example, a while ago, there was a glitch in which it took a 16x at least 4 hits to kill a snail, and 20 to kill a newtie. I think there are still some vids on YouTube about it. The only way that glitch could have happened is if the decimal approximations were off. If the direct damage was sent to the server for processing, that glitch could never have occurred.
Fiel Wrote:The server reads those stats. It's moreso for them than for us.
So does the server store receive the damage data as a decimal percentage or a direct number?
Reply
#12
OT: The points in having the max hp, exp, and etc drops in the data client sided is that the server never deals with these things directly. *this is speculation from this point on* the server sends the data to the client saying (insert random number here) has spawned, its current hp, and a couple other random things about it. the server only knows that A) its current position B) its current hp (somewhat sketchy how detailed this is) The server knows it only as a number not as the actual monster, for that the client assigns the number a sprite, stats, its initial hp, etc. When it comes to death of the monster the client says the number is "dead" and asks the server if it needs to split exp, and if it dropped anything. The server returns a number that says "no don't split exp, yes it dropped x amount of mesos and item (insert number here)" the number coresponds to the etc item that that numbered monster drops. (end speculation)

Thats the way most games work in that everything is pretty much client sided until data is changed, then the client sends the data to the server and the server sends the data to anyone else that may need the updated data. This is why you'll get lots of lag in the FM cause all the clients are constantly sending all those packets to the server and the server has to send them back out to all the clients. Though the only place my speculation breaks down IMO is the fact of droplists aren't in the data but then again there are some stats on monsters that have yet to be figured out what they do
Reply
#13
Russt Wrote:^ I don't even get the point of that, seeing as they already have wraiths and V/H and crap.
It would be like a WK making every monster weak to Fire. No more restraints on where he can train.
Reply
#14
0mgP1r4tes Wrote:It would be like a WK making every monster weak to Fire. No more restraints on where he can train.

also the heal weak monsters have either horrible drops or the drops were good at the intro but were over hunted and thus the drops are now worthless

Just think if everything had no elemental disadvantage then everything with a decent hp/exp ratio would be good and anything that had decent drops and low hp is where you can train and make good money which is also good.... pair this with using no pots with the heal/mp eater combo
Reply
#15
My guess is that it's used to keep the game synched. The server uses that number of hp, and when it runs out, you get your kill. But to make things easier, and try to have less lag, your pc already knows if the monster's going to die. You send the server the damage, and at the end: "Monster died"? If it says yes, exp gotten. If not, something fishy's going on... Also, this could help a LOT for hp bars on monsters. You don't need a server sided info, except the initial hp the monster had if it was attacked before you. Your pc can easily do the math.

I repeat again: this is just my guess.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)