Jump to content

Improvements for the dedicated server


Alloc

Recommended Posts

It'd make things much easier with respect to finding co-ords for TPs if the webmap could should x,y,z co-ords as given in the TelNet console as well as the 888 S / 999 E co-ords. Maybe I'm missing something and/or an easy way to translate. I can get 888 S / 999 E co-ords from my mouse pointer position on the wepmap, but no idea how to use them in TelNet teleport command.

Link to comment
Share on other sites

It'd make things much easier with respect to finding co-ords for TPs if the webmap could should x,y,z co-ords as given in the TelNet console as well as the 888 S / 999 E co-ords. Maybe I'm missing something and/or an easy way to translate. I can get 888 S / 999 E co-ords from my mouse pointer position on the wepmap, but no idea how to use them in TelNet teleport command.

 

This might help...

 

https://7daystodie.com/forums/showthread.php?12837-Improvements-for-the-dedicated-server&p=307572&viewfull=1#post307572

Link to comment
Share on other sites

Hi Alloc:

 

I hope you can help me understand the "saveworld" command a bit better. I know the command writes the current world state to the region files, but what else does it do? Player information too?

 

Most important, if I backup the various data files isn't it going to be a problem if the server is writing to a given file at the same time I am backing up that file? When restoring that file, I could restore a corrupted/incomplete file...

 

I appreciate any other info you care to include :-)

Link to comment
Share on other sites

I'm having some issues with the mapping function of Alloc's fixes and was hoping I could get some ideas on things I could try to get it fixed.

 

First off, I've been using Alloc's for a while and never had any issues with it. I've switched maps before and only had an issue this time when I went from A14 to A15 b105 (new map, wiped out old map)

 

It seems the map tiles are being built properly as I can see the image files in the saved game folder and they look fine.

The webserver is actually running as the site comes up.

 

