Jump to content

leadingzero

Members
  • Posts

    22
  • Joined

Everything posted by leadingzero

  1. Hi Alloc, I, and I imagine other users of your server fixes, have extended them somewhat. Since you've been kind enough to share your source code, I would like to do the same with my extensions of it. It's not that I would want to release imminently, but begin refactoring my work in a more maintainable and releasable manner. Which raises the question... what would be the cleanest form to do that in? So far, I just have just made hacks of your code in place... some extra source files to be compiled along with your source, then additions to the patcher to insert my hooks after yours. This is a terrible terrible way even for a user-base of one. For me to maintain, I have to keep re-merging my code with yours whenever you update. It seems like a separate .dll with a separate patcher would be cleaner, with the assumption that the a specific version of the deobfuscator is used, and that my patch-in occurs after your patch. Order dependency will get messy for additional modifications, but it's better than the current implementation. Perhaps there's another way? p.s. If you're interested, I have my mod-on-your-mod running on jazz.bluefangsolutions.com port 14182. (Fight Club PvP). I've implemented a user-targeted motd and chat help system, akin to what you might get with ServerManager, but without the need for an externally running process and the associated not-always-reliable connection between server and process.
  2. I did all this back in alpha 9 without issue, but now invoking 7d2d-fixer.exe gripes about unity_engine.dll not being strongly named. Has anyone had this problem? System.IO.FileLoadException: Could not load file or assembly 'UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044) at System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType) at System.Reflection.RuntimeMethodInfo.get_CallingConvention() at Mono.Cecil.MetadataImporter.ImportMethod(MethodBase method, IGenericContext context, ImportGenericKind import_kind) at Mono.Cecil.ModuleDefinition.Import(MethodBase method) at dtdfixer.MainClass.addHook(TypeDefinition type, String methodName, Boolean addThisRef, Int32 opCount, Boolean atEnd, MethodBase targetMethod) at dtdfixer.MainClass.mappingPatch(ModuleDefinition module) at dtdfixer.MainClass.Main(String[] args)
  3. webstats.cs isn't part of the .svn repository. I had to delete the reference to it, but then it built. Does that matter?
  4. That was exactly it! I was able to deobfuscate, compile 7dtd-server-fixes.dll, compile the assembly-patcher, invoke 7dtd-fixer.exe and produce an Assembly-CSharp.patched.dll -- which totally works. Is "7d2d-server-fixes" on github somewhere, or is there otherwise a way to download the whole source tree recursively? I click-save-as'd it from the download link one file at a time, creating directories on my end to match your tree. Thanks so much for your generosity in sharing you expertise and efforts!
  5. Hi Alloc, I've been working on some mods to the dedicated server, but have been doing so by hacking the .il directly, which is a pain. I thought, instead, I'd take your route through deobfuscation, building, and patching the assembly. I thought it a good start to build your server improvements solution, and was elated to find a source tree for it just above the release directory form your link. However, I'm not getting through deobfuscation using the Deobfuscate pre0.3.1 release. It says "success" and produces an Assembly-CSharp.deobf.dll, but the result still has the scrambled unicode chars. The mainlog.txt shows that it's not able to load any of the .dll's in the sub-tree, or one of their dependencies. ERROR : Unable to load the patcher NamePatcher : ERROR : System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Users\tdriscoll\Documents\7 Days To Die\dllmod\Alloc_build\binary-improvements\deobfuscate-7d2d\patchers\NamePatcher.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515) File name: 'file:///C:\Users\tdriscoll\Documents\7 Days To Die\dllmod\Alloc_build\binary-improvements\deobfuscate-7d2d\patchers\NamePatcher.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information. at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) at System.Reflection.Assembly.LoadFrom(String assemblyFile) at DeobfuscateMain.Deobfuscator.Main(String[] args) The deobfuscate tree has the config.xml, Deobfuscate-Main.exe, mailog.txt, Mono.Cecil.dll,Mono.Cecil.Rocks.dll and the patchers subdirectory containing the three .dlls that don't want to load. Is there a dependency that's missing from the release tree, or is it likely encountering an execution permissions issue? Thanks in advance for any direction you might provide.
  6. 'listitems' and 'give' are apparently not recognizing block-type items, like 'concrete', etc.
  7. Lol! Fair enough. I can't figure out how to do it, either. If I do, I'll post the code. You do your thing. This would really be an intervention for a pathological case that is usually triggered when there are more than 8 players (which the pimps have defined as the max.) But the game can do more... except in rare cases, and most servers have many more people than that and things function well enough... except every now and then. The intervention I'm thinking of would be for those cases. Thanks.
  8. Thanks, but 'mem' doesn't help this case. In game objects need to be deleted, rather than memory reclaimed. Here are cases where it can get into this state: 1) There are tens of thousands of dropped block entities from someone setting off dozens of tnt 2) someone has collapsed a huge building, or a very large section of earth. 3) the game has over-spawned hordes, and they have piled up. 4) lot of players online in very different parts of the map have all done something big at about the same time. 5) more. Every update loop takes seconds because there are so many entities to iterate through, and another update stacks onto the previous. Some symptoms are: 1) No new entity spawns. a) You'll see no new wildlife or zombie spawns. b) When people break blocks, no resource drops. 2) zombie zombies. Zombies stand frozen. 3) Structural integrity doesn't play out. Blocks turn into ghost entities but hang in space and prevent any action there. 4) the game otherwise seems to work... you can craft and loot and break blocks. Just, no entities will drop from them into the world. A way to sweep/clear out all entities would be an effective intervention. Thanks
  9. Thanks for this fantastic mod to the dedicated server, and for updating it so quickly! A request : command(s) to sweep-delete all item entities and/or all ai entities. This would be huge. The game's item-entity garbage collection and management of spawned ai entities isn't very good. Servers often enter states where they are unresponsive due to having more entities than the game was meant to handle, especially on griefing events. Restarting the server doesn't always seems to clear it, either. In any case, many providers don't offer console-accessible ways to shutdown and restart the server, and for owners that have multiple admins and don't want to give their password to the providers web-based controls, this would provide a way for the admins to intervene on a server that has diverged without needing the intervention of the owner. There are, of course, all sorts of minutia that I'd like to add, but I'll need to earn that by modding it in myself.
×
×
  • Create New...