Jump to content

Native Linux server (with management scripts)


Alloc

Recommended Posts

Im trying to compile the newest sources again Alloc. Same procedure as last time (deobfuscated, got the SteamWorks and Unity dll from my server).

This time Im getting an Error in the Teleport command, line 53 (position attribute not found for EntityPlayer) and line 58 (PackageQueue couldnt find method mmdv0005). I also tried compiling the newest deobfuscator sources and deobfuscating the dll with that instead of the Release, didnt work though. Any ideas?

Link to comment
Share on other sites

I'm still trying to convince you... my intention is not to change behaviour but make it more informative without overflowing the chat. Maybe a configuration option to enable "advanced" features. I intend to publish the scripts as soon as they feal reasonably working and safe with relation to changes.

Still it would require external things (that may even be Linux only if it's scripts) that won't be available to every user of the mod. So unless it is an option (and I don't have an options system yet ;) ) that won't come.

 

 

Could you make the si command return players name in the Bag for player <put actual playername. And same with... Bagpack for <player>

Yup, changed in next release.

 

also I still not got this api working the control panel is on, what steps am I missing exactly

Did you download the webserver files to your game folder? See "Activation" here.

(Please show me the contents of your game folder and the log if it still does not work)

 

 

Im trying to compile the newest sources again Alloc. Same procedure as last time (deobfuscated, got the SteamWorks and Unity dll from my server).

This time Im getting an Error in the Teleport command, line 53 (position attribute not found for EntityPlayer) and line 58 (PackageQueue couldnt find method mmdv0005). I also tried compiling the newest deobfuscator sources and deobfuscating the dll with that instead of the Release, didnt work though. Any ideas?

"position": That's been just added in the latest Deob code, I just uploaded the source 6h ago (but no release so far). PackageQueue hast a "Send" method instead of a "mdv0005" after using the current Deob, but I think I did not yet upload the updated mod source for that part ;)

Link to comment
Share on other sites

the teleportplayer <entid|playername|steamid> only going to xyz

 

Could you add a way to do teleportplayer <entid|playername|steamid> <entid|playername|steamid> ?

 

i guess in the meantime i'll do a fake command to get there pos and teleport to that.

 

btw is it possible to manipulate player inventory? i have a script to check player inv on connect for duped items, but short of banning them and giving a warning, there isn't any easy way of getting rid of those items, I only have drop belt as server setting and its not like I can change that per player, so its not like I can teleport them from a dizzy height and force them to lose there ♥♥♥♥ in a spike pit as they die and still have the bag with duped items in potentially.. so some ideas cus funpimps goofed up on not fixing that exploit and many are using it.

Link to comment
Share on other sites

Ah ok thx, I will have to wait then^^.

Well, you could just change that mdv0005 to Send and it should compile for now ;)

 

 

Could you add a way to do teleportplayer <entid|playername|steamid> <entid|playername|steamid> ?

Yeah, will do that.

 

btw is it possible to manipulate player inventory?

Inventory is client sided, so you could only change it for offline players (or intercept the first transmissions when they get online). So basically: no ;)

Link to comment
Share on other sites

Could you add a way to do teleportplayer <entid|playername|steamid> <entid|playername|steamid>

 

While your at it, the chat hooks could use entid/steamid passing as catching unescaped strings as playernames is quite challenging and then filtering ;) them back to parameters for commands like teleportplayer.

Edited by qriff (see edit history)
Link to comment
Share on other sites

/home/sdtd/instances/Zone/Random Gen/[28D618]English, [6096D8]PVE,[FFFFFF] Public/webserver/

 

thats where I have (svn) webserver files..right place? or not?

 

this "cd /path/to/7dtd/game/folder" wasn't exactly clear anyway

 

Inventory is client sided, so you could only change it for offline players (or intercept the first transmissions when they get online). So basically: no

 

I would totally be happy with a way to change offline inventory ..the dupe works by a player disconnecting after doing some inventory clicking anyway, so playerDisconnect hook could have some use, to check there inventory and clean things up for them :D

Link to comment
Share on other sites

/home/sdtd/instances/Zone/Random Gen/[28D618]English, [6096D8]PVE,[FFFFFF] Public/webserver/

thats where I have (svn) webserver files..right place? or not?

Nope, that's the instnace folder, the game folder in your case is /home/sdtd/engine/ so there you should create that new folder with all the files :)

 

 

I would totally be happy with a way to change offline inventory ..the dupe works by a player disconnecting after doing some inventory clicking anyway, so playerDisconnect hook could have some use, to check there inventory and clean things up for them :D

We'll see what's coming up, but probably not the really close future. Problem is I do not want to access the save files as that could crash the server (when it wants to load files I have currently opened for writing). And crashing the server is something that I would never dare to do as long as I can prevent it ;)

Link to comment
Share on other sites

I am getting the follwing exceptions in the output log:

 

EAC UserStatusHandler callback. Status: Disconnected GUID: 76561197987923099 ReqKick: True

2014.09.07 12:43:43: EAC kicks player , status Disconnected

2014.09.07 12:43:43: ArgumentNullException: Argument cannot be null.

2014.09.07 12:43:43: Parameter name: key

