|
Вопрос к OOG Developer'ам - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
02.10.2012, 04:59
|
#1
|
|
|
|
Разведчик
|
Регистрация: 02.10.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Вопрос к OOG Developer'ам
Добрый вечер!
Собственно пару вопросов к разработчикам
Итак, постепенно забываю c# и перехожу на java/C++ ну...это в общем мало кого волнует. Но время от времени что-то пытаюсь писать
С ООП Я на Вы, да и с алгоритмическим мышлением беда.Хотел спросить , что добавить , что убрать , что переделать.
Собственно сорсы, даже стыдно
Client.cs
Код:
public class Client
{
private readonly string username;
private readonly string password;
private readonly string host;
private readonly int port;
private readonly bool strengthen;
public Client(string username, string password, string host, bool strengthen)
: this(username, password, host, 29000 , strengthen) { }
public Client(string username, string password, string host, int port, bool strengthen)
{
this.username = username;
this.password = password;
this.host = host;
this.port = port;
this.strengthen = strengthen;
}
public string UserName
{
get
{
return this.username;
}
}
public string PassWord
{
get
{
return this.password;
}
}
public string Host
{
get
{
return this.host;
}
}
public int Port
{
get
{
return this.port;
}
}
public bool Strengthen
{
get
{
return strengthen;
}
}
Использую для установки данных для входа и подключения.
LoginInWorld.cs
Код:
public class LoginInWorld
{
private TCPClient socketClient;
private QueueSend qsend;
private QueueReceive qrecv;
public LoginInWorld(Client client)
{
this.socketClient = new TCPClient(client.Host, client.Port);
if (this.socketClient.Connect())
{
ReceivePacket();
}
}
private void ReceivePacket()
{
do
{
byte[] unknownPacket = this.socketClient.Receive();
if (unknownPacket != null && unknownPacket.Length > 0)
{
this.qrecv = new QueueReceive(unknownPacket , false);
}
else
{
break;
}
}
while (this.socketClient.IsConnected());
}
Использую для установки сокета, и получение пакетов для дальнейшего разбора.
QueueReceive.cs
Код:
public class QueueReceive
{
private static Queue<byte[]> recvList = new Queue<byte[]>();
private PacketContainer pc;
public QueueReceive(byte[] recvData , bool savePacket)
{
if (savePacket)
{
recvList.Enqueue(recvData);
}
this.pc = new PacketContainer(recvData);
}
}
Сделал очередь, так, на случай ведение лога.
По аналогии с QueueSend.cs
PacketContainer.cs
Код:
public class PacketContainer : BuildAssist
{
public PacketContainer(byte[] recvData)
{
switch (recvData[0])
{
case 0x01:
{
_0x01.FirstServerKey = extractionValue(16, recvData, 3);
_0x01.serverVersion = extractionValue(3, recvData, 20);
break;
}
}
}
struct _0x01
{
public static byte[] FirstServerKey = new byte[16];
public static byte[] serverVersion = new byte[3];
}
}
Класс контейнер, использую для извлечение нужных данных.
Подумал, что структура для каждого серверного пакета будет не плохо.
Собственно тут у меня ступор, не знаю как дальше, и стоит ли вообще.Мб лучше все переделать
BuildAssist - Класс помощник в сборке пакетов
Ну, как-то так
Внимательно слушаю вас
|
|
|
02.10.2012, 15:25
|
#2
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: Вопрос к OOG Developer'ам
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
Последний раз редактировалось krukovis; 02.10.2012 в 15:28.
Причина: Добавлено сообщение
|
|
|
03.10.2012, 17:08
|
#3
|
|
|
|
Разведчик
|
Регистрация: 17.09.2009
Сообщений: 46
Популярность: 1187
Сказал(а) спасибо: 8
Поблагодарили 50 раз(а) в 13 сообщениях
|
Re: Вопрос к OOG Developer'ам
|
|
|
03.10.2012, 19:04
|
#4
|
|
|
|
Капитан
|
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 346 раз(а) в 104 сообщениях
|
Re: Вопрос к OOG Developer'ам
Jenkis, почитайте описание моей старой оог-библиотеки
http://zhyk.ru/forum/showthread.php?...57#post2846157
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 13:15.
|
|