Какой-то странный патч. В команде добавления GO почему-то идет запись в таблицу creature_transport...
Код:
@@ -726,6 +727,13 @@ bool ChatHandler::HandleGameObjectAddCommand(const char* args)
float o = float(chr->GetOrientation());
Map *map = chr->GetMap();
+ if(chr->GetTransport())
+ {
+ chr->GetTransport()->AddNpcPassager(id, chr->GetTransOffsetX(), chr->GetTransOffsetY(), chr->GetTransOffsetZ(), chr->GetTransOffsetO());
+ WorldDatabase.PQuery("INSERT INTO creature_transport (entry, npc_entry, TransOffsetX, TransOffsetY, TransOffsetZ, TransOffsetO) values (%u, %u, %f, %f, %f, %f)", chr->GetTransport()->GetEntry(), id, chr->GetTransOffsetX(), chr->GetTransOffsetY(), chr->GetTransOffsetZ(), chr->GetTransOffsetO());
+ return true;
+ }
+
В аналогичной команде для добавления creature этот код вообще отсутствует.
Видимо надо перенести в bool ChatHandler::HandleNpcAddCommand(const char* args)...
Так же не понятно зачем были добавлены
Код:
+ // Transport info
+ uint64 m_transportGUID;
+ float m_transportPosition[4];
+
Это уже есть в классе MovementInfo...
Код:
// transport
ObjectGuid t_guid;
Position t_pos;
uint32 t_time;
int8 t_seat;
uint32 t_time2;
void SetTransportData(ObjectGuid guid, float x, float y, float z, float o, uint32 time, int8 seat)
{
t_guid = guid;
t_pos.x = x;
t_pos.y = y;
t_pos.z = z;
t_pos.o = o;
t_time = time;
t_seat = seat;
}
А так для работы патча естественно надо таблицу заполнить, тогда NPC не будут никуда проваливаться