Quote:
Originally Posted by Korvacs
Dunno what mode your loading the dmaps in, if you use default fully loaded its 35mb.
|
:O same way I've always used the default settings for your dmap system.
public static DMapServer DmapHandler = new DMapServer();
Code:
DmapHandler.ConquerPath = Application.StartupPath + @"\map\";
DmapHandler.Load(true);
Commenting out DmapHandler.Load ~23Mb
NOT loading height info ~ 150Mb
Loading height info ~ 173Mb
Keep in mind I'm currently using a up to date GameMap.dat from current client so it's loading ALL maps and alot more than some earlier patches... still seems maybe excessive?
I'll dump the gamemap later and just add in the maps I wanna use. No point loading stuff I'm not.
Status update packet now coded. Working on server tools thread (thanks to impulse for clearing up my thoughts on how to work my threading. Still avoiding thread per client at all costs) which will handle all updates to client.
<edit>
Updates handled much better now.
more gen data subtypes handled (Action, Direction, etc)
Basicly doing something like...
Client.Money += X;
Now updates database (only the x field, not full save) and sends the client an update packet updating it's inventory.
doing Client.Status += or -= changes the status flag for it and sends to LOCAL clients (yourself included).
Next up... Threading for things like stamina gain, xp bar boost and then I'll work on basic attack/monster spawns.
Adding commands as I go such as /job xx
<edit>
Status Updates: 99%
Unless I find any bugs, everything works PERFECTLY.
I'm actually shocked I've never seen this done on a server before *drool*.
Not going to go into my method for adding/removing statuses but yah... it works VERY well and as far as I can tell is very efficient (the only checks done are on things already active, no useless checks vs statuses that don't concern you).
When adding status effect the surrounding players see it, when removing it, they no longer see it, when jumping on screen they see existing effect.
They are only sent/removed once. No mixups, no messes.
Thread System:
So I've checked my threads, realized I was causing a very minor memory leak, fixed that.
As it sits right now I have 2 player tools threads on the server.
Thread 1: Status effects
Removes effects from clients assuming they have some activated that need to be removed: Not checked at all if you don't have any active, only checks ones you have active currently.
Thread 2: Player Utility functions
Adds stamina
Adds XpPct
Removes PkPts
Will also handle character attacking (or maybe I'll use thread 1 for that as I'm trying to keep fast stuff in 1 thread, slow stuff in another)
Server coming along nicely.
ItemType handling and attacking and we may be ready for Closed beta :)
<edit>
Some screenies of random status effects in new clients...
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
#SparkleHalo ftw!
[Only registered and activated users can see links. Click Here To Register...]
<Note>
Coded packet fully for showing stats beside inventory (min/max atk all the way up through all the new item effects... Crit chance, detox %, etc) Will link with actual values later.