The problem is that there's no map displayed on the page. I get the menu items in the upper left and the login button in the lower left, but no tiles are displayed and the map navigator that's normally in the lower right is also missing. I'm thinking that maybe the webserver is looking in the wrong saved game folder, but I can't seem to locate a configuration file anywhere that has that information (and I've never changed that information before on map swapouts that worked).

 

I did do a full uninstall and wipe of directories before reinstalling A15 then copied in the latest (2016/9/25) Alloc's Mod directory into the 7 days to die server folder.

 

Any ideas on other things to check would help out a lot.

Link to comment
Share on other sites

Any chance I can get you to add this to your pages? It should help with IE rendering anyway.

 

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Have looked it up but still don't completely get what crap IE does with that stuff again ... But I suppose it won't hurt. Will add it to my list.

 

 

 

I hope you can help me understand the "saveworld" command a bit better. I know the command writes the current world state to the region files, but what else does it do? Player information too?

 

Most important, if I backup the various data files isn't it going to be a problem if the server is writing to a given file at the same time I am backing up that file? When restoring that file, I could restore a corrupted/incomplete file...

As we're talking about dedicated servers here it basically just saves the main.ttw and the currently loaded chunks. Player data is saved whenever the server receives an update in that data from the clients anyway.

Regarding backups: Yes, if you would really create a copy of a file while it's partially written it could theoretically result in a corrupted backup. Quite unlikely though as both the save operation and file system copy operations should be short enough so you typically won't get them interferring.

 

 

The problem is that there's no map displayed on the page. I get the menu items in the upper left and the login button in the lower left, but no tiles are displayed and the map navigator that's normally in the lower right is also missing. I'm thinking that maybe the webserver is looking in the wrong saved game folder, but I can't seem to locate a configuration file anywhere that has that information (and I've never changed that information before on map swapouts that worked).

Sounds like it's a permission issue. Have you tried logging in with a Steam account that has permission level 0?

Link to comment
Share on other sites

Sounds like it's a permission issue. Have you tried logging in with a Steam account that has permission level 0?

 

I've logged in, but I'm guessing that only gives permission level 1000 by default. I've also tried changing the permissions for some of the other map functions to 2000. I'll try adding my steam account as an administrator tonight and see if that helps. Thanks for the suggestion.

 

EDIT:

 

That was it. Not sure how I missed it before, but web.map was commented out in webpermissions.xml. Stuck out like a sore thumb when I used Notepad++ on the file instead of notepad. It's working now. Thanks!

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

Alloc,

 

I sent in a question to MM, but he referred me to you. =) So, the question is, would it be possible to output to telnet, when someone kills a zombie, type of zombie and with what weapon, etc? I could do a lot with this in my server manager if it existed.

Link to comment
Share on other sites

Had a question about the rendered webmap. Is there a way for someone with admin status to add markers to the map that others could view? Like a marker for a town's name or a trader's location for players to use as a reference in describing directions to places?

Link to comment
Share on other sites

... would it be possible to output to telnet, when someone kills a zombie, type of zombie and with what weapon, etc?

Not sure what exactly is tracked internally but I'll have a look. I would *probably* make it a mod event so in order to get the actual output someone (maybe I) would have to add a simple mod that just prints that information. Depends on how much "spam" it would produce though.

 

 

Had a question about the rendered webmap. Is there a way for someone with admin status to add markers to the map that others could view? Like a marker for a town's name or a trader's location for players to use as a reference in describing directions to places?

No, at least not for now. Might come in later when I've finally added some proper data store.

Link to comment
Share on other sites

Not sure what exactly is tracked internally but I'll have a look. I would *probably* make it a mod event so in order to get the actual output someone (maybe I) would have to add a simple mod that just prints that information. Depends on how much "spam" it would produce though.

 

Sounds like exactly what I need, thanks for considering it!

Link to comment
Share on other sites

Had a question about the rendered webmap. Is there a way for someone with admin status to add markers to the map that others could view? Like a marker for a town's name or a trader's location for players to use as a reference in describing directions to places?

 

No, at least not for now. Might come in later when I've finally added some proper data store.

 

I'm sure Alloc will be able to add some fancy whiz bang feature to make new markers on the fly, but for now, you can modify the map.js.

 

Add this code between the map and player icon sections:

 

    // create custom icon
   var commbase = L.icon({
       iconUrl: 'http://i.imgur.com/3FxOa26.png', //link to your custom marker image
       iconSize: [25, 41], // size of the icon
       iconAnchor: [12, 41], //anchor position of the icon
popupAnchor: [0, -44] //anchor position of the popup
       });

   // create popup contents
   var customPopup = "SoHC Community Base";

   // specify popup options 
   var customOptions =
       {
       'maxWidth': '500',
       'className' : 'custom'
       }

   // create marker object, pass custom icon as option, pass content and options to popup, add to map
   // the coords are E/W , N/S with W and S as negative numbers
   L.marker([1851, 654], {icon: commbase}).bindPopup(customPopup,customOptions).addTo(map);

 

 

G9Hl7ZV.jpg

Link to comment
Share on other sites

Minibikes on Web Map

 

I know you can add markers on the in game Map for minibikes. I am trying to find a way to add minibikes on the Web Map as well, in the same form as you have the Animals, Hostiles, players, etc. Forgive me if this has been discussed, I've search for nearly an hour and haven't found it.

 

Thanks in advance!

Link to comment
Share on other sites

Alloc,

 

I sent in a question to MM, but he referred me to you. =) So, the question is, would it be possible to output to telnet, when someone kills a zombie, type of zombie and with what weapon, etc? I could do a lot with this in my server manager if it existed.

 

This is a really desirable feature!

Not just Z kills, but all player related stats.

There is a post on the pimps dreams forum for this very thing:

https://7daystodie.com/forums/showthread.php?49559-Player-Stats

...also added to the new list:

https://7daystodie.com/forums/showthread.php?52507-contrasting-low-demand-Pimp-Dreams-(W-I-P-)

Link to comment
Share on other sites

Stats are not at all related to events as stats simply aren't events ;)

 

If I understand correctly, 'stats' are the cumulative totals of recorded events.

 

Is it practical to record any more player events to the persist data bin for recall via a telnet command?

What events are currently exposed and practical for recording?

 

I noticed in dmustangers latest release with the reserved slots, he uses the amount of items crafted by a player as one way of deciding who should make space for a donor. Are there any other similar player statistics that can be exposed to the console?

 

Thanks Alloc :)

Link to comment
Share on other sites

Alloc, I'm using si command, but one thing I'm having an issue with, is figuring out when all of the items are done being listed. Since slots without items are not listed, and there is no terminator to know the inventory list is done.

 

Would it be possible to add something like

 

"tracker_item id=171, code=inv_trekkan, location=DONE"

 

So that location=DONE means that all of the items have been completed?

 

Or any other idea you might have, but just a way to know that the players inventory list is complete.

 

Thanks much!

Link to comment
Share on other sites

Alloc,

 

Not that you need me to tell you how to code this, but just to be clear as to what I mean.

 

In file: ShowInventory.cs

 

