This actually needs an addition ASAP. Gaeorn helped identify the problem yesterday and has this fix, but didn't get around to adding it yet.
I didn't verify the return was valid and World doesn't like null pointers =/
I've been unable to reproduce the conditions that would cause this to not return a valid client, it seems to have happened yesterday with some larger guilds, which isn't easily testable on a personal test server.
Code:
Index: clientlist.cpp
===================================================================
--- clientlist.cpp (revision 1655)
+++ clientlist.cpp (working copy)
@@ -407,6 +407,10 @@
uint32 Count = 0;
ClientListEntry* from = this->FindCLEByCharacterID(FromID);
+ if (!from) {
+ _log(WORLD__CLIENT_ERR,"Invalid client. FromID=%i GuildID=%i", FromID, GuildID);
+ return;
+ }
LinkedListIterator<ClientListEntry*> Iterator(clientlist);
Iterator.Reset();
Sorry!
Van