Advanced Skill System (Internal) ?

McCormick

Deactivated Account
Joined
May 4, 2005
Posts
6,123
Society
La Faction Beta -LFB-
This pic has been posted before in low quality. This is from a high res PE movie, that can be found on MAs ftp :

The avatar "Nybb1" fights a Cornudacauda Alpha (947545352) :confused: and gets internal "missing" infos and advanced skill messages in chat :

[br]Click to enlarge[/br]
 
Quite interesting to see what they see :) Thanks!

Nybb1 = noob1? :p
 
Hmmm, the background messages we cant see normaly.

Seems like every mob has it own id :scratch2:
 
Well, if each mob has an ID, it's one step towards proving that the mob's loot is more probably decided upon spawning than upon being looted.

On hindsight, it is also only logical that each mob has an ID assigned to it, since MA stated in the past that they can see the game from the perspective of any object or creature, so they obviously would need an ID for that.
 
Well, if each mob has an ID, it's one step towards proving that the mob's loot is more probably decided upon spawning than upon being looted.

On hindsight, it is also only logical that each mob has an ID assigned to it, since MA stated in the past that they can see the game from the perspective of any object or creature, so they obviously would need an ID for that.

Each mob must have ID in system. That's programming imperative.
 
very interesting :)

so, the skillgains seems to come in portions of 0.0001 to 1.0000? or more?

but what exactly implies "due to client miss"... :scratch2:

I doubt, such critical things will be decided on client side?
Or are there other kinds of misses, like "due to mob evade/dodge"?

:scratch2:
 
very interesting :)

so, the skillgains seems to come in portions of 0.0001 to 1.0000? or more?

but what exactly implies "due to client miss"... :scratch2:

I doubt, such critical things will be decided on client side?
Or are there other kinds of misses, like "due to mob evade/dodge"?

:scratch2:

My thoughts exactly....oh MA, you've given us a tasty little glimpse into your test server...and we want more!
 
Would client miss be due to lag?



Bones
 
Would client miss be due to lag?



Bones

hmm, doubt that.

would be illogical; due to lag, information is just delayed.

so, how can a decission be made (hit/miss) on missing information?

but if there is a timelimit... there could be a standard value to proceed (miss? :( )

:scratch2:
 
Would client miss be due to lag?



Bones

Could be. Or it could also be the opposite. When client miss it's a calculated
miss that the client "must" do. ;) It's all about what they name the different
kind of missed shot too I guess... ;)
 
Could be. Or it could also be the opposite. When client miss it's a calculated
miss that the client "must" do. ;) It's all about what they name the different
kind of missed shot too I guess... ;)

Yes , I see what you are saying , they could have named the missed shot "another ped for MA" if they wanted , since this code was not meant to be viewed in the first place.


Bones
 
hmm, I know only one thing for sure: If I had to implement such things:

- client says "player(id) shots(id)"
- server gets the message, does some secret calculations
- server returns "playerhit(id) | playermiss(id)"

something like that, doing more on client side would be foolish...
:scratch2:

edit:

maybe this screenie is just a coockie from MA to make us all go :umn:
 
1. Multi-threading.
2. Client-server.
3. Real-time in global net.

Programmers' nightmare. I refuse to think about it anymore.:laugh:
 
miss due to client could be that you just missed the target, ie shot at nothing.


if you are pointing your gun at teh mob when this comes up, it means you have a lag sync issue. hence the need for this in a dev situation


there are 2 types of miss in pe, calculated miss, you are pointing at the target and you role the dice and miss. and player generated miss (tm) ie you shoot the air, no dice luck will help in this situation.

my 2pecs :)
 
there are 2 types of miss in pe, calculated miss, you are pointing at the target and you role the dice and miss. and player generated miss (tm) ie you shoot the air, no dice luck will help in this situation.

hmm, there is no mob involved if I shoot in the air...
(if I aim in the air, there is simply no object id, you shoot, ammo is burned, but you didn't tried to hit anything?)
or do you mean mouseaim without the "move to target.." option?
:scratch2:

edit:

bah, read it again, guess we meant the same thing... :)
 
no, i just ment "shot the air"

internal : miss due to client

the game has to know what happend to teh shot, ie is it targeting something

target in sights : check , equals true or false

if target in sights = false then: miss due to client


if yes then do : check to see if shot hits

roll dice

if number > x then : shot hits
else: shot miss
 
yep, I think so too!

but now I'm really interested in the whole video...
 
Very interesting, thanks for posting, +rep.

Is this definitely genuine?
 
Why does the server has to do the calculation about if you hit or not? wouldnt that be quite stupid to do it that way? due to more strain on the server..

Wouldnt it be better to just send the server avatar is aiming at mod id xx, then client gets that info and avatar presses the button to fire.. client calculates if it's a hit or not and sends the info to the server.

Also about loot.. it's generated when you loot or can be when you kill the mob aswell. What spawn might do is to give the mobs a certain modifier though and then depending on the time it get's killed or looted the final loot is decided.

