Native Linux server (with management scripts)

Alloc,

Is there a way to suppres "<player> joined / left / died" messages from chat and migrate them to hooks.

They basically eat up lines (a scarce commodity) in the visible chat window when using hooks to output alternative information.

If not for any special reason but to just insert timestamps (gametime parameter ;) . But generally the "<player> joined / left / died" messages could be replaced with much more useful information.

 
Well, it would be possible with the mod. But I do not really feel like going that way ;) Especially as the mod is meant to not change the behaviour of the game at all (and it would also affect users that don't run the scripts so they wouldn't have a direct way to add replacement output).

 
It would appear that the buff / debuff command doesn't give help, nor errors. What are the parameters?

 
... Especially as the mod is meant to not change the behaviour of the game at all (and it would also affect users that don't run the scripts so they wouldn't have a direct way to add replacement output).
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.

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

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

 
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?

 
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 ;)

 
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.

 
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 ;)

 
Well I obviously tried it with Send but the position field was still missing. But since you replied saying it should work I had another look and noticed I wasnt creating the patchers right :D

So thanks for that, compiling fine now ^^.

 
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.

 
Last edited by a moderator:
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.
yeh good call..

 
Can't do ... the scripts just parse the log, the log does not give anything else than player name.

 
/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

 
/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 ;)

 
I am getting the follwing exceptions in the output log:

EAC UserStatusHandler callback. Status: Disconnected GUID: 76561197987923099 ReqKick: True2014.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>:02014.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

 
Last edited by a moderator:
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.

 
Back
Top