コード例 #1
0
		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);
			}
		}
コード例 #2
0
 public void SendMovingObjectCreate(GameMovingObject obj)
 {
 }
コード例 #3
0
ファイル: PacketLib168.cs プロジェクト: dol-leodagan/DOLSharp
		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();
			
		}