And i just cant get it why those people who think loot is not based on time never get's it? it IS mainly.. timebased. I showed it and explained it a ton of times and it couldnt be made more clear how it worked when i found out.
bleh on you! :laugh:
 
Nice find McCormick. :)

Well, if each mob has an ID, it's one step towards proving that the mob's loot is more probably decided upon spawning than upon being looted....
Nah, all mobs need an ID anyway, to keep track of who'll be able to loot it etc.

very interesting :)

so, the skillgains seems to come in portions of 0.0001 to 1.0000? or more?
...
Skill gains can be more than 1.0000 though not in this example.

Why does the server has to do the calculation about if you hit or not? wouldnt that be quite stupid to do it that way? due to more strain on the server..
...
All important things like hits, dmg, loot etc, must be decided on the server, for security reasons.
It's not THAT hard to decompile client code, and if the client could decide such things, it would be a major flaw in the security.
 
Nice find McCormick. :)


Nah, all mobs need an ID anyway, to keep track of who'll be able to loot it etc.


Skill gains can be more than 1.0000 though not in this example.


All important things like hits, dmg, loot etc, must be decided on the server, for security reasons.
It's not THAT hard to decompile client code, and if the client could decide such things, it would be a major flaw in the security.

And how do you know how secure it really is? :D:rolleyes: :laugh:

But yes in a way i guess your right, but also it could still be done clientside.. or atleast partially with some server side checks that have to be correct otherwise the alarm goes of at ma or something like that :p
 
Nice find McCormick. :)
(...)
Why does the server has to do the calculation about if you hit or not? wouldnt that be quite stupid to do it that way? due to more strain on the server..
(...)
All important things like hits, dmg, loot etc, must be decided on the server, for security reasons.
It's not THAT hard to decompile client code, and if the client could decide such things, it would be a major flaw in the security.
...and some clever but mean coders would have already created their personal EU+luck client. or other tools to adjust client/server communication.
:rolleyes:

Btw, not all important things are secured; all thinghs that are crucial for Ma are secured...
What about the login process of the client loader, the unencrypted transmission of username and password in a plain command line parameter? Has it been fixed yet?
(the "issue" is as old as PE, see this thread, or the X-Fire thread, espicially this post. [funny how fast support could be...])

Oh, wait. No need to fix the login system. We can order a Gold Card, it even costs some PED, and ripped accounts have to deposit again...

:twocents:

edit:

sorry, back on topic:

- any more ideas about other kinds of "misses" or "hits"?

- how big can a single skill gain be?

- did n00b No. 1 already got a HoF?
 
Nice find McCormick. :)
Indeed! Thanks

Nah, all mobs need an ID anyway, to keep track of who'll be able to loot it etc.

Well, and to exist as independent entities in a program they by definition have to have some unique identifier.


All important things like hits, dmg, loot etc, must be decided on the server, for security reasons.
It's not THAT hard to decompile client code, and if the client could decide such things, it would be a major flaw in the security.

The unfortunate thing is that the server always assumes the worst case e.g. it's a miss if there's a delay or lag from the client when shooting. This is rather biased against those with poor connectivity and distance from the server bank.
 
...
Well, and to exist as independent entities in a program they by definition have to have some unique identifier.
...
Hmm.. Yes, the underlying platform ofc always assigns an implicit ID somehow to all objects. (Or entities if you prefer... Probably not OO code in EU)
However there's no need to actively assign an explicit ID to objects if you don't have a need for it. But anyway, MA need an ID (whether they assign it themself or their platform does it) and they even need it shown in their "modified client" for debugging purposes it seems. :)


...
The unfortunate thing is that the server always assumes the worst case e.g. it's a miss if there's a delay or lag from the client when shooting. This is rather biased against those with poor connectivity and distance from the server bank.
I don't think the server assumes anyting or is "biased" as you call it. It's just the nature of lag.

The server probably just receives the coordinates and direction the client fires at. If the mob (on the server) is not on that position, then it's a miss, even though the mob seemed to be on that position on your client.
 
Last edited:
I don't think the server assumes anyting or is "biased" as you call it. It's just the nature of lag.

The server probably just receives the coordinates and direction the client fires at. If the mob (on the server) is not on that position, then it's a miss, even though the mob seemed to be on that position on your client.

I can stand still in front of a mob that is standing still, and if the client is lagging due to network problems or simply stalls of the graphics system, miss much more than i "ought" to.

I don't know what the communication between the client and server looks like, but it appears that it's possible for the client to register "shoot" with the server without giving it sufficient or proper data to avoid missing in an otherwise lag-immune situation. To me that is making a biased assumption, a default that is completely safe for MA but not very fair for players.

More than that obviously i can't know.
 
Interesting thing.

i think our ID interact whith mob ID, blueprints ID, ressource spot ID ...
All is ofc timed and ur money interaction, Buying > Decaying > Repairing, is the modificator of ur succes.

