public virtual void SendMovingObjectCreate(GameMovingObject obj) { using (var pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.MovingObjectCreate))) { pak.WriteShort((ushort) obj.ObjectID); pak.WriteShort(0); pak.WriteShort(obj.Heading); pak.WriteShort((ushort) obj.Z); pak.WriteInt((uint) obj.X); pak.WriteInt((uint) obj.Y); pak.WriteShort(obj.Model); int flag = (obj.Type() | ((byte)obj.Realm == 3 ? 0x40 : (byte)obj.Realm << 4) | obj.GetDisplayLevel(m_gameClient.Player) << 9); pak.WriteShort((ushort) flag); //(0x0002-for Ship,0x7D42-for catapult,0x9602,0x9612,0x9622-for ballista) pak.WriteShort(obj.Emblem); //emblem pak.WriteShort(0); pak.WriteInt(0); DBLanguageNPC translation = obj.GetTranslation(m_gameClient); pak.WritePascalString(translation.Name);/*pak.WritePascalString(obj.Name);*/ pak.WriteByte(0); // trailing ? SendTCP(pak); } }
public void SendMovingObjectCreate(GameMovingObject obj) { }
public virtual void SendMovingObjectCreate(GameMovingObject obj) { using (var pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.MovingObjectCreate))) { pak.WriteShort((ushort) obj.ObjectID); pak.WriteShort(0); pak.WriteShort(obj.Heading); pak.WriteShort((ushort) obj.Z); pak.WriteInt((uint) obj.X); pak.WriteInt((uint) obj.Y); pak.WriteShort(obj.Model); int flag = (obj.Type() | ((byte)obj.Realm == 3 ? 0x40 : (byte)obj.Realm << 4) | obj.GetDisplayLevel(m_gameClient.Player) << 9); pak.WriteShort((ushort) flag); //(0x0002-for Ship,0x7D42-for catapult,0x9602,0x9612,0x9622-for ballista) pak.WriteShort(obj.Emblem); //emblem pak.WriteShort(0); pak.WriteInt(0); string name = obj.Name; LanguageDataObject translation = LanguageMgr.GetTranslation(m_gameClient, obj); if (translation != null) { if (!Util.IsEmpty(((DBLanguageNPC)translation).Name)) name = ((DBLanguageNPC)translation).Name; } pak.WritePascalString(name);/*pak.WritePascalString(obj.Name);*/ pak.WriteByte(0); // trailing ? SendTCP(pak); } // Update Cache m_gameClient.GameObjectUpdateArray[new Tuple<ushort, ushort>(obj.CurrentRegionID, (ushort)obj.ObjectID)] = GameTimer.GetTickCount(); }