Прошу вас, пожалуйста, со мной, я очень смущен, и у меня, возможно, нет никакого смысла. Я играю в игру, у которой есть источник, который закодирован в C#, и я пытаюсь сделать команду, которую я использую в игре, которая играет звук.Невозможно преобразовать строку [] в строку
Я получил это:
string[] Strings = new string[2];
Strings[0] = "sound/1.mp3";
Strings[1] = "1";
SendPacket(General.MyPackets.String(MyChar.UID, 20, Strings));
На струнных в SendPacket, он говорит, что не может преобразовать строку [] строку.
Я знаю, что делаю это неправильно, и в примере, который я видел, кто-то другой, он содержал «split ('')», но я не уверен, как это сделать.
Вот этот пример я видел (ЭТО НЕ МОЙ КОД, НО ССЫЛКА Я пытался использовать и недееспособных)
{
string[] Strings = new string[2];
string[] sound = param.Split(' ');
Strings[0] = sound[1];
Strings[1] = "1";
string todo = sound[0];
string media = sound[1];
if (todo == "play")
{
CSocket.Send(CoPacket.String(Strings, 0, (Struct.StringType)(20), 2));
}
else if (todo == "broadcast")
{
foreach (ClientSocket CS in World.ClientPool.Values)
{
CSocket.Send(CoPacket.String(Strings, 0, (Struct.StringType)(20), 2));
}
}
break;
}
Я хотел бы знать, как сделать мой код работает, но отправка строк (1 и 2). Спасибо за любую помощь, и мне очень жаль, если я вас смутил.
public void SendPacket(byte[] Dat)
{
try
{
if (ListenSock != null)
if (ListenSock.WinSock.Connected)
{
int Len = Dat[0] + (Dat[1] << 8);
if (Dat.Length != Len)
return;
System.Threading.Monitor.TryEnter(this, new TimeSpan(0, 0, 0, 8, 0));
byte[] Data = new byte[Dat.Length];
Dat.CopyTo(Data, 0);
Crypto.Encrypt(ref Data);
ListenSock.WinSock.Send(Data);
System.Threading.Monitor.Exit(this);
}
}
catch { }
}
public byte[] String(long CharId, byte Type, string name)
{
ushort PacketType = 1015;
byte[] Packet = new byte[13 + name.Length];
fixed (byte* p = Packet)
{
*((ushort*)p) = (ushort)Packet.Length;
*((ushort*)(p + 2)) = (ushort)PacketType;
*((uint*)(p + 4)) = (uint)CharId;
*(p + 8) = Type;
*(p + 9) = 1;
*(p + 10) = (byte)name.Length;
for (int i = 0; i < name.Length; i++)
{
*(p + 11 + i) = Convert.ToByte(name[i]);
}
}
return Packet;
}
Что такое прототип функции 'General.MyPackets.String()'? –
Что такое подпись SendPacket? –
@mybirthname нет, он не работал. im не совсем уверен, что не так. – Donavon