This question is probably aimed more at merth or Lethal Encounter. I've asked a few people on irc and most of them point me towards those 2 devs.
The problem I'm having is figuring out how the client knows when it crosses a zone point and how it is storing these zone points. Most people have told me that the client gets these from the server when it enters a new zone (OP_SendZonePoints I'm guessing). The server gets them from the DB. Well this is all fine except in a few cases. One is from akanon to steamfont, another from lavastorm to soltemple.
When you cross the akanon to steamfont zoneline (or where it should be) nothing happens. Running in debug mode there is no zoning packet sent at all. Now when you enter akanon the server is sending the zone points to the client, so it seems the client should have these somewhere.
Lavastorm to soltemple is another problem. A zoning packet is sent when you cross the zoneline, but instead of passing zoneid 80 it passes zoneid 0. Now when I entered lavastorm I watched the zonepoints packet and 80 (50 in hex) was in there. So why is the client returning 0?
I don't know how much of a role the db plays in zone points. I delete all instances of the lavastorm to nektulos zone point from the db and it never gets sent in the zonepoints packet, yet somehow I can still zone into nektulos.
I've been looking through the code to try and figure this stuff out but I am just running into dead ends. Sure we can send the client zone points but how do we know that it got all of them? And what about the case when we don't send them a zonepoint, yet somehow the client still sends the right zone when it crosses the zoneline?
So, merth, Lethal Encounter, or any other dev, I need some help.
