protected virtual void HandleCounterOfferMessage(CounterOfferMessage Message) { foreach (ObjectBase obj in Message.OfferedItems) { obj.ResolveResources(resourceManager, false); obj.DecompressResources(); } }
/// <summary> /// Handles a counteroffer (you offered first) /// </summary> /// <param name="Message"></param> protected override void HandleCounterOfferMessage(CounterOfferMessage Message) { base.HandleCounterOfferMessage(Message); if (Data.Trade.TradePartner == null) { return; } // accept anything from configured admins in config if (Config.IsAdmin(Data.Trade.TradePartner.Name)) { // tell admin SendSayGroupMessage( Data.Trade.TradePartner.ID, "Thank you, master " + Data.Trade.TradePartner.Name); // accept SendAcceptOffer(); } }
/// <summary> /// /// </summary> /// <param name="Message"></param> protected virtual void HandleCounterOfferMessage(CounterOfferMessage Message) { }
/// <summary> /// Handles a counteroffer (you offered first) /// </summary> /// <param name="Message"></param> protected override void HandleCounterOfferMessage(CounterOfferMessage Message) { base.HandleCounterOfferMessage(Message); if (Data.Trade.TradePartner == null) { return; } // accept anything from configured admins in config if (Config.IsAdmin(Data.Trade.TradePartner.Name)) { // tell admin SendSayGroupMessage( new uint[] { Data.Trade.TradePartner.ID }, Config.ChatPrefixString + "Thank you, master " + Data.Trade.TradePartner.Name); // preserve partnername (gets cleaned next call) string partnername = String.Copy(Data.Trade.TradePartner.Name); // do trade SendAcceptOffer(); if (!isGiveCashOffer) { RoomObject roomObject = Data.RoomObjects.GetItemByName(partnername, false); Thread BuffThread = new Thread(delegate() { PerformBuff(roomObject, partnername); }); BuffThread.Start(); } else { isGiveCashOffer = false; return; } // exit return; } uint offeredsum = 0; uint expectedsum = Config.Buffprice; // get how much he offers us foreach (ObjectBase obj in Data.Trade.ItemsPartner) { if (obj.Name == NAME_SHILLING) { offeredsum += obj.Count; } } // if he offered enough, accept if (offeredsum >= expectedsum) { // tell customer SendSayGroupMessage( Data.Trade.TradePartner.ID, Config.ChatPrefixString + "Thank you for business."); // preserve partnername (gets cleaned next call) string partnername = String.Copy(Data.Trade.TradePartner.Name); // do trade SendAcceptOffer(); Log("GOOD", "I sold buffs to " + partnername + " for " + offeredsum + " shillings."); RoomObject roomObject = Data.RoomObjects.GetItemByName(partnername, false); Thread BuffThread = new Thread(delegate() { PerformBuff(roomObject, partnername); }); BuffThread.Start(); } else { // tell customer SendSayGroupMessage( Data.Trade.TradePartner.ID, Config.ChatPrefixString + "Sorry, I was expecting " + expectedsum + " shillings from you."); SendCancelOffer(); } }
/// <summary> /// Handles a counteroffer (you offered first) /// </summary> /// <param name="Message"></param> protected override void HandleCounterOfferMessage(CounterOfferMessage Message) { base.HandleCounterOfferMessage(Message); if (Data.Trade.TradePartner == null) { return; } // accept anything from configured admins in config if (Config.IsAdmin(Data.Trade.TradePartner.Name)) { // tell admin SendSayGroupMessage( new uint[] { Data.Trade.TradePartner.ID }, Config.ChatPrefixString + "Thank you, master " + Data.Trade.TradePartner.Name); // accept SendAcceptOffer(); // exit return; } uint offeredsum = 0; uint expectedsum = 0; // get how much he offers us foreach (ObjectBase obj in Data.Trade.ItemsPartner) { if (obj.Name == NAME_SHILLING) { offeredsum += obj.Count; } } // get how much we want for that foreach (ObjectBase obj in Data.Trade.ItemsYou) { ShopItem entry = Config.OfferListGetItemByName(obj.Name); if (entry != null) { uint count = (obj.IsStackable) ? obj.Count : 1; expectedsum += (entry.UnitPrice * count); } } // if he offered enough, accept if (offeredsum >= expectedsum) { // tell customer SendSayGroupMessage( Data.Trade.TradePartner.ID, Config.ChatPrefixString + TELL_THANKS); // preserve partnername (gets cleaned next call) string partnername = String.Copy(Data.Trade.TradePartner.Name); // do trade SendAcceptOffer(); Log("GOOD", "I sold something to " + partnername + " for " + offeredsum + " shillings."); } else { // tell customer SendSayGroupMessage( Data.Trade.TradePartner.ID, Config.ChatPrefixString + "Sorry, I was expecting " + expectedsum + " shillings from you."); SendCancelOffer(); } }