RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Success but i got player account not admin!!!!

nerun

Sorceror
I had successfully compiled RunUO under mono, i run UO client with wine very well too, but when i 1st connect to the server with my admin account and password entered when compiling RunUO, my account is a player account not admin!!!!

What i am doing wrong?

I had noticed that automatic world save is not working: it says server is saving, but no saves or accounts are created in saves folder.
 

nerun

Sorceror
Forget, it was saved now, i am an owner.

BUT...

Commands don't work. I can't use [save, [m tele or anything else... What's happening?
 

nerun

Sorceror
Ok, NEW PROBLEM:

When i closed RunUO server running on mono, all saved files was deleted!!!! I don't know why!!!!!
 

fwiffo

Sorceror
uhm...

Maybe wrong permissions?

Are you running the mono as user or as root (running as root is a bad idea, anyway), because runuo must be run ALWAYS as user. that's the better way.
Also, check every folder for permission, the best bet is, via linux shell, to enter in the folder where everything is and do such a command:
chown yourusername.yourgroup -r ./*

yourusername is the name with what you log in in linux, the group is usually the same as the username, this will make every file and folder with correct permission.

Another thing, to be noted, is that usually the distributions user UTF-8 as codepage for filename and content/display, while windows user the LOCAL codepage (in europe ISO8895-1 or -15).

Maybe commands and also file naming are going insane and you have two options, load the correct codepage module in kernel and change codepage in system, or convert every file to UTF-8 format.

I suggest that you look deeper into your problem and go for the correct solution, there are plenty of how-tos and txt files to learn those things and understand a bit linux.

Also, I suggest to NOT use the mono-64 (mono --version will tell you if it's made for 32bit or 64bit sys), because the ram consumed will double and the app will lag.
 

fwiffo

Sorceror
I am damn serious, and to install mono-32 you can use the package manager that ships usually with your distro.
 

nerun

Sorceror
Bah! No luck here!

I set all chmod 777, but always when server saves, it set Saves folder automatically to 755.

And in accounts.xml, my character (owner), has no entry:

<accessLevel>Owner</accessLevel>

In true it has no entry <accessLevel>!!!!
 

nerun

Sorceror
OMG fixed:
  • I disabled saves in Misc/AutoSaves.cs
  • edited accounts.xml adding <accessLevel>Owner</accessLevel>
  • deleted all saves except accounts.xml
When connected it ask to create a first char again, then is all ok now, i am an Owner with privileges!
 

fwiffo

Sorceror
I'll create a pair of patches for unices when I complete a pair of project where I'm involved.

Those patch will fix bugs with mono && not thread safety in the application.
 

fwiffo

Sorceror
yes, yes, but the gross tests are made with players online, my tests with 40 players got the first crash because of thread unsafe log writing.

Another issue is with 64-bit mono, an app that is assumed to consume 800 megs with full save load in windows, shouldn't be consuming 1,6gigabytes, right? so with 32-bit mono it's okay, same memory using as windows one.

There are other, minor things, to note, one maybe is that sgen garbage collector, in mono side, is not reccomended, and that it's better to use the old bohem one.

Also, as a side note, my tests with AOT code was truly successful, but with some drawbacks.

Now I have a pretty stable, same performance as .net framework in win32, linux server, up ad running with many connections running...

Ah, side-note, there aren't connection errors in logs, as happened very often in windows side, I bet this is for the networking code in linux side, that maybe is better than the windows one. Only thing I had to add was a check for socket being disposed, that wasn't made by original netcode.

Anyway, to make a patch of all those things is pretty difficult, I use mono 3.2.1, when most of you use stable mono (that runs slowly and has support for .net 3 or something like that, since 4.0 support is pretty uncomplete there). So I should change most of the things I have to make it work for anyone...And I don't have a lot of time.

Good luck!
 

Foul

Page
yes, yes, but the gross tests are made with players online, my tests with 40 players got the first crash because of thread unsafe log writing.

Another issue is with 64-bit mono, an app that is assumed to consume 800 megs with full save load in windows, shouldn't be consuming 1,6gigabytes, right? so with 32-bit mono it's okay, same memory using as windows one.

There are other, minor things, to note, one maybe is that sgen garbage collector, in mono side, is not reccomended, and that it's better to use the old bohem one.

Also, as a side note, my tests with AOT code was truly successful, but with some drawbacks.

Now I have a pretty stable, same performance as .net framework in win32, linux server, up ad running with many connections running...

Ah, side-note, there aren't connection errors in logs, as happened very often in windows side, I bet this is for the networking code in linux side, that maybe is better than the windows one. Only thing I had to add was a check for socket being disposed, that wasn't made by original netcode.

Anyway, to make a patch of all those things is pretty difficult, I use mono 3.2.1, when most of you use stable mono (that runs slowly and has support for .net 3 or something like that, since 4.0 support is pretty uncomplete there). So I should change most of the things I have to make it work for anyone...And I don't have a lot of time.

Good luck!



Maybe you should write up a tutorial on getting a server up under Mono?
 

fwiffo

Sorceror
I'm still in the middle of solving MONO problems, that maybe are bugs, but that aren't likely to be solved easily.

So wait, I'll write one when I can, but don't hold your breath.
 

dc97823

Wanderer
fwiffo, are you building mono from sources?

it could be better to store accounts (and objects) in a database, rather than xml files or (non portable) binary blobs or naif storage solutions ?

Code:
#if Framework_4_0
if (processorCount > 2) {
return new DynamicSaveStrategy();
}
#else
if (processorCount > 16) {
return new ParallelSaveStrategy(processorCount);
}
#endif
else {
return new DualSaveStrategy();
}

i'm extending and rewriting the remoteadmin interface:
1) limiting the ip that can access to.
2) parsing parameters in a better and simple form.
3) output json (and not binary), eventually compressing it with zlib...

regards.
 

fwiffo

Sorceror
- Yes, I'm building mono from sources, in a pure 32bit machine, since I have one.

What I see up there is for the selection of the save strategy, none the less, dynamic save won't work in mono, you're advised, but considering your question, that code doesn't say much, and I'm probably OOQ.

Saving in a database is not that much of a hassle, the data is easily transformed, you just have to consider what you want to do with that data AND if the database is local or remote, because for remote DB, even if you enable compression (DB compression during transmission), in case of BIG accounts.xml to copy in db and eventually use it from there, you'll get screwed.

Anyway...if you have a way to use a db, just use it, it's better in many ways, even for integration with other platforms, websites, authentication, listing, etc.
For those questions, I doubt I can give, in any way, a good answer, consider what I am saying as something coming from an inadeguate person for the requested subject :)
 

dc97823

Wanderer
hi fwiffo (starcon times? ;) ),

mmh... i suggest you not to build that... i'm using ubuntu 64bit only because it's LTS, and for now it's updated regularly, more or less, again security falls.
i don't think that mono is perfect, we'll talking about a mono server that's connecting to the real world, and talks with a binary protocol, not easly proxable...
the actual version is 2.10.8, and i havent noted yet problems with building and running runuo (possibly) under a sandbox.

about saving strategies, taking all data in memory, formats, etc.
1) i don't know how runuo stores objects in memory,
i suppose, aggregating and serializing (eg. transcoding that into string, it's reversable) them, and putting them into a big array...
when it saves, it takes the memory list and flushes that on disk.
2) the process, the number of concurrent connections or operations, is limited to the machine RAM. when that is finished, it crashes...
so i don't think it scales easy, it's why i consider that naif.
3) abitually, if have to start a project like this, now, i tend to consider a cluster of DB + a cluster of memcached servers + more that one frontend servers that are connected to the clients.
not only the "accounts.xml" are inserted into the database... i suggest that a account validation is called only when a connection is opened, and if you want, on administrative functions...
you can start with little things, only if you think to have a system that hosts 10-20 accounts, and they not grow very fastly...

no problem about your answers... probably you're a better c# dev than me.
ah, you're the first that responds to my messages, thanks.

about php interface.
someone in the past has posted a CustomRemoteAdmin interface... for connecting the server to a php client via sockets... if anyone interested, i'm going on with that.

about runuo.
1) it's a mess without a row of documentation...
2) there's any tests
3) about developing, maintaining svn, etc.
i suggest to main devs to switch to git, and be more modular on Scripts directory...
it's impossible to update the project for svn, i've to checkout in another directory and diffing the /Server and the /Scripts... oh, i forget that's written in c#, and mainly it's for windows hosts...

regards.
 

fwiffo

Sorceror
Actually I use mono 3.x, because most features of .net 4 aren't in the stable mono, as I said above, if you NEED to use framework 4.0 features, you actually NEED to compile mono, from the version I suggested, otherwise you have to adapt your code :)

You talk about 20/30 accounts...I have 2200 accounts there, 1.5kk items, 120k mobiles...that's quite a lot, and the server doesn't suffer in any way, I also update regularily a database with some data, saved because I have integrated forum/game and in the nearly future I'll integrate TeamSpeak with the game (you guild yourself and you'll find the private channel in ts and your private forum in the forums), there is a lot of things doable, you just have to know what you want and how you want to do it...As I already said, it depends on you and your expectations/skills. For the rest, the site, if I can write it, it's www.uoitalia.net - just as reference.

It's not really scalable?! Maybe, but with a 2 gig of ram it runs smootly, and I bet I could double the actual accounts and mobiles without suffering losses of performance in game.

Anyway, when you update regularily, you can rip off actual things needed from official SVN, but even with that option at hand, I don't really do it, because I've modified many things to just turn around and integrate OSI functions that I won't use :/

For the rest, I can't really argue nor I can really help, that much things all in one topic is enough for me, especially at this hour (it's 1:30 am here), for now :p

Maybe tomorrow I'll try to read better.
 
Top