Jump to content

ETPro HitBoxes


SunLight

Recommended Posts

  • Clan Friend

Or did you never experience that? Easy shots, standing on even ground, not getting hit yourself...someone is crouching and strafing and you just don't hit. Can upload a demo when it happens and when it's obvious :)

Of course I did have the impression of not hitting, several times. The problem is, a demo has only infos about bullet endpoint (not origin) and it lacks client prediction. In other words it's impossible from a demo to know your bullet line, or your real position.

And from an avi (with things like fraps or xfire) you see client prediction, but you don't have any kind of debugging info either.

 

 

In order to hit someone, your bullet line must go through enemy hitboxes, so ideally:

1. bullet origin must match with your view origin (and it's false, because of prediction errors, etc.etc.)

2. bullet endpoint should match with your viewline, but since the origin doesn't, and the end is randomized by spread...

3. enemy hitboxes should match the player model (and in that pdf you see that they match, but not perfectly)

 

if you want, I can upload the modified etpro cgame dll I used to make these tests, but the enemy clientnum is fixed in the code.

You need to make a lan server with a separate etpro installation, having of course b_anticheat 0, and join from 2 pcs (one of the client *must* have that specific clientnum), simulate ping latency, fake ips to avoid lan rate, etc. etc. the same things I did, basically, a.k.a. an assload of work :P

 

 

nice findings sunlight ! I am amazed :)  Well , now i understand why even i frag sometimes with my ping on my lucky days . So , fps does influence bullet spread doesn't it ? Then , what is the lowest possible fps for good shooting ? And more tips could help a noob like me ;)

 

Anything above 70 should be fine. Over 100 I don't see any improvement.

 

At times, if I killed the guy, screen will show me I killed player X .After a few seconds, another screen will show me I killed same player X again (cl_dup packets probably). This is not technically possible killing an already dead guy.
[cut]

It could be some mod bug due to lag. Packetdup duplicates only your commands, not server commands, so it can't be.

 

With 200 ping (if it's stable) you can kill even strong players. Of course you have to try harder (try to prefire, etc.)

 

If jaymod is like etpro, I wouldn't use timenudge if I were you, or it would move enemy hitboxes.

On jay3 there is fast shooting, so spread (randomness) is much higher than with slow shooting. And things like low maxpackets are allowed, so it's normal to hit less. On FA Hardcore my acc is often almost 50% (with 200 ping) on jay3 sometimes I have even 30%.

 

Spread goes up every bullet, and based on your mouse movement it could also increase, then every frame it goes down a fixed value (higher if you crouch). On jay3 bullets shoot so fast that the fixed value can never compensate, so randomness goes up very quickly even for crouching players, hence the crappy accuracy everyone has there.

Link to comment
Share on other sites

if you want, I can upload the modified etpro cgame dll I used to make these tests, but the enemy clientnum is fixed in the code.

You need to make a lan server with a separate etpro installation, having of course b_anticheat 0, and join from 2 pcs (one of the client *must* have that specific clientnum), simulate ping latency, fake ips to avoid lan rate, etc. etc. the same things I did, basically, a.k.a. an assload of work :P

 

I am interested! But I'd rather set up an online server with it to see the 'real' thing, if possible :)

 

nice findings sunlight ! I am amazed :)  Well , now i understand why even i frag sometimes with my ping on my lucky days . So , fps does influence bullet spread doesn't it ? Then , what is the lowest possible fps for good shooting ? And more tips could help a noob like me ;)

 

You can actually get your turnspread to zero when using certain combinations of mouse polling rates and fps, but not really necessary if you are a aware of the fact that your mousemovements can give you higher spread. You see your actual amount of turnspread with cg_drawspreadscale 2, it will draw a growing green to red bar on the left side the higher your spread gets.

 

What is directly fps dependant is recoil of pistols and zoomed K43, using 71 fps gives you the lowest recoil possible. However it's personal preference if you like to switch framerates for different weapons. I don't use it and it feels jerky when you play with 120hz but a lot of people do it...

Edited by S3ti
Link to comment
Share on other sites

  • Clan Friend

I am interested! But I'd rather set up an online server with it to see the 'real' thing, if possible :)

The server you need is a normal etpro server, only the client is different. (the modified client is Windows only, the server can be Linux)

 

Of course the server should have no punkbuster or tzac! because that is not the normal etpro client, and maybe you should call it etpro2 instead of etpro making a new folder, I don't know if it's possible or etpro would complain... I tested on a separate etpro install.

 

and some settings:

b_anticheat 0, and maybe sv_pure 0, and g_debugbullets 7, maybe having rcon is the best thing to test some settings.

I don't know if you need to do a modified etpro pk3 with this dll instead of the original,  or remove cgame dll from etpro original pk3, and put the dll in etpro folder.

 

g_debugbullets on the server is mandatory, because the modified client just makes a copy of the enemy when you shoot, it doesn't draw any hitbox. The hitboxes are drawn by the stock etpro server, the client just creates a 'frozen' fake player every bullet you shoot (plus a blue line for your viewpoint at the moment of your shoot)

 

cg_railtrailtime is used on the client to select how many milliseconds the trails and fake players will last.

