There are no cities in our database with -1 as an error so there was an assumption that somewhere in the code the city ID being passed from the client to the server was being stepped on. What we finally found was that if you click the "Show Player Cities" box on the client when entering world for the first time on a new character the above error was thrown. It's not completely clear why this was the case, but with this understanding we were able to patch the issue. At the same time we were also able to correct an issue (essentially log only) that was thrown when the first person from any guild logged on for the day. The message "XXX Player is online" would be created but had no one to send to. Not game breaking but showed up frequently in the logs.
Code: Select all
2018-08-27 07:01:04,234 [ Thread-27072] ERROR City - getCity - City (-1) was not in Controller or Database. Returning NULL.
Second item on the list came from a chat in the Discord Channel #report-bugs-here related to pets. There were two issues being discussed here: 1) If your Pet is Dead, clicking on the Pet icons will cause an sb.exe and 2) The Pets were very unhelpful overall.
- The crashes stem from a client-originated message that essentially sends nonsense data to the server. Prior to Season 3 we added some checks to guard against this and it appears they work in some cases. We are going to leave this issue open though to see if anything obvious jumps out down the road.
- The "unhelpful" part appears to be related to range on the Pet Attacks. This was calculating to 8 units when actual distance between the Pet and the Target was more often 12-14 units. The range has been updated to 16 which is consistent with medium-ranged melee weapons and the issues with the pet just standing there have resolved. Pets are now more like helpful dogs than domestic house cats.
Officially for the logs, going in 8/30 after the 11AM ET reset:
1. Corrected an issue in which an invalid city id was being passed when a character first enters world
2. Added additional "is pet alive" checks to the inbound message handlers to reduce client crashes
3. Increase default pet attack range to resolve an issue where the Pet was never "close enough" to attack
4. Corrected an issue where "online" chat messages failed