Forum
CS2D General CS2D Bug ReportsIdk but maybe Env_Decal is 2D so it broken at 3D mode
Maybe not, I'm a dumbass
I use OpenGL and got this problem too but when I use DirectX it normal
And maybe because the bug only show up if the drivers suck(can't use "Lighting")I think
Now that I know how to replicate this bug, I will find out in which version exactly this bug occurs, then it will be easier to find out what was changed in the version's changelog.
Alright, based on my tests, it started happening in version 1.0.0.4. After checking the changelog, I found this: FPS influenced Animations, projectiles, particles and effects speed. Maybe this can help you find the solution?
edited 12×, last 06.02.24 07:26:24 pm
So, in previous versions, they also exploded in different places when players had low FPS, but the grenades didn't bounce off the walls incorrectly. With the 60 FPS, now they explode where they should, but bounce off the edges of the walls. A curious fact, if I replicate this bug without changing mouse position, sometimes it ricochets and sometimes it doesn't, randomly.
Also this is a different one, and exists since 0.0.3.1: https://prnt.sc/qmRlYMKLFw0i
If a player stands where the bullet mark is on the Host's image, they will take damage even if you are shooting at the wall as the Client's image.
edited 3×, last 06.02.24 08:51:09 pm
The game doesn't have dedicated physics loop - leads to different results given different framerate.
The newer recoil system uses seed values, the default one does not.
Alright, I was able to reproduce the recoil mode bug.
To replicate the recoil mode bug, follow these steps:
1. Open two clients, designate one as the Host and the other as the Client.
2. Set the Host as a Spectator and observe the actions of the Client.
3. With the Client, use any weapon (except pistols and shotguns) and shoot while moving.
4. You will notice that the Client shoots straight upwards in a straight line.
As you can see in the following image, it's not just visual; it actually deals damage:
https://prnt.sc/Hjob1RxycEyK
That also means that where the client is actually shooting, it doesn't cause damage (even though they see on their screen that their shot is heading in the direction of the crosshair).
edited 6×, last 07.02.24 03:39:28 pm
https://unrealsoftware.de/forum_posts.php?post=327548&goto=430342#post430342
mrc has written
@ DC: I think I found something that could help to fix the 'ghost grenade' bug.
Now that I know how to replicate this bug, I will find out in which version exactly this bug occurs, then it will be easier to find out what was changed in the version's changelog.
Alright, based on my tests, it started happening in version 1.0.0.4. After checking the changelog, I found this: FPS influenced Animations, projectiles, particles and effects speed. Maybe this can help you find the solution?
Now that I know how to replicate this bug, I will find out in which version exactly this bug occurs, then it will be easier to find out what was changed in the version's changelog.
Alright, based on my tests, it started happening in version 1.0.0.4. After checking the changelog, I found this: FPS influenced Animations, projectiles, particles and effects speed. Maybe this can help you find the solution?
It also happened when you try shooting.
You may shoot on the walls, However, the enemy received damage.
( Like the de_cs2d upper road, CT can use AUG to kill anyone who wants to enter the A side. Sometimes you may shoot on the wall, but the damage occured)
I guessed that was because of the incorrect mouse pos & player pos, which was different from Clients and Sv
And, yeah, in early version, there wasn't this problem.
This change was introduced with version 1.0.0.4
DC has written
I debugged it exactly where that happens, this is the result of the Test 1:@ WatPz: Hah. Interesting. If you observe this behavior with weapons which have no spread and after being idle on the same spot with the same rotation for a while (like a second or so)... well then this may be caused by an optimization by SQ where the rotation angle which is sent from client to server was changed from float (4 bytes) to short (2 bytes). It probably works fine at most angles but since 2 bytes can "only" represent 65,535 values there might be a few inaccuracies at very specific angles.
This change was introduced with version 1.0.0.4
This change was introduced with version 1.0.0.4
In client 1: it shows client 1 rotation is -13.6020 but in client 2 it shows 346.99768 for client 1 rotation (when 360 - 13.6 = 346.4).
Test 2:
Client 1 Rotation shows 145.489
Client 2 shows Client 1 rotation as 144.99755
EDIT: OpenGL in CS2D has an extra latency. With 60 FPS Lock, it is about 18 ms, however, with about 300 FPS, it is about 3 ms. In DirectX with 60 FPS or 300 FPS, in both cases its ~0 ms
EDIT 2: I found a couple new issues:
1. Mousex and Mousey through
player(id, 'mousex'), player(id, 'mousey')don't get synchronized accurately, In other words the client doesn't give the server the actual mouse position, there is usually a difference by 1 to 3. I believe it's the same case for reqcld. This is also a part of causing the latest bug reported.
2. After a period of client inactivity, the mousex and mousey return -1, and this is stupid. The right way to do this is to after a period of inactivity use the cached latest client mouse position instead of returning -1. Once again, I believe its same for reqcld.
This could partake in fixing the nade issue and the shooting issues. To fix them, all of the following have to be done:
Quote
Summary:
1. Fix mousex, mousey synchronization (for reqcld aswell)
2. Fix the rotation synchronization
3. Use seed values for the default recoil
1. Fix mousex, mousey synchronization (for reqcld aswell)
2. Fix the rotation synchronization
3. Use seed values for the default recoil
edited 3×, last 01.03.24 08:01:48 am
Your may add an image
pointer = image("gfx/pointercustom.png", 0,0,1)and update it
imagepos(pointer,player(1,"mousex"),player(1,"mousey"),0)on always. Start a server with new game and join it. Even having 1-3ms would cause offset on mouse move and stop. The sync is visible.