you cannot use it during fights because probably your screen would be a mess. The enemy should dodge only. These fake players don't get recorded in demos, only you can see them, it's something like etpro trickjump ghost, every player sees only his own.

 

I suggest you to test it on lan first, use it only if you know what you're doing, and have fun :P

 

p.s.

it's been a while since I made this test, it should work, I removed the client number limitation in a hurry so I don't know if it could crash, I tested it and it goes ok.

 

edit:

link removed, because bullet origin is potentially wrong. will upload a fixed version that works with standard etpro without extra dll.

Edited by SunLight
Link to comment
Share on other sites

I suggest you to test it on lan first, use it only if you know what you're doing, and have fun :P

 

Thx! I have access to a vserver, will try it there and play around if I get bored. No worries, I know what I'm doing (I guess :D)

Link to comment
Share on other sites

  • Clan Friend

Thx! I have access to a vserver, will try it there and play around if I get bored. No worries, I know what I'm doing (I guess :D)

 

If you make an 'etpro2' or 'testpro' folder or whatever you call it, you can put an etpro pk3 with that dll in it, and you don't need sv_pure 0, I just was thinking of a way not to mess the etpro installation of a player who would connect there... :D

 

---

 

Now I had an idea, to test it in actual fights where both player shoot, now it's hard because of all those lines and fake players appearing.

 

I could make it this way:

 

A tool that just records the data to a file, blocking all the EV_LINE sent by the server with hitboxes, so you can fight normally without seeing anything different, then you can rewatch the boxes *after* the fight is over, that would need a bit of extra work, but it would be much better.

 

Or maybe make a little mod to mix an etpro demo + these recorded data, and make a 'superdemo' where you actually see in slow motion what exactly happened, that would be cool.

 

Dunno how much time it takes, if you have a bit of patience maybe I could try and do it :P but the one I sent is the one I used for the test in the pdf. So you can experiment with it already.

Link to comment
Share on other sites

If you make an 'etpro2' or 'testpro' folder or whatever you call it, you can put an etpro pk3 with that dll in it, and you don't need sv_pure 0, I just was thinking of a way not to mess the etpro installation of a player who would connect there... :D

 

---

 

Now I had an idea, to test it in actual fights where both player shoot, now it's hard because of all those lines and fake players appearing.

 

I could make it this way:

 

A tool that just records the data to a file, blocking all the EV_LINE sent by the server with hitboxes, so you can fight normally without seeing anything different, then you can rewatch the boxes *after* the fight is over, that would need a bit of extra work, but it would be much better.

 

Or maybe make a little mod to mix an etpro demo + these recorded data, and make a 'superdemo' where you actually see in slow motion what exactly happened, that would be cool.

 

Dunno how much time it takes, if you have a bit of patience maybe I could try and do it :P but the one I sent is the one I used for the test in the pdf. So you can experiment with it already.

 

Now that sounds really good, always up for that stuff. Sadly that's all way beyond my coding knowledge but if you feel like it, do it! :D

Link to comment
Share on other sites

Interesting. Wanted to that experiment but resources are scattered all over the place. Not all PCs are in one place. 

 

So you think that could work using virtual machine in one PC while the server is on main OS?

Link to comment
Share on other sites

Basically works so far without crashes or errors :) Will see if I can get a server online to do some 'real' stuff...will have to wait for a mate first.

 

32znhpy.jpg

  • Like 1
Link to comment
Share on other sites

  • Clan Friend

