void MoneyTransferRequestHandler(Packet packet, Agent agent) { MoneyTransferRequestPacket request = (MoneyTransferRequestPacket)packet; if (request.MoneyData.Amount < 0 || request.MoneyData.Amount > agent.Balance) { return; } lock (server.Agents) { foreach (Agent recipient in server.Agents.Values) { if (recipient.AgentID == request.MoneyData.DestID) { agent.Balance -= request.MoneyData.Amount; recipient.Balance += request.MoneyData.Amount; SendBalance(agent, UUID.Zero, String.Format("You paid L${0} to {1}.", request.MoneyData.Amount, recipient.Avatar.Name)); SendBalance(agent, UUID.Zero, String.Format("{1} paid you L${0}.", request.MoneyData.Amount, agent.Avatar.Name)); break; } } } }
/// <summary> /// Give Money to destionation Object or Avatar /// </summary> /// <param name="target">UUID of the Target Object/Avatar</param> /// <param name="amount">Amount in L$</param> /// <param name="description">Reason (Optional normally)</param> /// <param name="transactiontype">The type of transaction. Currently only 5001 is /// documented for Av->Av money transfers.</param> public void GiveMoney(LLUUID target, int amount, string description, int transactiontype) { MoneyTransferRequestPacket money = new MoneyTransferRequestPacket(); money.AgentData.AgentID = this.ID; money.AgentData.SessionID = Client.Network.SessionID; money.MoneyData.Description = Helpers.StringToField(description); money.MoneyData.DestID = target; money.MoneyData.SourceID = this.ID; money.MoneyData.TransactionType = transactiontype; money.MoneyData.AggregatePermInventory = 0; //TODO: whats this? money.MoneyData.AggregatePermNextOwner = 0; //TODO: whats this? money.MoneyData.Flags = 0; //TODO: whats this? money.MoneyData.Amount = amount; Client.Network.SendPacket((Packet)money); }
public void payMoney(int amount) { MoneyTransferRequestPacket p = new MoneyTransferRequestPacket(); p.AgentData.AgentID = frame.AgentID; p.AgentData.SessionID = frame.SessionID; p.MoneyData.AggregatePermInventory = 0; p.MoneyData.AggregatePermNextOwner = 0; p.MoneyData.Amount = amount; p.MoneyData.Flags = 0; p.MoneyData.SourceID = frame.AgentID; p.MoneyData.TransactionType = 1101; p.MoneyData.DestID = UUID.Zero; p.MoneyData.Description = Utils.StringToBytes("Upload Fee"); this.proxy.InjectPacket(p, Direction.Outgoing); }
/// <summary> /// Give Money to destination Object or Avatar /// </summary> /// <param name="target">UUID of the Target Object/Avatar</param> /// <param name="amount">Amount in L$</param> /// <param name="description">Reason (Optional normally)</param> /// <param name="type">The type of transaction</param> /// <param name="flags">Transaction flags, mostly for identifying group /// transactions</param> public void GiveMoney(UUID target, int amount, string description, MoneyTransactionType type, TransactionFlags flags) { MoneyTransferRequestPacket money = new MoneyTransferRequestPacket(); money.AgentData.AgentID = this.id; money.AgentData.SessionID = Client.Self.SessionID; money.MoneyData.Description = Utils.StringToBytes(description); money.MoneyData.DestID = target; money.MoneyData.SourceID = this.id; money.MoneyData.TransactionType = (int)type; money.MoneyData.AggregatePermInventory = 0; // This is weird, apparently always set to zero though money.MoneyData.AggregatePermNextOwner = 0; // This is weird, apparently always set to zero though money.MoneyData.Flags = (byte)flags; money.MoneyData.Amount = amount; Client.Network.SendPacket(money); }
/// <summary> /// Give Money to destionation Object or Avatar /// </summary> /// <param name="target">UUID of the Target Object/Avatar</param> /// <param name="amount">Amount in L$</param> /// <param name="description">Reason (Optional normally)</param> /// <param name="transactiontype">The type of transaction. Currently only 5001 is /// documented for Av->Av money transfers.</param> public void GiveMoney(LLUUID target, int amount, string description, int transactiontype) { MoneyTransferRequestPacket money = new MoneyTransferRequestPacket(); money.AgentData.AgentID = this.ID; money.AgentData.SessionID = Client.Network.SessionID; money.MoneyData.Description = Helpers.StringToField(description); money.MoneyData.DestID = target; money.MoneyData.SourceID = this.ID; money.MoneyData.TransactionType = transactiontype; money.MoneyData.AggregatePermInventory = 0; //TODO: whats this? money.MoneyData.AggregatePermNextOwner = 0; //TODO: whats this? money.MoneyData.Flags = 0; //TODO: whats this? money.MoneyData.Amount = amount; Client.Network.SendPacket((Packet)money); }
public void payMoney(int amount) { MoneyTransferRequestPacket p = new MoneyTransferRequestPacket(); p.AgentData.AgentID = frame.AgentID; p.AgentData.SessionID = frame.SessionID; p.MoneyData.AggregatePermInventory = 0; p.MoneyData.AggregatePermNextOwner = 0; p.MoneyData.Amount = amount; p.MoneyData.Flags = 0; p.MoneyData.SourceID = frame.AgentID; p.MoneyData.TransactionType = 1101; p.MoneyData.DestID = UUID.Zero; p.MoneyData.Description = Utils.StringToBytes("Upload Fee"); this.proxy.InjectPacket(p, Direction.Outgoing); }