I don't really have a whole lot of compiled-source experience, however have been a web programmer for a number of years now (8+), so I get the basics, I'm just not completely comfortable with the environment yet.
Thus far I have figured out that the tiles are reported as inaccessible and that when you try to move onto the bridge, it sends a 0x3f2 packet to the server (subtype 138). I would assume this is some form of 'enter bridge' sequence as this only happens when trying to walk on the bridge.
Does anyone have any ideas about how to get the bridges working properly?
And no, I am not looking for that stupid if(Tiles[x,y]==1) return true; crap. That doesn't fix it, it just hides it.
------------- EDIT -------------
So. Looking at the code, the best I could come up with was a manual override for the bridge walk. In PacketProcessor.cs within the 0x3f2 region's switch, add:
Code:
case 138: // enter bridge ? { Struct.DmapData Map = Nano.Maps[(int)CSocket.Client.Map]; Map.OverrideAccess = true; break; }
Code:
public bool OverrideAccess = false;
Code:
if(Tiles[x,y] == 1) { return true; } else { if(OverrideAccess == true) { OverrideAccess = false; return true; } else { return false; } }
You can also just return OverrideAccess without disabling it at any point which will allow smooth walking and such, but in my (very very short) test, it seemed to cause some extra issues.
Basically, this seems to be a partially-working patch for the bridge that still needs improvements...