CVS 13-12
Posted: 13 Dec 2004, 17:55
Code: Select all
One note to shard owners/devs out there. Help DOL to improve so we dont have to fix
bugs and do lots of other things a second time. When you or any other fixes a bug or has
some good improvement then post it please in DOL forum. Especially if you fix bugs
then explain what the bug is and show your solution. You can also always send
improvements to SmallHorse. Then we can discuss it. Thanks.
If this doesnt get better over time you have to expect further delays in my commits.
- New: Introduced new Log interface to get rid of DOLConsole
- You should use the following methods:
Log.Debug(), Log.Info(), Log.Warning(), Log.Error(), Log.StackTrace(), Log.Dump()
instead DOLConsole methods
- Most of DOLConsole methods are currently redirected into the new Log system
- GameServerConsole now uses two logger modules: FileLogger and StdOutputLogger
- You see log level of message in log and output
- Additional logger can be easily attached by Log.RegisterLogger
- Logoutput uses a ringbuffer, performance is improved
- New: Timing measuring code in some places
- New: Added Suspend and Resume functionality to timers
- Changed: Improved memory usage in large scale
- Changed: Mobs get more AF the higher their level is
- Changed: Deactivated region manager threads
- Changed: NPC Update check intervals raised to 300ms from 100ms (saves cpu)
- Changed: Ping timeouts raised to 6 minutes
- Changed: Improved world save to not disturb running server
- Changed: NPC equipment templates will be cached. Speeds up loading process
- Changed: Aggrocheck Mob=>Mob is only executed for mobs with capital
letter in front (saves us lots of cpu)
- Changed: Default aggro range increased to 300
- Changed: Removed CurrentSpeed get on GameNPC that used cpu by just calling base get
- Changed: Increased NPC Count per square in Zone to 800, also added some warnings
- Changed: Removed CleanupThread from Region
- Changed: Armor item degradation was nearly disabled. Set items to MaxCondition about 1000
- Bugfix: Division by zero in follow code for zero speeds
- Bugfix: Prevented PacketProcessor from beeing null
- Bugfix: Invisible mob attacks with changing models/names that are too far away to attack
- Bugfix: Several causes for linkdeads in WorldMgr code
- Bugfix: Players cannot get multiple xp from a gravestone
- Bugfix: Some CC messages
- Bugfix: small bugfix in quiver system
- Add: Quest: Important delivery (Hib), City of Tir na Nog, Nuisances, Traitor in MagMell
They are very similar to Master Frderick Quests.
Don't forget to merge added Pathpoints file!
- Bugfix: Minor bugfixes in Frederick Quests.
- Add: jump to <name> Now also works for NPCs Names
- Changed: Rewrote part of the quests to uniform the condition checks
- Add: Added checks to prevent doing multiple Master Frederick Quest at the same time,
since they are indendet to be played one after another.
- BugFix: IreFairyIre no longer needs Level 3 Quest as prerequiste
- Bugfix: Frontier Quest: Due to problems with Master Visur and the Frontiers expansion
Talking to Master Visur is now optional you can also go directly
to Srcyer Alice
- Bugfix: Engage can only be used while not in combat
- New: Some work regarding AI, currently inactive (/ai folder)
- New: Added "GetPlayersInRadius", "GetNPCsInRadius", "GetItemsInRadius" call to
GameObject. So instead of calling
WorldMgr.GetPlayersCloseToObject(xyz, WorldMgr.VISIBILITY_DISTANCE)
you can now call
xyz.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE)
Makes the calls more intuitive and shorter.
- New: If you add "true" as additional parameter to the WorldMgr.GetXXXCloseToObject
methods (or GameObject.GetXXXInRadius), instead of GameObjects the enumerator
will return PlayerDistEntry, NPCDistEntry or ItemDistEntry objects ... eg.
foreach(PlayerDistEntry entry in npc.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE, true))
{
GamePlayer player = entry.Player; //entry.NPC; entry.Item for the others
int distance = entry.Distance;
}
The reason for this is, that the original enumerator already calculated
the distance (partly) and it is only a small overhead to fully calculate
the distance. This should save some CPU when you need the distance of all the objects around another one (Saves you from calling WorldMgr.GetDistance...)
- New: Added the NF Keep code (inactive, need some cleaning) /keeps folder
- Changed: SendTCP works asynchronously now (BeginSend, EndSend), should be the most efficient solution.
- Changed: GameObject.Random/Chance ... is static now (should have been right from the start), btw. what is the difference to Util.Random/Chance?