public void SendSMS(string[] telephones, string downSendOrderCode, string[] smsParameters, string tenantCode, ConsumeType type) { try { string smsContent = this.GetSMSContentByDownSendOrder(downSendOrderCode, smsParameters); SMSService serv = new SMSService(); foreach (var tel in telephones) { try { serv.SendSMS(tenantCode, smsContent, tel, type); } catch (System.Net.WebException ex) { Logger.Error(ex.Message); } catch (Exception ex) { Logger.Error(ex.Message); } } } catch (Exception ex) { Logger.Error(ex.Message); } }
public ConsumeRecortQueryOption() { ConsumeType = new ConsumeType{ParentTypeId = 0, TypeId = 0}; UserId = 0; PageIndex = 1; PageSize = 10; SortName = string.Empty; SortDir = SortDir.DESC; }
public void SendSMS(string tenantCode, string content, string mobile,ConsumeType type) { switch (type) { case ConsumeType.SMSAlert: //短信报警 AlertSMS alert = new AlertSMS(); alert.Send(tenantCode, content, mobile); break; case ConsumeType.SMSQuery: //短信查车 QueryVehicleSMS queryVehicle = new QueryVehicleSMS(); queryVehicle.Send(tenantCode, content, mobile); break; } }
public bool ConsumeRes( Mobile from, Type typeRes, CraftSystem craftSystem, ref int resHue, ref int maxAmount, ConsumeType consumeType, ref object message ) { return ConsumeRes( from, typeRes, craftSystem, ref resHue, ref maxAmount, consumeType, ref message, false ); }
public bool ConsumeRes(Mobile from, Type typeRes, CraftSystem craftSystem, ref int resHue, ref int maxAmount, ConsumeType consumeType, ref object message) { return(ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, consumeType, ref message, false)); }
public int ConsumeTatteredWallMapRes(Mobile from, ConsumeType type) { Item[] maps = from.Backpack.FindItemsByType(typeof(TreasureMap)); List <Item> toConsume = new List <Item>(); int one = 10; int three = 5; int four = 3; int five = 1; foreach (Item item in maps) { TreasureMap map = item as TreasureMap; if (map != null) { switch (map.Level) { case 1: if (map.CompletedBy == from) { one--; toConsume.Add(map); } break; case 3: if (map.CompletedBy == from) { three--; toConsume.Add(map); } break; case 4: if (map.CompletedBy == from) { four--; toConsume.Add(map); } break; case 5: if (map.CompletedBy == from) { five--; toConsume.Add(map); } break; } } } int message = 0; if (one > 0) { message = 1073495; } else if (three > 0) { message = 1073499; } else if (four > 0) { message = 1073501; } else if (five > 0) { message = 1073503; } if (message == 0 && type == ConsumeType.All) { foreach (Item item in toConsume) { item.Consume(); } } toConsume.Clear(); return(message); }
public void MarketHeroAskBuyRunes(int goodsId, ConsumeType tp) { HolyGameLogic.Instance.EMsgToGSToCSFromGC_AskBuyGoods(goodsId, (int)tp); }
public bool ConsumeRes(Mobile from, Type typeRes, CraftSystem craftSystem, ref int resHue, ref int maxAmount, ConsumeType consumeType, ref object message, bool isFailure) { Container ourPack = from.Backpack; if (ourPack == null) { return(false); } if (m_NeedHeat && !Find(from, m_HeatSources)) { message = 1044487; // You must be near a fire source to cook. return(false); } if (m_NeedOven && !Find(from, m_Ovens)) { message = 1044493; // You must be near an oven to bake that. return(false); } if (m_NeedMill && !Find(from, m_Mills)) { message = 1044491; // You must be near a flour mill to do that. return(false); } Type[][] types = new Type[m_arCraftRes.Count][]; int[] amounts = new int[m_arCraftRes.Count]; maxAmount = int.MaxValue; CraftSubResCol resCol = m_UseSubRes2 ? craftSystem.CraftSubRes2 : craftSystem.CraftSubRes; for (int i = 0; i < types.Length; ++i) { CraftRes craftRes = m_arCraftRes.GetAt(i); Type baseType = craftRes.ItemType; // Resource Mutation if (baseType == resCol.ResType && typeRes != null) { baseType = typeRes; CraftSubRes subResource = resCol.SearchFor(baseType); if (subResource != null && from.Skills[craftSystem.MainSkill].Base < subResource.RequiredSkill) { message = subResource.Message; return(false); } } // ****************** for (int j = 0; types[i] == null && j < m_TypesTable.Length; ++j) { if (m_TypesTable[j][0] == baseType) { types[i] = m_TypesTable[j]; } } if (types[i] == null) { types[i] = new Type[] { baseType } } ; amounts[i] = craftRes.Amount; // For stackable items that can ben crafted more than one at a time if (UseAllRes) { int tempAmount = ourPack.GetAmount(types[i]); tempAmount /= amounts[i]; if (tempAmount < maxAmount) { maxAmount = tempAmount; if (maxAmount == 0) { CraftRes res = m_arCraftRes.GetAt(i); if (res.MessageNumber > 0) { message = res.MessageNumber; } else if (!String.IsNullOrEmpty(res.MessageString)) { message = res.MessageString; } else { message = 502925; // You don't have the resources required to make that item. } return(false); } } } // **************************** if (isFailure && !craftSystem.ConsumeOnFailure(from, types[i][0], this)) { amounts[i] = 0; } } // We adjust the amount of each resource to consume the max posible if (UseAllRes) { for (int i = 0; i < amounts.Length; ++i) { amounts[i] *= maxAmount; } } else { maxAmount = -1; } Item consumeExtra = null; if (m_NameNumber == 1041267) { // Runebooks are a special case, they need a blank recall rune List <RecallRune> runes = ourPack.FindItemsByType <RecallRune>(); for (int i = 0; i < runes.Count; ++i) { RecallRune rune = runes[i]; if (rune != null && !rune.Marked) { consumeExtra = rune; break; } } if (consumeExtra == null) { message = 1044253; // You don't have the components needed to make that. return(false); } } int index = 0; // Consume ALL if (consumeType == ConsumeType.All) { m_ResHue = 0; m_ResAmount = 0; m_System = craftSystem; if (IsQuantityType(types)) { index = ConsumeQuantity(ourPack, types, amounts); } else { index = ourPack.ConsumeTotalGrouped(types, amounts, true, new OnItemConsumed(OnResourceConsumed), new CheckItemGroup(CheckHueGrouping)); } resHue = m_ResHue; } // Consume Half ( for use all resource craft type ) else if (consumeType == ConsumeType.Half) { for (int i = 0; i < amounts.Length; i++) { amounts[i] /= 2; if (amounts[i] < 1) { amounts[i] = 1; } } m_ResHue = 0; m_ResAmount = 0; m_System = craftSystem; if (IsQuantityType(types)) { index = ConsumeQuantity(ourPack, types, amounts); } else { index = ourPack.ConsumeTotalGrouped(types, amounts, true, new OnItemConsumed(OnResourceConsumed), new CheckItemGroup(CheckHueGrouping)); } resHue = m_ResHue; } else // ConstumeType.None ( it's basicaly used to know if the crafter has enough resource before starting the process ) { index = -1; if (IsQuantityType(types)) { for (int i = 0; i < types.Length; i++) { if (GetQuantity(ourPack, types[i]) < amounts[i]) { index = i; break; } } } else { for (int i = 0; i < types.Length; i++) { if (ourPack.GetBestGroupAmount(types[i], true, new CheckItemGroup(CheckHueGrouping)) < amounts[i]) { index = i; break; } } } } if (index == -1) { if (consumeType != ConsumeType.None) { if (consumeExtra != null) { consumeExtra.Delete(); } } return(true); } else { CraftRes res = m_arCraftRes.GetAt(index); if (res.MessageNumber > 0) { message = res.MessageNumber; } else if (res.MessageString != null && res.MessageString != String.Empty) { message = res.MessageString; } else { message = 502925; // You don't have the resources required to make that item. } return(false); } }
private List <ConsumeVO> GetConsumeList(List <ComsumeItemViewModel> list, CustomerVO cust, ConsumeType conType, PayType paytype) { List <ConsumeVO> conList = new List <ConsumeVO>(); DateTime date = DateTime.Now; list.ForEach(item => { conList.Add(new ConsumeVO { ItemID = item.Itemid, ItemName = item.ItemName, ConsumeStore = Emp.StroeName, ConsumeCount = item.ItemConNum, OriginalPrice = item.ItemTotalPrice, CreatedDate = date, CreatorID = Emp.UserName, LastModifiedDate = date, LastModifierID = Emp.UserName, ConsumeDate = date, ConsumeType = (int)conType, ClubCardPackageID = "", PackageDetailID = 0, ClubCardNo = "", ClubCardID = 0, CustID = cust.CustomerID, CustName = cust.Name, OriginalStore = "", RemainCount = 0, Reserved1 = Emp.StoreId.ToString(), Reserved2 = paytype.ToString() }); }); return(conList); }
private List<ConsumePkgViewModel> JsonSerializerPkg(string data, ConsumeType conType) { List<ConsumePkgViewModel> list = new List<ConsumePkgViewModel>(); string dataitems = data.Replace("},", "}|"); Regex re = new Regex("\"|\\[|\\]|{|}"); dataitems = re.Replace(dataitems, ""); string[] items = dataitems.Split('|'); foreach (var item in items) { string[] itemAttr = item.Split(','); ConsumePkgViewModel comModel = new ConsumePkgViewModel(); comModel.PkgId = NullHelper.Convert<string>(itemAttr[0].Split(':')[1], ""); comModel.ItemId = NullHelper.Convert<int>(itemAttr[1].Split(':')[1], 0); comModel.ItemName = NullHelper.Convert<string>(itemAttr[2].Split(':')[1], ""); comModel.ItemConNum = NullHelper.Convert<int>(itemAttr[3].Split(':')[1], 0); list.Add(comModel); } return list; }
private List <ConsumeVO> GetConsumeList(List <ConsumePkgViewModel> list, ClubCardVO card, ConsumeType conType) { List <ConsumeVO> conList = new List <ConsumeVO>(); DateTime date = DateTime.Now; list.ForEach(item => { conList.Add(new ConsumeVO { ItemID = 0, ItemName = item.ItemName, ConsumeStore = Emp.StroeName, ConsumeCount = item.ItemConNum, OriginalPrice = 0, CreatedDate = date, CreatorID = Emp.UserName, LastModifiedDate = date, LastModifierID = Emp.UserName, ConsumeDate = date, ConsumeType = (int)conType, ClubCardPackageID = item.PkgId, PackageDetailID = item.ItemId, ClubCardNo = card.ClubCardNo, ClubCardID = card.ClubCardID, CustID = card.CustomerID, CustName = card.CustName, OriginalStore = card.OpenCardStore, RemainCount = 0, Reserved1 = Emp.StoreId.ToString() }); }); return(conList); }
public DACTaskResultConsumerQueue(ConsumeType consumeType) { this.ComsumeType = consumeType; this.list = new List <IDACTaskResultConsumer>(); }
public bool ConsumeRes( Mobile from, Type typeRes, CraftSystem craftSystem, ref int resHue, ref int maxAmount, ConsumeType consumeType, ref object message, bool isFailure ) { Container ourPack = from.Backpack; if ( ourPack == null ) return false; if ( m_NeedHeat && !Find( from, m_HeatSources ) ) { message = 1044487; // You must be near a fire source to cook. return false; } if ( m_NeedOven && !Find( from, m_Ovens ) ) { message = 1044493; // You must be near an oven to bake that. return false; } if ( m_NeedMill && !Find( from, m_Mills ) ) { message = 1044491; // You must be near a flour mill to do that. return false; } Type[][] types = new Type[m_arCraftRes.Count][]; int[] amounts = new int[m_arCraftRes.Count]; maxAmount = int.MaxValue; CraftSubResCol resCol = ( m_UseSubRes2 ? craftSystem.CraftSubRes2 : craftSystem.CraftSubRes ); for ( int i = 0; i < types.Length; ++i ) { CraftRes craftRes = m_arCraftRes.GetAt( i ); Type baseType = craftRes.ItemType; // Resource Mutation if ( (baseType == resCol.ResType) && ( typeRes != null ) ) { baseType = typeRes; CraftSubRes subResource = resCol.SearchFor( baseType ); if ( subResource != null && from.Skills[craftSystem.MainSkill].Base < subResource.RequiredSkill ) { message = subResource.Message; return false; } } // ****************** for ( int j = 0; types[i] == null && j < m_TypesTable.Length; ++j ) { if ( m_TypesTable[j][0] == baseType ) types[i] = m_TypesTable[j]; } if ( types[i] == null ) types[i] = new Type[]{ baseType }; amounts[i] = craftRes.Amount; // For stackable items that can ben crafted more than one at a time if ( UseAllRes ) { int tempAmount = ourPack.GetAmount( types[i] ); tempAmount /= amounts[i]; if ( tempAmount < maxAmount ) { maxAmount = tempAmount; if ( maxAmount == 0 ) { CraftRes res = m_arCraftRes.GetAt( i ); if ( res.MessageNumber > 0 ) message = res.MessageNumber; else if ( !String.IsNullOrEmpty( res.MessageString ) ) message = res.MessageString; else message = 502925; // You don't have the resources required to make that item. if (craftSystem is DefInscription) { from.LocalOverheadMessage(MessageType.Regular, 0x22, true, "More reagents are needed for this spell."); } else if (craftSystem is DefTinkering) { if (baseType == typeof(Bolt)) from.SendAsciiMessage("You need a crossbow bolt to make that trap!"); else if (baseType == typeof(BaseExplosionPotion)) from.SendAsciiMessage("You need a purple potion to make that trap!"); else if (baseType == typeof(BasePoisonPotion)) from.SendAsciiMessage("You need a green potion to make that trap!"); else from.SendAsciiMessage("You don't have the resources required to make that item."); } else from.SendAsciiMessage("You don't have the resources required to make that item."); return false; } } } // **************************** if ( isFailure && !craftSystem.ConsumeOnFailure( from, types[i][0], this ) ) amounts[i] = 0; } // We adjust the amount of each resource to consume the max posible if ( UseAllRes ) { for ( int i = 0; i < amounts.Length; ++i ) amounts[i] *= maxAmount; } else maxAmount = -1; Item consumeExtra = null; if ( m_NameNumber == 1041267 ) { // Runebooks are a special case, they need a blank recall rune List<RecallRune> runes = ourPack.FindItemsByType<RecallRune>(); for ( int i = 0; i < runes.Count; ++i ) { RecallRune rune = runes[i]; if ( rune != null && !rune.Marked ) { consumeExtra = rune; break; } } if ( consumeExtra == null ) { message = 1044253; // You don't have the components needed to make that. return false; } } int index = 0; double platChance = 0.025; //2.5% base // Consume ALL if ( consumeType == ConsumeType.All ) { m_ResHue = 0; m_ResAmount = 0; m_System = craftSystem; int amountTotal = 0; foreach (int value in amounts.ToList()) { amountTotal += value; } platChance *= amountTotal; if ( isFailure ) { platChance /= 2; } if ( platChance > 0.3 ) { platChance = 0.3; } if ( platChance > Utility.RandomDouble() && (from is PlayerMobile) && ((PlayerMobile)from).LastCraftPlatinum + TimeSpan.FromDays(1.0) < DateTime.Now ) { from.AddToBackpack( new Platinum() ); from.SendAsciiMessage( "Some platinum has been put in your backpack." ); } if ( from is PlayerMobile ) { ( (PlayerMobile)from ).LastCraftPlatinum = DateTime.Now; } if ( IsQuantityType( types ) ) index = ConsumeQuantity( ourPack, types, amounts ); else index = ourPack.ConsumeTotalGrouped( types, amounts, true, new OnItemConsumed( OnResourceConsumed ), new CheckItemGroup( CheckHueGrouping ) ); resHue = m_ResHue; } // Consume Half ( for use all resource craft type ) else if ( consumeType == ConsumeType.Half ) { int amountTotal = 0; for ( int i = 0; i < amounts.Length; i++ ) { amounts[i] /= 2; if ( amounts[i] < 1 ) amounts[i] = 1; amountTotal += amounts[i]; } platChance *= amountTotal; if ( isFailure ) { platChance /= 2; } if ( platChance > 0.3 ) { platChance = 0.3; } if ( platChance > Utility.RandomDouble() && ( from is PlayerMobile ) && ( (PlayerMobile)from ).LastCraftPlatinum + TimeSpan.FromDays( 1.0 ) < DateTime.Now ) { from.AddToBackpack( new Platinum() ); from.SendAsciiMessage( "Some platinum has been put in your backpack." ); } if ( from is PlayerMobile ) { ( (PlayerMobile)from ).LastCraftPlatinum = DateTime.Now; } m_ResHue = 0; m_ResAmount = 0; m_System = craftSystem; if ( IsQuantityType( types ) ) index = ConsumeQuantity( ourPack, types, amounts ); else index = ourPack.ConsumeTotalGrouped( types, amounts, true, new OnItemConsumed( OnResourceConsumed ), new CheckItemGroup( CheckHueGrouping ) ); resHue = m_ResHue; } else // ConstumeType.None ( it's basicaly used to know if the crafter has enough resource before starting the process ) { index = -1; if ( IsQuantityType( types ) ) { for ( int i = 0; i < types.Length; i++ ) { if ( GetQuantity( ourPack, types[i] ) < amounts[i] ) { index = i; break; } } } else { for ( int i = 0; i < types.Length; i++ ) { if ( ourPack.GetBestGroupAmount( types[i], true, new CheckItemGroup( CheckHueGrouping ) ) < amounts[i] ) { index = i; break; } } } } if ( index == -1 ) { if ( consumeType != ConsumeType.None ) if ( consumeExtra != null ) consumeExtra.Delete(); return true; } else { CraftRes res = m_arCraftRes.GetAt( index ); if ( res.MessageNumber > 0 ) message = res.MessageNumber; else if ( res.MessageString != null && res.MessageString != String.Empty ) message = res.MessageString; else message = 502925; // You don't have the resources required to make that item. if (craftSystem is DefInscription) { from.LocalOverheadMessage(MessageType.Regular, 0x22, true, "More reagents are needed for this spell."); } else { if (res.ItemType == typeof(Bolt)) from.SendAsciiMessage("You need a crossbow bolt to make that trap!"); else if (res.ItemType == typeof(BaseExplosionPotion)) from.SendAsciiMessage("You need a purple potion to make that trap!"); else if (res.ItemType == typeof(BasePoisonPotion)) from.SendAsciiMessage("You need a green potion to make that trap!"); else from.SendAsciiMessage("You don't have the resources required to make that item."); } return false; } }
public Species(string name, AnimalClass animalClass, ConsumeType consumeType) { SetName(name); AnimalClass = animalClass; ConsumeType = consumeType; }
public MeterInvoiceDetailInfo CalculateUnitInvoice(MeterInfo meter, ConsumeProfile consume, ConsumeType consumeType) { decimal AGPrice = TariffPriceList.Where(t => t.StartPeriod <= consume.Period && t.EndPeriod >= consume.Period).Select(t => t.AGDistributionUnitPrice).FirstOrDefault(); decimal OGPrice = TariffPriceList.Where(t => t.StartPeriod <= consume.Period && t.EndPeriod >= consume.Period).Select(t => t.OGDistributionUnitPrice).FirstOrDefault(); decimal energyPrice = Math.Round(consume.Consume * 0.167M, 2); decimal distributionPrice; if (consume.AGOG == (int)AGOG.AG) { distributionPrice = Math.Round(AGPrice * consume.Consume, 2); } else { distributionPrice = Math.Round(OGPrice * consume.Consume, 2); } decimal municipalityTax; if (consume.CalculateMunicipalityTax) { municipalityTax = Math.Round(energyPrice * 0.01M, 2); } else { municipalityTax = 0M; } decimal energyFundTax = Math.Round(energyPrice * 0.01M, 2); decimal trtTax = Math.Round(energyPrice * 0.02M, 2); var meterInvoice = new MeterInvoiceDetailInfo() { EnergyPrice = energyPrice, DistributionPrice = distributionPrice, MunicipalityTax = municipalityTax, EnergyFundTax = energyFundTax, TRTTax = trtTax, Consume = consume.Consume, ConsumeType = consumeType }; return(meterInvoice); }
private List<ConsumeVO> GetConsumeList(List<ConsumePkgViewModel> list, ClubCardVO card, ConsumeType conType) { List<ConsumeVO> conList = new List<ConsumeVO>(); DateTime date = DateTime.Now; list.ForEach(item => { conList.Add(new ConsumeVO { ItemID = 0, ItemName = item.ItemName, ConsumeStore = Emp.StroeName, ConsumeCount = item.ItemConNum, OriginalPrice = 0, CreatedDate = date, CreatorID = Emp.UserName, LastModifiedDate = date, LastModifierID = Emp.UserName, ConsumeDate = date, ConsumeType = (int)conType, ClubCardPackageID = item.PkgId, PackageDetailID = item.ItemId, ClubCardNo = card.ClubCardNo, ClubCardID = card.ClubCardID, CustID = card.CustomerID, CustName = card.CustName, OriginalStore = card.OpenCardStore, RemainCount = 0, Reserved1 = Emp.StoreId.ToString() }); }); return conList; }
private bool HasPermission(string ownerId, ConsumeType type) => permission.UserHasPermission(ownerId, $"nofuelrequirements.{type}");
public void Remove(ConsumeType model) { _dataContext.ExecuteNonQuery("delete from [ConsumeType] where [Id]=@p1", model.Id); }
private bool IsActiveType(ConsumeType type) => configData.AffectedTypes[type];
public void CompleteCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CustomCraft customCraft) { int badCraft = craftSystem.CanCraft(from, tool, m_Type); if (badCraft > 0) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, badCraft)); } else { from.SendLocalizedMessage(badCraft); } return; } int checkResHue = 0, checkMaxAmount = 0; object checkMessage = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref checkResHue, ref checkMaxAmount, ConsumeType.None, ref checkMessage)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } return; } else if (!ConsumeAttributes(from, ref checkMessage, false)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } return; } bool toolBroken = false; int ignored = 1; int endquality = 1; bool allRequiredSkills = true; if (CheckSkills(from, typeRes, craftSystem, ref ignored, ref allRequiredSkills)) { // Resource int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, ConsumeType.All, ref message)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } else if (!ConsumeAttributes(from, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } tool.UsesRemaining--; if (tool.UsesRemaining < 1 && tool.BreakOnDepletion) { toolBroken = true; } if (toolBroken) { tool.Delete(); } int num = 0; Item item; if (customCraft != null) { item = customCraft.CompleteCraft(out num); } else if (typeof(MapItem).IsAssignableFrom(ItemType) && from.Map != Map.Felucca) { item = new IndecipherableMap(); from.SendLocalizedMessage(1070800); // The map you create becomes mysteriously indecipherable. } else { item = Activator.CreateInstance(ItemType) as Item; } if (item != null) { if (item is ICraftable) { endquality = ((ICraftable)item).OnCraft(quality, makersMark, from, craftSystem, typeRes, tool, this, resHue); } else if (item.Hue == 0) { item.Hue = resHue; } if (maxAmount > 0) { if (!item.Stackable && item is IUsesRemaining) { ((IUsesRemaining)item).UsesRemaining *= maxAmount; } else { item.Amount = maxAmount; } } from.AddToBackpack(item); if (from.AccessLevel > AccessLevel.Player) { CommandLogging.WriteLine(from, "Crafting {0} with craft system {1}", CommandLogging.Format(item), craftSystem.GetType().Name); } //from.PlaySound( 0x57 ); } if (num == 0) { num = craftSystem.PlayEndingEffect(from, false, true, toolBroken, endquality, makersMark, this); } if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } else if (!allRequiredSkills) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, 1044153)); } else { from.SendLocalizedMessage(1044153); // You don't have the required skills to attempt this item. } } else { ConsumeType consumeType = UseAllRes ? ConsumeType.Half : ConsumeType.All; int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, consumeType, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } tool.UsesRemaining--; if (tool.UsesRemaining < 1 && tool.BreakOnDepletion) { toolBroken = true; } if (toolBroken) { tool.Delete(); } // SkillCheck failed. int num = craftSystem.PlayEndingEffect(from, true, true, toolBroken, endquality, false, this); if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } }
public Consumable(string n, string d, ConsumeType type, int m) : base(n, d) { itemType = type; magnitude = m; }
public void AddDetail(string tenantCode,decimal fee,ConsumeType type) { string sql = "insert into movo_tenantaccount_detail(TenantCode, ConsumeMoney, OperateType, ConsumeType, CreateTime)values('{0}', {1}, 1, {2},now());"; sql = string.Format(sql, tenantCode, fee, (int)type); DBHelper.ExecuteNonQuery(sql); }
public void CompleteCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CustomCraft customCraft) { int badCraft = craftSystem.CanCraft(from, tool, m_Type); if (badCraft > 0) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, badCraft)); } else { from.SendLocalizedMessage(badCraft); } return; } int checkResHue = 0, checkMaxAmount = 0; object checkMessage = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref checkResHue, ref checkMaxAmount, ConsumeType.None, ref checkMessage)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } return; } else if (!ConsumeAttributes(from, ref checkMessage, false)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } return; } bool toolBroken = false; int ignored = 1; int endquality = 1; bool allRequiredSkills = true; if (CheckSkills(from, typeRes, craftSystem, ref ignored, ref allRequiredSkills)) { // Resource int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, ConsumeType.All, ref message)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } else if (!ConsumeAttributes(from, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } tool.UsesRemaining--; if (craftSystem is DefBlacksmithy) { AncientSmithyHammer hammer = from.FindItemOnLayer(Layer.OneHanded) as AncientSmithyHammer; if (hammer != null && hammer != tool) { hammer.UsesRemaining--; if (hammer.UsesRemaining < 1) { hammer.Delete(); } } } if (tool.UsesRemaining < 1) { toolBroken = true; } if (toolBroken) { tool.Delete(); } int num = 0; Item item; if (customCraft != null) { item = customCraft.CompleteCraft(out num); } else if (typeof(MapItem).IsAssignableFrom(ItemType) && from.Map != Map.Trammel && from.Map != Map.Felucca) { item = new IndecipherableMap(); from.SendLocalizedMessage(1070800); // The map you create becomes mysteriously indecipherable. } else { item = Activator.CreateInstance(ItemType) as Item; } if (item != null) { if (item is ICraftable) { endquality = ((ICraftable)item).OnCraft(quality, makersMark, from, craftSystem, typeRes, tool, this, resHue); //TEST: CHECK THIS if (craftSystem is DefCarpentry) { item.Hue = resHue; } } else if (item.Hue == 0 && resHue != 0) { item.Hue = resHue; } if (maxAmount > 0) { if (!item.Stackable && item is IUsesRemaining) { ((IUsesRemaining)item).UsesRemaining *= maxAmount; } else { item.Amount = maxAmount; } } item.CraftedBy = from; item.CrafterName = from.RawName; item.ItemGroup = ItemGroupType.Crafted; if (m_Count > 1) { if (item.Stackable) { item.Amount = m_Count; from.AddToBackpack(item); } else { for (int a = 0; a < m_Count; a++) { Item duplicate = Dupe.DupeItem(item); if (duplicate != null) { from.AddToBackpack(duplicate); } } } } else { from.AddToBackpack(item); } if (from.AccessLevel > AccessLevel.Player) { CommandLogging.WriteLine(from, "Crafting {0} with craft system {1}", CommandLogging.Format(item), craftSystem.GetType().Name); } } if (num == 0) { num = craftSystem.PlayEndingEffect(from, false, true, toolBroken, endquality, makersMark, this); } bool queryFactionImbue = false; int availableSilver = 0; if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } else if (!allRequiredSkills) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, 1044153)); } else { from.SendLocalizedMessage(1044153); // You don't have the required skills to attempt this item. } } else { ConsumeType consumeType = (UseAllRes ? ConsumeType.Half : ConsumeType.All); int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, consumeType, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } tool.UsesRemaining--; if (tool.UsesRemaining < 1) { toolBroken = true; } if (toolBroken) { tool.Delete(); } int num = craftSystem.PlayEndingEffect(from, true, true, toolBroken, endquality, false, this); if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } }
void cmdLantern(BasePlayer player, string command, string[] args) { if (args.Length == 0) { Dictionary <ConsumeType, bool> userPreferences; if (!toggleList.TryGetValue(player.userID, out userPreferences)) { userPreferences = configData.Types.ToDictionary(x => x.Key, y => y.Value.Enabled); } bool canToggle = false; foreach (var lightType in configData.Types) { if (lightType.Value.Owner) { if (lightType.Value.Permission && !permission.UserHasPermission(player.UserIDString, $"nightlantern.{lightType.Key}")) { continue; } player.ChatMessage(string.Format(msg("user.type", player.userID), lightType.Key, userPreferences[lightType.Key] ? msg("user.enabled", player.userID) : msg("user.disabled", player.userID))); canToggle = true; } } if (canToggle) { player.ChatMessage(msg("user.toggle.opt", player.userID)); } if (permission.UserHasPermission(player.UserIDString, "nightlantern.global")) { player.ChatMessage(string.Format(msg("global.toggle", player.userID), globalToggle ? msg("user.enabled", player.userID) : msg("user.disabled", player.userID))); player.ChatMessage(msg("global.toggle.opt", player.userID)); } return; } if (args[0].ToLower() == "global" && permission.UserHasPermission(player.UserIDString, "nightlantern.global")) { globalToggle = !globalToggle; ServerMgr.Instance.StartCoroutine(ToggleAllLights(lightControllers, globalToggle)); player.ChatMessage(string.Format(msg("global.toggle", player.userID), globalToggle ? msg("user.enabled", player.userID) : msg("user.disabled", player.userID))); } else { ConsumeType consumeType = ParseType(args[0]); if (consumeType == ConsumeType.None || !permission.UserHasPermission(player.UserIDString, $"nightlantern.{consumeType}")) { player.ChatMessage(string.Format(msg("toggle.invalid", player.userID), consumeType)); return; } if (!toggleList.ContainsKey(player.userID)) { toggleList.Add(player.userID, configData.Types.ToDictionary(x => x.Key, y => y.Value.Enabled)); } toggleList[player.userID][consumeType] = !toggleList[player.userID][consumeType]; IEnumerable <LightController> ownedLights = lightControllers.Where(x => x.IsOwner(player.userID) && x.consumeType == consumeType); if (ownedLights.Count() > 0) { ServerMgr.Instance.StartCoroutine(ToggleAllLights(ownedLights, toggleList[player.userID][consumeType])); } player.ChatMessage(string.Format(msg("user.type", player.userID), consumeType, toggleList[player.userID][consumeType] ? msg("user.enabled", player.userID) : msg("user.disabled", player.userID))); return; } }
private List<ConsumeVO> GetConsumeList(List<ComsumeItemViewModel> list,CustomerVO cust, ConsumeType conType,PayType paytype) { List<ConsumeVO> conList = new List<ConsumeVO>(); DateTime date = DateTime.Now; list.ForEach(item => { conList.Add(new ConsumeVO { ItemID = item.Itemid, ItemName = item.ItemName, ConsumeStore = Emp.StroeName, ConsumeCount = item.ItemConNum, OriginalPrice = item.ItemTotalPrice, CreatedDate = date, CreatorID = Emp.UserName, LastModifiedDate = date, LastModifierID = Emp.UserName, ConsumeDate = date, ConsumeType = (int)conType, ClubCardPackageID = "", PackageDetailID = 0, ClubCardNo = "", ClubCardID = 0, CustID = cust.CustomerID, CustName = cust.Name, OriginalStore = "", RemainCount = 0, Reserved1 = Emp.StoreId.ToString(), Reserved2=paytype.ToString() }); }); return conList; }
public void CompleteCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CustomCraft customCraft) { int badCraft = craftSystem.CanCraft(from, tool, m_Type); if (badCraft > 0) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, badCraft)); } else { from.SendLocalizedMessage(badCraft); } return; } int checkResHue = 0, checkMaxAmount = 0; object checkMessage = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref checkResHue, ref checkMaxAmount, ConsumeType.None, ref checkMessage)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } return; } else if (!ConsumeAttributes(from, ref checkMessage, false)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } return; } bool toolBroken = false; int ignored = 1; int endquality = 1; bool allRequiredSkills = true; if (CheckSkills(from, typeRes, craftSystem, ref ignored, ref allRequiredSkills)) { // Resource int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, ConsumeType.All, ref message)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } else if (!ConsumeAttributes(from, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } tool.UsesRemaining--; if (craftSystem is DefBlacksmithy) { AncientSmithyHammer hammer = from.FindItemOnLayer(Layer.OneHanded) as AncientSmithyHammer; if (hammer != null && hammer != tool) { hammer.UsesRemaining--; if (hammer.UsesRemaining < 1) { hammer.Delete(); } } } if (tool.UsesRemaining < 1) { toolBroken = true; } if (toolBroken) { tool.Delete(); } int num = 0; Item item; if (customCraft != null) { item = customCraft.CompleteCraft(out num); } else if (typeof(MapItem).IsAssignableFrom(ItemType) && from.Map != Map.Trammel && from.Map != Map.Felucca) { item = new IndecipherableMap(); from.SendLocalizedMessage(1070800); // The map you create becomes mysteriously indecipherable. } else { item = Activator.CreateInstance(ItemType) as Item; } if (item != null) { if (item is ICraftable) { endquality = ((ICraftable)item).OnCraft(quality, makersMark, from, craftSystem, typeRes, tool, this, resHue); } else if (item.Hue == 0) { item.Hue = resHue; } if (maxAmount > 0) { if (!item.Stackable && item is IUsesRemaining) { ((IUsesRemaining)item).UsesRemaining *= maxAmount; } else { item.Amount = maxAmount; } } from.AddToBackpack(item); if (from.AccessLevel > AccessLevel.Player) { CommandLogging.WriteLine(from, "Crafting {0} with craft system {1}", CommandLogging.Format(item), craftSystem.GetType().Name); } //from.PlaySound( 0x57 ); } if (num == 0) { num = craftSystem.PlayEndingEffect(from, false, true, toolBroken, endquality, makersMark, this); } bool queryFactionImbue = false; int availableSilver = 0; FactionItemDefinition def = null; Faction faction = null; if (item is IFactionItem) { def = FactionItemDefinition.Identify(item); if (def != null) { faction = Faction.Find(from); if (faction != null) { Town town = Town.FromRegion(from.Region); if (town != null && town.Owner == faction) { Container pack = from.Backpack; if (pack != null) { availableSilver = pack.GetAmount(typeof(Silver)); if (availableSilver >= def.SilverCost) { queryFactionImbue = Faction.IsNearType(from, def.VendorType, 12); } } } } } } // TODO: Scroll imbuing if (queryFactionImbue) { from.SendGump(new FactionImbueGump(quality, item, from, craftSystem, tool, num, availableSilver, faction, def)); } else if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } else if (!allRequiredSkills) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, 1044153)); } else { from.SendLocalizedMessage(1044153); // You don't have the required skills to attempt this item. } } else { ConsumeType consumeType = (UseAllRes ? ConsumeType.Half : ConsumeType.All); int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, consumeType, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } tool.UsesRemaining--; if (tool.UsesRemaining < 1) { toolBroken = true; } if (toolBroken) { tool.Delete(); } // SkillCheck failed. int num = craftSystem.PlayEndingEffect(from, true, true, toolBroken, endquality, false, this); if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } }
public void CompleteBuild(int quality, bool makersMark, Mobile from, BuildSystem buildSystem, Type typeRes, BaseBuildingTool tool, CustomBuild customBuild) { int badBuild = buildSystem.CanBuild(from, tool, m_Type); if (badBuild > 0) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new BuildGump(from, buildSystem, tool, badBuild)); } else { from.SendLocalizedMessage(badBuild); } return; } int checkResHue = 0, checkMaxAmount = 0; object checkMessage = null; // Not enough resource to build it if (!ConsumeRes(from, typeRes, buildSystem, ref checkResHue, ref checkMaxAmount, ConsumeType.None, ref checkMessage)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new BuildGump(from, buildSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } return; } else if (!ConsumeAttributes(from, ref checkMessage, false)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new BuildGump(from, buildSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } return; } bool toolBroken = false; int ignored = 1; int endquality = 1; bool allRequiredLokaiSkills = true; if (CheckLokaiSkills(from, typeRes, buildSystem, ref ignored, ref allRequiredLokaiSkills)) { // Resource int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to build it if (!ConsumeRes(from, typeRes, buildSystem, ref resHue, ref maxAmount, ConsumeType.All, ref message)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new BuildGump(from, buildSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } else if (!ConsumeAttributes(from, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new BuildGump(from, buildSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } tool.UsesRemaining--; if (tool.UsesRemaining < 1) { toolBroken = true; } if (toolBroken) { tool.Delete(); } int num = 0; Item item; if (customBuild != null) { item = customBuild.CompleteBuild(out num); } else if (typeof(MapItem).IsAssignableFrom(ItemType) && from.Map != Map.Trammel && from.Map != Map.Felucca) { item = new IndecipherableMap(); from.SendLocalizedMessage(1070800); // The map you create becomes mysteriously indecipherable. } else { if (m_Arg != null) { item = Activator.CreateInstance(ItemType, new object[] { m_Arg }) as Item; } else { item = Activator.CreateInstance(ItemType) as Item; } } if (item != null) { if (item is IBuildable) { endquality = ((IBuildable)item).OnBuild(quality, makersMark, from, buildSystem, typeRes, tool, this, resHue); } else if (item.Hue == 0) { item.Hue = resHue; } if (maxAmount > 0) { item.Amount = maxAmount; } from.AddToBackpack(item); if (from.AccessLevel > AccessLevel.Player) { CommandLogging.WriteLine(from, "Building {0} with build system {1}", CommandLogging.Format(item), buildSystem.GetType().Name); } //from.PlaySound( 0x57 ); } if (num == 0) { num = buildSystem.PlayEndingEffect(from, false, true, toolBroken, endquality, makersMark, this); } if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new BuildGump(from, buildSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } else if (!allRequiredLokaiSkills) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new BuildGump(from, buildSystem, tool, 1044153)); } else { from.SendLocalizedMessage(1044153); // You don't have the required lokaiSkills to attempt this item. } } else { ConsumeType consumeType = (UseAllRes ? ConsumeType.Half : ConsumeType.All); int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to build it if (!ConsumeRes(from, typeRes, buildSystem, ref resHue, ref maxAmount, consumeType, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new BuildGump(from, buildSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } return; } tool.UsesRemaining--; if (tool.UsesRemaining < 1) { toolBroken = true; } if (toolBroken) { tool.Delete(); } // LokaiSkillCheck failed. int num = buildSystem.PlayEndingEffect(from, true, true, toolBroken, endquality, false, this); if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new BuildGump(from, buildSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } }
protected virtual void SendSMS(string[] telephone, string downSendOrderCode, string[] smsParameters, string tenantCode, ConsumeType type, string[] toUser) { DateTime dt1 = DateTime.Now; try { GPSServiceFacade.Alarm.SMS.SendSMS(telephone, downSendOrderCode, smsParameters, tenantCode, type); } catch (Exception ex) { Logger.Error(ex); } string logText = string.Format("发送手机短信花费{0:N5}秒", (DateTime.Now - dt1).TotalMilliseconds / (double)1000); Logger.Info(logText, "Telephones", string.Join(",", telephone), "TenantCode", tenantCode); }
public bool ConsumeRes(Mobile from, Type typeRes, BuildSystem buildSystem, ref int resHue, ref int maxAmount, ConsumeType consumeType, ref object message, bool isFailure) { Container ourPack = from.Backpack; if (ourPack == null) { return(false); } if (m_NeedHeat && !Find(from, m_HeatSources)) { message = 1044487; // You must be near a fire source to cook. return(false); } if (m_NeedOven && !Find(from, m_Ovens)) { message = 1044493; // You must be near an oven to bake that. return(false); } if (m_NeedMill && !Find(from, m_Mills)) { message = 1044491; // You must be near a flour mill to do that. return(false); } if (m_NeedWoodworker && !Find(from, m_WoodworkersBench)) { message = "You must be near a woodworker's bench to do that."; return(false); } if (m_NeedCooper && !Find(from, m_CoopersBench)) { message = "You must be near a cooper's bench to do that."; return(false); } if (m_NeedForeman && !Find(from, typeof(Foreman), 3)) { message = "You must be near a foreman to do that."; return(false); } if (m_arBuildRes.Count == 0) { message = "Resource count is 0?"; return(false); } Type[][] types = new Type[m_arBuildRes.Count][]; int[] amounts = new int[m_arBuildRes.Count]; maxAmount = int.MaxValue; BuildSubResCol resCol = (m_UseSubRes2 ? buildSystem.BuildSubRes2 : buildSystem.BuildSubRes); for (int i = 0; i < types.Length; ++i) { BuildRes buildRes = m_arBuildRes.GetAt(i); Type baseType = buildRes.ItemType; // Resource Mutation if ((baseType == resCol.ResType) && (typeRes != null)) { baseType = typeRes; BuildSubRes subResource = resCol.SearchFor(baseType); if (subResource != null && LokaiSkillUtilities.XMLGetSkills(from)[buildSystem.MainLokaiSkill].Base < subResource.RequiredLokaiSkill) { message = subResource.Message; return(false); } } // ****************** for (int j = 0; types[i] == null && j < m_TypesTable.Length; ++j) { if (m_TypesTable[j][0] == baseType) { types[i] = m_TypesTable[j]; } } if (types[i] == null) { types[i] = new Type[] { baseType } } ; amounts[i] = buildRes.Amount; // For stackable items that can be built more than one at a time if (UseAllRes) { int tempAmount = ourPack.GetAmount(types[i]); tempAmount /= amounts[i]; if (tempAmount < maxAmount) { maxAmount = tempAmount; if (maxAmount == 0) { BuildRes res = m_arBuildRes.GetAt(i); if (res.MessageNumber > 0) { message = res.MessageNumber; } else if (!String.IsNullOrEmpty(res.MessageString)) { message = res.MessageString; } else { message = 502925; // You don't have the resources required to make that item. } return(false); } } } // **************************** if (isFailure && !buildSystem.ConsumeOnFailure(from, types[i][0], this)) { amounts[i] = 0; } } // We adjust the amount of each resource to consume the max possible if (UseAllRes) { for (int i = 0; i < amounts.Length; ++i) { amounts[i] *= maxAmount; } } else { maxAmount = -1; } int index = 0; // Consume ALL if (consumeType == ConsumeType.All) { m_ResHue = 0; m_ResAmount = 0; m_System = buildSystem; if (IsQuantityType(types)) { index = ConsumeQuantity(ourPack, types, amounts); } else { index = ourPack.ConsumeTotalGrouped(types, amounts, true, new OnItemConsumed(OnResourceConsumed), new CheckItemGroup(CheckHueGrouping)); } resHue = m_ResHue; } // Consume Half ( for use all resource build type ) else if (consumeType == ConsumeType.Half) { for (int i = 0; i < amounts.Length; i++) { amounts[i] /= 2; if (amounts[i] < 1) { amounts[i] = 1; } } m_ResHue = 0; m_ResAmount = 0; m_System = buildSystem; if (IsQuantityType(types)) { index = ConsumeQuantity(ourPack, types, amounts); } else { index = ourPack.ConsumeTotalGrouped(types, amounts, true, new OnItemConsumed(OnResourceConsumed), new CheckItemGroup(CheckHueGrouping)); } resHue = m_ResHue; } else // ConstumeType.None ( it's basicaly used to know if the builder has enough resource before starting the process ) { index = -1; if (IsQuantityType(types)) { for (int i = 0; i < types.Length; i++) { if (GetQuantity(ourPack, types[i]) < amounts[i]) { index = i; break; } } } else { for (int i = 0; i < types.Length; i++) { if (ourPack.GetBestGroupAmount(types[i], true, new CheckItemGroup(CheckHueGrouping)) < amounts[i]) { index = i; break; } } } } if (index == -1) { return(true); } else { BuildRes res = m_arBuildRes.GetAt(index); if (res.MessageNumber > 0) { message = res.MessageNumber; } else if (res.MessageString != null && res.MessageString != String.Empty) { message = res.MessageString; } else { message = 502925; // You don't have the resources required to make that item. } return(false); } }
public bool ConsumeRes( Mobile from, Type typeRes, CraftSystem craftSystem, ref int resHue, ref int maxAmount, ConsumeType consumeType, ref object message, bool isFailure ) { Container ourPack = from.Backpack; if ( ourPack == null ) return false; if ( m_NeedHeat && !Find( from, m_HeatSources ) ) { message = 1044487; // You must be near a fire source to cook. return false; } if ( m_NeedOven && !Find( from, m_Ovens ) ) { message = 1044493; // You must be near an oven to bake that. return false; } if ( m_NeedMill && !Find( from, m_Mills ) ) { message = 1044491; // You must be near a flour mill to do that. return false; } Type[][] types = new Type[m_arCraftRes.Count][]; int[] amounts = new int[m_arCraftRes.Count]; maxAmount = int.MaxValue; CraftSubResCol resCol = ( m_UseSubRes2 ? craftSystem.CraftSubRes2 : craftSystem.CraftSubRes ); for ( int i = 0; i < types.Length; ++i ) { CraftRes craftRes = m_arCraftRes.GetAt( i ); Type baseType = craftRes.ItemType; // Resource Mutation if ( (baseType == resCol.ResType) && ( typeRes != null ) ) { baseType = typeRes; CraftSubRes subResource = resCol.SearchFor( baseType ); if ( subResource != null && from.Skills[craftSystem.MainSkill].Base < subResource.RequiredSkill ) { message = subResource.Message; return false; } } // ****************** for ( int j = 0; types[i] == null && j < m_TypesTable.Length; ++j ) { if ( m_TypesTable[j][0] == baseType ) types[i] = m_TypesTable[j]; } if ( types[i] == null ) types[i] = new Type[]{ baseType }; amounts[i] = craftRes.Amount; // For stackable items that can ben crafted more than one at a time if ( UseAllRes ) { int tempAmount = ourPack.GetAmount( types[i] ); tempAmount /= amounts[i]; if ( tempAmount < maxAmount ) { maxAmount = tempAmount; if ( maxAmount == 0 ) { CraftRes res = m_arCraftRes.GetAt( i ); if ( res.MessageNumber > 0 ) message = res.MessageNumber; else if ( !String.IsNullOrEmpty( res.MessageString ) ) message = res.MessageString; else message = 502925; // You don't have the resources required to make that item. return false; } } } // **************************** if ( isFailure && !craftSystem.ConsumeOnFailure( from, types[i][0], this ) ) amounts[i] = 0; } // We adjust the amount of each resource to consume the max posible if ( UseAllRes ) { for ( int i = 0; i < amounts.Length; ++i ) amounts[i] *= maxAmount; } else maxAmount = -1; Item consumeExtra = null; if ( m_NameNumber == 1041267 ) { // Runebooks are a special case, they need a blank recall rune List<RecallRune> runes = ourPack.FindItemsByType<RecallRune>(); for ( int i = 0; i < runes.Count; ++i ) { RecallRune rune = runes[i]; if ( rune != null && !rune.Marked ) { consumeExtra = rune; break; } } if ( consumeExtra == null ) { message = 1044253; // You don't have the components needed to make that. return false; } } int index = 0; // Consume ALL if ( consumeType == ConsumeType.All ) { m_ResHue = 0; m_ResAmount = 0; m_System = craftSystem; if ( IsQuantityType( types ) ) index = ConsumeQuantity( ourPack, types, amounts ); else index = ourPack.ConsumeTotalGrouped( types, amounts, true, new OnItemConsumed( OnResourceConsumed ), new CheckItemGroup( CheckHueGrouping ) ); resHue = m_ResHue; } // Consume Half ( for use all resource craft type ) else if ( consumeType == ConsumeType.Half ) { for ( int i = 0; i < amounts.Length; i++ ) { amounts[i] /= 2; if ( amounts[i] < 1 ) amounts[i] = 1; } m_ResHue = 0; m_ResAmount = 0; m_System = craftSystem; if ( IsQuantityType( types ) ) index = ConsumeQuantity( ourPack, types, amounts ); else index = ourPack.ConsumeTotalGrouped( types, amounts, true, new OnItemConsumed( OnResourceConsumed ), new CheckItemGroup( CheckHueGrouping ) ); resHue = m_ResHue; } else // ConstumeType.None ( it's basicaly used to know if the crafter has enough resource before starting the process ) { index = -1; if ( IsQuantityType( types ) ) { for ( int i = 0; i < types.Length; i++ ) { if ( GetQuantity( ourPack, types[i] ) < amounts[i] ) { index = i; break; } } } else { for ( int i = 0; i < types.Length; i++ ) { if ( ourPack.GetBestGroupAmount( types[i], true, new CheckItemGroup( CheckHueGrouping ) ) < amounts[i] ) { index = i; break; } } } } if ( index == -1 ) { if ( consumeType != ConsumeType.None ) if ( consumeExtra != null ) consumeExtra.Delete(); return true; } else { CraftRes res = m_arCraftRes.GetAt( index ); if ( res.MessageNumber > 0 ) message = res.MessageNumber; else if ( res.MessageString != null && res.MessageString != String.Empty ) message = res.MessageString; else message = 502925; // You don't have the resources required to make that item. return false; } }
public void CompleteCraft( int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CustomCraft customCraft) { int badCraft = craftSystem.CanCraft(from, tool, m_Type); if (badCraft > 0) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, badCraft)); } else { from.SendLocalizedMessage(badCraft); } AutoCraftTimer.EndTimer(from); return; } int checkResHue = 0, checkMaxAmount = 0; object checkMessage = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref checkResHue, ref checkMaxAmount, ConsumeType.None, ref checkMessage)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } AutoCraftTimer.EndTimer(from); return; } else if (!ConsumeAttributes(from, ref checkMessage, false)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, checkMessage)); } else if (checkMessage is int && (int)checkMessage > 0) { from.SendLocalizedMessage((int)checkMessage); } else if (checkMessage is string) { from.SendMessage((string)checkMessage); } AutoCraftTimer.EndTimer(from); return; } bool toolBroken = false; int ignored = 1; int endquality = 1; bool allRequiredSkills = true; if (CheckSkills(from, typeRes, craftSystem, ref ignored, ref allRequiredSkills)) { // Resource int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, ConsumeType.All, ref message)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } AutoCraftTimer.EndTimer(from); return; } else if (!ConsumeAttributes(from, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } AutoCraftTimer.EndTimer(from); return; } tool.UsesRemaining--; if (craftSystem is DefBlacksmithy) { AncientSmithyHammer hammer = from.FindItemOnLayer(Layer.OneHanded) as AncientSmithyHammer; if (hammer != null && hammer != tool) { #region Mondain's Legacy if (hammer is HammerOfHephaestus) { if (hammer.UsesRemaining > 0) { hammer.UsesRemaining--; } if (hammer.UsesRemaining < 1) { from.PlaceInBackpack(hammer); } } else { hammer.UsesRemaining--; if (hammer.UsesRemaining < 1) { hammer.Delete(); } } #endregion } } #region Mondain's Legacy if (tool is HammerOfHephaestus) { if (tool.UsesRemaining < 1) { tool.UsesRemaining = 0; } } else { if (tool.UsesRemaining < 1) { toolBroken = true; } if (toolBroken) { tool.Delete(); } } #endregion int num = 0; Item item; if (customCraft != null) { item = customCraft.CompleteCraft(out num); } else if (typeof(MapItem).IsAssignableFrom(ItemType) && from.Map != Map.Trammel && from.Map != Map.Felucca) { item = new IndecipherableMap(); from.SendLocalizedMessage(1070800); // The map you create becomes mysteriously indecipherable. } else { item = Activator.CreateInstance(ItemType) as Item; } if (item != null) { #region Mondain's Legacy if (item is Board) { Type resourceType = typeRes; if (resourceType == null) { resourceType = Resources.GetAt(0).ItemType; } CraftResource thisResource = CraftResources.GetFromType(resourceType); switch (thisResource) { case CraftResource.OakWood: item = new OakBoard(); break; case CraftResource.AshWood: item = new AshBoard(); break; case CraftResource.YewWood: item = new YewBoard(); break; case CraftResource.Heartwood: item = new HeartwoodBoard(); break; case CraftResource.Bloodwood: item = new BloodwoodBoard(); break; case CraftResource.Frostwood: item = new FrostwoodBoard(); break; default: item = new Board(); break; } } #endregion if (item is ICraftable) { endquality = ((ICraftable)item).OnCraft(quality, makersMark, from, craftSystem, typeRes, tool, this, resHue); } else if (item is Food) { ((Food)item).PlayerConstructed = true; } else if (item.Hue == 0) { item.Hue = resHue; } if (maxAmount > 0) { if (!item.Stackable && item is IUsesRemaining) { ((IUsesRemaining)item).UsesRemaining *= maxAmount; } else { item.Amount = maxAmount; } } #region Plant Pigments if (item is PlantPigment && (craftSystem is DefAlchemy || craftSystem is DefCooking)) { ((PlantPigment)item).PigmentHue = PlantPigmentHueInfo.HueFromPlantHue(m_PlantHue); } if (item is NaturalDye && (craftSystem is DefAlchemy || craftSystem is DefCooking)) { ((NaturalDye)item).PigmentHue = PlantPigmentHueInfo.GetInfo(m_PlantPigmentHue).PlantPigmentHue; } if (item is SoftenedReeds && (craftSystem is DefAlchemy || craftSystem is DefCooking)) { ((SoftenedReeds)item).PlantHue = PlantHueInfo.GetInfo(m_PlantHue).PlantHue; } if (item is BaseContainer && (craftSystem is DefBasketweaving)) { (item).Hue = PlantHueInfo.GetInfo(m_PlantHue).Hue; } CraftContext context = craftSystem.GetContext(from); if (context.QuestOption == CraftQuestOption.QuestItem) { PlayerMobile px = from as PlayerMobile; if (!QuestHelper.CheckItem(px, item)) from.SendLocalizedMessage(1072355, null, 0x23); // That item does not match any of your quest criteria } #endregion if (tool.Parent is Container) { Container cntnr = (Container) tool.Parent; cntnr.TryDropItem(from, item, false); } else { from.AddToBackpack(item); } EventSink.InvokeCraftSuccess(new CraftSuccessEventArgs(from, item, tool)); if (from.IsStaff()) { CommandLogging.WriteLine( from, "Crafting {0} with craft system {1}", CommandLogging.Format(item), craftSystem.GetType().Name); } AutoCraftTimer.OnSuccessfulCraft(from); //from.PlaySound( 0x57 ); } if (num == 0) { num = craftSystem.PlayEndingEffect(from, false, true, toolBroken, endquality, makersMark, this); } bool queryFactionImbue = false; int availableSilver = 0; FactionItemDefinition def = null; Faction faction = null; if (item is IFactionItem) { def = FactionItemDefinition.Identify(item); if (def != null) { faction = Faction.Find(from); if (faction != null) { Town town = Town.FromRegion(from.Region); if (town != null && town.Owner == faction) { Container pack = from.Backpack; if (pack != null) { availableSilver = pack.GetAmount(typeof(Silver)); if (availableSilver >= def.SilverCost) { queryFactionImbue = Faction.IsNearType(from, def.VendorType, 12); } } } } } } // TODO: Scroll imbuing if (queryFactionImbue) { from.SendGump(new FactionImbueGump(quality, item, from, craftSystem, tool, num, availableSilver, faction, def)); } else if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } else if (!allRequiredSkills) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, 1044153)); } else { from.SendLocalizedMessage(1044153); // You don't have the required skills to attempt this item. } AutoCraftTimer.EndTimer(from); } else { ConsumeType consumeType = (UseAllRes ? ConsumeType.Half : ConsumeType.All); int resHue = 0; int maxAmount = 0; object message = null; // Not enough resource to craft it if (!ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, consumeType, ref message, true)) { if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, message)); } else if (message is int && (int)message > 0) { from.SendLocalizedMessage((int)message); } else if (message is string) { from.SendMessage((string)message); } AutoCraftTimer.EndTimer(from); return; } tool.UsesRemaining--; if (tool.UsesRemaining < 1) { toolBroken = true; } if (toolBroken) { tool.Delete(); } // SkillCheck failed. int num = craftSystem.PlayEndingEffect(from, true, true, toolBroken, endquality, false, this); if (tool != null && !tool.Deleted && tool.UsesRemaining > 0) { from.SendGump(new CraftGump(from, craftSystem, tool, num)); } else if (num > 0) { from.SendLocalizedMessage(num); } } }