I think you missed a change in your diff. In the original zone/client_process.cpp there is this block of code, starting at line 5107:
Code:
strcpy(sze->name, m_pp.name);
strcpy(sze->last_name, m_pp.last_name);
sze->gm = m_pp.gm;
sze->race = m_pp.race;
sze->class_ = m_pp.class_;
sze->level = m_pp.level;
sze->size = size;
sze->deity = m_pp.deity;
sze->zone_id = zone->GetZoneID();
sze->x = m_pp.x;
sze->y = m_pp.y;
sze->z = m_pp.z;
sze->heading = m_pp.heading;
if(sze->heading>0)
sze->heading/=4;
The ZoneProxy version should look like this:
Code:
strcpy(sze->name, m_pp.name);
strcpy(sze->last_name, m_pp.last_name);
sze->gm = m_pp.gm;
sze->race = m_pp.race;
sze->class_ = m_pp.class_;
sze->level = m_pp.level;
sze->size = size;
sze->deity = m_pp.deity;
#ifndef ZONEPROXY
// ZONEPROXY BEGIN
// NOTE THE #ifndef above! If compiling for ZoneProxy we DON'T want to do this.
sze->zone_id = zone->GetZoneID();
// ZONEPROXY END
#endif
sze->x = m_pp.x;
sze->y = m_pp.y;
sze->z = m_pp.z;
sze->heading = m_pp.heading;
if(sze->heading>0)
sze->heading/=4;
Note how the line "sze->zone_id = zone->GetZoneID();" does NOT get included if compiling for ZoneProxy.
WC