Jump to content

Fix BUG MOUNT


Go to solution Solved by DemOnJR,

Recommended Posts

  • Active Member

 

 

1) my msm gr2 server_client all ready good working

2) data/client msm/gr2/etc all ready good working

i have this bug on 2023 again and again

on my pc with anydesk 5 develope from france for see this problem

 

We fixed it (temporarily)

My server working BEST without bug mount

(temporarily for find an even better fix)

 

1) OPEN  INPUT_MAIN
  
2) SEARCH:

	const float fDist = DISTANCE_SQRT ((ch->GetX() - pinfo->lX) / 100, (ch->GetY() - pinfo->lY) / 100);
	if (((false == ch->IsRiding() && fDist > 750) || fDist > 999) && OXEVENT_MAP_INDEX != ch->GetMapIndex())
	{
		sys_log (0, "MOVE: %s trying to move too far (dist: %.1fm) Riding(%d)", ch->GetName(), fDist, ch->IsRiding());
		ch->Show (ch->GetMapIndex(), ch->GetX(), ch->GetY(), ch->GetZ());
		ch->Stop();
		return;
	}

3) ADD AFTER

	if (true == ch->IsRiding())
	{
		ch->UpdateSectree();
	}

 

 

 

 

 

 

 

 

 

 

Link to comment
Share on other sites

  • Premium

This also is happening on my server (martysama srcs) on some mounts like Manny, the gr2 and msm client/server have the same values ... but because of the speed of the mount the mobs do not render.

Solved Scroll down to see the fix.

Edited by DemOnJR

plague.png.1f5de75b42146262dcd655a5a8078

Link to comment
Share on other sites

  • Premium
3 hours ago, SCOOB said:

Don't need to do that..

 

Just delete everything from "folder" column (from all mounts) -- in mob_proto.txt -- and the lag will be gone.

I will try that today and i will be back with an edit!
Solved scroll down to see the fix.

Edited by DemOnJR

plague.png.1f5de75b42146262dcd655a5a8078

Link to comment
Share on other sites

  • Active+ Member
4 minutes ago, DemOnJR said:

I will try that today and i will be back with an edit.

You see, I have a mount that is 3x faster than Manny, and the lag is barely noticeable.

GIF: https://metin2.download/video/0SGpNc2nRo6Art7xkfMHsy5R1yfsNKM8/.mp4

On Manny for example, the lag is non-existent: 

GIF: https://metin2.download/video/UzWR1oC4YgauQ5wNcdbl71ilOqlLwawO/.mp4

Edited by Metin2 Dev International
Core X - External 2 Internal

spacer.png

Link to comment
Share on other sites

  • Forum Moderator

Hello,

I am not convinced by any of these fixes. Removing folders and mob_proto data will cause undefined behavior when it comes to server checks and PVE scenario. Calling "UpdateSectree" at every of your movement tick when riding a mount is the best way of making your server use way more resources than it should, for instance, use a ChatPacket to see how often Move() is called, now imagine that for UpdateSectree.

I personally got rid of every of my issues like this (and I think it is a good read):

And on the one hand, Trial's post is also really interesting and it is a good idea to add his solution as well.

 

Gurgarath
coming soon

Link to comment
Share on other sites

  • Premium
  • Solution

Solved using @ Gurgarath post https://metin2.dev/topic/5062-lycan-sync-tree-bug/?do=findComment&comment=153909&_rid=20400

Edit:
Has nothing to do with the Lycan in my case was the Manny that did not work and i have fiexed it doing the following edits:

  • added the FOLDER location on mob_proto client/server (and oh boyyy there are many more missing...)
  • sync the folders content both from client to the server folders to have same same exact values
     
VNUM		FOLDER
mannyvnum 	christmas_2016_mammoth

 

Edited by DemOnJR
  • Love 1

plague.png.1f5de75b42146262dcd655a5a8078

Link to comment
Share on other sites

  • Active Member

Sorry i can't test for lycan

for me working 100% without bug or problems 

please check up thanks brothers

4 hours ago, Gurgarath said:

Hello,

I am not convinced by any of these fixes. Removing folders and mob_proto data will cause undefined behavior when it comes to server checks and PVE scenario. Calling "UpdateSectree" at every of your movement tick when riding a mount is the best way of making your server use way more resources than it should, for instance, use a ChatPacket to see how often Move() is called, now imagine that for UpdateSectree.

I personally got rid of every of my issues like this (and I think it is a good read):

And on the one hand, Trial's post is also really interesting and it is a good idea to add his solution as well.

 

my server not have lycan i not have test with lycan

Link to comment
Share on other sites

  • Premium

Place the correct files in the data folder serverside of the monster to fix, take them from the client.

Then assign the monster to that folder in the mob_proto, and the problem is gone.

There is no need to use c++ or weird workarounds for this.

 

"Nothing's free in this life.

Ignorant people have an obligation to make up for their ignorance by paying those who help them.

Either you got the brains or cash, if you lack both you're useless."

Syreldar

Link to comment
Share on other sites

  • Active Member
36 minutes ago, Syreldar said:

Place the correct files in the data folder serverside of the monster to fix, take them from the client.

