Fix CSROR [CSRO] MALL_ITEM source

02/12/2020 07:18 qq909047432#1
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...]

 
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;
}
}
02/12/2020 22:14 #HB#2
Holy, are you actually planning to create SQL connection per client request? Good luck with that, your tool will be dead with 25 ~ 40 user at same time.
02/13/2020 08:03 qq909047432#3
Quote:
Originally Posted by #HB View Post
Holy, are you actually planning to create SQL connection per client request? Good luck with that, your tool will be dead with 25 ~ 40 user at same time.
My tool supports 3000 users online, so there should be no problems;)
02/13/2020 12:24 #HB#4
Quote:
Originally Posted by qq909047432 View Post
My tool supports 3000 users online, so there should be no problems;)
Sure, good luck.
02/13/2020 15:22 DaxterSoul#5
Quote:
Originally Posted by #HB View Post
Holy, are you actually planning to create SQL connection per client request? Good luck with that, your tool will be dead with 25 ~ 40 user at same time.
There is a lot of stuff wrong with the code but it ain't the new SqlConnection per request. [Only registered and activated users can see links. Click Here To Register...].