I have fixed them a long time ago and I will share my source code
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
| int maxstack = GetRefMaxStack(package_item_codename); |
| int scrdata = GetScrData(package_item_codename); |
| if ((maxstack <= 1) && (nItems == 1)) |
| { |
| WriterClass cb = new WriterClass(); |
| Packet inventory = new Packet(0xB034); |
| inventory.WriteUInt8(1); |
| inventory.WriteUInt8(24); |
| inventory.WriteUInt16(uint1); |
| inventory.WriteUInt8(b1); |
| inventory.WriteUInt8(b2); |
| inventory.WriteUInt8(b3); |
| inventory.WriteUInt8(1); |
| inventory.WriteUInt8(res); |
| inventory.WriteUInt16(nItems); |
| inventory.WriteUInt32(0); |
| this.client_socket.Send(inventory); |
| Packet inventory2 = new Packet(0xB034); |
| ////------------------------------------------ |
| WriterClass cb1 = new WriterClass(); |
| Packet inventory2 = new Packet(0xB034); |
| inventory2.WriteUInt8(1); |
| inventory2.WriteUInt8(7); |
| inventory2.WriteUInt8((byte)(res)); |
| this.client_socket.Send(inventory2); |
| Console.WriteLine("ItemMall OK ->" + username); |
| flag = true; |
| } |
| if ((maxstack <= 1) && (nItems > 1)) |
| { |
| WriterClass cb = new WriterClass(); |
| Packet inventory = new Packet(0xB034); |
| inventory.WriteUInt8(1); |
| inventory.WriteUInt8(24); |
| inventory.WriteUInt16(uint1); |
| inventory.WriteUInt8(b1); |
| inventory.WriteUInt8(b2); |
| inventory.WriteUInt8(b3); |
| inventory.WriteUInt8(1); |
| inventory.WriteUInt8(res); |
| inventory.WriteUInt16(nItems); |
| inventory.WriteUInt32(0); |
| this.client_socket.Send(inventory); |
| Packet inventory2 = new Packet(0xB034); |
| ////------------------------------------------ |
| WriterClass cb1 = new WriterClass(); |
| Packet inventory2 = new Packet(0xB034); |
| inventory2.WriteUInt8(1); |
| inventory2.WriteUInt8(7); |
| inventory2.WriteUInt8((byte)(res)); |
| this.client_socket.Send(inventory2); |
| Console.WriteLine("ItemMall OK ->" + username); |
| flag = true; |
| } |
| if ((maxstack > 1) && scrdata <= 1) |
| { |
| WriterClass cb = new WriterClass(); |
| Packet inventory = new Packet(0xB034); |
| inventory.WriteUInt8(1); |
| inventory.WriteUInt8(24); |
| inventory.WriteUInt16(uint1); |
| inventory.WriteUInt8(b1); |
| inventory.WriteUInt8(b2); |
| inventory.WriteUInt8(b3); |
| inventory.WriteUInt8(1); |
| inventory.WriteUInt8(res); |
| inventory.WriteUInt16(nItems); |
| inventory.WriteUInt32(0); |
| this.client_socket.Send(inventory); |
| Packet inventory2 = new Packet(0xB034); |
| ////------------------------------------------ |
| WriterClass cb1 = new WriterClass(); |
| Packet inventory2 = new Packet(0xB034); |
| inventory2.WriteUInt8(1); |
| inventory2.WriteUInt8(7); |
| inventory2.WriteUInt8((byte)(res)); |
| this.client_socket.Send(inventory2); |
| Console.WriteLine("ItemMall OK ->" + username); |
| flag = true; |
| } |
| if ((maxstack > 1) && scrdata > 1) |
| { |
| WriterClass cb = new WriterClass(); |
| Packet inventory = new Packet(0xB034); |
| inventory.WriteUInt8(1); |
| inventory.WriteUInt8(24); |
| inventory.WriteUInt16(uint1); |
| inventory.WriteUInt8(b1); |
| inventory.WriteUInt8(b2); |
| inventory.WriteUInt8(b3); |
| inventory.WriteUInt8(1); |
| inventory.WriteUInt8(res); |
| inventory.WriteUInt16(nItems); |
| inventory.WriteUInt32(0); |
| this.client_socket.Send(inventory); |
| Packet inventory2 = new Packet(0xB034); |
| ////------------------------------------------ |
| WriterClass cb1 = new WriterClass(); |
| Packet inventory2 = new Packet(0xB034); |
| inventory2.WriteUInt8(1); |
| inventory2.WriteUInt8(7); |
| inventory2.WriteUInt8((byte)(res)); |
| this.client_socket.Send(inventory2); |
| Console.WriteLine("ItemMall OK ->" + username); |
| flag = true; |
| } |
| } |
| } |
| return flag; |
| } |
| public static int GetRefMaxStack(string refpackagecode) |
| { |
| String connectionstring1 = "Data Source=" + Global.sqlsv + ";Initial Catalog=" + Global.sqldb + ";Integrated Security=false; User ID = " + Global.sqluser + "; Password = " + Global.sqlpw + ";"; |
| // String connectionstring3 = "Data Source=" + Global.sqlsv + ";Initial Catalog=" + Global.sqldbAcc + ";Integrated Security=false; User ID = " + Global.sqluser + "; Password = " + Global.sqlpw + ";"; |
| using (SqlConnection con1 = new SqlConnection(connectionstring1)) |
| { |
| con1.Open(); |
| int value = 0; |
| SqlCommand command = new SqlCommand |
| ("select MaxStack from " + Global.sqldb + ".DBO._refobjitem where id in ( select link from " + Global.sqldb + ".DBO._refobjcommon where codename128 in " |
| + "(select refitemcodename from " + Global.sqldb + ".DBO._RefScrapOfPackageItem where RefPackageItemCodeName='" + refpackagecode + "'))", con1); |
| IAsyncResult result = command.BeginExecuteReader(); |
| try |
| { |
| using (SqlDataReader reader = command.EndExecuteReader(result)) |
| { |
| while (reader.Read()) |
| { |
| reader.GetValue(0); |
| value = Convert.ToUInt16(reader.GetValue(0)); |
| } |
| } |
| } |
| catch (Exception) |
| { |
| // SystemClass.WriterTxT(DateTime.Now.ToString("yyyy-MM-dd") + ".Log", refpackagecode + "【获取MaxStack失败】:" + e.Message); |
| } |
| return value; |
| } |
| } |
| public static int GetScrData(string refpackagecode) |
| { |
| String connectionstring1 = "Data Source=" + Global.sqlsv + ";Initial Catalog=" + Global.sqldb + ";Integrated Security=false; User ID = " + Global.sqluser + "; Password = " + Global.sqlpw + ";"; |
| // String connectionstring3 = "Data Source=" + Global.sqlsv + ";Initial Catalog=" + Global.sqldbAcc + ";Integrated Security=false; User ID = " + Global.sqluser + "; Password = " + Global.sqlpw + ";"; |
| using (SqlConnection con1 = new SqlConnection(connectionstring1)) |
| { |
| con1.Open(); |
| int value = 0; |
| SqlCommand command = new SqlCommand("select data from " + Global.sqldb + ".DBO._RefScrapOfPackageItem where RefPackageItemCodeName='" + refpackagecode + "'", con1); |
| IAsyncResult result = command.BeginExecuteReader(); |
| try |
| { |
| using (SqlDataReader reader = command.EndExecuteReader(result)) |
| { |
| while (reader.Read()) |
| { |
| reader.GetValue(0); |
| value = Convert.ToUInt16(reader.GetValue(0)); |
| } |
| } |
| } |
| catch (Exception) |
| { |
| // SystemClass.WriterTxT(DateTime.Now.ToString("yyyy-MM-dd") + ".Log", refpackagecode + "【获取scrdata失败】:" + e.Message); |
| } |
| return value; |
| } |
| } |