我之前问过一个问题,但听起来我没有很好地解释它所以这里是错误部分类数据包处理程序的代码(从数据包接收信息并将它们存储在 x,y 并且有接受 2 的结构ushort ref 所以一旦我定义了一个对象,它就会改变我发送的变量的值)
public class PacketHandler : GUI
{
GameUser role;
public PacketHandler(GameUser who)
{
role = who;
}
ushort Actualx, Actualy;
public PacketHandler(ref ushort x ,ref ushort y)
{
x = Actualx; y = Actualy;
}
public unsafe void HandleServer(byte[] data)
{
.
.
.
case 10010:
{
if (BitConverter.ToUInt16(data, 8) == 1002)
{
Actualx = BitConverter.ToUInt16(data, 24);
Actualy = BitConverter.ToUInt16(data, 26);
}
break;
}
这从数据包中获取值,将它们存储在actualx,实际上准备将它们提供给定义对象参数的任何ushort ref
这是其他类
public class ClientBase
{
GameUser role2;
public ClientBase(GameUser role)
{
role2 = role;
Thread T = new Thread(HuntThread) { Name = "Hunt Thread" };
T.Start(this);
}
.
.
.
public void HuntThread(object Sender)
{
ClientBase Client = Sender as ClientBase;
while (true)
{
Monster Target = GetNextkill();
if (Target != null)
{
Thread.Sleep(1000);
ProxyParadise.Network.Packets.PacketHandler getxandy = new ProxyParadise.Network.Packets.PacketHandler(ref X, ref Y);
ProxyParadise.Network.Packets.PacketStructure ps = new ProxyParadise.Network.Packets.PacketStructure();
.
.
.
真正的问题是我在 x 和 y 处找到零,当我追踪它时,我在实际 x 处找到零,但我确定他们得到了一个值,所以我认为我在做一些愚蠢的事情
所以总而言之,如果你不能在这段代码上帮助我或者弄清楚我的意思,那么请告诉我在使用线程时从另一个类获取值的正确方法,谢谢大家,请一些mod删除我的旧问题,我现在以更好的方式改写它