public ServerMessage Handle(ValueHolder valueHolder = null) { RoomItem item = valueHolder.GetValue <RoomItem>("Item"); ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169); message.Init(r26Outgoing.UpdateItem); message.AppendString(item.ID.ToString()); message.AppendString(OldSchoolUtils.GetOldSchoolExtraData(item)); return(message); }
public void Serialize(ServerMessage message) { if (this.IsFloorItem) { if (message.GetRevision() > Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169) { message.AppendUInt(this.ID); message.AppendInt32(this.BaseItem.SpriteID); } else { message.AppendString(this.ID.ToString()); message.AppendString(this.BaseItem.ItemName); } message.AppendInt32(this.X); message.AppendInt32(this.Y); if (message.GetRevision() < Revision.RELEASE63_35255_34886_201108111108) { message.AppendInt32(this.BaseItem.Lenght); message.AppendInt32(this.BaseItem.Width); } message.AppendInt32(this.Rot); message.AppendString(TextUtilies.DoubleWithDotDecimal(this.Z)); if (message.GetRevision() > Revision.RELEASE63_201211141113_913728051) { message.AppendString(""); //What is this? } if (this.GetBaseItem().ItemName.StartsWith("present_")) { string[] data = this.ExtraData.Split((char)9); if (data.Length >= 2) { if (this.GetBaseItem().ItemName.StartsWith("present_wrap")) { message.AppendInt32(int.Parse(data[2]) * 1000 + int.Parse(data[3])); //gift style } else { message.AppendInt32(0); } message.AppendString("!" + data[0] + "\n\n-" + Skylight.GetGame().GetGameClientManager().GetUsernameByID(uint.Parse(data[1]))); //client ignores first char } else { message.AppendInt32(0); message.AppendString("!" + data[0]); } } else if (this.GetBaseItem().InteractionType.ToLower() == "trophy") { message.AppendInt32(0); string[] data = this.ExtraData.Split((char)9); message.AppendString(Skylight.GetGame().GetGameClientManager().GetUsernameByID(uint.Parse(data[0])) + (char)9 + string.Join("" + (char)9, data, 1, data.Length - 1)); } else { if (message.GetRevision() > Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169) { if (message.GetRevision() >= Revision.RELEASE63_201211141113_913728051) { message.AppendInt32(0); //case } message.AppendInt32(0); //song id, gift style, etc message.AppendString(this.ExtraData); } else { message.AppendString(""); //COLOR, r63a doesnt have this message.AppendString(""); //item status, for pets? message.AppendBoolean(false); //is dis f*****g pet food or nah message.AppendString(OldSchoolUtils.GetOldSchoolExtraData(this)); } } if (message.GetRevision() > Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169) { message.AppendInt32(-1); //expire time if (message.GetRevision() >= Revision.RELEASE63_201211141113_913728051) { message.AppendInt32(1); //use button message.AppendUInt(this.UserID); } else { message.AppendBoolean(true); //use button } if (this.GetBaseItem().SpriteID < 0) { message.AppendString(this.GetBaseItem().ItemName); //if sprite id is negative then this is needed } } } else { if (this.IsWallItem) //just for sure nothing goes wrong { message.AppendString(this.ID.ToString()); message.AppendInt32(this.BaseItem.SpriteID); message.AppendString(this.WallCoordinate != null ? this.WallCoordinate.ToString() : ""); //sometimes its null ;( if (this.BaseItem.ItemName.StartsWith("poster_")) { message.AppendString(this.BaseItem.ItemName.Split(new char[] { '_' })[1]); } else { string text = this.BaseItem.InteractionType.ToLower(); if (text != null && text == "postit") { message.AppendString(this.ExtraData.Split(new char[] { ' ' })[0]); } else { message.AppendString(this.ExtraData); } } if (message.GetRevision() < Revision.PRODUCTION_201601012205_226667486) { if (message.GetRevision() >= Revision.RELEASE63_201211141113_913728051) { message.AppendInt32(1); //use button message.AppendUInt(this.UserID); } else { message.AppendBoolean(true); //use button } } else { message.AppendUInt(this.UserID); message.AppendInt32(1); //use button message.AppendInt32(0); //idk } } } }