I think sometime the succes like global or hof is a good combinations of skills gain. Sorry for my english, its realy difficult to find the right words or expressions to trying to explain this hard thing.

So, for exemple, u log on: that load in ur client a code. By ur actions durring the session, all is possible: globaling, hofing, ATH. The only problem is u need to do the good things and accumulate the right modificators to reach one of those 3 goals. One exemple of combination:

U login ~~ code loaded ( deposit > 300$ + repairing between 50$ + buying ammos > 35 $ + type of attachement modificator < 50 % + Hits > 70 % + Miss < 30% + lootpool > 950 $)

If u do this in ur session, u will have a single loot at > 600 peds for the exact combination. U will have 3 loots at ~ 200 peds for the average combination.
U will have normal return % for doing totaly the contrary.( but it make a bonus modificator for ur next session).

Same type of thing for big hof or ath mabe.

Well lol, its just my though.
 
Interesting thing.

i think our ID interact whith mob ID, blueprints ID, ressource spot ID ...
All is ofc timed and ur money interaction, Buying > Decaying > Repairing, is the modificator of ur succes.

I think sometime the succes like global or hof is a good combinations of skills gain. Sorry for my english, its realy difficult to find the right words or expressions to trying to explain this hard thing.

So, for exemple, u log on: that load in ur client a code. By ur actions durring the session, all is possible: globaling, hofing, ATH. The only problem is u need to do the good things and accumulate the right modificators to reach one of those 3 goals. One exemple of combination:

U login ~~ code loaded ( deposit > 300$ + repairing between 50$ + buying ammos > 35 $ + type of attachement modificator < 50 % + Hits > 70 % + Miss < 30% + lootpool > 950 $)

If u do this in ur session, u will have a single loot at > 600 peds for the exact combination. U will have 3 loots at ~ 200 peds for the average combination.
U will have normal return % for doing totaly the contrary.( but it make a bonus modificator for ur next session).

Same type of thing for big hof or ath mabe.

Well lol, its just my though.


sorry to say but your wrong :)

loot is mainly timebased and then some factors like mob + maturity + weapon used etc play a role in deciding exactly how big the loot is and skills aswell. but main thing is time.. it's totally IMPOSSIBLE to get a hof at a certain spot during a certain set of time. so it must be time that affects when the hofs occur and when not.
 
im mabe not wrong but we can put an another variable in the code like:

+ ~ 2 hours playing + between 19h00 and 23h00 MA time) ..and of course all the other modificators on Mob ...

I pretty sure its loaded and decided when u lauch EU.

Im using WIFI connection, and my wifi key have a small led.
When i connect, i see the led shining fast for mabe 25 secondes and nothing after. i play , all is normal but sometime, during certain action the led shine a bit and my PC have some reflection too:)
The big shine is right before a global or a hof. When i kill a mob and the led shine, im sure at 99 % i will be something when i will loot it.
 
Last edited:
im mabe not wrong but we can put an another variable in the code like:

+ ~ 2 hours playing + between 19h00 and 23h00 MA time) ..and of course all the other modificators on Mob ...

I pretty sure its loaded and decided when u lauch EU.

Im using WIFI connection, and my wifi key have a small led.
When i connect, i see the led shining fast for mabe 25 secondes and nothing after. i play , all is normal but sometime, during certain action the led shine a bit and my PC have some reflection too:)
The big shine is right before a global or a hof. When i kill a mob and the led shine, im sure at 99 % i will be something when i will loot it.

well it could be between 19-23 now but no not really cause they havent changed it that much. just pay attention to the globals and one cant miss it.. a certain time a certain mob at a certain location globals/hofs, and after a set interwall it does it all over again.. it used to be exactly 15 minutes each hour and each day it was the exact same 15 minutes.. you just had to figure out what 15 minutes you should be hunting and the rest of the 45 you could go poop or whatever cause you could not global etc.. sure u could still loot good items but never hof or get a global.

Now it is still the exact same thing, and the only change they have done is to make it slightly more dynamic.
 
I don't think the server assumes anyting or is "biased" as you call it. It's just the nature of lag.

The server probably just receives the coordinates and direction the client fires at. If the mob (on the server) is not on that position, then it's a miss, even though the mob seemed to be on that position on your client.

Not nececarely. There are ways to solve this. Although they require more clientside decisionmaking, which is security sensitive. But there is always a way ;)

I can stand still in front of a mob that is standing still, and if the client is lagging due to network problems or simply stalls of the graphics system, miss much more than i "ought" to.

I don't know what the communication between the client and server looks like, but it appears that it's possible for the client to register "shoot" with the server without giving it sufficient or proper data to avoid missing in an otherwise lag-immune situation. To me that is making a biased assumption, a default that is completely safe for MA but not very fair for players.

More than that obviously i can't know.

I think in most cases you dont lose ammo or decay when you miss due to lag. So the only disadvantage that you end up with is lower dmg/sec which isnt that bad.
 
Back
Top