2014.09.07 12:43:43: at System.Collections.Generic.Dictionary`2[system.String,System.Int32].ContainsKey (System.String key) [0x00000] in <filename unknown>:0

2014.09.07 12:43:43: at GameManager.md0012 (System.String par0001, Boolean par0002, DateTime par0003) [0x00000] in <filename unknown>:0

2014.09.07 12:43:43: at Authenticator.UserStatusHandler (EasyAntiCheat.Server.UserStatusUpdate userStatus) [0x00000] in <filename unknown>:0

2014.09.07 12:43:43: at EasyAntiCheat.Server.EasyAntiCheatServer.HandleUserUpdates (EasyAntiCheat.Server.UserStatusHandler handleStatus) [0x00000] in <filename unknown>:0

2014.09.07 12:43:43: at Authenticator.Update () [0x00000] in <filename unknown>:0

 

and

 

2014.09.07 12:49:49: at Command_shutdown.Run (System.String[] _params) [0x00000] in <filename unknown>:0

2014.09.07 12:49:49: at ConsoleSdtd.ExecuteRemoteCmdInternal (System.String par0001, Boolean par0002) [0x00000] in <filename unknown>:0

2014.09.07 12:49:49: at NNumber.de.Dictionary`2 (.ConsoleSdtd ) [0x00000] in <filename unknown>:0

2014.09.07 12:49:49: at ConsoleSdtd.Run () [0x00000] in <filename unknown>:0

2014.09.07 12:49:49: at GameManager.Update () [0x00000] in <filename unknown>:0

2014.09.07 12:49:49: TypeLoadException: Could not load type 'AllocsFixes.StateManager' from assembly 'Assembly-CSharp'.

 

When shutting down. Could the last one have to do with me adding a command?

 

Should I be worried? :D

Edited by Isalof (see edit history)
Link to comment
Share on other sites

The first one seems to be caused by a player having no playername ... which looks like it's resulting in not kicking him even though EAC should do so :(

 

Second one: You must have done something wrong when compiling or patching the assembly. That only happens when AC# has a method reference to a method in the fixes.dll that does not exist. So e.g. you may have copied the new AC# but forgot the new fixes or the other way round or something like that.

Link to comment
Share on other sites

While your at it, the chat hooks could use entid/steamid passing as catching unescaped strings as playernames is quite challenging and then filtering ;) them back to parameters for commands like teleportplayer.

 

So could you give an example how a console command would be executed on the user "[XXX] some name" because it doesn't work plainly [XXX] some name or with quotes "[XXX] some name", nor stripped of spaces "[XXX]somename" or escaped "\[XXX\]\ some\ name" or "[XXX]\ some\ name" or a combination of them.

 

Currently I have to strip the playername from the chat message of special chars, then do the same for the lpe playernames and finally compare them with each other. And finally use the resulting lpe entid or steamid.

Edited by qriff (see edit history)
Link to comment
Share on other sites

I redid the patching process because I think that I mightve made an error last time when switching dlls.

 

I am now getting the following error:

 

2014.09.07 19:15:07: NullReferenceException: Object reference not set to an instance of an object

2014.09.07 19:15:07: at cl00b6.md0007 (System.String _bundleName, System.String _objName) [0x00000] in <filename unknown>:0

2014.09.07 19:15:07: at GameManager.Awake () [0x00000] in <filename unknown>:0

2014.09.07 19:15:07: Unloading 5 Unused Serialized files (Serialized files now loaded: 0 / Dirty serialized files: 0)

2014.09.07 19:15:07: Unloading 134 unused Assets to reduce memory usage. Loaded Objects now: 5781.

2014.09.07 19:15:07: Total: 6.349000 ms (FindLiveObjects: 0.290000 ms CreateObjectMapping: 0.155000 ms MarkObjects: 5.589000 ms DeleteObjects: 0.219000 ms)

 

Could this have anything to do with the sources not being 100% fresh at either the deobfuscator or the fixes?

The only thing I am doing btw is building new commands. Do I even have to replace the assembly-csharp then or wouldn't it just suffice to swap the fixes dll?

Link to comment
Share on other sites

The AC# only has to be replaced when you change something that is called by one of the hooks added by the patcher.

 

Those errors look similar to what you get when running the server AC# on a client build ... but as you patch your AC# yourself that shouldn't be the problem.

 

Sorry, but I can't debug custom builds, but I will upload the latest code soon™ ;)

Link to comment
Share on other sites

The AC# only has to be replaced when you change something that is called by one of the hooks added by the patcher.

 

Those errors look similar to what you get when running the server AC# on a client build ... but as you patch your AC# yourself that shouldn't be the problem.

 

Sorry, but I can't debug custom builds, but I will upload the latest code soon™ ;)

 

And I would never expect u to :D. But that hint could be helpful, swapping just the fixes dll did seem to work, except for the error when shutting down. But I will have another look in any case. Looking forward to the latest code :).

Link to comment
Share on other sites

So could you give an example how a console command would be executed on the user "[XXX] some name" because it doesn't work plainly [XXX] some name or with quotes "[XXX] some name", nor stripped of spaces "[XXX]somename" or escaped "\[XXX\]\ some\ name" or "[XXX]\ some\ name" or a combination of them.

 

Currently I have to strip the playername from the chat message of special chars, then do the same for the lpe playernames and finally compare them with each other. And finally use the resulting lpe entid or steamid.

Well, yeah, for chat message hooks this is probably the way it is right now ... Currently no way around, sorry.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...