• Advanced Duplicator 2
    1,090 replies, posted
  • Avatar of -TB-
  • [img]http://i.imgur.com/rJnMv.png[/img] [release] [b][u][h2]DOWNLOAD:[/h2][/u][/b] [highlight][b][u]DO NOT UPLOAD ANYWHERE[/u][/b][/highlight] [b]How To Install: [/b] [url=http://code.google.com/p/advdupe2/wiki/HowToInstall?tm=6]Tutorial how to install[/url] [b]SVN:[/b] [url] http://advdupe2.googlecode.com/svn/trunk/AdvDupe2/[/url] [highlight][b][u]WINDOWS USERS REQUIRE THE MODULE, INSTALL DIRECTORY IS garrysmod/lua/bin/[/u][/b][/highlight] [b]Module:[/b][url]http://advdupe2.googlecode.com/svn/trunk/lua/bin/gmsv_ad2filestream_win32.dll[/url] If you have paid hosting that uses Windows that doesn't allow .dll files; don't worry. AD2 can detect if the module isn't installed and use the gmod filestream. It is slower on Windows, but it'll still function. [highlight][b][h2]GMOD 13 COMPATIBLE![/h2][/b][/highlight] [b]Current Revision:[/b] 172 [b]Last Updated:[/b] 6/30/2013 1:00 PM CST U.S. [b]SVN Tutorial:[/b] [url=http://facepunch.com/threads/688324?highlight=tortoise+svn+tutorial]How to use SVN[/url] [b]Module Source:[/b][url]http://advdupe2.googlecode.com/svn/trunk/source/ad2filestream.cpp[/url] [/release] [release] [b][u]FEATURES:[/u][/b] No saggy constraints. Copies contraptions without having to perfectly freeze them, can even pull it apart and it will copy perfectly. Area copy, A new kind of copy to copy everything inside a dynamic box. It will also copy parents that do not have any constraints. A totally redesigned GUI browser that is fast and user friendly. Lots of features to paste how you want to paste. Dynamic ghost, change the amount of ghost from 100% to 0% or any percentage in between. Contraption Spawner, a small portable spawner that you can weld to something, spawn with numpad keys, or with wire. An easy to use paste function. Efficient code to reduce stress from the server. A pasting job manager to effectively paste multiple dupes with out lag. A network manager to manage multiple uploads and downloads without lag. Angle modifications, pitch, yaw, roll. Auto save an area with a set interval Save an entire map and load it for later. [b][u]File Features:[/u][/b] Reliable file saving and opening. Files are dramatically smaller than AD1 files. Advanced Duplicator 1 file support. Duplication files are written in binary. [b][u]Parenting Features:[/u][/b] Since people like to use parents for more effective and less laggy contraptions I added some features to help them even further. With area copy you can parent things without constraints or no collides and be able to copy them, reducing the file size and the amount of constraints used on your server and contraptions. But most tools use no collides when parenting, this is an era of change for parenting duplication support so the parenting tools need to change to take advantage of this new duplication support. Parented props that have no constraints or just no collides are modified to have a world only collision, so that the fallen physics objects just sit on the ground and sleep without colliding with anything or continuously fall through the world, reducing server stress and random invisible collisions. A setting in the experimental section has been added to remove traces from the parented prop which allows you to phys gun through the parented props which makes grabbing the contraption easier and someone may find more uses for it, so it's there to use. Here's a modified [url=http://www.garrysmod.org/downloads/?a=view&id=126226]Parent Tool[/url] with an option to no collide. [/release] [u][h2]WIKI Links[/h2][/u] [url=http://code.google.com/p/advdupe2/wiki/HowToInstall?tm=6]Main[/url] [url=http://code.google.com/p/advdupe2/wiki/Controls]Controls[/url] [url=http://code.google.com/p/advdupe2/wiki/ToolSettingsExplanation]Tool Settings[/url] [url=http://code.google.com/p/advdupe2/wiki/ToolExplanation]How to use the Tool[/url] [url=http://code.google.com/p/advdupe2/wiki/ServerSettings]Server Settings[/url] [url=http://code.google.com/p/advdupe2/wiki/FAQ]F.A.Q.[/url] [u][h2]Bug Reporting[/u][/h2] [url=http://code.google.com/p/advdupe2/issues/list]Bug Tracker[/url] [b][u]MEDIA:[/u][/b] Tool Screen & Menu [img_thumb]http://imageshack.us/a/img801/7757/ad2toolmenu.png[/img_thumb] Menu - sliding options tabs [img_thumb]http://imageshack.us/a/img189/7830/ad2slidemenu.png[/img_thumb] File and Folder interactive menu [img_thumb]http://imageshack.us/a/img5/5466/ad2menu.png[/img_thumb] [b][u][h2]CREDITS:[/h2][/u][/b] [b]Developers:[/b] [url=http://www.facepunch.com/members/169405-TB][tab]TB[/tab][/url] [url=http://www.facepunch.com/members/168701-Mr-Donovan][tab]Donovan (emspike)[/tab][/url] [b]Advanced Duplicator 1:[/b] [tab]Tad2020[/tab] [b]Testers:[/b] [tab]CrazKiller[/tab] [tab]Diggz[/tab] [tab]Drunkie[/tab] [tab]✘Haunter[/tab] [tab]Karbine[/tab] [tab]Riggsly[/tab] [tab]Rin[/tab] [tab]Unit-05[/tab] [tab]Winston[/tab] [b]Special Thanks To[/b] Python1320 for helping me test on his dedicated server.
  • Avatar of Mr Donovan
  • [IMG]http://i.imgur.com/AauxL.jpg[/IMG] [IMG]http://i.imgur.com/c2qvn.png[/IMG] [IMG]http://i.imgur.com/4Wtjk.png[/IMG] [IMG]http://i.imgur.com/xcGhh.png[/IMG]
  • Avatar of -TB-
  • Had a small bug found with vehicles. Important to update to revision 4.
  • That is just perfect. I'll give you an internet hug, TB. How long did this actually take to make? Considering you didn't improve your other duplicator but started on this new project. Also, hopefully we'll see the majority of build servers using this tool at some point. Oh and, can you reverse the files? As if I have something saved in the new Adv_dupe2, can I move that into the regular adv_dupe folder, then spawn it through the regular adv_dupe? (sort of confused if you count the old TB's duplicator for adv_dupe, or if you mean Wiremods.) That would be neat if you were to spawn a contraption that doesn't have this new duplicator. (yet).
  • Avatar of -TB-
  • [QUOTE=Jackpody;33036786]How long did this actually take to make?[/QUOTE] It was worked on for a year. [QUOTE=Jackpody;33036786]Oh and, can you reverse the files?[/QUOTE] AD[b]2[/b] can open AD1's files. AD1 can [b]not[/b] open AD[b]2[/b]'s files. There's no file support for TB's duplicator.
  • Avatar of Unslinga
  • Found one small bug. I got this when I no-collided all without any other constraints and copy-pasted it to a 90 degree difference when the smartsnap grid disappeared. the way to get it back seems to use the physgun to tap them again. It does happen no matter which direction, and if it's welded or not.
  • Avatar of Divran
  • Hey TB I think you forgot to mention it uses Donovan's Lua compression algorithms to compress the text files before saving. It still does that, right? Oh and did you clean up your messy code? Last time I checked, TB's code was uglier than Adv dupe 1. EDIT: Yeah the code looks a lot cleaner now. I see a lot of "tonumber(GetConVarString(...))" all over the place, though. Can't you just do [b][url=http://wiki.garrysmod.com/?title=G.GetConVarNumber]G.GetConVarNumber [img]http://wiki.garrysmod.com/favicon.ico[/img][/url][/b]? (I was the one who, along with Donovan, started up this project, in case you're wondering. I invited TB in because of his experience with sagless dupes, and then I didn't do much more in the project myself.)
  • Avatar of Chewgum
  • [QUOTE=Divran;33037729]Hey TB I think you forgot to mention it uses Donovan's Lua compression algorithms to compress the text files before saving. It still does that, right? Oh and did you clean up your messy code? Last time I checked, TB's code was uglier than Adv dupe 1. EDIT: Yeah the code looks a lot cleaner now. I see a lot of "tonumber(GetConVarString(...))" all over the place, though. Can't you just do [b][url=http://wiki.garrysmod.com/?title=G.GetConVarNumber]G.GetConVarNumber [img]http://wiki.garrysmod.com/favicon.ico[/img][/url][/b]? (I was the one who, along with Donovan, started up this project, in case you're wondering. I invited TB in because of his experience with sagless dupes, and then I didn't do much more in the project myself.)[/QUOTE] Maybe replace the adv dup that comes with wire with this one? Also, good work. Looking good.
  • Avatar of Grocel
  • That would be an awesome improvement, the Adv Dupe 1 got very old and obsolete also it's tool menu is slow to handle. When the big gmod update is out, then the new Adv Dupe can use the [URL="http://www.facepunch.com/threads/1089200?p=32960269&viewfull=1#post32960269"]new[/URL] [URL="http://www.facepunch.com/threads/1089200?p=32961010&viewfull=1#post32961010"]net[/URL] [URL="http://www.facepunch.com/threads/1089200?p=32974347&viewfull=1#post32974347"]liberty[/URL] of gmod.
  • Avatar of Mr Donovan
  • [QUOTE=Divran;33037729]Hey TB I think you forgot to mention it uses Donovan's Lua compression algorithms to compress the text files before saving. It still does that, right? Oh and did you clean up your messy code? Last time I checked, TB's code was uglier than Adv dupe 1. EDIT: Yeah the code looks a lot cleaner now. I see a lot of "tonumber(GetConVarString(...))" all over the place, though. Can't you just do [b][url=http://wiki.garrysmod.com/?title=G.GetConVarNumber]G.GetConVarNumber [img]http://wiki.garrysmod.com/favicon.ico[/img][/url][/b]? (I was the one who, along with Donovan, started up this project, in case you're wondering. I invited TB in because of his experience with sagless dupes, and then I didn't do much more in the project myself.)[/QUOTE] I'm credited >_> ('cept for making the logo, but I don't really care about that).
  • Avatar of Grocel
  • Could you change the clearing mechanism to just clicking on the ground instead of Shift+Alt+Right Click, just like the old Adv Dupe? It also (lua) errors when the dupe file try to load is corrupted, maybe there should be some more of "if (value) then" checks or some "value = value or 0/''/{}" stuff.
  • Avatar of Mr Donovan
  • [QUOTE=Grocel;33042488]Could you change the clearing mechanism to just clicking on the ground instead of Shift+Alt+Right Click, just like the old Adv Dupe? It also (lua) errors when the dupe file try to load is corrupted, maybe there should be some more of "if (value) then" checks or some "value = value or 0/''/{}" stuff.[/QUOTE] The idea was to prevent people from accidentally clearing, although in retrospect an option to disable the safety would be nice. Did you see this error in console or as a hint w/ buzz?
  • Avatar of Grocel
  • [QUOTE=Mr Donovan;33042836]The idea was to prevent people from accidentally clearing, although in retrospect an option to disable the safety would be nice. Did you see this error in console or as a hint w/ buzz?[/QUOTE] I got them in both. To reproduce the error: Save a dupe file, edit or just resave the file with notepad to corrupted it, then try to open it with the duplicator.
  • Avatar of Mr Donovan
  • The hint-buzz is the error notifier (for when the player can't see serverside errors), and the errors are explicitly thrown when there is no recourse to a default action.
  • Avatar of Grocel
  • I tested it on a listen server and the error was serverside. Some staff that says you that the file is corrupted would be better, because someone could try to use a corrupted file and get an error and think that the duplicator is broken while the person don't know that the file is broken. Also it would reduce unnecessary bug reports that will come.
  • Avatar of -TB-
  • [QUOTE=Grocel;33049849]I tested it on a listen server and the error was serverside. Some staff that says you that the file is corrupted would be better, because someone could try to use a corrupted file and get an error and think that the duplicator is broken while the person don't know that the file is broken. Also it would reduce unnecessary bug reports that will come.[/QUOTE] It doesn't help to say there's some kind of error. You have to post the exact error the it reports.
  • Avatar of Grocel
  • [B]Serverside[/B]: After trying to open a file that got resaved by notepad. [CODE][addons\adv duplicator 2\lua\advdupe2\sv_codec.lua:436] attempt to perform arithmetic on a nil value [@addons\adv duplicator 2\lua\weapons\gmod_tool\stools\advdupe2.lua:921] bad key to string index (number expected, got string)[/CODE] After removing everything after the 5th line of the file or changing a char in the dupe data. (I know no one would, but the script should not give these errors below): [CODE][addons\adv duplicator 2\lua\advdupe2\sv_codec.lua:409] attempt to perform arithmetic on local 'h3' (a nil value) [@addons\adv duplicator 2\lua\weapons\gmod_tool\stools\advdupe2.lua:921] bad key to string index (number expected, got string) [@addons\adv duplicator 2\lua\advdupe2\sv_codec.lua:482] bad argument #1 to 'gsub' (string expected, got nil) [@addons\adv duplicator 2\lua\weapons\gmod_tool\stools\advdupe2.lua:921] bad key to string index (number expected, got string) [addons\adv duplicator 2\lua\advdupe2\sv_codec.lua:656] attempt to index local 'encodedDupe' (a nil value)[/CODE] After opening a edited (removed a letter in the dupe data) Adv dupe 1 file: [CODE][@lua\includes\extensions\table.lua:82] bad argument #1 to 'pairs' (table expected, got nil) (I know this error is not very informative, blame garry) [@addons\adv duplicator 2\lua\weapons\gmod_tool\stools\advdupe2.lua:921] bad key to string index (number expected, got string)[/CODE] All Without hint-buzz. [B]Clientside[/B]: Sometimes this comes, when I try to download something from my listen server. Is has nothing to do with the errors above. The file is working. [CODE] [advdupe2\cl_networking.lua:36] attempt to concatenate field 'NetFile' (a nil value) also Without hint-buzz. [/CODE]
  • Avatar of Balto-the-Wolf-
  • All this [i]and[/i] Advanced duplicator 1 file support? Thank you sir, thank you so very much. This shall soon be on my server. [editline].[/editline] [b]LuaKing[sup]2[/sup][/b]
  • Avatar of Mr Donovan
  • I'm unsure why codec errors wouldn't trip a hint-buzz-- everything's pcall-encapsulated, and a call to the Notify function comes right after the codec call if the codec fails. The first codec error is caused by some out-of-bounds pointing. I failed to anticipate truncation at this specific step. The second is caused by an incorrect assumption unconsciously made for the same reason. The third is caused by me not looking at that piece of code for 6 months :V (was originally for escaping nulls, later made to escape <sub>s instead). The fourth idkwtf, that's one of the parameters of a codec interface function. AFAIK the tool won't open nonexistent files, so I have no idea how it could be nil. The table extension error is from a table.Merge call I just copied verbatim from the AD1 deserializer. The bad key to string index thing appears to be from the checking of load success after certain limit checks rather than before. The NetFile thing looks like a usermessage receive order hiccup, or something, that causes NetFile to not be initialized. Props on your superior testing finesse/rigor. EDIT: Commited stuff.