public void Respond(Messages.Response.StatusType status, Dictionary <string, double> fitness, Dictionary <string, string> data) { Messages.Response resp = new Messages.Response(); resp.Id = 0; resp.Status = status; List <Messages.Response.FitnessType> ff = new List <Messages.Response.FitnessType>(); foreach (KeyValuePair <string, double> pair in fitness) { Messages.Response.FitnessType f = new Messages.Response.FitnessType(); f.Name = pair.Key; f.Value = pair.Value; ff.Add(f); } resp.Fitness = ff.ToArray(); List <Messages.Response.KeyValueType> dd = new List <Messages.Response.KeyValueType>(); foreach (KeyValuePair <string, string> pair in data) { Messages.Response.KeyValueType kv = new Messages.Response.KeyValueType(); kv.Key = pair.Key; kv.Value = pair.Value; dd.Add(kv); } resp.Data = dd.ToArray(); Response(resp); }
public void Response(Messages.Response response) { Messages.Communication comm = new Messages.Communication(); comm.Type = Messages.Communication.CommunicationType.Response; comm.Response = response; byte[] serialized = Messages.Messages.Create(comm); if (serialized != null) { d_client.GetStream().Write(serialized, 0, serialized.Length); } }
public void PurchaseOffer(int OfferId, Client Client) { MarketOffer Offer = GetOffer(OfferId); if (Offer == null) { return; } if (Client.GetUser().Credits < Offer.CreditsRequestTot) { Response Response = new Response(68); Response.AppendBoolean(true); Response.AppendBoolean(false); Client.SendResponse(Response); return; } Offer.State = 2; Client.GetUser().Credits -= Offer.CreditsRequestTot; Client.GetUser().UpdateCredits(true); Response ItemUpdate = new Messages.Response(832); ItemUpdate.AppendInt32(1); ItemUpdate.AppendInt32(Offer.GetBaseItem().InternalType.ToLower().Equals("s") ? 1 : 2); ItemUpdate.AppendInt32(1); ItemUpdate.AppendInt32(BrickEngine.GetItemReactor().InsertItem(Client.GetUser().HabboId, Offer.BaseId, string.Empty, -1)); Client.SendResponse(ItemUpdate); Client.SendResponse(new Response(101)); Client.SendResponse(Offer.GetPurchaseResponse()); Client.SendResponse(GetResponse(-1, -1, string.Empty, 1)); // Update @ database using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE marketplace_offers SET state = '2' WHERE id = @offerid LIMIT 1"); Reactor.AddParam("offerid", Offer.Id); Reactor.ExcuteQuery(); } if (Offer.CreditsRequestTot > 0) { using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("INSERT INTO user_transactions (user_id, datetime, activity, description) VALUES (@user_id, @datetime, @activity, @description)"); Reactor.AddParam("user_id", Client.GetUser().HabboId); Reactor.AddParam("datetime", DateTime.Now); Reactor.AddParam("activity", -Offer.CreditsRequestTot); Reactor.AddParam("description", "Marketplace Purchase"); Reactor.ExcuteQuery(); } } }
public void TakeBackItem(Client Client, int OfferId) { MarketOffer Offer = GetOffer(OfferId); if (Offer == null) { return; } if (Offer.UserId != Client.GetUser().HabboId) { return; } // Update @ list Response Response = new Response(614); Response.AppendInt32(Offer.Id); Response.AppendBoolean(true); Client.SendResponse(Response); Response ItemUpdate = new Messages.Response(832); ItemUpdate.AppendInt32(1); ItemUpdate.AppendInt32(Offer.GetBaseItem().InternalType.ToLower().Equals("s") ? 1 : 2); ItemUpdate.AppendInt32(1); ItemUpdate.AppendInt32(BrickEngine.GetItemReactor().InsertItem(Client.GetUser().HabboId, Offer.BaseId, string.Empty, -1)); Client.SendResponse(ItemUpdate); Client.SendResponse(new Response(101)); Offers.Remove(Offer.Id); // DELETE @ SQL using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("DELETE FROM marketplace_offers WHERE id = @offerid LIMIT 1"); Reactor.AddParam("offerid", Offer.Id); Reactor.ExcuteQuery(); } }
public void UpdateStatus(bool LastStep) { RemoveStatus("sit"); RemoveStatus("lay"); Point.Z = GetRoom().GetRoomEngine().GetTileHeight(Point); if (!IsPet) { if (GetRoom().GetRoomEngine().GetFloorItemsOnTile(Point).Count <= 0) { if (BrickEngine.GetEffectsHandler().UserHasRunningEffect(HabboId) && GetClient().GetUser().HasFreeEffect) { BrickEngine.GetEffectsHandler().RunFreeEffect(GetClient(), -1); } } } foreach (Item Item in GetRoom().GetRoomEngine().GetFloorItemsOnTile(Point)) { Item.GetTrigger().OnPointInteract(Item, this); if (Item.GetBaseItem().EnableSit && LastStep) { if (!IsPet) { AddStatus("sit", Item.GetBaseItem().LengthZ.ToString().Replace(',', '.')); } else if (!ContainsStatus("rng")) { AddStatus("sit", (Item.GetBaseItem().LengthZ - 0.3).ToString().Replace(',', '.')); } RotHead = Item.Rotation; RotBody = Item.Rotation; } } try { Response Response = new Messages.Response(34); Response.AppendBoolean(true); GetStatusResponse(Response); GetRoom().GetRoomEngine().BroadcastResponse(Response); } catch { } }