I made it so that it tells me the Types that are called during the trade...
First Player Pressing Ok --> case 10
Second Player Pressing Ok --> case 10
After they both pressed OK --> case 2 (for both of the players)
Case 10:
Code:
case 10:
{
Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
if (Who != null)
if (Who.ClickedOK)
{
if ((C.MyChar.Silvers >= C.MyChar.TradingSilvers || C.MyChar.TradingSilvers == 0) && (Who.Silvers >= Who.TradingSilvers || Who.TradingSilvers == 0))
{
Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.TradingWith, 5));
C.AddSend(Packets.TradePacket(C.MyChar.EntityID, 5));
Who.Silvers += C.MyChar.TradingSilvers;
Who.Silvers -= Who.TradingSilvers;
C.MyChar.Silvers += Who.TradingSilvers;
C.MyChar.Silvers -= C.MyChar.TradingSilvers;
bool T1 = false;
bool T2 = false;
int i = 0;
foreach (uint Id in C.MyChar.TradeSide)
{
i++;
if (i == C.MyChar.TradeSide.Count)
T1 = true;
Game.Item I = C.MyChar.FindInvItem(Id);
Who.AddItem(I);
C.MyChar.RemoveItem(I);
if (I != null)
if (I.DBInfo.Name == "DBScroll" || I.DBInfo.Name == "MeteorScroll" || I.DBInfo.Name == "DragonBall" || I.ID == 700003 || I.ID == 700013 || I.ID == 700023 || I.ID == 700033 || I.ID == 700043 || I.ID == 700053 || I.ID == 700063 || I.ID == 700073 || I.ID % 10 == 9 || I.ID % 10 == 8 || I.ID == 723701)
Program.WriteLine(C.MyChar.Name + " added " + I.DBInfo.Name + " and accepted a trade with " + Who.Name);
}
i = 0;
foreach (uint Id in Who.TradeSide)
{
i++;
if (i == Who.TradeSide.Count)
T2 = true;
Game.Item I = Who.FindInvItem(Id);
C.MyChar.AddItem(I);
Who.RemoveItem(I);
if (I != null)
if (I.DBInfo.Name == "DBScroll" || I.DBInfo.Name == "MeteorScroll" || I.DBInfo.Name == "DragonBall" || I.ID == 700003 || I.ID == 700013 || I.ID == 700023 || I.ID == 700033 || I.ID == 700043 || I.ID == 700053 || I.ID == 700063 || I.ID == 700073 || I.ID % 10 == 9 || I.ID % 10 == 8 || I.ID == 723701)
Program.WriteLine(Who.Name + " added " + I.DBInfo.Name + " and accepted a trade with " + C.MyChar.Name);
}
if (T1 && T2)
{
Who.Trading = false;
Who.TradingWith = 0;
Who.TradeSide = null;
Who.TradeSide = new System.Collections.ArrayList(20);
Who.TradingSilvers = 0;
Who.ClickedOK = false;
Who.MyClient.AddSend(Packets.ChatMessage(Who.MyClient.MessageID, "SYSTEM", Who.Name, "Trading succeeded!", 2005, 0));
C.MyChar.Trading = false;
C.MyChar.TradingWith = 0;
C.MyChar.TradeSide = null;
C.MyChar.TradeSide = new System.Collections.ArrayList(20);
C.MyChar.TradingSilvers = 0;
C.MyChar.ClickedOK = false;
C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "Trading succeeded!", 2005, 0));
}
}
}
else
{
C.MyChar.ClickedOK = true;
Who.MyClient.AddSend(Packets.TradePacket(0, 10));
}
break;
}
Code:
case 2:
{
CancelTrade(C);
break;
}






