wiremod / advdupe2

Advanced Duplicator 2
http://wiremod.com
Apache License 2.0
89 stars 60 forks source link

AreaCopy problems with GitHub version but not the outdated Google Code version #49

Closed Mista-Tea closed 8 years ago

Mista-Tea commented 9 years ago

Hello,

The title is a bit odd but essentially several players on my Sandbox server have pointed out that AdvDupe2 fails to paste their custom dupes that are over 500 props if they area copy the original paste. For example, a 625-prop Lamborghini car with SProps will paste as 625 props normally, but if they area copy it, pasting it results in only 503 props being spawned.

I had previously trying debugging the area copy functionality several months ago with a player's very large house dupe and found it did the same thing on singleplayer, so I ruled it out having to do with my server's custom systems.

Just today, however, another player brought it to my attention. I started a vanilla server with only SProps (workshop)/Wiremod (workshop)/Advdupe2 (github) and had the player try pasting, areacopying, and then pasting again. The result was the same -- only 503 props out of 625.

The player reported that they didn't have this issue in singleplayer, so he uploaded his version of AdvDupe2 to dropbox and I put it on the vanilla server.

Everything worked perfectly. Turns out the version he gave me was SVN'd so I checked the logs with TortoiseSVN and found that it came from the old GoogleCode version at https://code.google.com/p/advdupe2/, revision 174. The problem is that version hasn't been updated for nearly 2 years, and yet it seems to work perfectly.


That being said, is there any obvious reason that might cause the GitHub version's of area copy to fail with these sorts of dupes compared to the older version? I'd usually try diff'ing both versions but I don't have the time this summer.

If you'd like to have the dupe to try and replicate the issue, I can ask the player if he doesn't mind.

Mista-Tea commented 9 years ago

Small update, this seems to occur with anything that has over 500 props. My friend used over 500 simple hunter plates as an example. If you'd like to replicate the issue, download the dupe here: https://www.dropbox.com/s/urga6wwct44j3wg/Advdupe2%20Areacopy%20break.txt?dl=0

monkstick-git commented 9 years ago

I was about to make this exact same issue.

I made 600 Helicopter Bombs all in rows then area duped them. The Client doesn't receive all 600, he gets exactly 512. This makes me think there's a limit on network variable sending. Heres two screenshots for you.

http://saltyservers.co.uk/munage-board/tmp/1435907222517.jpg http://www.saltyservers.co.uk/munage-board/images/14359072144386.jpg

Mista-Tea commented 8 years ago

Any word on this?

I realize it's not the most pressing issue given that servers that have prop limits high enough to do it are few and far between, but it's really becoming an issue for players that can. Any insight would be greatly appreciated.

thegrb93 commented 8 years ago

I'll take a look.

monkstick-git commented 8 years ago

Any news on this?

thegrb93 commented 8 years ago

Going to try this. If it works then its probably a garrysmod bug with ents.FindInBox only returning a max of 512 entities. Code

thegrb93 commented 8 years ago

If https://github.com/wiremod/advdupe2/pull/55 gets merged, you won't even have to worry about area copy anymore.

thegrb93 commented 8 years ago

Fixed by https://github.com/wiremod/advdupe2/pull/63

FindInBox does in fact have a limit of 512 entities. I added that information to the gmod wiki as well.

Mista-Tea commented 8 years ago

Thanks for looking into this.

thegrb93 commented 8 years ago

This can be closed now.

Divran commented 8 years ago

Does findInSphere also have this limit? If not, you could use findInSphere with a radius large enough to cover the whole box, and then loop through the entities and check their positions, instead of having to check every single entity on the server

thegrb93 commented 8 years ago

It does have the same limit. As does FindInCone.