after line 68, I added this:

 

                if (tag != null)                {
                   SdtdConsole.Instance.Output("tracker_item id=" + p.EntityID + ", tag=" + tag + ", location=DONE");
               }

 

And compiled the mod and that does what I need. So, if not that, something like that. Hope that makes sense.

 

Thanks for all of your work!

Link to comment
Share on other sites

If I understand correctly, 'stats' are the cumulative totals of recorded events.

 

Is it practical to record any more player events to the persist data bin for recall via a telnet command?

What events are currently exposed and practical for recording?

 

I noticed in dmustangers latest release with the reserved slots, he uses the amount of items crafted by a player as one way of deciding who should make space for a donor. Are there any other similar player statistics that can be exposed to the console?

 

Thanks Alloc :)

Yeah, stats are basically summed up events. Problem is with storing that stuff, I'm still looking for a good data store solution (not a lot of free fully embeddable DB solutions for .NET to choose from it seems :( and I don't want more custom binary serialization or ♥♥♥♥ like that ;) ).

As for dmustanger's reserved thing: Whatever is accessible in code can in theory be used. In the end for players that should probably be about everything the game knows about (e.g. what you can see in your UI menus while playing).

 

 

Alloc, I'm using si command, but one thing I'm having an issue with, is figuring out when all of the items are done being listed. Since slots without items are not listed, and there is no terminator to know the inventory list is done.

Added for the next release. instead of "location=DONE" it will be "SHOWINVENTORY DONE" though.

Link to comment
Share on other sites

Yeah, stats are basically summed up events. Problem is with storing that stuff, I'm still looking for a good data store solution (not a lot of free fully embeddable DB solutions for .NET to choose from it seems :( and I don't want more custom binary serialization or ♥♥♥♥ like that ;) ).

 

So damn that i did not find any time to do my "save to mongodb" project i was thinking about some time ago - but i would not have embedded it, so that dont cares. Anyway just googled quick, what about http://www.litedb.org/ ? I've just red the homepage and it sounds good to me.

Link to comment
Share on other sites

So damn that i did not find any time to do my "save to mongodb" project i was thinking about some time ago - but i would not have embedded it, so that dont cares. Anyway just googled quick, what about http://www.litedb.org/ ? I've just red the homepage and it sounds good to me.

 

When we looked at the alternatives for storing data from console commands, we ended up using a MySQL DLL and storing in that DB. I know this isn't suitable here, but the reason I mention it is that we were limited to what version of .NET mono would be compatible with. We ended up using DLLs compatible with .NET 1 I believe to ensure compatibility.

I don't know what version of .NET Alloc's standalone mono fingy will work with, but it will restrict what DLLs can be used (possibly).

Link to comment
Share on other sites

So damn that i did not find any time to do my "save to mongodb" project i was thinking about some time ago - but i would not have embedded it, so that dont cares. Anyway just googled quick, what about http://www.litedb.org/ ? I've just red the homepage and it sounds good to me.

Yeah, that's actually one of the five thing's I got opened here ;)

Was looking for something ideally more flexible though, like BrightstarDB. Unfortunately that one is .NET 4.

 

 

 

I don't know what version of .NET Alloc's standalone mono fingy will work with, but it will restrict what DLLs can be used (possibly).

It's not an issue on my end but the runtime, i.e. Unity's Mono which is limited to 3.5 :(

Link to comment
Share on other sites

Yeah, stats are basically summed up events. Problem is with storing that stuff, I'm still looking for a good data store solution (not a lot of free fully embeddable DB solutions for .NET to choose from it seems :( and I don't want more custom binary serialization or ♥♥♥♥ like that ;) ).

As for dmustanger's reserved thing: Whatever is accessible in code can in theory be used. In the end for players that should probably be about everything the game knows about (e.g. what you can see in your UI menus while playing).

 

 

 

Added for the next release. instead of "location=DONE" it will be "SHOWINVENTORY DONE" though.

 

Fully free, embeddable and most of all portable (no net connections needed).

 

https://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki

 

which is a .NET wrapper for https://www.sqlite.org/

 

Cheers

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

Maybe I'm misunderstanding, but.... is there a need to store this data? I mean as a mod? I just need the data output to a log, and I can store the data in a database (as I planned to). Sure, not everyone is going to use my stuff, I get that. But I mean, to enable this in general, the data just needs to be output to the log, storage of it could come secondary.

 

- - - Updated - - -

 

Added for the next release. instead of "location=DONE" it will be "SHOWINVENTORY DONE" though.

 

Thanks!!

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...