Then assign the monster to that folder in the mob_proto, and the problem is gone.

There is no need to use c++ or weird workarounds for this.

I know that

but it never worked on my server I tried thousands of times

Link to comment
Share on other sites

  • Premium
3 minutes ago, Draveniou1 said:

I know that

but it never worked on my server I tried thousands of times

Metin2 is metin2, the code is the same for every person on the planet. You were simply doing it wrong.

  • Think 1

 

"Nothing's free in this life.

Ignorant people have an obligation to make up for their ignorance by paying those who help them.

Either you got the brains or cash, if you lack both you're useless."

Syreldar

Link to comment
Share on other sites

  • Premium
11 hours ago, Gurgarath said:

Hello,

I am not convinced by any of these fixes. Removing folders and mob_proto data will cause undefined behavior when it comes to server checks and PVE scenario. Calling "UpdateSectree" at every of your movement tick when riding a mount is the best way of making your server use way more resources than it should, for instance, use a ChatPacket to see how often Move() is called, now imagine that for UpdateSectree.

I personally got rid of every of my issues like this (and I think it is a good read):

And on the one hand, Trial's post is also really interesting and it is a good idea to add his solution as well.

 

It just return a default value, no "undefined behavior".

Edited by WeedHex
Link to comment
Share on other sites

  • Forum Moderator
11 hours ago, Draveniou1 said:

Sorry i can't test for lycan

for me working 100% without bug or problems 

please check up thanks brothers

my server not have lycan i not have test with lycan

Understand that it has nothing to do with the Lycan. Check my post and Trial's to see that this is unrelated with Lycan. Syreldar clearly summed up what I said in my post in 3 lines.

4 hours ago, WeedHex said:

It just return a default value, no "undefined behavior".

The default value on some mounts create this issue with the TP check, and I don't feel comfortable with the server having default values when some monsters have specific accumulation values. It makes every server check mismatching with the client (you see a monster on (X, Y) coordinate while for the server it is at (X-10, Y+20) for example). This is what I meant by "undefined behavior". The game is intended to be populated with data matching the client.

12 hours ago, DemOnJR said:

I am glad it helped 😄

 

  • Good 1

Gurgarath
coming soon

Link to comment
Share on other sites

  • Active Member
1 hour ago, Gurgarath said:

Understand that it has nothing to do with the Lycan. Check my post and Trial's to see that this is unrelated with Lycan. Syreldar clearly summed up what I said in my post in 3 lines.

The default value on some mounts create this issue with the TP check, and I don't feel comfortable with the server having default values when some monsters have specific accumulation values. It makes every server check mismatching with the client (you see a monster on (X, Y) coordinate while for the server it is at (X-10, Y+20) for example). This is what I meant by "undefined behavior". The game is intended to be populated with data matching the client.

I am glad it helped 😄

 

My msm gr2 data is working perfect with mob_proto i not see problems... and i have again this problem  why? all files are correct

Link to comment
Share on other sites

  • Active+ Member
3 hours ago, Gurgarath said:

Understand that it has nothing to do with the Lycan. Check my post and Trial's to see that this is unrelated with Lycan. Syreldar clearly summed up what I said in my post in 3 lines.

The default value on some mounts create this issue with the TP check, and I don't feel comfortable with the server having default values when some monsters have specific accumulation values. It makes every server check mismatching with the client (you see a monster on (X, Y) coordinate while for the server it is at (X-10, Y+20) for example). This is what I meant by "undefined behavior". The game is intended to be populated with data matching the client.

I am glad it helped 😄

 

For me it's working fine without folder in mob proto.. No lag at all (see gifs above) and no other syncing problems. I even tested with /state, everything is updating as it should.

 

But I tried with your way too.

If I put in folder, the lag is back.. and oh boy it's noticeable. I made sure that the "npc_folder_name" is both in server and client.

 

And even if it was a difference of (x+5,y+7) between clients, while mounting---when you attack the syncing happens again and it fixes that, just like in the bug with autoattack desync.

(this one: https://youtu.be/ddKPxvnR-NI?si=Tb4YRc4gUACBn4-M )

Edited by SCOOB

spacer.png

Link to comment
Share on other sites

  • Forum Moderator
1 hour ago, SCOOB said:

For me it's working fine without folder in mob proto.. No lag at all (see gifs above) and no other syncing problems. I even tested with /state, everything is updating as it should.

 

But I tried with your way too.

If I put in folder, the lag is back.. and oh boy it's noticeable. I made sure that the "npc_folder_name" is both in server and client.

 

And even if it was a difference of (x+5,y+7) between clients, while mounting---when you attack the syncing happens again and it fixes that, just like in the bug with autoattack desync.

(this one: https://youtu.be/ddKPxvnR-NI?si=Tb4YRc4gUACBn4-M )

This is really, really weird as "my way" is basically the intended way and the way the game has been running on for years. I myself solved all the sync and lag problems with a properly populated and correct server data, while I had these issues when it wasn't properly populated (empty, inccorect or wrong accumulation data).

If having nothing works for you, I guess you are better off this way as this is also less stuff to think about!

Gurgarath
coming soon

Link to comment
Share on other sites

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.