Пример #1
0
		public bool AddConsignment(int startValue)
		{
			// check to make sure a consignment merchant doesn't already exist for this house.
			var obj = GameServer.Database.SelectObject<Mob>("HouseNumber = '" + HouseNumber + "'");
			if (obj != null)
				return false;

			var merchant = GameServer.Database.SelectObject<DBHouseMerchant>("HouseNumber = '" + HouseNumber + "'");
			if (merchant != null)
				return false;

			// create a new consignment merchant entry, and add it to the DB
			var newM = new DBHouseMerchant {HouseNumber = HouseNumber, Quantity = startValue};
			GameServer.Database.AddObject(newM);

			float[] consignmentCoords = HousingConstants.ConsignmentPositioning[Model];
			double multi = consignmentCoords[0];
			var range = (int) consignmentCoords[1];
			var zaddition = (int) consignmentCoords[2];
			var realm = (int) consignmentCoords[3];

			double angle = Heading*((Math.PI*2)/360); // angle*2pi/360;
			var heading = (ushort) ((Heading < 180 ? Heading + 180 : Heading - 180)/0.08789);
			var tX = (int) ((X + (500*Math.Sin(angle))) - Math.Sin(angle - multi)*range);
			var tY = (int) ((Y - (500*Math.Cos(angle))) + Math.Cos(angle - multi)*range);

			var con = new GameConsignmentMerchant
			{
				CurrentRegionID = RegionID,
				X = tX,
				Y = tY,
				Z = Z + zaddition,
				Level = 50,
				Realm = (eRealm) realm,
				HouseNumber = (ushort)HouseNumber,
				Name = "GameConsignmentMerchant Merchant",
				Heading = heading,
				Model = 144
			};

			con.Flags |= GameNPC.eFlags.PEACE;
			con.LoadedFromScript = false;
			con.RoamingRange = 0;

			if (DatabaseItem.GuildHouse)
				con.GuildName = DatabaseItem.GuildName;

			con.AddToWorld();
			con.SaveIntoDatabase();

			DatabaseItem.HasConsignment = true;
			SaveIntoDatabase();

			return true;
		}