I played a bit with a little tool that prints data instead of drawing anything. Actually it also blocks g_debugbullet lines (in the demo you see them again but in the game you don't) from spamming.

I think it's more interesting, becuse with numbers you can even shoot 1000 bullets and see how much is the average error.
Already I figured out a thing I didn't realize in that pdf, that is, bullet origin offsets from my viewpoint don't change if I don't change my position, so it looks more like some rounding effect or weapon muzzle point calculation, rather than fps-related.

 

---

example (commented) output of my program:

 

I shoot a bullet...

SHOOT: cg_time = 6822744  // game time in milliseconds
Origin: (3670.7 -10070.6 5824.1)   // coordinates x, y, z of my viewpoint
Axis: (1.0 0.1 0.0)
entity: 1, client: 1
head: (3928.2 -10017.9 5818.2)   // coordinates x, y, z of enemy head, you need to add 5 units to the z value, since origin is the neck

 

 

after a fraction of a second (here my ping was 0) the message from the server arrives...

 

ETPRO Line Event (cg_time = 6822805)    // game time in milliseconds, server message with g_debugbullets has arrived
num: 110, type: 0, color: 1   // 1 = red line
BULLET: (3673.0 -10071.0 5824.0) (3914.0 -10028.0 5830.0) // origin, end
origin offset: (2.255 -0.386 -0.125)   // difference between origin and my viewpoint when I shot
ETPRO Line Event (cg_time = 6822805)
num: 112, type: 2, color: 1
BOX: (3914.0 -10045.0 5760.0) (3950.0 -10009.0 5832.0) h:72.0  // this is the bodybox, with x, y, z of 2 opposite corners
ETPRO Line Event (cg_time = 6822805)
num: 114, type: 2, color: 2
BOX: (3921.0 -10027.0 5816.0) (3933.0 -10015.0 5828.0) h:12.0
HEADBOX: (3927.0 -10021.0 5822.0)
headoffs: (1.2 3.1 1.2) (entity: 1, client: 1) // difference between the character's head I saw when I shot
ETPRO Line Event (cg_time = 6822805)
num: 115, type: 0, color: 7 // this is that white line inside the box, in fact color = 7
BULLET: (3914.0 -10029.0 5830.0) (3977.0 -10017.0 5831.0)

p.s.

a headbox is 12x12x12 units, so 3.1 units of difference in Y here is about 1/4 th of a headbox

 

p.p.s.

@ S3ti:

 

hehe, nice screenshot :P

 

did you find something about hitboxes already? I never tested with more than 2 players so I don't know if it works...

Link to comment
Share on other sites

---

example (commented) output of my program:

 

I shoot a bullet...

SHOOT: cg_time = 6822744  // game time in milliseconds

Origin: (3670.7 -10070.6 5824.1)   // coordinates x, y, z of my viewpoint

Axis: (1.0 0.1 0.0)

entity: 1, client: 1

head: (3928.2 -10017.9 5818.2)   // coordinates x, y, z of enemy head, you need to add 5 units to the z value, since origin is the neck

 

 

after a fraction of a second (here my ping was 0) the message from the server arrives...

 

ETPRO Line Event (cg_time = 6822805)    // game time in milliseconds, server message with g_debugbullets has arrived

num: 110, type: 0, color: 1   // 1 = red line

BULLET: (3673.0 -10071.0 5824.0) (3914.0 -10028.0 5830.0) // origin, end

origin offset: (2.255 -0.386 -0.125)   // difference between origin and my viewpoint when I shot

ETPRO Line Event (cg_time = 6822805)

num: 112, type: 2, color: 1

BOX: (3914.0 -10045.0 5760.0) (3950.0 -10009.0 5832.0) h:72.0  // this is the bodybox, with x, y, z of 2 opposite corners

ETPRO Line Event (cg_time = 6822805)

num: 114, type: 2, color: 2

BOX: (3921.0 -10027.0 5816.0) (3933.0 -10015.0 5828.0) h:12.0

HEADBOX: (3927.0 -10021.0 5822.0)

headoffs: (1.2 3.1 1.2) (entity: 1, client: 1) // difference between the character's head I saw when I shot

ETPRO Line Event (cg_time = 6822805)

num: 115, type: 0, color: 7 // this is that white line inside the box, in fact color = 7

BULLET: (3914.0 -10029.0 5830.0) (3977.0 -10017.0 5831.0)

 

p.s.

a headbox is 12x12x12 units, so 3.1 units of difference in Y here is about 1/4 th of a headbox

 

p.p.s.

@ S3ti:

 

hehe, nice screenshot :P

 

did you find something about hitboxes already? I never tested with more than 2 players so I don't know if it works...

 

Nice! So if I get that right you can actually add both offsets (bullet origin and head offset + the obligatory bullet endpoint offset) to get a total offset? I assume if you then add a real ping for the server for both clients it could eventually come in the range of 6 or more units which would be a half headbox then...

 

Was just a quick test and didn't expect any errors, since it was just another local client which only +forwarded. I'm curious how it will work out in a real game with fast strafes and dodging ;)

Link to comment
Share on other sites

  • Clan Friend

Nice! So if I get that right you can actually add both offsets (bullet origin and head offset + the obligatory bullet endpoint offset) to get a total offset? I assume if you then add a real ping for the server for both clients it could eventually come in the range of 6 or more units which would be a half headbox then...

enemy ping doesn't affect hit detection,

but yes if you consider both offsets together (bullet error + headbox error) you could miss the head aiming perfectly at the center, even if bullets weren't randomized

 

I see that your bullet origin can be off even if you don't move.

 

I wanna see if these errors are totally random, or there is some pattern in it... for example I saw the headbox rarely below the head, when it's off it's usually slightly above.

If it's totally random then it's like a sort of extra spread

Link to comment
Share on other sites

Server for testing up and running, will be on there in 15 minutes or so...

 

ETPro 3.2.6

Anticheats off

Custom Maps: te_valhalla.pk3 - purefrag.pk3 - sillyctf_ett.pk3

 

/connect 84.200.20.226:27960; password hitboxlol

Edited by S3ti
Link to comment
Share on other sites

Hi all

 

SunLight

 

With this test can you knowing delivery check out the first server to the client?

 

It is the sound when i hit the model,is the frame of the bullet that hit him or what?

 

Which the sequence of events that the costumer comes first?

 

GOOD TOPIC

 

Regards

Link to comment
Share on other sites

Tried it the same way and with the same cfg as with the local windows server before (it's now a linux server) but there are no hitsounds, and the hitboxes drawn are only single colored...so don't know what's going wrong and the server or client data is missing. But those results I see now are closer to what I would expect from the feeling in game :P server will stay available for the time being  and we could do some more testing.

 

e0j18p.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.